Learning to Program

Programming is a 21st century skill that everyone should have.

Why learn to program?

Programming is a skill that everyone should learn. As Dave McFarland from Treehouse says...

[...] even if you don’t want to become a programmer for a living, it’s still worth your time to learn how to program. I mean this in all seriousness: if computers are at all a part of your life, then learning to program is going to improve your life.

(From "The Real Reason Why Everyone Should Learn to Code", Dave McFarland, 2014)

Different kinds of programming

Programming is a series of commands given to a computer that tells it what to do. There are literally hundreds of different languages that you can program in.

Some of the most popular languages are:

  • Java - One of the largest languages in the world!
  • HTML/CSS - Used for websites like this one!
  • Objective-C and Swift - Used for Mac and iOS apps
  • Bash - Used for executing Shell commands in the Bash command line: I use this in my Raspberry Pi Time Lapse project
  • C/C++ - Another widely spread programming language -- used for projects from data management to games!

Where do I start?

Don't get me wrong, programming can seem daunting when looking from the outside. You essentially do have to learn another language. But once you get the fundamentals, you can quickly use the fundamentals of the language to make something really cool.

I reccomend if its your very first time programming, check out Scratch. Here are some lesson plans (Password for accessing materials is: AcMod3to10) you can use to get started.

Scratch is a visual programming language. You snap blocks together to create simple programs. It's a great first step into Programming, as you can actually see, with actual blocks what the code is doing, and how it works. Here are some of my projects from when I was much younger.

Where to next?

All of these interctive tutorials are 100% FREE and are provided by Codecademy. I REALLY like these tutorials, as you actually are learning interactively!

Once you have mastered the basics, you can dive into some actual text programming. Click the images below of what you want to create.

Web Development

Language Skills

Other Handy Skills

Projects To Try (These take about 30 minutes!!)

How did I make this website?

I could NOT have done this whole thing by myself. Um... Not. A. Chance. I am not THAT talented. So, I found a HTML Template. This guy, AJ, or @n33co on Twitter has some pretty freaking amazing HTML templates. And they're Creative Commons Atribution 3.0 licenced! This means that you can:

  • Use them for personal stuff
  • Use them for commercial stuff
  • Change them however you like
... all for free, yo. In exchange, just give HTML5 UP credit for the design and tell your friends about it. (~html5up.net/license)

So, I used one of his templates, edited a few things, (LOTS and LOTS of copying and pasting...) and a couple days later... this formed! Yay!

What do you need to make a website?

In short... Not much.

At bare minimum:

  • A computer
  • A text editor
  • A place to put your code
Yeah. Thats IT. NO fancy servers. NO super awesome programming skills. Just something to type on, and somewhere to put it.

SUPER handy to have, but not neccesary:

  • A domain: This is like YourNameHere.com or something like that. More info about domain names HERE. (Also, these two are 100% FREE!!)
    • A fancy text editor, like Notepad++, or Netbeans (Use the HTML version for websites)
    • Some CSS. Most likely, without CSS, your website will look something like this. Kinda plain. It can work well for some things, however.

    So, how do I get my website 'live'?

    This part gets a little bit confusing, so I will send you to some smart people over at Thinkful with their great guide to help you out.