Computer science: Most of us don't even know what it is. It seems distant and even a bit confronting. What does it mean? How is it used? Indeed, most students -- and even more adults -- don't know anything about computer science, and there are so many misconceptions about it that too many people are afraid to even try it.
Moreover, since computer science is a relatively recent field -- at least compared to chemistry, English or history -- educators high in the schooling hierarchy are not willing to substitute it for a subject that has existed for some time and works. But it is precisely because we live in this modern world that this recent subject is so incredibly important; everything around us was in some sense affected by code, and yet most of us cannot even write a simple program that calculates how much gas we use in a year.
For more about the importance of programming, check out this video by Code.org called "What Most Schools Don't Teach."
Now, there is no doubt that some colleges do require all students to take one CS class. The problem is that not enough do. This scenario is especially nonsensical considering that CS teaches problem solving like no other -- even theoretical math and physics courses. Why? Computer science is all about finding the easiest way to do something -- the method that is most efficient and requires the least lines of code.
So, let's say I want to create a program for my theoretical t-shirt business that keeps track of profits. It seems pretty easy right? Find revenue and then subtract costs... but something you may not have realized is how many unique routes a programmer may take to create a program that accomplishes this given task. Unlike a paper-and-pencil logbook, programs are dynamic since there are always many different ways of accomplishing the same thing.
Nevertheless, some methods are more practical than others. This is the programmer's job. He must figure out the "easiest" method to implement a particular assignment. And thus, programming is "difficult," mainly because it entails thinking about how to do a particular task, and ensuring that it is the most efficient and economical approach. Once the programmer has this "algorithm" -- just a fancy term for a series of instructions the computer follows to do something, kind of like a recipe -- in mind, actually typing the code into the computer is a fairly simple task.
Unlike many of those math and physics courses, computer science is an extremely versatile tool. Indeed, you can use programming to enhance your lifestyle in almost any case. Want to create a business? You need a website. Want to do college research? Many labs around the world use MATLAB to assist in creating accurate data-tables and graphs. Want to create Halo, Call of Duty or Mario? Programming is a must.
Furthermore, in terms of numbers, CS pays off; computer science majors make on average $60,000 right out of college. That's second only to engineering (and even that by only $3,000) and is significantly higher than business (at $54,000), math and sciences (at $42,000), and humanities & social sciences (at $37,000). Read the entire study done by the National Association of Colleges and Employers (NACE) at Forbes.
But not enough students even know what computer science is because their schools don't teach it. And thus, schools are discarding tremendous opportunities for their students. So what's the solution? The basic response after weighing the enormous number of positives over the small number of negatives of CS is to give the green light: go ahead add some CS classes. But here's the problem: finding a qualified instructor willing to work in the school is a different challenge.
Still, there is a simple solution to this problem too. Indeed, precisely because of computer science and the Internet revolution, there is a plethora of online resources that teach computer programming -- many of which are free. These websites (e.g., CodeAcademy.com, Code.org, and Treehouse) generally teach you the concepts, test you, and simultaneously help you apply the concepts on practical projects.
These classes are revolutionary since they only require a computer, most of them are free, and a teacher with programming experience is not necessary. In fact, only an instructor that simply ensures that students are actually physically doing the work is necessary; the website takes care of the rest. Once the student starts working, the addictive nature of programming (seriously) usually entices him. Indeed, there is almost no reason not to teach students how to program with so little negatives to bear. Even a study hall supervisor without any CS background can easily convert his study hall into an Intro to Computer Programming though these programming websites
More and more, the ability to independently run a business (or anything really: a club, a organization, a non-profit, or a team) is significantly more important than having a formal education in terms of earning and then succeeding in a job. And in any of these cases, having some kind programming background -- especially in creating websites -- is almost imperative.