Home | Tim Bray | About | Debian | Spod | Paper | Things | Contact

The spod toolkit


I am often asked by people who want to learn more about computers. They want to know what sort of books they should reading, what they should be learning and what is useful. Maybe for people who just want to learn something new and useful.

So here, I am trying to put together a collection of links to useful resources which people may want to investigate. Many of the resources linked to or refered to are those which I used when I learnt about these things.

These are probably things that I would look for if I was to employ somebody in a technical capacity.

Finally, this is not static or absolute. All suggestions and corrections will be gratefully received. At the moment this is fairly new and unrefined.



FTP = File Transfer Protocol. This is a system for transfering files between computers on the internet. Probably the most useful use of ftp is to transfer files onto a webserver so that they are available on the web.

The best guide I have found to this is here, a PDF file provided by Durham ITS.

Most operating system distributions tend to include some sort of text based command line ftp client, or you can go and download one of the many more graphical programs.

Nowadays, people might like to use scp (Secure CoPy) instead. If it installed on your system, you can do man scp for more details.


Telnet lets you log into another computer and use it. It just lets you have a command prompt. If you want to learn about unix, and don't have your own unix computer then being able to telnet to a computer to play with is almost as good.

Nowadays though, you wouldn't really use telnet. You would use SSH instead. The end result would be the same, but you connect and authenticate over a secure connection.


Setting up a IMAP client to read email from an IMAP server.


HTML is the language that web pages are written in. If you want to see how it works, then select "view source" in your web browser and you will see the code that tells your web browser how to display the page.

There are lots of tools that will write html for you, but you can do a much smoother job by doing it by hand. Even if you do use automated tools, then a basic understanding of how it all works is useful.

The best basic guide is The NCSA Beginners Guide to HTML.



Latex (pronouced lay-tech) is markup language for producing printed documents.

It looks after making sure that the layout is good. If you write technical reports, essays, dissertations or the like, then this is for you. Concentrate on the content, and let latex do the typesetting and making it look nice.


Perl is a scripting language. Good for processing text.


Bash (Bourne Again SHell) is a shell. A shell is the part of the computer that drives the command line. In unix, the shell is independant of the operating system. Of course, lots of people have their opinion about which shell is best - there are quite a few to choose from. Bash is one of the most commonly used ones (especially on linux systems). If you are using another type of unix, then bash might not be the default but you can probably change to start using it.

Why would you want to know more about the shell. If you use unix, then you probably do a lot of interaction with the shell. It is worth at least getting to the point where you understand what you can do. You can also write Shell Scripts to automate tasks. A lot of the questions people ask me about unix are actually about the shell rather than about the unix system.

I read an O'Reilly book called "Learning the bash shell". I suddenly realised that there is loads you can do in the shell.


css - cascading style sheets. It is a way of separating the style or presentation detail from the contents of a html document. Very useful if you want lots of web pages to have a consistant style.


PHP is a scripting language. It is a very simple way to make dynamically generated web pages.



Use of a proper programming language. Pascal or java or similar. C if you really must.


Installation, initial setup (networking, X, installing new packages) and simple administration.

Cat 5 networking/ethernet

Make a normal cable, a crossover cable. What is the difference. What are the rules for connecting networks. What is the difference between a switch and a hub.

IP addresses and netmasks, TCP/IP

IP addresses, subnet masks, CIDR notation. What is a private IP address. How does a NAT work. What is the difference between a NAT and a firewall. What is TCP, and UDP, what is the difference. DHCP What is a router. How does DNS work.

How to setup a mailserver so that it isn't an open relay. How to setup an ADSL router.

Home | Tim Bray | About | Debian | Spod | Paper | Things | Contact

To get in touch: contact details

page content last modified: 2004 Feb 15 23:48:42 GMT
overall page last modified: 2005 Dec 24 23:18:54 GMT Why are there 2 dates on each page ?