Which Programming Language should I learn first ?

It’s probably one of the most popular questions from first-time learners, and it’s something that educators debate as well. The thing is, you can ask ten programmers what the best language is to get your feet wet with and you could get ten different answers – there are thousands of options. Which language you start with depends not only on how beginner-friendly it is, though, but also the kind of projects you want to work on, why you’re interested in coding in the first place, and perhaps also whether you’re thinking of doing this for a living. Here are some considerations and suggestions to help you decide.

love_programming

Why Do You Want to Learn to Code?

Depending on what it is you want to make or do, your choice might already be made up for you. To build a website or webapp, for example, you should learn HTML and CSS, along with JavaScript and perhaps PHP for interactivity or Python for server side handling. If your focus is mostly/only on building a mobile app, then you can dive right into swift or Java for Android (and other related cross platform tools).

If you’re looking to go beyond one specific project or specialty, though, or want to learn a bunch of languages, it’s best to start with learning the basic concepts of programming and how to “think like a coder.”

That way, no matter what your first programming language, you can apply those skills towards learning a new one faster!

You can start with reading the basic reference material for any language given in Programming Hub or choose to understand by interpreting the syntax used in the basic programs  (sometimes even videos and tutorials can come handy).

Most-Often Recommended Programming Languages for Beginners

Most of the “mainstream” programming languages—such as C, Java, C#, Perl, Ruby, and Python—can do the same—or nearly the same—tasks as the others. Java, for example, works cross-platform and is used for web apps and applets, but Ruby also can do large web apps and Python apps similarly run on Linux and Windows.

Since many languages are modeled after each other, the syntax or structure of working on them is often nearly identical, so learning one often helps with learning the others. For example, to print “Hello World,” Java and C# are syntactically similar just as Perl and Python are:

C vs Java

A quick comparison of the most popular programming languages:

C: Trains You to Write Efficient Code

C is one of, if not the, most widely used programming languages. There are a few reasons for this. As noted programmer and writer Joel Spolsky says, C is to programming as learning basic anatomy is to a medical doctor. C is a “machine level” language, so you’ll learn how a program interacts with the hardware and learn the fundamentals of programming at the lowest—hardware—level (C is the foundation for Linux/GNU). You learn things like debugging programs, memory management, and how computers work that you don’t get from higher level languages like Java—all while prepping you to code efficiently for other languages. C is the “grandfather” of many other higher level languages, including Java, C#, and JavaScript.

That said, coding in C is stricter and has a steeper learning curve than other languages, and if you’re not planning on working on programs that interface with the hardware (tap into device drivers, for example, or operating system extensions), learning C will add to your education time, perhaps unnecessarily.

Java: One of the Most Practical and Widely used Languages to Learn

Java enforces solid Object Oriented principles (OOP) that are used in modern languages including C++, Perl, Python, and PHP. Once you’ve learned Java, you can learn other OOP languages pretty easily.

Java has the advantage of a long history of usage. There are lots of “boilerplate” examples, it’s been taught for decades, and it’s widely used for many purposes (including Android app development), so it’s a very practical language to learn. You won’t get machine-level control, as you would with C, but you’ll be able to access/manipulate the most important computer parts like the filesystem, graphics, and sound for any fairly sophisticated and modern program—that can run on any operating system.

Python: Fun and Easy to Learn

Many people recommend Python as the best beginner language because of its simplicity yet great capabilities. The code is easy to read and enforces good programming style (like indenting), without being overly strict about syntax (things like remembering to add a semicolon at the end of each line).

Python’s popularity is also rising quickly today thanks to wide adoption on popular websites like Pinterest, Instagram and of course not to forget that initial google search engines were made using Python.

JavaScript: For Jumping Right in and Building Websites

JavaScript (of little relation to Java) requires the least amount of set up to get started with, since it’s already built into web browsers.

If you want to make cool interactive things for the web, JavaScript is a must-have skill.

Choosing Your Path

One last consideration is whether or not you might want to go from coding as a hobby to doing it as a career. Dev/Code/Hack breaks down the different job roles and the skills you should pick up for them:

Back-end/Server-side Programmer: Usually uses one of the following: Python, Ruby, PHP, Java or .Net. Has database knowledge. Possibly has some sysadmin knowledge.

Front-end/Client-side Programmer: HTML, CSS, JavaScript. Possibly has design skill.

Mobile Programmer: Objective-C or Java (for Android). HTML/CSS for mobile websites. Potentially has server-side knowledge.

3D Programmer/Game Programmer: C/C++, OpenGL, Animation. Possibly has good artistic skill.

High-Performance Programmer: C/C++, Java. May have background in mathematics or quantitative analysis.

In the end, though, there’s no one way to get started learning to code. The most important thing is to learn the fundamentals through “Exploring it yourself!,” or working on a problems you want to solve or something you want to build.

The first programming language you learn could likely be the hardest to learn. Picking something small and fun makes this less of a challenge and more of an adventure. It doesn’t really matter where you start as long as you keep going—keep writing code, keep reading code. Don’t forget to test it either. Once you have one language you’re happy with, picking up a new language is less of a feat, and you’ll pick up new skills on the way. Also keep up with the new IDE’s (Integrated Development Environments) and new programming languages, for all you know before you finish learning a programming language, there might already be a new and improved replacement.

LEARN THE CODE – CHANGE THE WORLD! Good Luck!

  • Ryan

    Well written and informative

  • I am sure this article has touched all the internet people, its really really pleasant paragraph on building up new web
    site.

  • It is appropriate time to make some plans for the future and it’s time to be happy.
    I’ve read this post and if I could I wish to suggest you some interesting things or advice.
    Perhaps you can write next articles referring to this article.

    I wish to read more things about it!

  • Way cool! Some very valid points! I appreciate you writing this
    article and the rest of the website is also really good.

  • Thank you for the auspicious writeup. It in fact was a amusement account it.
    Look advanced to more added agreeable from you!
    By the way, how can we communicate?

  • Fantastic article post.Really looking forward to read more. Fantastic.

  • When someone writes an part of writing he/she retains the image of any user in their/her brain that the way a user can understand
    it. Therefore that’s why this part of writing is amazing. Thanks!

  • Aw, this was an exceptionally good post. Taking a few minutes and
    actual effort to produce a very good article but what
    can I say I hesitate a lot and don’t seem to get nearly anything done.

  • What’s up Dear, are you truly visiting this web site regularly,
    if so then you will absolutely obtain nice knowledge.

  • There’s definately a whole lot to learn about this topic. I like every one of the points you may have made.

  • I am certain this article has touched all of the internet visitors,
    its really really pleasant paragraph on developing new internet
    site.