What coding language should I learn after finishing HTML and CSS?
I want to be a full stack web developer. I’ve learned both HTML and CSS. Now what should I learn?
HTML is a markup language, and CSS hooks into this and is a styling language. Neither is an actual programming language, but rather they are document structures/styling formats.
Interactivity
If you want to create interactive websites, then you need to learn Javascript. Javascript is a general scripting language that has been embedded as the ONLY scripting choice for manipulating web pages (DOM) on all browsers. This is where is gained its “fame”, but you can find Javascript in other locals, such as Apple automation scripting (Yosemite) XSI (3D package) and Node.js (more on this later).
Javascript within a browser allows you to modify elements, create them, delete them and style them (using classes + css). You can do pretty much anything, though there are limits, usually for security reasons. You are lucky, as there are many good books to learn from, downloadable onto Kindle etc in minutes, plus Stack Overflow etc will answer further questions.
Server Side
If you want to build the full site, then you may want to get into server side scripting. This makes things more complex of course, but it gives you “the full picture” i.e. being able to ask for data from the client via AJAX, and then see that call on the server and write the code that gets it from the database and serves it back to the client. This is called a full stack developer.
I mentioned databases? Well most websites have a database behind them, on the server, so if you do want to code on the backend as well, then you need to also get familiar with SQL so you can make queries to a database and get back what you want.
For languages here, you are spoilt. There is Java, PHP, Ruby and more. A more recent development is Node.js, which is a Javascript server technology, which, if you want my advice, I would learn if I were starting from scratch. But learn front end Javascript first, then Node.js later. Its all too much to start off with.
My own journey through all of this started with an off the shelf e-store, that I needed for my online business. It was missing features, and it was proprietary, so I could change nothing. So I had to write some code in PHP on the server to export all its data to my local database. I then dumped it, installed my own server of Apache+PHP and imported that data into an open source e-store that I COULD modify and expand as I needed. I did this with some HTML and inline styles (this was 2006), and a lot of PHP.
A few years later, I worked on a project called Mapedia with a friend. A learning project, and here I first got deep into Javascript, DOM, AJAX and so on. Its a “single page app” meaning the site has one page, and all changes are via AJAX calls to the server and then DOM manipulation and addition via templates. It was a steep learning curve but ultimately it resulted in a finished site, Mapedia and a job working for a Silicon Valley leading startup.
So, choose your path and go for it. It will take time, but you have all the resources out there to make it. Eventually 😉