Friday, 1 July 2016

Educational Resources

Since I mentioned yesterday that programming is a good thing for young people to get into, I thought I might also post some links to resources for anyone who may actually want to follow my advice.

I know there's pre-programming games and stuff out there for little kids who aren't ready to write actual code yet, but I thought I'd skip over that and get right to the good stuff.

The obvious thing to do would be to direct people to Python Docs and suggest they start by learning Python—and indeed, that's not a bad option … I just don't know if it's the best option for people with zero starting knowledge. Instead, I'm going to buck convention and suggest they go over to W3Schools and start by learning regular old HTML. Now, I know HTML isn't a scripting language, but it is a nice, easy jumping-on point for people who aren't familiar with how executable code works. What's more, you don't need to install anything; you just write out a text file, and then open it with your web browser—how much simpler does it get? And of course, once you've got a grasp on HTML, you can move on to CSS, and then Javascript—which is a scripting language—and an increasingly popular one; and then SQL and PHP. All of the W3Schools' tutorials are straight-forward and easy to follow, with plenty of interactive examples. Also, considering how much of everything is done online these days, I think there's worse ideas than learning the languages that make the web work. It's not like you won't be able to learn some general-purpose scripting languages like Python, C, or Rust when you're finished.

As a bonus, I thought I'd also include some links for people who'd like to learn about how computer operating systems work in general.

The first link you'll need is to the VirtualBox Manual. This will show you how to set up a virtual-machine on your computer. If you don't know what a virtual-machine is—well, it's explained in the manual—but basically, it's like running a whole other computer within a window on your regular computer. You boot it up and install whatever operating system and programs you want on it, just like you would with a real computer. So, for instance, you could have a full Linux computer living inside a single window on your Microsoft Windows 7 desktop PC. However, unlike with a real computer, you can periodically "save" and backup your virtual-machine and then simply "undo" things if you happen to make a mess. Is that neat, or what?

The next question is, what operating system should you install on your virtual-machine? A lot of people would probably argue for their favourite flavour of Linux, but I disagree. While Linux-based operating systems are very popular and easy to use these days, I don't believe they're the best thing available for learning—partially because of how they're put together and partially because what documentation there is available tends to be rather shithouse. Instead, I would direct people to the FreeBSD Handbook. FreeBSD is a fantastically put together OS, with clear and well-written manual pages, and the handbook is probably the best and most thorough introduction to an operating system that I've ever come across. You could do a lot worse than starting here.

All of the links I've given in this post are to free/open-source resources. I hope they prove useful to anyone who's curious about using their computer for more than just Facebook, Youtube, and Minecraft. I know there must be at least one or two of you out there.

3 comments :

squib said...

Ta - have sent the w3schools link to LittleSquib :)

Alex said...
This comment has been removed by the author.
Alex said...

Keep us posted on how she does with it Squib.

Ya never know; she could be the next Zuckerberg … except, you know, hopefully not as much of a deluded, egotistical, arsehole.

I had to have a second go at this comment. You leave one word out and it completely flips the meaning of a sentence.