The Most Important web Development Programming Languages

HTML, CSS, JavaScript, and Python. Master these languages and you’re golden. Well, not exactly. It’s actually (suprise) more complicated than that. However, from my experience, HTML, CSS, JavaScript, and Python are great languages to know. Call it a starting point.

For anyone who is really serious about web development, it’s probably in their best interest to learn a number of languages and associated frameworks. Django is a popular framework for Python that makes it significantly easier to produce robust, feature rich websites. Then there’s JavaScript and Node.js, Ruby and Ruby on Rails, and let’s not forget PHP. It also wouldn’t hurt to know a database management system. Then there’s Java, C++, and Go. Oh, and there’s Perl and Bash, and many, many more.

I chose HTML and CSS because, well, they are absolutely necessary for web development. JavaScript might as well be considered essential, although it technically is possible to make good websites without it if you’re willing to sacrifice a lot of user interaction. Then there’s Python. I chose Python because I think it’s a good first programming language to learn, it’s relatively easy to understand, and it’s versatile.

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.

Think of HTML as the building blocks and the other web languages like CSS and Javascript as the tools that make better and more efficient use of the building blocks. Everything is pretty much focused around HTML, so having a solid understanding of HTML is pretty much essential. Everything else is more or less playing the role of support.

Mastering HTML and CSS isn’t very difficult. Try building a simple webpage from scratch using HTML and CSS. Delete it. Repeat.

Python

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.

JavaScript

When I think JavaScript I usually think front end. If I had to sum up JavaScript in one word, it would be interactivity. JavaScript is what makes AJAX possible. Rich media that used to be the domain of flash can now be implemented with better browser support and no need for plugins. Even mobile browsers support JavaScript. JavaScript can be used to build everything from drop down menus, to content that loads as you scroll, to full fledged web apps, to video games. JavaScript can do a lot.

Using Node.js, JavaScript can also be used for back end programming. I still think it’s a good idea to learn other languages for the back end, like Python, but with Node.js it’s possible to use one language for front end user interaction and back end logic. Pretty neat.

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.

JavaScript has nothing to do with Java.

Database

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.

Other Languages

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.

Java: Java is popular, it’s a good language, and it can be used for a lot more than web development. There are a lot of employers that want to see Java experince. Java is not Javascript.

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.