New year is usually the time for new opportunities and self-reflection. And while we may have entered March, it is still not late for resolutions and learning new stuff and maybe look into the latest buzz and trends in IT. So, if you're looking to start getting into some new stuff or broadening your knowledge, this article might help you get a picture of what might be popular and desirable in 2023.
The sources used for this article are the Stack Overflow Developer Survey and local trends and news. We will be looking into popularity - how well the language or framework is received and desirability - are there open positions for it.
Technology - aka what to learn
JavaScript for web and mobile
Learning JavaScript remains a safe bet. It is still highly popular and desirable. The versatile technology can be used for frontend (React and Angular are as popular as ever) and backend development (node.js is steadily gaining in prominence year after year), as well as mobile application development. Next.js is also gaining traction, as any other new and exciting JS framework, and is for sure worth a look.
Mobile development with Flutter, Kotlin and Swift
When it comes to mobile development, it seems that Flutter is here to stay. It has been on the rise for a time now, having overtaken React Native as the go-to framework. We have yet to see if all these Flutter apps will get rewritten back to native code, but current trends seem to indicate it will not be the case, at least not this year. As far as native mobile development goes, there’s no particular news on the front, your safest bets are still Kotlin (Android) and Swift (iOS).
TensorFlow and Hugging Face Transformers for data processing
Where technologies get interesting is when we look into changes and trends in libraries for data processing and machine learning. TensorFlow and Hugging Face Transformers are the most loved libraries for machine learning implementations. If you want to work on any of the emerging trends like Natural Language Processing, Video and Audio Recognition, you better add these to your CV. These libraries provide you with pre-trained models, as well as options to fine-tune and train your own models and relations.
.NET and Python for backend development
Regarding backend development, you are good to go with .NET, as it’s still going strong. PHP and Java, while still widely used, are dropping in popularity. On the other hand, Python and its libraries are on the rise - most notably due to all the handy data processing applications. Make sure to pick up on data streaming libraries such as Kafka. It is used in everything from fintech (another emerging area) to IoT.
Docker as an all-around suite
One platform that is attracting attention across all development profiles is Docker - it is a must for almost all technologies and setups. Whatever application you are working on, you should ensure that you are familiar with package managers and build tools. Make sure to understand how your application is built and what the building blocks of the application are. That includes packages, services, components and pipelines.
Profile - aka how to learn
Courses and tutorials
If you know what you want to learn and what you find interesting, you might wonder how exactly to get there. Options are many, but the most popular ones are definitely courses and tutorials. Online courses and documentation are still the most preferred way to acquire new skills, master existing ones or simply test your knowledge. Don't be shy of adding any courses or certificates to your CV, if they are relevant to the position you have your eye on. Popular choices are Udemy, Coursera, Pluralsight, etc.
When it comes to getting hands-on experience with emerging technologies, and we all know this can easily turn into mission impossible as they are just breaking through, you might consider completing the relevant courses and doing a small side project on your own, and subsequently, add it to your skills and project portfolio.
Company resources
If you are employed, you might use your education budget or training opportunities at your job (if available) to refine your skills. Another great idea for learning new stuff is through mentorships and colleagues who are more experienced and willing to share their knowledge and expertise. This way of learning is especially suitable for learning about more advanced topics, especially those that cannot be easily covered in tutorials and are more used by senior developers.
Formal and non-formal educational opportunities
Most developers come with some sort of formal educational background, at least a bachelor’s degree. If you are still in college, make sure to weigh your options on maximizing learning opportunities. You might consider internships, hackathons or final papers as a means of getting exposure to new technologies and hands-on experience.
AI tools
While AI is interesting as a technology, it also gave us a couple of tools that can be useful to pick up. Copilot and ChatGPT are the most popular ones. Both can be used to provide easily available code snippets, generate boilerplate code, write test cases, configuration files and more. Another scenario where these tools come in handy is when learning a new technology. They can help you write the necessary code, and ChatGPT can even explain what the code does. Just make sure to validate that the code you are using actually does what you expected it to do. Experience shows that there is usually some debugging to be done, so keep an eye out for errors and inconsistencies.