There's no question that developers are a hot commodity in the tech world: Developer jobs are typically some of the hardest to fill, and the demand for these types of professionals doesn't seem to be slowing down.
Ruby comes in seventh on the list, but has experienced massive growth: Ruby developers experienced a staggering 656% jump in searches by job seekers on Indeed between 2015 and 2016—among the fastest growing searches on the site, according to a recent report.
"There is a huge shortage in supply of tech talent for development," said Raj Mukherjee, senior vice president of product at Indeed. However, he cautions against pursuing the career for the wrong reasons. "Don't become a developer because it's a hot demand job—if you're not excited about it, you will not be successful," Mukherjee said. "You have to truly be passionate and understand why you want to do this job, and then learn the languages you might find important."
Want to break into a career as a developer? Here are three languages to consider, and tips for how to go about learning them.
If you aren't yet sure what kind of developer you'd like to be, a good starting language with a lot of applicability is Python, according to IEEE senior member Karen Lawson.
"Python is a highly accessible, widely used language that has an expansive development community," Lawson said. "It is used in various ways from data science, devOps scripting, and in 3D rendering pipelines and various other industrial and academic purposes."
One downside to Python is that it is an interpreted language, not compiled, so it can suffer from performance issues if it is not optimized or written with an understanding of how interpreted code will execute on the target platform, Lawson said.
To determine what language to learn, it's important to consider what you'd like to build, said Michael Facemire, a vice president and principal analyst at Forrester. Developer work breaks down into two categories: Making things you can see and touch, such as web pages, mobile apps, and desktop apps; and working with data integrations and server side programming.
If you are interested in the latter, Java is the de facto server side language, Facemire said. A positive element of Java is that it is a compiled language, Facemire said. That means it can check if you passed the right amount of arguments in your function, or if you tried to infer value from a variable you shouldn't infer, so you can tell what you need to change early on.
And, as the Indeed research mentioned above makes clear, there are a massive number of current job openings for Java programmers.
Tips for learning to program
Lawson recommends a three-pronged approach to learning a programming language:
1. Individual training, via online courses, classroom courses, or books
"This will provide you with the basic syntax, operation, environment setup and other critical getting started details," Lawson said.
2. A project that motivates you
"This is something that you want to do that may be beyond your skill set but that will motivate you to keep driving yourself to achieve," Lawson said. For example, you might try to write a small Python app to tell you if the light in your refrigerator turns off when you close the door.
"This project will force you to learn all the language primitives, understand size and execution flow and when you are done you will have impressive skills," she added. "While the class can give you the 'Hello, World' practice, the project introduces you to the best part of programming—creativity in solving a problem you care about. This will carry you through some of the slower moments of learning a language."
3. Developer communities
Seek out blogs, forums and online interaction to see how others have learned. "Knowing the communities and places to go to see how others have solved problems, learned techniques, and discussed new distributions and releases is critical to truly learning and understanding real world development in a language," Lawson said.
Lawson also recommends new developers maintain a portfolio of code, manage it, and continue adding reusable elements, no matter how small. "You can look back and see clearly how far you have come with techniques, knowledge, and sophistication," she said.
It can be helpful to have experienced developers review your code, as well. "It's worth it and it can shortcut learning to have skilled individuals discuss how they would approach solving specific problems in code," Lawson said.
Update: A video was added to this article on April 11, 2017.
- Coding school graduates: Are they worth hiring? (TechRepublic)
- Six ways to fix the IT skills shortage (ZDNet)
- Top 10 hottest IT jobs for 2017 (TechRepublic)
- Microsoft's new online certification program kicks off with data science specialization (ZDNet)
- How to become a Unity developer for VR and AR (TechRepublic)