Once you’ve decided to learn to code, one of the hardest questions you’ll ask yourself is: which programming language should I learn first? Let’s look at some of the concerns you might have before you begin learning, the programming languages you have to choose from, and how to decide which one is the right fit for you.
Initial concerns you might have
It feels final
It might feel like once you choose a language you’re making a final decision about what you’re going to be doing for the rest of your life – that’s normal. While some people have successful careers within one programming language, most developers know several different languages – and many change their focus until they find the right one for them. Whichever language you start with, rest assured it doesn’t have to be the only language you ever learn. As a developer, you’ll be a lifelong learner, so expect to learn many different programming languages through your career.
Programming Languages seem very different from each other
While programming languages can have very different syntax – or rules – and each language was developed to solve unique problems, the great news is that all of them share certain common concepts, so learning one language will make it easier to learn the next one. As you pick up your next programming language, you’ll also learn more about that first programming language that you probably missed the first time, so all your learning is connected!
What if I pick the wrong language?
The reality is some languages are harder to learn than others (especially if it’s your first language). However, every language has been someone’s first and they’ve been through the same issues that you’re experiencing. Ask questions in online forums like the Treehouse Community and you’ll be amazed by how eager other learners and developers are to help one another.
If you do find yourself struggling and feeling like you’ve picked the wrong language, you may have picked one with syntax that is more verbose, but that doesn’t mean you can’t learn it. Be patient and take the opportunity to rise to the challenge, once you overcome it, you’ll be even prouder of what you’ve accomplished.
After you learn the basic concepts of a language, you may also find that the next concepts are more challenging. When you want to give up, that’s when you’ll want to work even harder. Push through your confusion, take good notes, and learn as much as you can. By pushing yourself you’ll find that you can learn anything.
Which programming languages are there to choose from?
Once you’ve overcome those initial concerns, it’s time to start coding. But now you’re faced with the next step: which language should you choose? When you’re new to coding, these are the main modern programming languages you’ll likely be considering:
HTML and CSS
People often begin coding by learning HTML and CSS. Why? These 2 languages are essential for creating static web pages. They’re the foundations of everything on the web to some degree, from simple websites to huge and complex applications.
HTML (HyperText Markup Language) structures all the text, links, images and other content on a website. CSS (Cascading Style Sheets) is the language that makes the web page look the way it does – the color, layout, and other visuals that we call style. If you are interested in making websites, you’ll definitely want to start with HTML & CSS.
PHP is one of the most popular web languages – it’s also one of the first accessible programming languages designed for manipulating information on websites. If you’ve used Wikipedia or Facebook you’ve used a site powered by PHP. Almost 27% of the web is built with PHP! Developers love PHP because it allows you to easily add dynamic information to websites and it’s great at manipulating databases so that you can access and store information about your users.
Check out our beginner PHP course
Python is a general-purpose language that is used for everything from server automation to data science. You might think Python is named after the snake, but it’s actually named after the British Comedy group, Monty Python. Thanks to this, Python has a long history of not taking itself too seriously.
Python is a great language for beginners because it’s easy to read and understand. Anything you want to do, you can do with Python. It’s also a language you can stick with for quite a while before needing something else. It’s also another popular programming language. The US Government uses Python to do statistical analysis and visualizations. Disney, Pixar, and Lucasfilm even use Python to add more realistic effects in their movies. And big websites like YouTube, Instagram, and Reddit also use Python.
Check out our beginner Python course
Ruby is often associated with the Rails framework that helped to popularize it. It was created in the mid-90s by Yukhiro “Matz” Matsumoto. Used widely among web startups, Ruby on Rails makes it easy to transform an idea into a prototype and later into a working application. As a result, many tech startups and programmers use Ruby to build the early versions of their applications. Sites like Hulu, Basecamp, and Airbnb use Ruby on Rails.
Check out our beginner Ruby course
iOS: Objective-C & Swift
Objective-C and Swift are two languages that are used to do the same thing – build apps for Apple Devices like the iPhone or iPad. Objective-C is based on C and can be a bit verbose and challenging language to learn – but it can be very rewarding because you’ll be able to make apps. Swift is the most recent app-creating language that is recommended for newer iOS developers since it is intentionally easier to read and get you up and running.
Released in 2000, C# was created by Microsoft. However, just because it was created by Microsoft doesn’t mean that the C# language can only be used for Windows Applications. C# is a general-purpose programming language that is used for video games with the Unity game engine, writing web servers, mobile applications, and ASP.NET.
One of the goals the designers of C# had was to create a programming language that was less prone to errors. That means it’s harder to write software that will crash when it runs. This helps you avoid all sorts of headaches and make coding a lot more fun.
Check out our beginner C# course
Android: Java and Kotlin
Kotlin is an easier to read and more code efficient version of Java that was created by JetBrains in 2011. But you’ll want to learn Java first before you can truly understand and take advantage of the coding simplicity that Kotlin offers.
Which programming language is right for you?
So now you’re familiar with the languages, but which one should you choose? Here are a few helpful considerations for your decision:
What do you want to do?
If you are interested in working for a specific company, you’ll want to take a look at their job boards. They’ll list specific requirements, often including the programming languages you’ll need to be able to use. Don’t worry if you don’t meet any of them now. You will. But that’ll give you an idea of the direction you’re heading and focus your learning.
What do you want to build?
This is one of the most challenging questions to answer. Knowing what you want to build solves the ‘what programming language should I learn first’ question quickly – because the language is just a tool to get you where you want to go.
If you don’t know what you want to build, check out a site like this one https://github.com/karan/Projects it has a list of projects that can be completed in any language. Consider them a coding challenge for yourself (and start with the easiest one).
Once you’ve decided on a programming language you’ll discover that there are tons of resources to help you learn. From online schools like Treehouse to podcasts, books, apps, conferences and meetups. Now it’s time to immerse yourself in the new language. But the most important thing is that you’ve decided to learn to code, and you’re gonna love it. Remember, coding is fun, and therefore learning to code should be fun too.
Check out our free workshop version of this post below: how to select your first programming language with Treehouse teacher Craig Dennis.