This post was updated in November 2017 with new information.
As a technical recruiter or hiring manager, it’s important to become familiar with the current state of programming and notice the large shifts in thinking over the years. This allows you to put yourselves in the candidate’s shoes and assess your hiring approaches. Here are a few of the larger shifts in different areas of the history of programming, ranging from how problems are solved to how programmers get jobs.
When programming languages were first developed in the 1950s, there was very limited access to programming resources, and the few resources that were available were books. There was no real way to ask questions and get answers on topics you didn’t understand. Programmers mainly interacted locally, such as with peers within the same organization.
But now, resources and interactions are unlimited, mainly due to the internet and Wi-Fi. Our CEO Joel Spolsky put it best when he said, “For the kind of programming that developers are required to do today, you can’t just walk into a Barnes and Noble and pick up a book to get the answer. This type of programming today is only possible in a world where Stack Overflow exists.”
Spolsky says, “15-20 years ago, the school of thought when it came to programming was basic -- that’s not how programming works today. It’s much more interesting and diverse.” On his blog, Spolsky describes how he learned to program as a kid by using punched cards. “If you made a mistake, you didn’t have any of these modern features like a backspace key to correct it. You threw away the card and started over.”
The increase in speed of modern computers has made the use of programming languages much more practical than in the past. These increasingly abstracted languages are typically easier to learn and allow the programmer to develop applications much more efficiently and with less source code. It’s also important to note that there is now a much larger variety of programming languages and tech ecosystems compared to 20 years ago. This opens up more opportunities for different kinds of developers with all levels of skill and experience.
Traditionally, programmers completed their undergraduate degree in computer science, information systems or software engineering prior to getting a job. But now, with easier access to training material, the “self-taught developer” is emerging. In fact, 44% of developers we surveyed have no related academic qualifications for being a programmer. On the same note, we found that 38% of developers said they have received on-the-job-training, a trend that we hope continues to grow as organizations work harder to recruit and onboard developer talent. Younger developers tend to take online classes (45%) while older developers are likely to have enrolled in a coding boot camp (4%) or professional certification program (9%).
Before the Internet became widely available, computer programmers had to get jobs in many different ways than they do today. Some companies would recruit on college campuses, looking to grab the fresh Engineering graduates. Candidates could also mail hard copies of their resumes and cover letters to companies they were interested in.
Today, developers looking for work can apply to jobs on hundreds of job boards and websites. Recruiters use outlets including email and social media to reach out to passive candidates (those who aren’t looking for a job), hoping they will be interested in a new role. Developers are in such high demand that they can choose to be picky about which job they take. Job listings aren’t just ads or lists of demands anymore; you need to write them to attract the talent. Websites like the Muse and Glassdoor provide insight into what it’s like to work for different companies, creating the importance of the employer brand.