So you want to “learn to code”

Some of you know that I work for Crowd Favorite and report directly to Chris Lema. So you won’t be surprised that I’m going to start this post off with a story…

This morning I woke up and checked Facebook, Twitter, and the BBC as usual. One Facebook post caught my attention and it went something like:

Hi friends, I lost my job at [company] after a wonderful 2 years of being a [position]. Anyone got any tips or leads for work. Willing to travel. Thanks.

Now this post was from a friend of mine that I used to play poker with (I actually went 8 months playing full time) and while I didn’t currently know of any job openings, my response was:

Sorry to hear that buddy. While not an immediate solution, I always recommend people learn to code (html/css/js/php). There are always jobs or freelance opportunities building websites, though starting from scratch will take about 6 months to a year of intense learning. I’m always happy to mentor though.

Many people that I don’t know continued to post replies in support, or giving ideas on jobs, and I didn’t think much of it after that… Then, a few hours later, one of the people I didn’t know sent me a chat request with the opening of:

Hi Dan I am interested in getting into coding and was wondering if I could bother you for advice at times?

I responded with “Of course, here are the languages I know […] and I’m primarily a ‘WordPress Developer’ […] happy to help any way I can…” and we chatted back a forth a bit.  After learning that this person had some technical skills, though no real ‘coding’ experience, I got thinking about how many others were in the same position.

‘Learning to code’ can mean many, many different things, though the principles of how code works largely remain the same. Here, I am talking about Web Development, so let us get down to the specifics.

Web Development (i.e. making web sites, not necessarily “online applications) largely requires knowledge of HTML, CSS, Javascript, and PHP (or another Back-End language). What does this mean?

  1. HTML (Hyper Text Markup Language) provides the actual structure of what a website is.  It provide the groundwork for CSS to work with.
  2. CSS (Cascading Style Sheets) provides the visual language for what the HTML will actually looks like. Think about different link colors, the width of a site on your phone or computer, or the general layout of a site.  CSS determines how content looks.
  3. JavaScript (Not the same thing as Java) interacts with what the user (the person looking at a website) does and how the site reacts to that interaction. This may be in the form of an image popping up in a lightbox / modal, telling the user that certain fields are required on a form, or remembering what product you last looked at on a e-commerce site.
  4. PHP (our server-side language) – All websites live on a server somewhere – a server, in the simplest of explanations, is really just a computer that is running a different Operating System than the one you are using right now. When you visit a website, you make a request for certain information (the homepage / a specific article / etc…) and PHP (in this case) processes what you are looking for (on the remote server) and gives your browser back what you requested. PHP development is typically considered ‘back-end development’ because it’s processed on the remote server, where the code for the website actually lives, while HTML / CSS / JS are typically considered ‘front-end development’ as this code is processed in the user’s browser.

Ok, so now we kind of have an idea of what builds a website (though there can be much more). But you want to learn these things, where should you start?  Let’s look at a few free places that you can start learning:

  1. HTML
    1. http://www.w3schools.com/html/default.asp
    2. https://www.codecademy.com/learn/web
  2. CSS
    1. http://www.w3schools.com/css/default.asp
    2. https://www.codecademy.com/learn/web
  3. JavaScript
    1. http://www.w3schools.com/js/default.asp
    2. https://www.codecademy.com/learn/jquery (note this is jQuery – basically what most developers learn first)
  4. PHP
    1. http://www.w3schools.com/php/default.asp
    2. https://www.codecademy.com/learn/php

If you have any experience with web development, you may be wondering why I have included PHP in this article for beginners. This is because I am a WordPress developer.  If you are not familiar with WordPress, it is an open-source CMS – so let us define what this means.

  1. WordPress – The name of the platform
  2. Open-Source – Anyone can look at, modify, and distribute the code of the platform itself
  3. CMS – Content Management System

In modern web development it is not acceptable to simply ‘hard code’ content into multiple HTML files. Doing this does not give the end user (client) that ability to change, update, or add new content without knowing HTML / CSS / JS.  This is why I use WordPress and why PHP is included in this article.

But I have glossed over something very important. PHP only runs on a server, or a computer configured to deliver websites. This is a conversation for later – or, if you are comfortable with HTML / CSS / JS at this point feel free to take a look at the ‘Local Development’ section here.

Long story short, If you want to learn to code websites, the initial building blocks for this are HTML / CSS / JavaScript (often via jQuery).  All websites use these languages – the Back-End language (PHP in WordPress’ case) may change between platforms though understanding the Front-End languages will translate across multiple platforms.

Once you go through the above tutorials you will probably want to start playing with your new found knowledge on your own. For this you will need a good code editor (technically you can modify HTML / CSS / JS in a basic text editor but I don’t recommend it).  Sublime Text is a great (and free – though it will bug you for donations) editor that I use everyday as a professional developer. From this point you can start editing, saving, and creating HTML, CSS, AND JavaScript files on your own computer and looking at what they output in your own browser without needed to actually put your work up on the internet.

Being any type of developer is a life long learning process. Languages and technology are always changing though understanding how code talks is much more important than knowing the specifics of any particular language.

For another take on all this, go over and checkout Michelle Schulp’s ‘Should I Learn to Code’ article.

Have other resources you liked when learning to code? Drop them in the (moderated) comments!

3 thoughts on “So you want to “learn to code””

  1. Lots of good information here – I would also suggest Atom from GitHub as a text editor. It is Open Source and free with lots of “add on” packages to choose from. Works with more than just HTML, CSS, and JavaScript like Ruby on Rails and PHP too.
    https://atom.io

Leave a Reply

Your email address will not be published. Required fields are marked *