Just five short years from now the U.S. will face a shortfall of one million software developers. Our colleges are producing too few computer science grads and with boomers retiring in droves, we are looking at a huge shortage of software developers. And, coupled with stressed supply, demand for developers is way up as IT plays an increasingly central function in modern business.
What constitutes a big problem for America's business in the dearth of developer talent, presents a huge opportunity to those setting out on their career path, as well as those seeking to make a meaningful career change. In 2012 the Bureau of Labor Statistics reported that the median annual salary for a software developer was $93,350 and the profession is set to outpace the national average job growth rate by double. Software developers of all stripes are leading the pack in terms of income growth and increasingly the IT path is a good a bet as any business function for a shot at the top spot.
There are many, many reasons why choosing the coder career path is a really good idea; there's just one little hitch: Only a small subset of the adult population have the appropriate attributes to succeed as a developer.
Are you one of them? You might be. First ask yourself the following key questions:
1) Are you a problem solver?
To build software is to create solutions to business problems. Whether you are fixing something that is broken, making something work better or more efficiently or creating something entirely new, coding is at its core, an exercise in problem solving. If you don't get energized by solving a puzzle, or stepping up to a difficult challenge in any aspect of life, you probably aren't meant to be a developer.
2) Are you a lifelong learner?
As Carol Dweck writes in her book Mindset there are fundamentally two types of people. One type believes that innate ability propels their success, that intelligence is fixed and success levels are predetermined. The other type subscribes instead to an incremental theory of intelligence, believing that their success is based instead on hard work, learning, training and determination. This condition she labels as a "growth mindset".
The pace of change in the world of software is so rapid that whatever programming language you learn today at some point will be obsolete in the future. Your greatest skill will be your ability to acquire new knowledge and evolve your skills. A great developer is a lifelong learner, constantly adapting to the technology landscape, and staying abreast of change.
3) Are you clear, concise and detail-oriented?
"I didn't have time to write a short letter, so I wrote a long one instead" is a famous line often attributed to the brilliantly minded Mark Twain. Writing great code takes time and consideration. It is concise and clear. Genius in simplicity. You often hear the term "elegant" when it comes to great code. A great software developer has the creativity to solve complex problems on one hand, and on the other, the precision and attention to detail to write code that is accessible to others. Your code needs to be navigable and understandable to others coming in after you. Part of that comes with your ability to narrate what you have done with understandable labels. Think of it like a large building, say a hospital or office complex; you could easily get lost in without decent signage and wayfinding. These attributes tend to be common in detail-oriented people. What does your filing system look like at work or home? If you dropped dead today, could people come in and find things easily? If they can, chances are you are more likely to succeed as a developer.
4) Are you capable of dealing with people?
At the end of the day whether you have a customer facing role in a business, or the business itself is your customer, dealing with people is always going to be critical in your role. Being able to understand their needs, their issues and challenges and ultimately being able to communicate and relate as part of a team will be a fundamental driver of how you advance in your career. Gone are the days of the stereotypical lone programmer confined to the basement. Communication skills have never been more important in a developer's skill set as IT plays a greater role in today's business environment.
At the Software Craftsmanship Guild, a program that teaches novices to become code-ready developers in 12 weeks, we feel strongly that when people can align their natural talents with their job function, they have the greatest chance to be their best and most productive self. In his bestselling book , author Daniel Pink calls this heightened state of engagement "flow". As we seek to unlock the potential of our students, we recognize that it's first about getting the right folks in the classroom. Every applicant needs to pass our hour-long, proprietary aptitude assessment, something that we designed to identify the key elements outlined above, and on average we reject one of every two applicants. Since our first class in early 2013, our test, combined with a behavioral interview, has been an excellent indicator of learning ability. And, with time, we've also had incredible feedback from our hiring partners, who are seeing the productivity results of having employees doing work that matches their natural abilities.
Think you've got what it takes to become a coder? If you answered "yes" to the questions above, you're off to a good start. At the Guild we've designed a special Mini Aptitude Test to save people time and give them an early indicator if they've got what it takes. Feel free to set aside a quiet 10-15 minutes, take the test, and see for yourself.
Good luck on your journey!