Climbing Mt. Foo ⛰


What does it take to become a programmer? The obvious path is to take a 3-5 year computer science degree at a university. But what if you don't have the possibility to do this? What if you don't have the time, cannot afford it, don't have the grades or other requirements for entering such a course? What if you you live in an area where there's no such course at all?

Climbing Mt. Foo is my answer to these questions.

The aim of climbing Mt Foo is to create an easy introduction into the technologies I deem essential for becoming a coder while at the same time don't dumb it down. Mt. Foo uses the correct terminology where ever it can and ensure to provide pointers so that the student can explore and learn more on the subjects.

As well as climbing Mt Foo, you'll get guidance on how to become a good craftsman, showing that you not only know what you're doing but that you also care about your work. Look for the hammer symbol 🔨 for tips on good craftsmanship.

Mt Foo also teaches some of the culture surrounding coding, whenever you see the theatre masks, 🎭, there's a piece of coder culture to learn. Here's one:

Why it's called "foo" 🎭

Whenever coders need some example data, a name or just a string of text, there are some words that you'll see all over the place: Foo is the top one. And if there are three values, they're often foo, bar, baz.

If there's an example numeric value, it's often 42. This is a reference to the book The Hitchhiker's Guide to the Galaxy and "The answer to life, the universe and everything".

First climb: HTML & CSS

  1. First steps in HTML
  2. Further steps in HTML
  3. Making Your HTML Look Good(first steps into CSS)

Second climb: JavaScript

  1. JavaScript basics
  2. Speaking with your HTML page from JavaScript

Take a breather

Third climb: Python

  1. Python basics
  2. Python as a scripting language
  3. Python as a CGI scripting language
  4. Python as an object oriented language
  5. Python for creating graphical user interfaces (GUIs)

Take a breather

Fourth climb: Networking

  1. Network devices, IPs & gateways
  2. Finding IPs by their human names
  3. Routing

Sixth climb: HTTP

Take a breather

Seventh climb: Unix command line

  1. "I got the power": Get a Unix command line on your computer
  2. First steps in Unix & Linux Command line basics: ls, cp, rm, find & grep

Eighth climb: Version control - who changed which line when?

Licensed under CC BY Creative Commons License ~ ✉ torstein.k.johansen @ gmail ~ 🐘 ~ 🐦 @torsteinkrause