It seems almost magical how computers can do whatever we need them to, from browsing the web, watching movies and listening music to audio and video editing, CAD design and advanced math calculations. The most amazing part is that computers are really dumb pieces of hardware that just know how to execute simple instructions, one after the other, so all the magic is done by people, like you and me, people with a particular set of skills: they know how to command a computer and they are called programmers.
Everyone can become a programmer. All that’s needed is to master a programming language, that is a language that can be read and written by humans to give computers instructions of what we need them to do. There are many programming languages, some of them are low level (they provide little or no abstraction from the computer’s instruction set) and some are high-level (they do provide an abstraction so there’s no need to know all the details of the computer’s architecture). For beginners high-level languages are better suited. Here is a list of some popular high-level programming languages.
C is a very popular programming language, it’s been around since the 70’s and it will be among us for many years to come. It was created as a systems language, meaning that you can program an operating system with C, but is also used as an application language. Every single thing you have in mind can be programmed on C. C++ on the other hand is some kind of renewed C, it’s C with object-oriented capabilities. C and C++ are very powerful, they offer high-level programming with access to many low-level features. C and C++ are definitely programming languages you should know, specially because most “modern” languages descend from C or have borrowed C’s syntax so knowing C would make easier to learn another language (like java, C# or Google’s Go).
This is an object-oriented language with a syntax similar to C and C++. Java applications run on a Virtual Machine, making the applications cross-plataform, regardless of the computer architecture or operating system, if there’s a Java Virtual Machine available your software will run. This one is widely used on application software and web applications.
PHP is the one ruling the web, it’s a general-purpose scripting language but it’s mainly used for web development. There are many examples of CMS and Blog engines (Joomla!, WordPress, Frog to mention just a few) written on PHP. This is a scripting language, that means that it’s interpreted by another application on run time.
This is another general-purpose interpreted language (like java). Python is often used as a scripting language for web applications but can be used to develop any kind of software. It’s easy to learn and have some syntax rules that make it easy to read code written by others too.
Ruby is, like Python, another interpreted language, and also like Python it’s easy to learn and write code. The big draw of Ruby (and any other interpreted language) is the speed applications have at run time.
Now that you know that there are at least five different options it’s time for the big question: What’s the best programming language for beginners? For me, from the list above, the answer is simple, if you want to learn and start writing programs fast go with Python. As I said, it’s easy to learn and it’s syntax will let you write almost error-free code, and the best thing when learning is that if you write something wrong, at run time the interpreter will stop execution as soon as it finds an error, making code easier to debug.
I said that interpreted languages are slow, and they are, specially compared to compiled languages like C, but on most cases speed won’t be an issue, and if some given day you need to write a program that needs to run as fast as a C application there is a Python implementation by Google, Unladen Swallow, that speeds Python up to 6 times faster, so unless you are writing an operating system there’s no need to learn C, at least not as your first programming language.
So, if you are up to the challenge and want to learn Python I just have two recommend you to be patient and dedicated. Learning anything new can be frustrating but you there’s nothing you can’t do one step at a time. Also get a good book to guide you on your way, Dive Into Python is a wise choice and it’s freely available online.