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.
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 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.
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: firstname.lastname@example.org.
Feature image by Felix Russell-Shall via Unsplash.