Learn Computer Programming

flower Programming is fun and challenging, a bit like solving puzzles or crosswords, but you can get paid for doing it.

I can help you learn programming over the Internet, or in person if you live in Melbourne.  You can write interesting and useful programs from the very beginning, using graphics, sound and networking in addition to the usual algorithms, text processing and math.

If you are interested, please send me an email sam@nipl.net, or see sam.nipl.net/contact
You can also look at my web page sam.nipl.net and my resume.
learn I tailor my teaching to your interests and needs.  If you are into music we can write an effects processor, or a program to suggest songs you will like.  If you like games, we can write Pacman Vs.  Lemmings, Attack of the Space Rabbit, or whatever else you can dream up.  Demos and screensavers are always fun.  If you are studying math, stats or physics, we can do simulations, homework helpers, and data analysis.  If you are interested in communication and graphics, we can write an Internet whiteboard program, like a graphical wiki.  If you are interested in languages, we can write a program to improve your vocabulary, or a translating chat program.  I have lots of ideas, and I'm sure you do too.
stars-sm The programs we write can include assignments, projects, team work, paid jobs, and open-source / free software.  I can help you to find suitable paid work, and I can assist you to do it.  I like to use Linux and C, but we can use other languages and systems too.  I can also tutor you if you are studying programming, math or physics at college.  Programming is a great reason to learn math and physics, because you can use them to do interesting things with graphics, sound, games and simulations.  Your non-mathsy friends might be impressed and say "wow!"; not the response you'd get with a bunch of equations.

I normally charge $30 / hour for intensive tutoring or programming work, down to $5 / hour to help you while you work.

Here is a list of some of the free programming projects I have developed or am working on:

  • brace - a programming language based on C, that looks like python.  It has many nice features, and nice libs with graphics, sound, etc
  • cz - Cz (C-easy) is the next version of brace.  The translator is now entirely written in Cz, and it is very fast.
  • tachyon - a very fast webserver written in brace.  It can handle more than 20000 simultaneous connections with ease.
  • geon - a fast 3d globe, it can animate flying around the world.  I want to add support for free street-level data which is now available.
  • a2b - runs tools in series to convert files, e.g.:  a2b pic.gif pic.jpeg  or  a2b vid.wmv audio.mp3  or  a2b page.html doc.pdf
  • rocks - a simple 2d game like asteroids, but with gravity / repulsion, bouncing asteroids and rotational inertia.  Not easy to play!
  • ved - a voice editor designed for blind people or others to record a diary or an audio book
  • graph - an editor for drawing nodes-and-arcs graphs, intended to be used for a visual programming language
  • synth - a music synthesiser / keyboard that uses true harmonic scales and supports changing key
  • study - finds words with similar meanings by reading text.  E.g. input the bible and type gold, it lists: silver, iron, brass, ...
  • eg - lots of brace examples including graphics and animated demos
  • talaga - a dictionary and vocabulary training program to help you learn another language (e.g. Tagalog, Chinese or Japanese)
  • sound2music - analyses digital audio data and produces sheet music / music files
  • robin - a search engine powered by a network of real people using instant messaging
  • hunkfs - a caching network filesystem that will never download something again if the data is already on your disk

My programs are released as public-domain source code.  They are written on Debian GNU/Linux, and most won't work directly on MS Windows.

You can see all of my code online.

Sam Watkins