Learning to Program Computers on Your Own
link to firebug
Open source project site for Firebug.
If you use Firefox and install the Firebug component, you also get a decent development environment to watch it do its stuff from. All this is free and pretty convenient to setup.
...just a thought. Back to the larger topic.
What topics to look up for self directed study of computer programming
It used to be that in order to learn to program, you needed to be a member of some special group. If you were a student, your University might give you access to computers, if you took relevant courses. Or, you might have access to a computer through your employer. However, if you weren't a member of such a group, you were pretty much out of luck.
What I think a self-directed learner would have difficulty with is knowing what concepts to study.
If you know what your are looking for, you can probably google what you need. The trick is in
knowing what to look for. This is, perhaps, where I can help, maybe, not just beginners but also those who want to fill in some gaps in their knowledge. Below I have a rough outline of topics I think every programmer should know.
in memory: integers, floats, bits, pointers ...
persistent: databases, files ...
branches, loops, subroutines and functions
algorithms and data structures
sorting and searching, trees, graphs, hashes, stacks
big-O, NP complete/hard
objects, design patterns
working with others
projects: source code, build, test, roll out, monitor
networks: protocols, security