Which programming language should you learn first?

You want to be a software developer, but you don't know which programming language to start with? In this post, I'll help you answer the question... "Which programming language should I learn first".
Share on facebook
Share on twitter
Share on linkedin
Share on google
Which Programming Language Should I Learn First?

You decided to be a software developer! This will be a significant step in your career and your personal growth. The problem is that you don’t know where to start from. Let me tell you some important things you should know. At the end of this post you will have the answer to the question “Which programming language should I learn first?”. We will cover the reasons behind that decision, and I am sure you will make a right choice.

If you Google for programming languages, you will find a ton of them. This is good because it means that there are multiple choices out there and you will find for sure a programming language that suits your style. But it is also overwhelming when you don’t know where to start. Let me help you with that.

Either you chose software development as a career path or as a hobby I can tell that it is an excellent choice. Software development is a very productive activity. Your life will change after learning how to create software that other people can use. You will solve problems and help people improve their life. In case you want to start your own startup company, software development can help you achieve your goals. For sure it is not an easy task. There are many different choices you have to make, and it is difficult to decide where to start from. Below you will find the five things you need to think when you are choosing which programming language to begin with. You will find everything you need to know, and I am sure you will take a great decision.

But before we start let’s see the five things you need to think before making your decision and one truth.

Truth

There is one truth about software development, and this is that it does not matter which will be your programming language of choice. The most important thing is to learn the principles behind software development and how to make properly structured software solutions. You need to learn the foundations of software development and how to think. After learning and mastering a programming language, you will realize that all the languages are based on the same concepts. There are some differences in syntax, but the core principles are the same. This means that it is essential to start with a language you feel comfortable and master it. After this, it will be easy to jump to a different language or technology. The learning curve will be much smaller. Trust me on that, I already know how to code in different programming languages and for me is easy to jump to new programming languages quickly.

Five things to think of

1. What is your intention?

The first thing you need to think is what is your intention. It is essential to know what do you want to create as a software developer. For example, the choices if you want to be a game developer differ from those you have if you will be a database developer or a web developer. Although, there is at least one programming language that will allow you to create games, desktop, and web application, but this is something we will discuss this later.

A small hint is that most of the people who want to learn how to code, want to create games. I have to tell you that even if this is much easier than how it was some years ago; it is not an easy path. To be a good game developer, you need to master algorithms and to be great with math. The programming language of choice for most game developers is C++, but for sure it is not a programming language for beginners. In my opinion, you have to start with another language. C# is a great choice, and you will be able to create games by using Unity engine.

If your intention is web, mobile or back-end development, then your choices are different. Check below my recommendations and you will find which programming language you can use per different intention.

2. What is your environment (Mac, Windows or Linux)?

Now that you know what you want to create, you have to think what is your environment of choice. By writing environment, I mean the operating system of choice and your computer. This is also an important step for some programming languages. The reason is that to create software you need to install tools to compile, debug and run the program. There are programming languages that the tooling is more difficult to install on windows than in Mac and the other way around.

Also, if you intend to create mobile applications for iOS, then you need an Apple computer. If you don’t own such a computer and you want to make mobile applications, then it is better to stick with Windows and Android development. The same applies to client development even if there is at least one language that allows you to create cross-platform applications. But below, we will see some of your possible choices.

3. Difficulty Level

The third thing you need to think is the difficulty of the programming language. You will think that you don’t know how difficult is each language, and that’s why you are reading this post. I know that most probably this is true, but you can search how difficult is each language. Some languages are not intended to be for beginners. An example of such a language is C++. C++ is a great and powerful language, but it is not a beginner friendly. To check if a programming language looks good to you, make a small google search and look for sample applications. Look how easy is to create a simple “Hello World” application. What looks better to you. Don’t worry if you don’t understand the specifics of the language, this is something you will learn. Just try to feel how easy the language looks to you.

Check code samples from C#, Python, and PHP. If you want to make mobile applications, you may also want to check Java, Kotlin, Objective-C, and Swift.

4. Resources available

The next important thing you need to think is the number of available resources. As a beginner, it is vital to be able to find code samples and answers to any question you may have to sites like Stack Overflow. You don’t want to spend most of your time Googling around for answers. Look for a programming language with many resources available. Search on Amazon for beginners books. Check the available courses on Pluralsight, Udemy or Treehouse. The more popular a programming language is, the easier is to find resources. A final tip is to always look for solutions on the programming language itself and not for any frameworks around the language. For example, don’t try to learn Angular or React if you don’t know the basics of Javascript.

5. Job Prospects and Future

The final thing you need to think is the job prospects and the future of the language. There are programming languages that are hot on the job market and some others that are not. Choose a programming language with many job opportunities in your market. Search your local market, unless you are willing to relocate, and see which programming languages are most popular. Each market and country may be different from the others. For example at the time of this writing, Python is gaining popularity quickly but not in my home country, Greece. In Greece, other programming languages are popular and with more job opportunities such as C#, PHP, and Java.

We cannot predict the future of a programming language, but we can assume that there are languages like C#, PHP, and Java that will not fade anytime soon. It is a pity to invest your time and energy to master a programming language and then after 3 years struggle to find a job. I remembered some years ago, Ruby on Rails was very popular and everyone was jumping on that bandwagon. Today Ruby is not that popular, and many Ruby developers are now transitioning to other programming languages.

Recommendations

So it’s time for my recommendations. I will tell you my choices and why I chose them. Below you will also find which programming language to avoid learning first.

C#

C# (C-Sharp) is my programming language of choice. C# and .NET framework first appeared in 2000, and are used by millions of developers around the world. C# enforces solid Object Oriented principles (OOP) that are used in most modern languages. Once you’ve learned C#, you can learn other OOP languages pretty easily.

C# is a great programming language, made by Microsoft and is similar to Java. Actually, it is very easy to learn Java if you know C# and the other way around as both are OOP languages, and also they have very similar syntax. With C# you will build applications that run on the Microsoft .NET Framework or on the .NET Core Framework. The latter is a cross-platform framework that runs in Windows, Linux, and macOS.

The beautiful thing about C# is that you can develop any kind of application you want. You can create web applications by using the ASP.NET Framework or desktop applications, for any operating system you want. You can develop mobile apps for iOS, Android and Windows devices (by using Xamarin framework) but you can also create games by using the Unity platform. With C# you can develop whatever you want and you are not limited to a single technology.

To create .NET applications with C#, you don’t need to have a specific operating system or computer. There are tools like Visual Studio and Visual Studio Code that are cross-platform and let you develop and compile your application quickly, without the need to install any additional tools. To be fair, the .NET framework was created to run on Windows, and it still runs better on Windows.

C# is not a difficult programming language to learn. It is an object-oriented (OO) language, and the syntax is like Java. For sure it needs time to master it, but this is common for all programming languages. A beginner can start with C# and in a short time, be able to create an application.

Regarding resources, I can tell that there are many available out there. There are tons of books on Amazon while you can find many courses on sites like Pluralsight. If you have questions, it is 99.9% probable you will find the answer in Stack Overflow.

Because C# is such a popular language, there are many job opportunities in different job markets. C# is used for both web, and back-end development and many organizations use it to develop enterprise solutions. It is pretty easy to find a job as a C# developer and the salaries most of the times are above average. Along with Java, it is also used in the public sector, so if you intend to work for any public sector organization, then C# is a great candidate.

C# was released in 2000, and it is actively developed and supported by Microsoft. It is being used by millions of developers and is not going away soon. It is a powerful and popular programming language, and it’s worth to invest your time in it.

Python

Python is my second recommendation. Python is a great beginners language. It is simple but still has lots of features. Python was first released in 1991, but it was not popular until lately. Python is one of the programming languages that is being used in machine learning and artificial intelligence projects. Nowadays, machine learning is a hot topic, and that helped Python to become a mainstream programming language.

With Python, you can create web and client applications but not games and mobile apps. It is an easy language to learn, and there are also some popular frameworks that will help you create a web application, such as Django.

You don’t need to have a specific operating system or device to run and create Python applications. It works better on Linux and macOS than on Windows, but still, you can work on Windows with no problems. Visual Studio Code and PyCharm are two great editors to use with Python, and they will help you learn the language faster as they have many advanced features like auto-complete and debugging capabilities.

Regarding resources, you can find many books and courses on the internet. Python is a popular programming language, and you will also find a ton of available questions and answers to sites like Stack Overflow.

Scanning the job market, you will find many job opportunities in Python but not in all countries. Python developers are popular in some markets while there are markets that don’t use Python at all. Make your research in your local market before you decide. Regarding salaries, Python developers on average are getting paid well. It is a high paid programming skill to have, and this is because nowadays it is very hot.

I believe Python will go nowhere soon. It is a great programming language, and it is the primary programming language which is being used in machine learning and artificial intelligence projects. I am not sure it will remain as popular as today, but it will not have the luck of Ruby anytime soon.

What to avoid (Javascript)

But now that you know my recommendations I will also tell you which programming language to avoid as your first one. In my opinion, you should avoid Javascript. Even if it is a widely used programming language, and it is broadly used in web development, it is not a language you can build your programming skills. Javascript is not a very structured language, and a beginner can easily fall into many traps. If you plan to be a web developer, then you will learn Javascript sooner or later, but it is much better to start with a different programming language and later learn Javascript.

Programming Language recommendations per use

Let’s see a list of languages per programming path. Have in mind that there are more programming languages, but I included the most popular.

Back End Development

The most popular choices include C#, Java, Python, C/C++, PHP, Perl, Ruby, and SQL.

Client Development (Desktop)

The choices here could be: C#, Java, C/C++

Web Development

The choices include C#, Python, PHP, Ruby, Javascript, Typescript and many others.

Machine Learning

Python and R are the most popular languages for machine learning.

Mobile applications

iOS: Objective-C, Swift, C# (with Xamarin)
Android: Java, Kotlin, C# (with Xamarin)

Database Development

The only choice here is SQL. There are databases where you can write functions in other languages, like C# (SQL Server), Javascript and Python (in PostgreSQL) but in general, you will only need SQL if you want to be a database developer.

Game Development

The most popular choice here is C++. C++ is blazing fast and can perform all the complex operations a game requires. You can also create computer and mobile games with C# by using the Unity engine.

Conclusion

Now you know how to choose your first programming language. You need to have in mind that the first programming language is always the hardest to learn. The reason is that you need to develop both software development skills and learn the syntax of the language. Pick your language of choice and start writing code.

To learn and later master a programming language you need to write tons of lines of code. Books and courses are great resources, and we will discuss in depth both of them in another post, but to learn how to code you need practice.

Now I need to know from you which is the language of your choice. Write it in the comments below and let me know how easy or difficult was to create your first program. Let me help you if you have any thoughts or doubts.

Share on facebook
Facebook
Share on twitter
Twitter
Share on linkedin
LinkedIn
Share on google
Google+
Share on pinterest
Pinterest

Leave a Comment

Your email address will not be published. Required fields are marked *