Will JavaScript type annotations kill TypeScript?
The creators of Svelte and Turbo 8 both dropped TS recently saying that "it's not worth it".
Yes: If JavaScript gets type annotations then there's no reason for TypeScript to exist.
No: TypeScript remains the best language for structuring large enterprise applications.
TBD: The existing user base and its corpensource owner means that TypeScript isn’t likely to reach EOL without a putting up a fight.
I hope they both die. I mean, if you really need strong types in the browser then you could leverage WASM and use a real programming language.
I don’t know and I don’t care.
Software Development / Tech Life

Code n00b: Be Careful What You Wish for, or, ‘Web Dev Roadmap 2017’

May 5th, 2017 3:00pm by
Featued image for: Code n00b: Be Careful What You Wish for, or, ‘Web Dev Roadmap 2017’

So, recently several different people, from very unrelated aspects of my life, all sent me the same link: Kamran Ahmed’s GitHub repo “Web Developer Roadmap 2017.” Ahmed, a web dev based in Dubai, has created quite a thorough and realistic — and helpfully color-coded! — flow chart of frontend, backend, and DevOps career paths, complete with an exhaustive array of the technologies you apparently need learn for each.

It’s a terrific visual atlas. It also, at least at first, caused my brain to implode. I’ve been busting ass for going on a year to become a frontend web dev, though my JavaScript infatuation has me occasionally casting side glances over at the back end (Stop snickering). Ahmed’s frontend path has four steps between “know nothing” and the endpoint, “start building.” So I’m supposed to know all this stuff before I can, you know, build stuff? How can I have been working this hard, for this long, and have barely made it past step one (“Learn the basics: HTML/CSS/Javascript”)? SMH. Again. And again.

I mean, I hadn’t even heard of some, OK maybe a lot, of the stuff on this flow chart. (For all I know, “Jasmine,” “Chai” and “Mocha” might be the latest Starbucks frappuccino flavors, though it turns out they’re JS testing frameworks.) Dang. Though I am aware, thank you very much, that JavaScript frameworks exist, and I can even name the most popular ones.

To that end, Ahmed helpfully lists eight, five of them recommended choices, and advises us to learn two of them. But on what basis do I choose? Write them on sticky notes, blindfold myself, and pick two at random? Oh, goody, looks like I’ll be learning Vue.js and milk/bread/bacon/toilet paper!

After a few minutes of hyperventilating into an empty Dunkin Donuts bag, though, I calmed down enough to appreciate that the guy is trying to provide exactly what I’ve been complaining about the lack of for quite some time now: some kind of logical progression, a path to follow to go from Point BootCamp to Point GotAJob. It’s a helpful roadmap that lays clearly lays out the (many, oh so many) technologies we should be aware of as we work toward professional web dev status.

The helpful information that Ahmed doesn’t provide? Dude, we don’t need to know all of this stuff. Even experienced web devs don’t know every single one of these technologies. Realistically, professional programmers know a handful of these at a fluent, expert level. They know them because they use them every day, on the job or building side projects. Other technologies they can namecheck, having played around in them briefly for some one-off application or from simple coder curiosity.

The crux: nobody expects us to know all this stuff. But many of us in the advanced beginner, starting-to-get-kinda-good stage of learning how to be programmers somehow don’t seem to realize this. I talk to my fellow learners all the time, and we are constantly stressing about which platform or framework we ought to be dedicating ourselves to learning, trading insider tips (“Yes, Vue.js is a newcomer, but also the most-starred repo on GitHub!”) and what knowledge bases will make us the most (shudder) marketable. Case in point: I had beers last week with some fellow junior web devs and our entire happy hour conversation consisted of debating whether knowing Vim would impress interviewers or simply be wasted on HR resume gatekeepers who think YARN is something you knit cute scarves with.

I think this happens because, when you are an absolute beginner, you are learning everything concurrently from scratch, languages and tools and technologies, all at the same time. All the firehoses are open — my first two classes of front end web dev boot camp included the command line, Git, node.js and npm, GitHub, HTML and CSS (No wonder Betamore has a fridge stocked with free all-you-can-drink RedBull and beer). So it’s kind of only natural to get the idea that you’re supposed to know, or at least be in the process of actively learning about, pretty much everything there is to know in your particular area.

That Must-Learn-All-The-Things mindset gets perpetuated when talking to those already in the field or, heaven forbid, reading around forums like Hackernoon and Stack Overflow. Everyone has an opinion about what skills and knowledge are most important to have on your resume and popping up as little green GitHub squares. And every single one of these opinions is different.

What finally saved me from going completely postal about all this is the realization that these are all, in the end, just opinions. There is no Great JavaScript Authority on High telling us which task runners or testing platforms or etc etc etc we should be getting good at using (though it would kind of be a relief if there was, actually). So, yeah, a roadmap overview of all the technologies out there: it is helpful. At least in terms of knowing what I don’t know — i.e., quantifying that knowledge since I already know that I don’t yet know a whole lot.

What I do know is that I don’t yet have the ability to anticipate which among the myriad items on this smorgasbord are the best to put on my plate.

What I also know is that all these are just technologies, and they come and go. JavaScript, PHP, Python — whatever your learning language of choice to start — is the bedrock upon which all these rest. And so learning JavaScript, deeply and fluently, is the basket where I’m keeping all my eggs, along with fundamental programming skills. Knowing how to code, how to problem solve, how to ask questions, how to read and refactor and debug code: no matter what your chosen language, that is what it means to be a programmer.

Unfortunately, that doesn’t make a very exciting personal flow chart, even if you use lots of pretty colors and arrows and crap. But I’m OK with that. At least for now.

Somebody, please bring me a dang Mocha Java Jasmine frappuccino:

Feature image by Felix Russell-Shall via Unsplash.

Group Created with Sketch.
THE NEW STACK UPDATE A newsletter digest of the week’s most important stories & analyses.