Image credit: Unsplash
What will the future bring to the programming world? Are there any specific technologies that will rise and fall? Which programming language one should learn to succeed in their career? What should a newbie programmer know and understand to build a successful career in the 2020s?
I had the opportunity to sit down and talk about these issues in greater detail with Vitaly Kukharenko, a CTO with 10+ years of experience and creator of several high load startups.
What are the top technologies that will grow throughout 2020 and beyond?
I think the hottest topic will be Artificial Intelligence (AI) and Machine Learning. Gartner forecasts the AI market to reach $3.9 trillion by 2022. There are more and more companies that incorporate such advanced technologies into their workflows, launching new AI-based products, and this trend will go on.
The reason is simple – AI is super-efficient when you need to boost productivity by making data-driven decisions. I've experienced this by myself while working on my products.
Okay, and what does this mean in terms of programming languages? What to learn to stay on top of the wave?
And are there any programming mainstream trends or changing approaches?
Honestly, I do not see any significant changes in how software is being developed. No revolution is expected here, and we already have all the necessary tools like methodologies, frameworks, and best practices.
All essential requirements will remain the same: adaptability, focus on speed and improved UX, etc. Headless CMS, single-page applications, progressive web applications – all these things will continue to emerge as an answer to the challenges we face. But all these answers are based on existing approaches. You need to understand the basics of how a good programming process looks like, and you'll be fine.
Speaking of the best practices would be cool to end our interview with some advice. What newbie should programmers understand in 2020?
Yes, there is a set of rules you need to follow to become a good programmer and get a chance to deliver excellent results while working on exciting projects. These include using standards in the first place. Do not invent the bicycle, use coding standards and standard-compliant libraries as these tools allow you to build better software with lesser effort. For web programmers, PSR, Java standards, PEPs, and compliant libraries help a lot.
Second, always test your code. Very often working on a real project with deadlines and all that stress will push you to move too fast. This does not mean you are allowed to deliver shitty untested code. Even if you have no time to write thorough automated tests, this does not mean there can be no tests at all! Use tools like SonarQube to test critical things. And then, when you have one spare minute, spend it on testing and code review.
And third, forget about premature optimization. This is absolute evil, and a virus many programmers are prone to. It is always more interesting to add fancy bells and whistles that can «make a difference in the future» rather than digging into real problems that will make the life of an end-user better right now. But you are here to serve the user, and people need the right products not in the future, but now.
Think about solving the problem, not adding something cool that people even may not need at all. Once you've got that, your professional growth will go at the right pace and trajectory.