| IMHO it does not have to be a 9-12 year education. Just having a one year course of teaching assembly would suffice. Then the student could go on learning by himself/herself. In order to write good programs, you already need years of work and self study. It's much like being a writer. The most important role of education is to guide people and teach properly, so they won't get lost and have courage to pursue knowledge. The problem is that not all people are passionately interested in computing. Most people here on HN are, and would still be amazed if they did not have an access to computers and wrote hand-written assembly. But regular people, even the ones who have an interest in technology in general and most of my friends who are currently studying CS, do not feel the same way. The current university education aims to supply specialized workers, not free tinkerers. In 4 years you can train someone to write working programs. But training someone to be good at programming requires a different mindset. In order to become better at programming one needs to enjoy programming and devote a certain piece of his/her life to it. In short: programming is a lifelong pursuit. Like all skills you get better over time, if you stick to it. But guidance can really help in the process and opens many doors for the interested. That's why a path that covers the lowest level is important. There are not many resources and it can be quite frustrating for a beginner. I never had the chance to study CS in a formal setting, but I still remember everything from my computer classes in high school. I am grateful for every piece of theoretical knowledge I acquired at that time. I had a real hard time accepting that I could not study CS. It took me a while to realize that they do not teach the CS I want at the universities that my friends attended and I could still work with computers like I always did; by reading and tinkering. I think books like this are extremely important for the unfortunate ones amongst us, who are really passionate about computers, but cannot pursue CS full-time in formal settings. |