What is the goal of education? Creating a better-informed citizen? Certainly. But giving students job skills that will allow them to achieve a high standard of living is right up there. Computer literacy in the broadest sense is perhaps the best opportunity available for our high school students to have a career that's both satisfying and lucrative. It's not just a job - it's an adventure.
There are tons of good job opportunities for today's students if they develop some degree of computer literacy - programming, as well as hundreds of other related skills. On March 24th of 2017 the accounting firm Price Waterhouse Coopers published a report that predicted that within 15 years, 38% of American jobs will be replaced by robotics and automation: Web apps, database software, intelligent devices and robots. And software is at the heart of every one of these technologies. Software is the soul of robotics. Software is the industrial revolution of today.
So what do we teach them? Certainly, all students should study at least one computer language, and preferably several. There are 337 programming languages in use today, and during a programmer's career he or she should expect to have to learn several of them. I was the leading author in the world on one of Microsoft's languages, called Visual FoxPro. When they killed it (because it competed with another of their products, SQL Server, which was much more expensive), I wrote a book about rewriting FoxPro applications into Visual Basic, which I had to learn in order to write the book. The first job that a reader of my book hired me to do quadrupled my annual income.
Rewriting legacy apps in new languages is a tiny niche market within IT. There are hundreds of ancillary careers spawned by information technology, and by the power as well as the immense damage that it informs.
In addition to programming, IT offers millions, perhaps tens of millions of jobs that are fulfilling and well-paid. UX (user experience) specialists are earning a good living designing web pages and other user interfaces. Database experts skilled in SQL (Structured Query Language), the lingua franca of data storage and retrieval, are among the highest paid IT specialists, and they're needed everywhere (Sierra View Medical Center has one database expert for each department, and two in Nursing.) We need hundreds of thousands of cyber-security experts to protect us from our enemies. And knowing how to program is job-enhancing in just about any field. Just as the girl who did well in French class ends up being the one sent to visit the new client in Paris, the IT guy or girl in any field can solve technical issues that arise, and probably has a shorter path to the corner office. The engineer who can also program is the essential resource.
In our homes and our cars, programmed devices are ubiquitous. Just about every little device contains a microprocessor. Someone builds something, or takes something off the shelf, adds a display and/or an input device (often a touch screen), and then writes software to make the little device do what it does while interacting with the user. These embedded systems turn a brain-dead piece of hardware into an intelligent helper, adding value in the process. All it takes is knowledge, skill and ambition.
Computers are so dumb they can't even chill beer. It takes a programmer to bring them to life. Students at Granite Hills will experience the thrill of writing their first 'Hello, World!' program, making their robot turn around for the first time, reformatting a graphics image into a digital work of art, or doing any of the other amazing things that computers so effortlessly do, and it will light a fire under them.
It's very important that their first steps are infused with enthusiasm and end in success. If they try and fail, they probably can't be convinced to continue. But if they're led by the hand down a groomed path of small and immediate successes, they'll internalize it and make it their own. If it's your idea, they'll resist. If it's their idea, you can't stop them. Once they find out that it's the most fun they can have with their clothes on, they'll be hooked.
The curriculum should absolutely include programming, probably in C# using the free Community Edition of Microsoft Visual Studio. They should start by building simple Windows Forms applications (like Quicken, the canonical executable), but transition to web programming as soon as coding skills are mastered. But there are many related careers: UX, database, graphics, robotics, statistical analysis and reporting, each of which has its own charm. And did I mention that these jobs pay well? Really, really well? Oddly enough, the thrill of the work is what developers talk most about; the money is secondary.
Introductory courses should be taught by your most inspired and inspiring teachers. They need to communicate - through appropriate coding examples, words, and even body language - the thrill of software development. If students are put off by their introduction to IT, they'll develop negative affect that actually makes it harder to learn the subject. If, however, they learn to love it from the start, learning will be like breathing.
It is very important that learning how to learn be made an integral part of the curriculum. In their senior year, every IT student should be given a special project that forces them to learn a new language, and then a new technology or framework, with names like jQuery, TypeScript, OOP, SQL, Entity-Framework. There are hundreds, and more appear every day. Learning a new technology every year, or even several times a year, is part and parcel of the career. It should inspire excitement, not fear. Make it a month-long senior-year special project for each IT student - a sort of senior thesis.
If you can structure a curriculum that inculcates the basic skills of coding, database access, web development, code optimization, UX design, mastery of third-party tools, and any others that become important, you'll produce a generation of young people who can love their work and make a good living at it. This is what can make America great again.
Universal literacy has been the goal of public education for centuries. The time has come to set the same goal for computer literacy. Nothing in our civilization (except perhaps voter education) is more important.