- JavaScript is routinely ranked as one of the most popular programming languages in the world, and is required for many top tech jobs.
- And yet, the language is infrequently taught as part of undergraduate computer science programs - leaving some students to wonder why they aren't being taught an incredibly valuable job skill.
- So even graduates from top schools are teaching themselves JavaScript, either on their own or by way of tutorials from tech industry influencers, across Twitter, Facebook, Reddit, and even YouTube.
- Meanwhile, immersive coding bootcamp programs have emerged as an alternative to the traditional computer science program, getting participants up to speed with JavaScript and other very current technologies.
- Ultimately, says a hiring manager at tech giant SAP, it's impossible for candidates to know every programming language, and it's more important for a candidate to have a solid foundation in the fundamentals so they can pick up new technologies quickly.
I talked to a slew of computer programmers who entered the job market within the past five years about the languages and platforms they're learning and using, and there was one that came up over and over again: JavaScript.
Christina Holland, a software engineer at Google who's been in the industry since 2015, calls it "probably one of the most approachable languages for beginners." Scott Woods, a staff engineer at JASK and 2016 college grad, says, "If you have any intent of being a UI developer, JavaScript is a must."
It powers the web, application front-ends, and, thanks to an increasing number of server-side frameworks, back-ends as well. It's topped the Stack Overflow developer survey for six years running.
So you might find it a little surprising that, of US News and World Report's top ten computer science undergraduate programs, exactly zero of them have JavaScript listed as part of their curriculum. Redditors bemoan that they never got a chance to take college JavaScript. As Justin Phan, a site reliability engineer at SAP and 2017 college graduate, put it: "JavaScript was as much expected of computer engineering students as was knowing Latin."
What's the source of the disconnect? And, if the kids today aren't picking up one of IT's most popular and important programming languages in school, where are they learning it?
What students are learning
JavaScript isn't exactly some brand-new upstart language. It was first developed in the mid-90s as a scripting language for the Netscape Navigator browser; originally called LiveScript, it got its name as a result of an anti-Microsoft alliance with Sun Microsystems. JavaScript was pitched as the "web companion" to Java, Sun's hot new programming language, but despite some similar syntax the two languages aren't otherwise related.
And it's Java, along with Python, that dominates university curricula. These aren't unpopular languages in the industry, although they certainly don't have the cachet and momentum that JavaScript does today. But they do have the pedagogical advantages of being easy to explain to newcomers, and illustrative of many of the core concepts of computer science in a way that JavaScript, often sneered at for a lack of elegance, doesn't.
"My absolute preference is to teach using Python primarily due to its simplicity and relative conciseness - there's no need for verbose begin/end statements or lots of curly braces," says Databricks CEO and adjunct UC Berkeley professor Ali Ghodsi. "It is not as concise as pure functional languages, but those are also harder to understand."
"I do think that Java was a good starting point," says Carolyn Bump, a software developer at Kohactive who graduated from college in 2017. "I learned a lot of great computer science concepts that I use day-to-day, such as object-oriented programming, data structures, and algorithms. I learned a basic mindset a programmer should have: where to start when solving problems, how to solve problems effectively, and what you should keep in mind while building a solution." Today, she's solving those problems in Ruby and JavaScript.
But many of the recent grads I spoke to felt a keen disconnect between what they learned in college and the real world. Kevin Wakatama, who got his CS degree in 2014, noted that Java was taught more or less divorced from any relevance outside the classroom. "Our undergrad professors didn't really present Java as being either particularly useful, or exclusively as a teaching device," he says. "It was mentioned on occasion that it was one of the most popular, and why it became so, but not much more than that."
And Brandon Sheehy, a software developer in Dallas who recently graduated with a Business Computer Information Systems degree, complained that his professors "had no idea what languages would be profitable to pick up. They more or less just taught whatever technologies Microsoft released. I had an entire course around writing Windows 8 Metro apps. When was the last time you've seen someone use an application from the Windows App Store?"
Some are turning to coding bootcamps
If there's an institution that stands at the opposite philosophical pole from the computer science department at a four year college, it's the coding bootcamp. Offering intensive courses that last weeks, not years, bootcamps like Hack Reactor or General Assembly have rapidly become a huge business since the first one launched in 2011. And one thing they're relentlessly focused on is the practical. And for wannabe computer programmers, practical often means JavaScript.
David Jackson, CEO of custom app developer FullStack Labs, explains the incentives thusly:
"There's a lot of demand from employers for JavaScript devs, and JavaScript devs tend to make more than other types of devs, so that's probably why bootcamps are focusing mostly on JavaScript. The bootcamps measure themselves primarily on the number of graduates receiving jobs and their starting salaries, so it makes sense that they would focus on JavaScript to boost these metrics."
General Assembly
Google's Holland graduated from a bootcamp in 2015. She credits the fact that bootcamps are nimbler than CS academia for the solid grounding she received in web technologies, which are "where the majority of the explosion in job demand is." In fact, she points out that bootcamps have already gone through a shift: "For a while in the late '00s that meant Ruby, but now it's mostly JavaScript, especially since you can use it on the server side."
Of course, the differences in approach between academia and the bootcamp world means some people take extreme positions: Holland says that on one side, you have an attitude like "I would never hire a bootcamp grad unless I wanted my product ruined," and on the other: "CS grads are great if you want obscure math problems solved that don't apply to real life."
The truth, as always, is somewhere in the middle. Holland found her bootcamp experience invaluable, and feels she got a decent grounding in CS fundamentals. But, she says, "a lot of bootcamps are driven by demand of students to 'just give me what I need to get a job,' so they're just jumping straight into how to build JavaScript web apps using certain frameworks. If you lean too much on this, you get people who know how to do a specific thing and don't know the concepts behind it, and aren't very flexible in adapting to slightly different circumstances."
Making it on your own
Google's Holland sees a counter-tendency to this pigeonholing: "A lot of people who go to bootcamps are very self-motivated and kind of take it on themselves to fill in the gaps." But the truth is that many young developers who came up through academia - and who are hungry to learn JavaScript and other platforms they aren't getting in their classes - do the same.
Wakatama, the recent grad, remembers hearing "whispers" of what was popular in the industry during his undergraduate years, which helped students guide their career planning. "There were also things that I wouldn't exactly call research," he said, "but something like community information - JetBrains's 'State of Developer Ecosystem,' for example - that might give us an idea of what the popular and 'up and coming' languages were."
Sheehy may have been learning Windows 8 development in his classes. But at an internship at a city government office, he snagged a JavaScript programming job.
"I was able to fumble my way around it until I actually knew what was going on and eventually fell in love with the language," he said. "I learned pretty much everything I know from internet tutorials, reading code, and a lot of trial and error. I was lucky to have an environment where I was free to grow and make mistakes."
Many turn to the community for guidance
Finding tutorials and boilerplate code online has a long and honorable history in computer programming. However, one interesting twist that many of the young developers I talked to brought up is that they prefer to find put a human face on that information nowadays, via various social media sites.
"If you want to get your foot in the door now," says Holland, "people seem to know that you should get on Twitter and follow famous devs - authors of popular open source libraries, people in developer relations at big tech companies, speakers, bloggers, 'thought leaders' with nebulous credentials, etc. You should have a web page to showcase your projects and make blog posts on." Sheehy has turned to Reddit not only for programming advice, but for career advice as well.
Another perhaps-unexpected site that serves as a locus for young developer community is YouTube, says Parth Jhaveri, a front-end developer at the EGC Group.
"A junior developer can seek out mentorship and tutorials from popular developers like Fredrik Christenson, Telmo Sampaio, Programming with Mosh, and Code with Tim," he explains. "I view their content on a variety of topics, including react.js, Redux, coding best practices, and industry norms. Christenson, who is my personal favorite, answers subscriber-submitted questions pertaining to coding or on related topics like looking for your first programming job."
The long road ahead
So JavaScript and its various frameworks rule the roost - for now. But that could change. Holland notes that a source of great anxiety for many young web developers is how the state of the art is a moving target.
"React came into existence in 2015 and now it's the standard in front-end. Then there's bundlers that get replaced by the hot new thing every two years or so. This drives job hunters crazy because what if the thing you're learning goes obsolete once you've finished learning it? There's fights about frameworks and tools that get hot because people are scared that the thing they learned yesterday is going to die tomorrow, or the future thing they're learning now isn't actually going to be the future," says Holland.
But perhaps these new developers should have faith in themselves.
"Most employers don't expect students to know every language," says Heike Rees, Senior HR Business Partner at SAP, who has done a lot of hiring over the years. "It's impossible to know every language because they change so quickly. We look for people who have a basic understanding of how languages work the ability to quickly learn new ones. We want someone who can independently research how to learn a new language - someone who can ask good questions."
Many young developers, emerging from an educational system that doesn't spit them out ready-made for the job market, have already proven that they can meet this challenge.