Which programming language or framework should I first learn?

This is one of the most frequently asked questions on getting started in tech. I hope you find my suggestions below helpful. Let me know in the comments below if you have any questions.

Let me first tell you about how I got started in tech and which languages, frameworks and libraries I learned.

I studied Computer Science from 1999-2003. At that time my college made the transition from teaching programming in C to Java. So Java ended up being the first programming language that I learned. I didn’t choose to learn Java specifically. That’s just what I was taught.

Since then I used and learned PHP, VB6, R, SAS, Perl, C#, Javascript and Python programming languages. A company that I worked for even invented their own programming language that I had to learn.

I also learned jQuery, Raphael.js, Backbone.js, Leaflet, Angular and Vue libraries and frameworks for frontend work. JSF, Java Swing, Wicket, Oracle ADF, Angular, Django and Express frameworks for backend work.

Don’t worry I didn’t learn all of these at once. I learned all of these languages and frameworks over a long period of time (about 15 years) . I didn’t choose to learn most of these programming languages or frameworks. I had to learn them as that’s what my employers used in their already existing applications.

The point is you can pick a programming language or framework to start with but know that it may not be what you use at your next job. Don’t stress out so much about which language or framework to learn first.

Remember that your job is not to code. Your job is to build a product for your customers and users. They will not care which programming language or framework you use. They just want something that gets their job done and makes their life easier.

It might seem impossible right now as you are starting out but once you learn one language or framework, it’ll be easier to pick up another one with experience and practice.

However, you need to start somewhere. Here are a few suggestions on how to pick your first programming language.

Pick a beginner-friendly language or framework
Javascript is a must to create dynamic web pages. For backend, Python or Ruby as they are known to be beginner friendly.

Vue is an up and coming frontend framework that is popular among beginners. Django for backend work if you are using Python. Rails if you are using Ruby.

Look at companies that you want to work for. Learn the language and framework that they are using.
Pretend that you already know how to code. Go to indeed.com and look for the work that you’d like to do. Pick 5 or 10 job postings. Is there are common theme? If so, pick the language and framework that they are using.

Pick a language based on the work that you want to do
Javascript, Python or Ruby for web development.

For Data Science, learn R if you are in an academic setting. Otherwise, Python.

For Mobile app development, learn Java for Android apps. Swift for iPhone apps.

If you want to work with databases, learn SQL.

Learn the most popular language or framework
According to TIOBE Index, Java and C are the most popular languages as of June 2018.

If you are already learning a programming language, stick with it. Learn and build as much as you can. Understand the basics and how to build real world applications. Be ready to learn another language or framework if your new job needs it.

No matter which language or framework you choose, remember that languages and frameworks come and go. The experience you gain by building with these tools is what’s important.

This is part of a series on how to get started in tech. Let me know what else I can help with here.

Previous Post
  • Sameer S

    I am curious what you think about languages with more “unconventional” or “mainstream” structures, like FP languages like Haskell, or concurrency-focused languages like Go. While learning Java is not a bad idea purely from a “what gets me a job” perspective, I wonder if even beginners could benefit by leapfrogging to a more modern flavor of these languages. They might be less beginner-friendly because there aren’t as many books or tutorials, but is that difference so stark nowadays, when inexpensive online materials are fairly easy to find? Having said that, the value of “what can I build a website with?” is still pretty high – I’d in fact throw PHP into your first list, on that yardstick!

  • Aniket Kadam

    Hello, Veni it’s a very insightful article. Looking at companies really works, that’s how I got into Android with a week of practise, 6 years ago!
    Also kotlin is replacing Java for Android development and Swift is replacing objective c. Might as well start with those if you’re doing mobile.