If you’re thinking of learning to code, the language you decide to pick up first has a lot to do with what you’re trying to learn, what you want to do with the skill, and where you want to eventually go from there. Still, some languages are easier to pick up than others, have a community dedicated to teaching, or offer more useful skills once you learn the
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. Everyone has different opinions and depending on your specific reasons for learning, perhaps none of these would be appropriate. You offered up way more suggestions in our Call for Contenders thread than we could possibly highlight here, with much more description and rationale for each. That said, here are the five most popular of your nominees, in no particular order.
The polls are closed and the votes are counted! To see which of these five programming languages you thought is the best to start with if you’re a beginner, head over to our hive five followup post to check out the winner and discuss the results!
Oracle’s Java is one of the web’s longest standing, persistent, and influential programming languages. You’ll find Java at the core of applications on and off the web, on 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 to learn 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 difficult to grasp, and quite difficult to program effectively and efficiently.
Java isn’t a perfect programming language though—many schools and classes start with C or C++ because Java gets 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 think like a programmer—to think logically and analytically, and really grasp how a computer will process information in order to be successful. It’s a fundamental set of core concepts that will help you as you move to other languages and technologies. For more reasons why it’s a good choice, take a look back at its nomination thread.
Ruby is a dynamic, open-source, object-oriented programming language developed by computer scientist Yukihiro Matsumoto back in the 90s, which makes it one of the youngest languages in broad use, much less in this roundup. It was designed to have syntax that was easy to read and to write by mere humans, without necessarily needing to learn a massive base of commands and specialized “vocabulary” in order to get started. While the language itself is object-oriented, it also supports procedural, functional, and imperative programming, one of the factors that makes it remarkably flexible.
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 can get you up and familiar with 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, easy to read when you have to, and for having a large, active, passionate developer community that’s committed to the success of the language. For more, check out its nomination threads here and here.
When people discuss first programming languages and which languages are easier for people to pick up quickly, Python inevitably comes up. It was developed in the 80s by Guido van Rossum, who then handed the language over to the non-profit Python Software Foundation, which serves as the language’s administrator, and the language is open source and free to use, even for commercial applications. Python is usually used and 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, among others. Thanks to its flexibility, Python is one of the most widely used high-level programming languages today.
Python doesn’t exactly start you at the basics, but it does teach some useful things like indentation, modularity, and the importance of naming conventions that will help you as you learn and work with other languages. In the nominations thread, I referenced this reddit thread as a great place to read pros and cons for the language as a first language. Those of you who nominated Python also highlighted the fact that Python’s developer community is more than happy with the language being used as a teaching language, so they have a ton of learning tools and documentation available to help first-time coders get their arms around it. The official tutorials are easy to follow, useful, and practical. For more pros and cons, check out the nomination thread here.
While strictly your nominations were for the C programming language and less C++, we decided to go ahead and toss C++ next to it anyway since it’s the natural step up from C. Without getting too much into the rich and detailed history of C, and then of C++ (which started off as a set of improvements and updates to bring C into modern applications), let’s just say that both languages have been around since the 1970s and early 80s, respectively (you can read more at the Wikipedia links above). C, for its part, is an extremely widely-used, general purpose, imperative programming language that’s heavily influenced almost every language that’s followed it. C++ on the other hand took things a step further, added object-oriented features like classes to the language, along with virtual functions and templates. C++ is another of the world’s most popular programming languages, and 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 both some 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 give you insight into the beginnings and roots of computer science and computer programming, and while many people point out that learning either is like learning to drive by first learning to assemble a car, both languages have their pros and cons. Those of you who praised them as first-time languages noted this, and said you’ll have a richer understanding of programming if you start with them, and one of you pointed to this great article about how the languages can separate good from great programmers pretty easily. Now, if you’re not aiming to code professionally, it may not be an issue to you, but it may still be worth considering. After all, a number of you nominated different flavors and variations of C and C++ that are applicable to specific applications, like ANSI C, which is used to program Arduino microprocessors, Robot C, specifically used in robotics. Many of you also said that starting with the hard stuff like C and C++ makes other stuff (Java, for example) not so hard. For more, check out the nominations threads here and here.
There you have it! Now it’s time to put these five to an all out vote to determine what you, the Lifehacker community, would most encourage a first-time learner to pick up:
We don’t nearly have enough space to offer honorable mentions to every language that just missed the cut or were also great contenders. We will however give a special nod to C# .NET, which reader wakers01 made a very convincing argument for in the nominations thread. C# and the .NET Framework were designed and developed by Microsoft, who also is more than happy to encourage you to learn them. The return on your time is solid too, since once you’re familiar with the language and its syntax, you have a skillset that’s more than portable if you need to move on, and applicable if you want to keep developing for the framework.
It’s worth noting that we covered this topic on our own before, which may offer some guidance to those of you who are looking for a more structured approach to the question as opposed to the community sentiment. Whatever you prefer, good luck with your coding endeavors!
Have something to say about one of the contenders? Want to make the case for your personal favorite, even if it wasn’t included in the list? Remember, the top five are based on your most popular nominations from the call for contenders thread from earlier in the week. Don’t just complain about the top five, let us know what your preferred alternative is—and make your case for it—in the discussions below.
m. Here are five of the best, based on your nominations.