Five Best Programming Languages for First-Time Learners

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 them. Here are five of the best, based on your nominations. 
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. 
Java
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
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.
Python
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. 
C/C++
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.
JavaScript
JavaScript, not to be confused with Java, is a scripting language that was developed in the 90s 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. Don't be fooled though—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 the language itself is mostly object oriented) 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, is already right there in your 
browser for you to play with, and even though it's been around for a 
while, it's rapidly gaining popularity. 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—which may very well be what many people are learning to code for. 
Some of you even noted that you have a headstart on more complicated 
languages like C and Java by picking up JavaScript first (but don't be 
fooled—there are few similarities between JavaScript and Java.) Plus, if
 you're looking to code professionally, JavaScript is in extremely high 
demand these days. To read more, head over to the nominations thread 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: 
 What's The Best Programming Language for First-Time Learners? (Poll Closed) 
Total Votes: 18,665
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.
The
 Hive Five is based on reader nominations. As with most Hive Five posts,
 if your favorite was left out, it didn't get the nominations required 
in the call for contenders post to make the top five. We understand it's
 a bit of a popularity contest. Have a suggestion for the Hive Five? 
Send us an email at tips+hivefive@lifehacker.com!
Title photo by Michael Himbeault.
 
 
 
Comments
Post a Comment