Learn everything you need to know about becoming a software developer in 2023!

Are you a software developer looking for the latest trends in software development?

Do you want to stay ahead of the game and stay informed on the cutting-edge technologies that are changing the software engineering industry?

If so, youโ€™ve come to the right place! In this blog post, I cover the latest in-demand programming languages and technologies, trends in software development, strategies for learning new software technologies, and best practices for software development.

You'll notice every new year, someone comes out with new content on how to become X type of developer in 20XX. This is my take on it ๐Ÿ˜„

So, what are you waiting for? Letโ€™s dive in and explore the horizon of software development!

Here are the most in demand Programming Languages and Technologies

If youโ€™re a software developer, you know that the software engineering industry is constantly changing and evolving.

When I started, PHP was one of the coolest languages, now it's less cool and gets a lot of hate. ๐Ÿ˜ข

Staying up-to-date on the latest in-demand programming languages and technologies is essential if you want to stay ahead of the competition.

But how do you do that, when you are just getting started?

Luckily, I broke down the most popular programming languages and technologies and explained which one you should consider to start your dev journey.

The most popular programming languages for software development IMO are:

  • JavaScript
  • Python
  • Java
  • SQL
  • NoSQL
  • C#
  • Rust
  • Go

Side note - I did not mention any mobile specific languages like Swift or Kotlin. They get honorable mention, but in terms of popularity I thought these would rank a bit higher.

Let's break language each down and determine when you would use them

Javascript

This is by far the most popular programming language in the world ๐ŸŒŽ It seems like everyone on Youtube is talking about JavaScript in some way ๐Ÿ’ป

Here's what you can do with JavaScript:

  • ๐ŸŒ Web development
  • ๐ŸŽฎ Game development
  • ๐Ÿ“ฑ Mobile apps
  • ๐Ÿ’ป Building web servers

For most people JS covers all the things you most likely want to do. Want a webapp like Calendly or Gmail, you can use JS. Want to build an app that works on iPhone and Android use JS with React Native. Want to get into more advance things, there is probably a library that will work with JS so you can do that as well. It covers a lot.

According to a survey by Stack Overflow, JavaScript is the most commonly-used language in the world (69.7%), followed by HTML/CSS (62.4%), SQL (56.9%), Python (41.6%) and Java (38.4%). ๐Ÿ“Š It's also the most sought-out programming language by hiring managers in the US.๐Ÿค‘

JavaScript is like the magic wand for web pages. ๐Ÿ”ฎ With it, you can create dynamic web elements like animated graphics, interactive maps, clickable buttons and more. And if you combine it with HTML and CSS, you can have even more control over your website and provide a better user experience.

The best part? It's super easy to learn! ๐Ÿ™Œ JavaScript requires almost no prior coding knowledge and you can start practicing right away.

Plus, there are tons of resources and communities available online to help you out. ๐Ÿค—

My two favorite people to watch on Youtube to learn JS are

Ania Kubow

Fireship.io

If you want to work at a startup or big company, learning JS will give you options and opportunities. ๐Ÿš€

Additional Resources:

Python

Python ๐Ÿ IMO is like the programming language that's been around a bit but is finally becoming cool to the rest of the world. It is a versatile language that's great for a variety of tasks, including:

  • ๐Ÿ›  Back end development
  • ๐Ÿ“Š Data science
  • ๐Ÿ“ฑ App development

Python is a general-purpose programming language that allows you to use different programming styles when creating programs.

Some popular digital tools and platforms, like YouTube, Google Search, and iRobot machines, were developed using Python.

According to a survey by HackerRank, it's the second-most in-demand programming language among hiring managers in the US. ๐Ÿ“ˆ

Python is great for both beginners and experienced coders. ๐Ÿ™Œ It's easy to learn and use, and it has a large library that supports common commands and tasks. More than 50% of hiring managers ๐Ÿ’ผ are looking for candidates who know Python.

You will also notice a lot of leetcode and algoexpert explanations are written in python.

It's usually due to the syntax and the language and out of the box functionality. Most who interviews at FAANG usually default to python.

Additional Resources:

Java

Out of this entire list, this one might be more controversial to the public.

Hear me out. the reason I put Java at 3 because it's been around for so long, that many systems we use leverage it. There are huge enterprises that depend on it.

Java can be the language that lands you a great 9-5 at a company with great benefits. ๐Ÿš€ That is how I was able to get my Masters ๐Ÿ‘จ๐Ÿพโ€๐ŸŽ“ and 12 week paternity ๐Ÿ‘ถ๐Ÿพ leave, all because I said I knew some Java.

Java is used for a variety of tasks, including:

  • ๐Ÿ› E-commerce
  • ๐Ÿ’ฐ Finance
  • ๐Ÿš— Insurance
  • ๐Ÿ—๏ธ Enterprise companies
  • ๐Ÿ“ฑ App development

Java is a general-use and object-oriented programming language. We'll talk more about object-oriented later. Just know, that Java is a popular language among hiring managers globally and it's been in the top 5 of the most commonly used languages for two years. ๐Ÿ“ˆ

Every year, devs will say Java is dead, but it somehow keeps on going.

The reason for its popularity is that Java is relatively easy to learn and use, has great security, and can handle a lot of data. These features make it perfect for the finance industry and other industries such as banking, billing and stock market.

Java isn't the coolest language, but it can get you paid and help you land a good job at a lot of great companies.

Amigos Code is a great Java channel. He dives into Java and Spring which is the most popular framework for Java.

Additional Resources

SQL

This is the one that is far too often overlooked ๐Ÿ‘€. When people think programming they defer to the ones mentioned above.

Almost every company has data and the people in charge want to analyze that data. That's why SQL is one of the best languages to learn.

SQL ๐Ÿ”, or Structured Query Language, is a language that allows you to query and manipulate databases, and it's used for tasks such as:

  • ๐Ÿ—„ Database management
  • ๐Ÿ“Š Sales reports
  • ๐Ÿ’ผ Business management

SQL is a domain-specific language that's mainly used for managing data within an RDBMS (relational database management system). In other words, SQL can help you find and retrieve data from a database, as well as update, add or remove records.

Although SQL is great for small databases, it may not be the best option for managing large databases. Now, this doesn't stop companies from putting all their data into SQL, but I wanted you to be aware.

Despite this, it's still the third-most-used language in the programming industry, with over half (54.7%) of surveyed developers reporting that they use it.

Side note, most developers suck at SQL.

They know enough to get by, but if you need something really specific or some report made, they usually lean on a SQL expert or spend a lot of time on YouTube learning again. ๐Ÿ˜†

S/O to my old colleague Jarrett, he was the SQL guy at my last role, anything related to SQL we went to him. That's good job security.

Popular SQL Options

  • Oracle(my most used)
  • MySQL(2nd most used)
  • Microsoft SQL Server
  • PostgreSQL
  • IBM DB2(hated this one)
  • Redis

Additional Resources

NoSQL

๐Ÿ’ป๐Ÿ”ฅ NoSQL - the language for the people who wants to stay ahead of the game:

NoSQL stands for "Non-relational SQL" and is used for:

  • ๐Ÿ’ผ Database management
  • ๐Ÿ“ˆ Sales reports
  • ๐Ÿ’ผ Business management

๐Ÿค” Think of it as an upgrade to SQL, which is like a fancy spreadsheet. SQL is great for organizing and extracting data, but sometimes it can't handle a lot of data at once. That's where NoSQL comes in!

  • ๐ŸŒฉ๏ธ NoSQL databases can handle big data and cloud-based applications, and are more flexible than SQL.
  • ๐Ÿ”ฅ๐Ÿ“ˆ Both SQL and NoSQL are in high demand, so learning both can give you a competitive edge in the job market!

Some popular NoSQL options are:

  • Redis.
  • MongoDB(my favorite)
  • Apache Cassandra.
  • DynamoDB.
  • RavenDB.
  • OrientDB.
  • Riak.
  • Oracle NoSQL DB.

Additional Resources:

C#

C# ๐ŸŽฎ๐Ÿ“ฑ๐Ÿ’ป the language for people who wants to create the next big hit game or app:

C#, also known as C Sharp, is used for:

  • ๐ŸŽฎ Game development
  • ๐Ÿ–ฅ๏ธ Desktop, web, and mobile apps
  • ๐Ÿ•น๏ธ Virtual reality
  • ๐Ÿ”ฅ C# was created by Microsoft in 2002 and is a popular improvement on the C++ language.

According to a study, 1 out of 5 hiring managers is looking for a developer that can code in C#.

Personally I am not looking for C# devs but I also just play games, never build them. ๐Ÿ˜†

So, it is one of the most in-demand coding languages of the upcoming year.

  • ๐Ÿค C# has a large community that offers support to new learners, making it easier to learn than some newer and less-documented languages.
  • ๐Ÿ“ฑ C# is ideal for building mobile apps and games, which are becoming more and more popular, so it is a skill that will continue to be useful in the coming years.

Additional Resources:

Rust

I gotta be completely honest. I have never used Rust. I don't see myself using it anytime soon, but when writing this article, a lot of writers put this one on their list. I wanted to include it as well.

Rust is used for:

  • ๐Ÿ’ป Operating systems
  • ๐Ÿ•น๏ธ Virtual reality
  • ๐ŸŒ Web browsers

๐Ÿ”ฅ According to a study, Rust is one of the most loved programming languages, with 86% of users saying they want to continue developing with it. You can't just take my word for everything ๐Ÿ˜„

  • ๐Ÿค” But, not many people know about it yet.
Only 3% of developers in the study are using Rust.
  • ๐Ÿค“ Rust is a "multi-paradigm" programming language, which means it can be used in different ways. It's similar to C++, but can be used for more applications.
  • ๐Ÿš€ Rust can make your code run faster, work better on different platforms, and give you an edge in the job market.

Go

Go is an incredibly useful programming language with a variety of applications and benefits! ๐Ÿคฉ Here are some of the things it's great for:

  • System/network programming
  • Audio/video editing
  • Big Data

You will hear experience developers pick Go over Java. Some will even say Go is slowly replacing Java. I don't 100% agree with that statement, but it is very clear Go is an upcoming language, with the backing of Google, it will most likely continue to grow.

Plus, you can make more money with Go โ€” it's been shown to bump salaries up by 33%! ๐Ÿค‘

Cloud โ˜๏ธโ˜๏ธโ˜๏ธ

We talked about languages, but another thing I would advise people to start diving into is the cloud

Cloud computing is a growing trend in the software engineering industry, and for good reason.

Cloud computing allows developers to quickly and easily deploy applications and services on a global scale.

With cloud computing, developers can access powerful infrastructure and services without having to invest in expensive hardware or software.

For example, I am working on a new startup idea, (I talk more about it on my youtube channel - people in tech) and with the access to the cloud, there is nothing stopping me from making an app that scales to 100 million users. Back in the day, I would 100K of just hardware to get started. ๐Ÿคฏ

DevOps โžฟโžฟโžฟ

DevOps is a set of practices and tools that enable developers to quickly and easily develop, deploy, and manage applications and services.

When you Google "DevOps" you will get a lot of things results, saying the same thing but in a lot of different ways. It's confusing

I asked ChatGPT to describe devops, and I like it's anwser:

DevOps is a software development methodology that combines the roles of software development and operations teams. The goal of DevOps is to improve collaboration and communication between developers and operations teams, and to automate the software deployment process. This allows for faster and more efficient delivery of software updates and new features. DevOps practices include continuous integration, continuous delivery, and infrastructure as code.

Artificial Intelligence ๐Ÿค–๐Ÿค–๐Ÿค–

Artificial intelligence and machine learning are two of the most popular trends in the software engineering industry.

Artificial intelligence and machine learning allow developers to create intelligent applications and services that can learn and adapt to changing conditions. ChatGPT took the world by storm. Being able to ask questions and get responses in a conversational manner is ground breaking. I'm excited to see how companies like Google respond and Microsoft investing more into OpenAI(creators of ChatGPT).

Check out another post on how I think AI will impact software engineering hear.

The Impact of Artificial Intelligence on Software Engineering: What It Means for The Future?
Everybody is talking about ChatGPT, is AI taking over, am I going to lose my job? Artificial Intelligence (AI) is rapidly changing the way software engineers design and develop applications. From self-learning algorithms to automated processes, AI is transforming the landscape of software engineerโ€ฆ

How do I pick a programming language?

We covered a lot, but you might still be confused, how do I pick a programming language.

The answer is to work backwards.

Instead of picking a programming language, determine what type of projects you want to work on over the next 2-5 years. If you choose the wrong language or technology, you could end up wasting time and money on a project that will never reach its full potential. ๐Ÿ˜ข

When choosing a language or technology for your project, itโ€™s important to consider the features and capabilities of the language or technology. For example, if youโ€™re developing a web-based application, youโ€™ll want to choose a language or technology that is optimized for web development. If youโ€™re developing a mobile application, youโ€™ll want to choose a language or technology that is optimized for mobile development.

For example if you only want to work on iOS then disregard my list and begin to look into Swift and SwiftUI.

When working with students I always suggest to them to determine the types of projects that interest them the most then learn the best tool(programming language) to complete that project.

Itโ€™s also important to consider the popularity of the language or technology. If a language or technology is popular, itโ€™s likely that there are plenty of resources available to help you with your project.

Conversely, if a language or technology is not popular, itโ€™s likely that there wonโ€™t be many resources available to help you with your project.

Finally, itโ€™s important to consider the future of the language or technology. If a language or technology is on the rise, then itโ€™s likely that it will continue to be popular and in-demand in the future.

However, if a language or technology is on the decline, then itโ€™s likely that it wonโ€™t be popular or in-demand in the future.

Let's not forget about the tech within development

In addition to cloud computing, there are a number of other technologies and tools that can be used for software development.

Think of these like the tools that software developers use to make tools for end users.

Some of the most popular development technologies and tools include

  • containers
  • microservices
  • serverless computing
  • code versioning
  • CI/CD

Some of these items have some overlap between being a software engineer and diving into the world of DevOps. Let's save that for another post. ๐Ÿ˜„

OK, we picked a language, now we need to learn best practices

Once youโ€™ve chosen the right language and technology for your project, itโ€™s important to use best practices for software development.

Best practices for software development include:

  • Writing clean code
  • Writing self documented code
  • Using version control
  • Writing unit tests
  • Using code review tools

There is much more which we cover on some other post on Tech Dad. Just know these are just some things you will learn on your dev journey.

You'll be surprise that a lot of experienced professionals don't follow best practices.


Benefits of Being a Software Technologist

  • ๐Ÿ’ป High demand for software developers means many job opportunities
  • ๐Ÿ’ฐ Good earning potential, with many developers earning high salaries
  • ๐Ÿš€ Exciting and fast-paced work in a constantly evolving field
  • ๐ŸŒŽ Flexibility to work remotely or in a variety of industries
  • ๐Ÿ’ก Constant learning and opportunities for professional development

What are typical challenges for software developers?

  • ๐Ÿ’ผ Long hours and tight deadlines
  • ๐Ÿคฏ Keeping up with new technologies and constantly learning
  • ๐Ÿค” Troubleshooting and debugging can be frustrating
  • ๐Ÿ•ต๏ธโ€โ™‚๏ธ Finding and fixing bugs can be time-consuming
  • ๐Ÿค Working with difficult colleagues or clients

Conclusion

I loved being a software developer. Even in my current role, I try to find ways to continue to code and expand those skills.

Software development is a constantly evolving and rapidly changing industry, and staying up-to-date on the latest trends, technologies, and languages is essential if you want to stay ahead of the competition.

If you feel it's too late, it's not. You just need to start and be consistent. I promise you will experience success at some point.

If you like this post and want to stay ahead of the game in the software engineering industry by subscribe to the Tech Dad newsletter! Our newsletter delivers the latest tech trends, news, and insights straight to your inbox. Don't miss out on the cutting-edge information that will keep you at the forefront of the software engineering industry.

You've successfully subscribed to Tech Dad - A Premium Newsletter for Engineering Leadership
Great! Next, complete checkout to get full access to all premium content.
Error! Could not sign up. invalid link.
Welcome back! You've successfully signed in.
Error! Could not sign in. Please try again.
Success! Your account is fully activated, you now have access to all content.
Error! Stripe checkout failed.
Success! Your billing info is updated.
Error! Billing info update failed.