In an interview, Tyler Cowen says,
If becoming a programmer is appealing to you, great. But seeking employment based on any one “hard skill” is an outdated way of thinking. The rapid evolution of technology forces us to constantly reconsider which hard skills are in demand. (And we should). Staying on top of the hard skills needed is a necessity in the short term, but one of the best ways to position yourself for success in the long term is to focus on the soft skills needed no matter what technology you are working with.
I think it is fair to say that one should not aspire to be on just one side of the suits/geeks divide. On the geek side, you end up as Dilbert, working for an idiot boss. On the suit side, you are the idiot boss. For years, I have been telling my high school students that the combination of technical skills and communication skills is important.
But I think that the most important career advice is to spend at least some time in a profit-seeking enterprise. The bias in our educational system against working business is intense, and I believe that this bias does considerable social harm. If you want to know where collective hostility toward business can lead you, look at healthcare.gov.
“Programming” is actually a way of thinking rather than a “hard skill”. A particular programming *language* is a hard skill, but the general ability to communicate with computers will continue to become more and more important as we use computers/robots to do more and more things.
If you want to know where collective hostility toward business can lead you, look at healthcare.gov.
Better yet look at Venezuela. Healthcare.gov can be fixed IMO the main problem with it so far is that it cost too much and took to long by it is still and a small amount of money to the fed gov. and in even more time it should be fixed.
I used to be an engineer, and I now work in the legal services field. You are absolutely, 100%, dead on with your advice to learn both technical and communication skills.
As manufacturing jobs dried up 30 years ago, the mantra was “everyone needs to go to college.” Now that professional employment growth has slowed outside the tech field, is the new mantra going to be “everyone should learn how to code?”
Learning to code is about learning systematic problem solving at a higher level, for reasons not that different than forcing students to learn calculus (few of which will ever use in real life). The economy this century will greatly reward those with command over these skills, and it is not unthinkable that in the not-so-far future 50% of GDP will derive from teaching machines how to perform tasks.
Of course “communication” is important, but beware a false dichotomy: head over to San Francisco/Silicon Valley and interact with the best programmers there. They’re some of the most articulate, well-spoken, socially intelligent people I’ve met in *any* field. The tired caricature of programmers as communication-deficient was over long ago.
It’s not that different than economists who support economics education to learn how to think a certain way, not think about certain things (and I am a strong believer in economics education for this reason). We could do with a lot more humble, rational thinking.
I’m a software engineer (e.g. developer, coder, whatever). I don’t think everyone should learn how to code to a level where everyone is a software engineer (even if that was possible), but I think students today should know scripting (short logical blocks of commands). To use an analogy, they should be able to write paragraphs but not necessarily entire essays. Scripting is useful whether it’s used to add an alarm to one’s calendar or to create simple procedures for robots.
Actual coding as a percentage of hours worked has probably declined significantly for software engineers in the last few decades. Much more time is now spent on configuration, integration, and testing.
I think the term “programming” should be replaced with “technical fluency.”
Like Gary said, I don’t think it’ll be necessary for everyone to be able to be an expert in python, mysql, etc, but it’ll be more and more important to have some ability to intelligently communicate with a machine, or work with others who do.
It’ll be a lot like writing, in that very few jobs specifically require it in the job description, but good writing skills will almost certainly help you stand out in any profession you enter.