| − | The rise of the internet and the availability of free software allows one to erase (for example) windows from a pc, then place (for example) Linux there. Linux has a nice desktop similar to Windows. From there one can install and use a programming language. With a programming language one can program the computer to display almost anything. This is usually all free. With these free tools, once one gains some proficiency, one can create websites to do [[e-commerce]], share photos, share video, enable databases, schedule things, provide email and almost anything else one can think up. There is a tremendous amount of opportunity for creativity and profit from computer programming. Just to sample some of the languages one can learn: [[lisp]], [[haskell]], [[smalltalk]], [[perl]], [[python]], [[lua]], [[php]], [[ruby]], [[erlang]], [[c]], [[forth]], [[C++]], [[java]], and others. One can also download a free database such as postgresql, firebird, or mysql. Free software is fun and useful because one can play with and learn from the comfort of one's own home. Written tutorials abound on the web, and many corporations and government agencies are using free software so there are jobs and opportunities to start one own operation to solve problems as well.
| + | While there are many guidelines, there are no rules which are guaranteed to produce a correct and usable program, so programming is very much an art or skill rather than a science. Furthermore, a programmer must pay meticulous attention to detail: a moderately large program of say 150,000 instructions must be completely free of punctuation errors, grammatical errors, and spelling mistakes, and must also be largely free of logical errors (as a size comparison, a 400-page paperback book contains about 16,000 lines - 1/10th the size). Despite handling all the details, a programmer must also keep an eye on the wider picture so that all parts of a program contribute effectively to the desired end result. |