What a great blog post from Chris Dixon, "Who should learn how to program?" :
Businesses all over the world need more programmers. Every company I know is hiring engineers (e.g. see this list of NY tech startups). Top programmers can make $100K+ right out of college. Yet there were only about 14,000 computer science (CS) majors last year. Meanwhile about 40,000 people got law degrees even though demand for lawyers has been shrinking. America is suffering from what economists call structural unemployment:? jobs are available but our labor force isn?t trained for those jobs.
Plentiful job opportunity is just one great reason for people to learn how to code (program).? Unfortunately, after the dot-com bust, the news media and many cynical people convinced many college students that software jobs were going overseas and never coming back.? It was a classic market-driven overreaction to a correction. In places where students have good data about market dynamics (e.g. Stanford) the number of computer science majors are up double-digit percentages each of the last 3-4 years.? Additionally, there's been a big increase in software-related fields, not typically classified as Computer Science (like Symbolic Systems, electrical engineering, and certain types of engineering and product design).
Chris also points out that programming is a great foundation for starting a tech company.? Hard to argue with that.? If your goal is to start a company, knowing how to code will give you a much better chance of achieving that dream than just about any other skill.? Taking BP3 as an example-? a services company that you might not think requires programming skills to start: I have a computer science background, and Lance knows how to write code, though it isn't part of his job description(!).? Knowing how to code and being able to do it were what allowed us to start BP3.? And those skills translate well to nearby fields like statistics, that require structured or algorithmic thinking.
Programming is good for your brain - to misquote (slightly) Steve Jobs, it is like a bicycle for the mind. You'll be amazed at how well you can remember not only where specific lines of code are in your work, but by how long you can retain this knowledge, often even years later being able to trivially skim through your code to the right spot to fix a defect.
An even better point Chris brings up is this one:
? Programming is an important part of being "culturally literate."
It is hard to underestimate this today.? I'm raising two children.? We're exposing them to an immersion school that teaches them to speak fluent Spanish (as well as their native English).? But the school (and through some help from outside of school) we're also teaching them Mandarin (and a little Cantonese).? If our children graduate from college fluent in English, Spanish, and Chinese - they'll be able to do business almost anywhere in the world and converse with people from all over the world.? They'll be much better off than their monolingual father, to face the challenges of the future.? But there are two more "languages" I will try my best to pass on to them:
- programming.? If our children learn how to write software, it will open up vast opportunities to them.? It isn't about how many software languages they learn - even one will be a big head start heading into college.
- product design.? I don't think it matters if it is physical design or software design, but I want to impart to the kids something of the language of design - the terminology, the flavor, the subtlety of how you talk about it.? I once compared "design language literacy" to the way chefs talk about food and cooking.? If you want to communicate with a chef (or a foodie) about food, you need to learn their language and vocabulary.? Similarly, for design, we need to learn the vocabulary and thought processes to communicate effectively - even if we don't intend to become a designer.
These programming and product design skills are "meta" languages in a sense.? They transcend national borders and historical language affiliation.
The comment section of Chris Dixon's blog puts the exclamation point on the value of this post to the general school of thought about coding.
So who should learn how to write code?? You should.? Your children should.