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