Programming as a Non Programmer - Part 3
Jan 23, 2017
This is Part 3 in a series about how learning how to program could affect your career and some of the experiences I've had with programming in mine
- Intent of series and introduction
- What Programming as a Non Programmer means
- Why not to be a programmer
Why you shouldn't learn to program
A quick Google Search shows hundreds of sites that proclaim you should learn how to program. I've personally doubled my salary learning how to program and it was a strong factor in SpaceX deciding to hire me. However this does not mean you should learn to program and there are many cases in which I have recommended that people don't learn programming.
Some reasons that I read, or I hear, usually follows the lines of
- Programming is a hot skill
- Programmers make more money
- My boss will give me a raise if I learn how to program
- Computers are everywhere in everyday life, you should learn how to program them
- You'll get to work wherever you want, whenever you want
- Founder XYZ of startup ABC made a billion dollars programming
- "If you're an English Major ... or didn't go to college .. or were raised by Wolves"
These pitches are echoed all over the place, even from Forbes magazine. A lot of times it's accompanied by a pitch to then pay money for a bootcamp class, or book, or subscription to an ad sponsored email list. In these cases there's a clear reason why you're told to program, so someone else can earn money.
This is not to say there aren't altruistic people teaching you how to program. There are plenty of well-meaning people that also give the same advice, but again I strongly believe this advice does not universally apply.
Debunking the reasons
Programming is not a get rich quick scheme
If you're learning programming with the sole intent of making money easily, or getting a "work from anywhere" lifestyle, consider the economics of this. If programming was easy, if anyone learn it in 6 months, if you can work remotely, why would companies pay you a nice salary to do it? When I say you, I mean you, versus a person in India, or Mexico, who can work for one tenth of the cost. Or you versus the high schooler down the street that just graduated. Cal Newport writes an excellent blog series, one of the points being that to be valuable, you must provide unique value to someone else. What will make you a more valuable programmer versus anybody else?
The fact that computers are commonplace is not a compelling argument to program
It's true, computers are becoming and increasingly integral part of life, but just because they're around isn't itself a compelling reason to learn how to program. There are many objects that are common place, such as cars and houses but rarely do you see the advice "You live in a house, you should build your own", or "You use your car, you should learn how to make your own transmission".
Learning how to program doesn't teach you everything about computers work
Conversely programming itself is an abstraction of physical transistors or byte code, but usually when people talk about "learning programming" they're talking about an arbitrary middle layer. Of course learning to program is a step in learning how computers work, but it's like saying that if you learn how to change your oil you understand how your car works.
"The skills you learned before are not as valuable as Programming"
I commonly read about how "English Majors" should learn programming. This one bothers me the most because implies programming is a superior skillset to whatever a person already knows. I feel like approach is largely negative, and even if it were true, is not a good way to convince people to program. I feel that people should be interested in an activity for its merits, rather than being scared into it by being told that their previous choices were largely mistakes.
Past the flashy titles
If you look past click bait titles there's some underlying truths to how people generate value from their skills.
Writing a program is easy, mastering programming is hard
I write English. There are other people that also write English such as JK Rowling, Tom Clancy, and J.R.R. Tolkien. Yet those people were paid millions of dollars for their words. I doubt anyone will pay me for the words on this blog. The difference is those people have mastered the English language in their own unique way through years of hard work and practice.
Learning to do program isn't free, even if Youtube videos or books cost $0 dollars online you'll need to spend many hours of your life focusing on learning programming (or any other skill really).
Programming skills by themselves are rarely valued
Pay attention to the skillsets of the people that earned value from programming, usually people like Bill Gates or Mark Zuckerberg are examples. Those people were good at programming, but they were also good at other things, especially leadership and figuring out what people wanted. A good programmer that can't communicate or work with others usually does not have a great life. An unfortunate example of this is Phil Katz, who was an extraordinary programmer, but had trouble working with others and arguably did not have an ideal life in his later days. Strongly consider what skills you have that you can work on outside of programming constantly.
The Summary
There's a lot of good reasons to learn how to program, but the reasons above in my opinion are not the right ones. If you're deciding to program I would carefully evaluate if you're being swayed by arguments such as the one above. If so think hard about whether learning programming is right for you. In the next post I'll talk about reasons why learning programming can be beneficial.