With the explosion of mobile tech and the Internet of Things (IoT), developers are among the most in-demand professionals in the US. The US Bureau of Labor and Statistic predicts software developer jobs will grow 17% between 2014 and 2024–much faster than the average rate of other professions, the bureau noted. Application developer jobs are projected to grow 19% in that time, and systems developers are forecast to grow 13%.

Front end developers, full stack developers, mobile developers, and back end developers are all currently in the top 10 hardest to fill tech jobs, according to data from job search site Indeed.com. And Ruby developers experienced a staggering 656% jump in searches by job seekers on Indeed.com–among the fastest growing searches on the site, according to a recent report.

“There is a lot of opportunity and demand for developers,” said Jeffrey Hammond, Forrester vice president and principal analyst of application development and delivery.

Web development and mobile app development are good areas to start a developer job search, Hammond said. “With mobile app development these days, folks are willing to take a chance if you’ve got some work to show that you’ve done in your own time, or apps you can point to in the App Store,” Hammond said. “You have to look where there is a demand, and try to move into those areas.”

SEE: How to become a developer: A cheat sheet (TechRepublic)

Here are seven skills you need to learn in order to break into a developer career.

1. Coding

The Coding Dojo recently named SQL, Java, and Python as the top three most in-demand coding languages for 2017. “Knowing a language or two, plus being able to code, will get your foot in the door as a junior or associate developer,” said Gene Richardson, chief operating officer at Experts Exchange.

Developer bootcamps can be a good place to learn, though there is much debate over the skill levels of their graduates. “We’re only producing about 50,000 computer science grads a year, and that’s not enough to meet the demand of developers,” Hammond said. Tech giants compete for computer science graduates from top universities, he said. “But small to medium businesses and startups are willing to take a chance on somebody who is motivated and can point to work they’ve done,” Hammond added. That makes a coding bootcamp a viable option, especially as companies are looking to diversify their developer populations, he said.

And, once you learn, “don’t avoid getting down, deep and dirty in the code,” said Karen Panetta, IEEE fellow and associate dean of the school of engineering at Tufts University. “Young developers tend to avoid using low-level debuggers to see what their program looks like in memory, and stepping through instruction code to understand how their data is being stored, how it could be potentially overwritten unintentionally or how an interrupt would affect it, such as a power failure or transmission error.”

2. Different app development frameworks

Richardson recommends developers learn different application development frameworks or methodologies, such as Agile and Waterfall, and their strengths and weaknesses, in order to be able to determine when to apply them. Knowing how to ask the right questions to determine which framework to use is also key, he said. These include “What problem are you trying to solve? Who is your audience? What is the measurement of success? What is the budget and timeline?”

3. Machine learning and artificial intelligence methods

“These areas are becoming part of many new applications,” said Tom Coughlin, IEEE senior member and founder of Coughlin Associates. Machine learning can also provide app developers with business intelligence to steer them to better quality prospects for their products, TechRepublic writer Mary Shacklett recently reported.

Atlassian CTO Sri Viswanath recently told TechRepublic that he believes the rise of machine learning will lead to more developer jobs, not fewer, as some fear.

4. User psychology

“Learn all that you can about how and why people use things so that your products are intuitive and personalized to operate,” Coughlin said.

It all comes back to user interface, Panetta said. “When you’re developing, you have to be very conscious of ease of use,” she added.

SEE: How to become a Unity developer for VR and AR

5. Productivity tools

Using developer productivity tools that help both your job and your team is important, Richardson said. “These tools will be able to include the time-to-market of your projects and your work,” he added.

6. Detailed code changes

Provide detailed comments in your code, revision histories of your code changes, and

why you changed them, Panetta said. “One successful company used the philosophy that if someone else inherited your code and couldn’t understand it, that they should re-write it,” she said. “This is very time consuming and expensive, but imagine if someone takes your code for

granted and keeps adding on to it, yet missing some fundamentally important detail. This could have disastrous results.”

Panetta cited the infamous Therac-25 X-ray machine case, wherein six people died after being given deadly doses of radiation in the 1980s. The software assumed the hardware had a lock to prevent such occurrences, so the developers didn’t plan for that kind of protection in the code, she said.

7. Teamwork

Participate in as many hackathons or competitions as you can, Panetta said. “It’s not about winning, it’s about getting challenging problems you haven’t seen before and getting together

with a team to develop something under a time constraint,” Panetta said. “You will learn how to work on a team, see other people’s approaches to development, and learn how to make trade-offs. In the real world, everything is about making the best trade-off decisions, and being informed will be your greatest asset.”