If you’re thinking of learning to code, the language you choose will be heavily influenced by your long-term plans and ambitions. Nonetheless, some languages are easier to pick up than others, have a community dedicated to teaching, or offer more useful skills once you master them. Here are five of the best, based on your nominations.
Title photo by Michael Himbeault.
Let’s be clear — we’re not trying to absolutely settle the question of which language you should learn first if you’re trying to code. Depending on your specific reasons for learning or the platform you want to target, some options will dominate. Consider this as food for thought.
Java
Oracle’s Java is one of the web’s longest standing and most influential programming languages. You’ll find Java at the core of applications across all platforms, operating systems, and devices. It’s a deeply featured class-based, object-oriented programming language that’s designed to be portable and workable on as many platforms as possible. For that reason, it’s also one of the world’s most popular programming languages, which makes it incredibly valuable if you’re interested in learning to program. The flip-side to Java is that for all of its portability and applicability, it can be quite tricky to grasp, and quite difficult to program effectively and efficiently.
Many schools and classes start with C or C++ because Java derives a lot of its syntax from those earlier languages. Those of you who championed Java as a good first language noted that Java forces you to act like a programmer — to think logically and analytically, and really grasp how a computer will process information. It’s a fundamental set of core concepts that will help you as you move to other languages and technologies.
Ruby
Ruby is a dynamic, open-source, object-oriented programming language developed by computer scientist Yukihiro Matsumoto back in the 1990s, which makes it one of the youngest languages in broad use. It was designed to offer syntax that was easy to read and to write by mere humans, without necessarily needing to learn a massive base of commands and specialised “vocabulary” in order to get started. While the language itself is object-oriented, it also supports procedural, functional and imperative programming.
Ruby has a reputation for being relatively easy to learn, with a 20 minute quick start guide available on the language’s official website that teaches some of its basics in a really short period. Fans of languages like Perl and Python will find some similarities to enjoy. Those of you who nominated Ruby praised it for being easy to understand and easy to learn, and for having a large, active, passionate developer community that’s committed to the success of the language.
Python
When people discuss first programming languages, Python inevitably comes up. It was developed in the 1980s by Guido van Rossum, who then handed the language over to the non-profit Python Software Foundation, which serves as the language’s administrator. The language is open source and free to use, even for commercial applications. Python is often referred to as a scripting language, allowing programmers to churn out large quantities of easily readable and functional code in short periods of time, but it’s also dynamic, and supports object-oriented, procedural and functional programming styles. Thanks to its flexibility, Python is one of the most widely used high-level programming languages today.
Those of you who nominated Python highlighted the fact that Python’s developer community is committed to it being used as a teaching language, so there are numerous learning tools and plenty of documentation available to help first-time coders. The official tutorials are easy to follow, useful and practical.
C/C++
C and its “successor” C++ have been around since the 1970s and early 80s, respectively (you can read more of their history at the Wikipedia links above). C is an extremely widely-used, general purpose, imperative programming language that has heavily influenced almost every language that’s followed it. C++ took things a step further, added object-oriented features such as classes to the language, along with virtual functions and templates. C++ is still in wide use today in everything from video games to productivity software. C++ is a bit more difficult to pick up than C, although many people would argue that there’s no reason to start with C anymore at all. That’s a debate we’re not about to settle.
One thing that’s important about C and C++: They’re two of of the most foundational languages in computer science and programming. If you learn them, they’ll benefit you, even if you wind up not using them later. They’ll provide you with insight into the beginnings and roots of computer science and computer programming. Many of you also said that starting with the hard stuff like C and C++ makes other languages (Java, for example) easier in the long run.
JavaScript
JavaScript (not to be confused with Java) is a scripting language that was developed in the 1990s by Brendan Eich, formerly of Netscape Communications and now of the Mozilla Foundation. JavaScript is one of the fundamental technologies on which the web as we know it is based. JavaScript exists outside of the browser as well, but largely in the context of connected applications and services. The language itself is dynamic, and gives programmers the flexibility to use object-oriented programming styles, as well as functional and imperative ones. It derives much of its syntax from C, and if you plan to do any development for the web in any fashion, learning JavaScript should be on your list.
Fortunately, JavaScript is relatively easy to learn, and is already right there in your browser for you to play with, Many of you who nominated it noted that your bang for the buck when learning JavaScript is huge, because you can start using it right away to build things for the web.. Some of you noted that you can gain a headstart on more complicated languages like C and Java by picking up JavaScript first, Plus, if you’re looking to code professionally, JavaScript is in extremely high demand these days.
We don’t nearly have enough space to offer honourable mentions to every language that just missed the cut. We will however give a special nod to C# .NET, a popular and well-supported language.
Have something to say about one of the nominees? Want to make the case for your personal favourite, even if it wasn’t included in the list? Tell us (and tell us why) in the comments.
Comments
14 responses to “Five Best Programming Languages For First-Time Learners”
Yeah, that’s the wrong way around. IF you learn JavaScript you’ll have a very hard time learning Java or (especially) C afterwards, without some kind of fundamental understanding of programming in general. Sure, they syntax is similar, but that’s about the only thing they have in common.
agreed, pick up a stong-typed language to prevent any bad habits, then check out the messy cousins
No.
I agree with python, and have never used ruby. I disagree with ruby for precisely the same reason why I have never used it, there is little demand for it.
I disagree with c/c++. It is a useful language, but for starting out it is terrible. There are so many ways of doing so many bad things. It is better to learn to program first, and then learn c/c++.
Javascript as a language is horrible, it might be useful for client side web development, but there are just so many odd issues with it.
Java is pretty outdated, learning C# instead seems to be a better idea looking at the number of jobs out there for it. C# does things better then java, but there are still some problems with it.
Javascript can be fun to play with, but you do need to be aware of its problems as a good language. The best in my opinion is either C# or Python to start with. I started with C#, so I am probably slightly biased towards it. But python is great, provided you don’t want to do game development.
>I disagree with ruby for precisely the same reason why I have never used it, there is little demand for it.
The article is about languages that are for first time learners. I’d take this as “what can get me into writing programs easily”, or “how can I build my confidence in making a program, which might open doors for other languages”. If you’re unsure or lack confidence, pick an easy language.
For my money, i’d have to put Delphi has one of the easiest languages to learn. Seriously, it’s one of the few “point and click” tools out there. You want to create a program to show a picture, click, click, and use a dialog to select the file you want shown – you’re done. The only other language that comes close (for easiness) is Visual Basic. In addition, Delphi’s components allow you to create grids, graphs, spin controls, etc – and you can usually populate them with a few mouse clicks. Want to write code to add functionality? It’s all there. You even have arrays that don’t have to start at 0.
I’m a native C/C++ developer myself, but when it comes to “easy to learn”, Java gets an F for easy to learn … C/C++ are not far behind … particularly when you compare them to Delphi and VB.
If you’re focussing on the job markets, and want to select a language to meet your needs, do a check on seek.com (or other) to see what languages are most popular. I’d expect C/C++ and Java to be fairly popular, as would some SQL (database) skills.
I totally agree that C# is the better language to start with. I would advise starting with console application to learn coding then progress to Form applications.
I’m mostly self taught and partly taught via higher education. Anyhow in terms of languages for first time programmers I feel it worth mentioning Visual BASIC. It’s not a wise choice I know but there is method to this madness.
To be good at programming, you need to feel comfortable about constructing the structure and logic of your own code. And this is where BASIC-like languages come in: it allows you to focus more on understanding and debugging logic errors using a syntax that is easy to read.
The other reason why I mention it is it also allows one to make some GUI applications. An excellent positive re-enforcer for programmers starting out.
Once the confidence is there, I say try some other languages like C# or the ever obscure Eiffel language. This is to help the programmer learn and understand OO programming and its concepts. I learned via C++ and it was a nightmare. Some ideas simply did not sink in until I tried them in Eiffel first and then came back to C++. One of them was access paths which I just could not see became (at the time) I was getting owned by pointers and indirection.
After the above, any programmer should be ready for other languages as the concepts should be full grasped. That’s basically what programming is: translating instructions into computer code.
I can agree to an extent but I find the Visual side of Visual BASIC cancels out the positive aspects. I’ve only dealt with a few people picking it up as their first language but the ones who kept advancing seemed to struggle harder than most when moving on to the more general programming principals and other languages.
As for confidence it can build it but it can also completely shatter it when you try and move on. Producing some really nice stuff with Visual BASIC and then stepping into C# where you can’t even bring up a simple GUI can really mess with your head. That big scare can be enough to stop someone with potential from moving on.
I wouldn’t look down on anyone who chose to learn Visual BASIC as their first programming language but I think it’s a bit of a trap. I don’t want to sound like someone insisting you do it the hard way without any shortcuts or you’re not a real programmer but I do find that learning things out of order can quickly land a self taught programmer in a sort of educational limbo. Too advanced for the beginner lessons but without the solid grasp on the fundamentals required to properly process the next level topics.
As with the last article on programming, these seem to be written by people who don’t know much about the languages involved. I won’t go into a long debate, but C-like languages are by far the best to learn for starting programmers, with C and C++ at the bottom of the list of such languages. Java and C# should be first preferences.
This.
Also anyone that suggests learning JavaScript for anything other than using it out of necessity because you have to develop web apps needs to have their head examined. Especially as a starting language for beginners. JavaScript is absolutely awful. This is valid JavaScript.
Javascript is an absolutely awful language. I can’t believe people actually recommended it to start with. I would never recommend a dynamically typed language to a starting programmer.
I’m not quite sure what you’re proving with this? Technically, that JS wouldn’t be valid (if you’re referring to the source string), due to the spacing, lack of semi-colon. And I’m not sure what your point is with jjencode? Is it just that that is valid JS? Obfuscated code is obfuscated code, not really something you should judge a language on, and certainly wouldn’t be used in a production setting.
Javascript is pretty bad, but people badmouthing it without using node.js at a enterprise level need to revisit their preconceived notions – its wicked scalable, and definitely has uses outside of just learning to code. The problem with JS, primarily, is that it is way too loose. However, Javascript would be useless if it was static/compiled – its just that it’s way too easy for new programmers to abuse.
What you need, when learning about programming, is: IF.
Then you need to understand ELSE. After that, you get the fancy FOR – NEXT, DO- WHILE, and CASE.
The idea being: to get you to think logically about a program. What it needs to do, what choices or options your code needs to handle. Without that understanding, you may as well expand the “what language” argument to what IDE, what PC [or mac], or even what size font… and use that as an excuse when your code doesn’t work.
Ruby was my first, though I’m the only person I know that started with Ruby. The reason I chose Ruby as my first language was because a poster at the YMCA said “want to learn to program?? Free classes on Thursdays” and to a poor kid with time to kill free is always good.
A few of these listed languages are too hard for a beginner to grasp (i.e. C++).
@zombiejesus has it right.
C# and Java are the way to go for beginners.
I’d go with java because all you need is notepad, JRE and JDK.
That being said, if you can get your hands on a newer version of Visual Studio easily, then C# is the way to go – it’s a fantastic IDE.
I can’t believe VB is not mentioned!? Perhaps the easiest of all for newbies. I started with that, had my first proggy to play, move, copy, delete wav files in same afternoon. I also have to mention COBOL, ablsolutely the crappest language there is and it takes few pages just to get user input. Also what about ASSEMBLY language?