HTML and CSS
I know, HTML and CSS aren’t really programming languages. HTML is a markup language and CSS is a style sheet language. I’m including them in this list and putting them at the top because they’re that important. If I had to pick only two languages to use and I needed to build some really awesome websites, they would be HTML and CSS, hands down. Even if you’re more interested in back end development, a solid understanding of how the front end works will go a long way.
HTML basically is the web. Ok, ok, I realize the colossus computer network known as the internet does a lot more than just serve up HTML. But that’s a big part of what it does. When you open a web browser and go to a website, what you’re seeing is HTML. The HTTP at the beginning of a web address stands for Hypertext Transfer Protocol. HTML is the de facto standard Hypertext Markup Language.
Mastering HTML and CSS isn’t very difficult. Try building a simple webpage from scratch using HTML and CSS. Delete it. Repeat.
Python is an excellent backend language to start out with. The learning curve isn’t horrible, the syntax is fairly elegent and easy to understand, and it’s usable for more than just web development. Web frameworks like Django make Python an excellent choice for rapid web development. I’m not going to say that Python is the best programming language for the web. Because it’s not. But it’s versatile, has a clean syntax, and can take you pretty far.
Then there’s the frameworks. Lots of frameworks. JQuery, AngularJS, Backbone.js, and Ember.js, to name just a few.
The syntax feels kind of similar to C. Functional and object oriented styles are supported.
At some point it is likely going to be necessary, or at least very useful, to learn a database of some kind. Of course, being at least familiar with several is probably going to be best.
Databases generally fall into one of two categories:
1. Relational database management systems (RDBMS): PostgreSQL, MySQL, MariaDB, SQLite, Oracle, DB/2, and MS SQL Server.
2. Non-relational databases (NoSQL): MongoDB, Cassandra, Redis, HBase, CouchDB, Riak, Neo4j, OrientDB, Couchbase, MemcacheDB, Aerospike, Amazon DynamoDB, Amazon SimpleDB.
I’ll be honest. Database isn’t my strong suit. I have experience with MySQL and PostgreSQL. If I were to start a new project right now, I would probably use PostgreSQL. Right now I’m exploring NoSQL databases and will report back with my results.
Ruby: Ruby is an elegent, fun to write, easy to understand language. Coupled with the popular Ruby on Rails framework, Ruby is an excellent choice for backend web development.
PHP: Unlike Python, Ruby, and Perl, PHP is purpose built for playing the role of backend language on the web. I’m not saying that languages like Python can’t do a really good job of this. But this is what PHP was designed for. Something to consider.
Still more: Go, C++, CoffeeScript, Clojure, Racket, Bash, and Perl. Which language works best is going to depend on what you’re trying to do, or what your employer requires. The more languages you know, and the more languages you have expertise in, the better prepared you will be.