This article is Part One of a two part series! Click here for Part Two!
Once upon a time I used to believe some of these things…
It is important to bash these misconceptions fast and get started on learning how to code. Don’t let a few misleading ideas keep you from learning a new skill which is fast becoming the most important skill of the century. Don’t put off working on your minimum viable product for that world-changing idea that’s been in your head for months or even years. The idea came to you for a reason. Embrace this and keep reading.
1. “Programming is boring.”
People who think programming is boring just need one antidote to remove this misconception. Build a program. Spend a little bit of time to learn a tiny bit of code, build a working program, and run it. Boredom is the last thing on the mind of a person who just gave birth to a new creation. Programming literally takes syntax and turns it into a functioning world. How can that be boring? This is related to my next misconception- that programming is not a creative skill, but we’ll get to that in a second.
I am glad to have a foundation in architecture and the arts before approaching the world of programming. I see the whole world of computer science through my architect/artist eyes and it never ceases to amaze and surprise me. For me, the act of programming is like taking part in a huge social experiment of creation. In this sense, anyone who is not a part of it is missing out! As an artist, I see so many philosophical ramifications regarding humanity, the role of language for society, and the role of programming languages on a deeper level.
If I really think deeply about it, it hits me on a personal level- this misconception- because I was a victim of this limited thinking as well. I went to a very technical high school full of nerds who went on to Harvard and Stanford and took AP Computer Science courses and Visual Basic starting from their freshman year, and yet, seeing all this, I was not swayed. I did not see how typing some computer code into a text editor could possibly be fun. I wanted to draw, paint, build buildings. Perhaps it was “boring by association.” The kids who liked to program seemed boring so I associated one with the other. It was a huge mistake, and they were by no means even close to boring. Now that’s a misconception.
2. “Programming is a non-creative field.”
This is absolute nonsense. The world has changed more profoundly in the last fifteen years than it has ever changed in the past because of the computer and because of applications and software built by those very “non-creative” programmers. They had the vision to sculpt the world as we know it into something completely new, and they did it with everyone laughing in their faces. “What the heck is email?” We said.
The point is that it is sometimes difficult to see how programming is creative, especially when the programmers we know are solving maintenance problems of paradigms that have already been shifted. But who is going to create the next paradigm shift? In order to create a paradigm shift, a person (whether it is an artist or a scientist or even a programmer) must have the creative ability to see something where not many others can see it. This is called vision and it requires creativity and a connection to the unknown ether of muses out there.
Now that non-techies are getting into the action of programming, with our artistic, humanities focused backgrounds, how much more might we be able to wield the creative power of knowing how to program?
Every game, every application- is the brainchild of some programmer who was feeling very creative on the day he or she wrote the code. That’s the bigger scale of it. On the smaller end of the scale, even when you are solving the most mundane problem your brain is busting out creative solutions from the tools in your programming arsenal.
A programmer experiences full creative flow when he or she is coding- just like a painter or a writer might be in the zone, connected to the ether of inspiration. It’s just like being an artist but using a different medium- in this case syntax and framework.
The best artwork comes from artists who recognize that there are a set of rules in their trade- the tools and their medium. They challenge those tools and limits by having a dialogue with them. In this way, the fact that a coder is limited to programming languages and within a certain framework does not mean that they are not being creative. In my opinion, the best creative work comes from the artist who recognizes this. They can also create new tools: hence new programming languages are created all the time.
3. “Programming is too difficult.”
This one is a misconception but I also get it. I get that the learning curve might be steep for some languages and some specific concepts. However, when is learning something new NOT difficult? Have you ever tried to learn how to play an instrument as an adult? Or learn German at the age of 30? Learn how to draw for the first time?
Learning something new is supposed to be a bit difficult at first, and therefore someone learning programming for the first time might give up and blame it on programming as being difficult, instead of sticking with it and giving it a second chance. Just because programming is technical and requires some thinking, doesn’t make it more difficult than learning how to ride a bicycle for the first time.
Therefore I deduce that it is not programming that is difficult, but learning something new that is difficult.
Learning to program, like anything else, requires discipline and persistence and a hands-on approach.
Don’t forget, some programming languages have a steeper learning curve than others, and some give you more results faster than others, with more built-in tools. Maybe you’re just approaching it from the wrong angle, or maybe you need to hear multiple versions of the same lesson from different teachers in order to “get it.” It’s all possible. Give yourself a break.
Enjoy the learning process. So don’t sweat it if it’s been a difficult journey starting. Before you can master a skill, you need to have the beginner’s mindset for a very long time. And that doesn’t mean you can’t get results fast either. You can if you want them.
4. “Programming requires a full college education.”
This one is the one that personally pisses me off the most. Why? Because I almost fell for this one too! At a critical fork in the road for my start-up team, I had the choice of applying to an Ivy-League program in order to get real degree in computer science and programming. (Even though I already have a degree in architecture!)This is the kind of thinking that blocks you from achieving results!
Not only would I have accumulated a heap of grad-school debt, but it wouldn’t have done me or my start-up much good. I needed to program in order to build my start-up, but the way computer science is traditionally taught in schools would have put a huge hold on my personal project.
If you went through college in order to learn how to program, of course you would have received a strong foundational understanding of the field. However, the actual amount of time spent coding and trying it out for yourself is the real test. You don’t need to spread that out between a lot of lectures and other classes. (I don’t discredit the importance of a strong humanities education either, but I believe this can also be gotten in unconventional ways too… and that’s for a different blog.)
More important than my above argument, however, is that there are so many entrepreneurs out there who have made it big and created world-changing tech products- without the full college education. Besides the fact that it is highly overrated, and creates a chain of debt around your ankles after graduation, there are so many free and cheap tools out there for the everyday Jane or Joe to teach themselves how to program!
If you want to do something, create something, change the world, don’t wait 4, 5, 6 years to finish college to do it, just start. And if you already have a degree in something other than computers, don’t worry. It will only benefit you to have those foundations.
Teach yourself to code- you know how education works deep inside yourself. It doesn’t require a lecturer to sit in front of or a list of required reading.
You can put those things together yourself and with a little curiosity, discipline and persistence, you can create a whole “college level” curriculum of coding that is condensed into 1/8th of the time required to receive that degree. Oh, and don’t get me started on business school!
5. “Programming is a highly specialized skill.”
It may seem like the act of typing very specific code into highly technical text editors to solve very specific, mostly computer related problems is a specialization in terms of skill and field, but it is not. Let me explain…
This misconception is connected to a few other misconceptions described in Part Two about what programming is and what it is not, but I digress. Programming is not a highly specialized technical skill in my humble opinion. The more I am learning about it, and learning the foundations of computer science, as well as diving directly into learning how to code in specific languages, the more I see the same concepts and ideas popping up time and again.
These foundations are teaching me a way of thinking and viewing the world, and a way of problem solving that seems to spread beyond just the computer screen.
To me, programming is the opposite of learning a specialized skill. It teaches you how to think and how to solve a problem within a set of tools given to you which you need to use creatively.
This ability gives you the chance to approach the rest of the world with a different eye. My first “skill” that I’ve acquired and focused on was architecture. In a sense, learning architecture and learning programming is related in my mind.
In architecture, you need to learn a little bit of everything from physics of structures to human psychology to history to music and art, in order to become a well-rounded humanistic architect.
However, getting that accredited degree in architecture means that you have this highly technical skill of being able to put a building together.
In this way, learning to program results in the technical skill of being able to build computer programs, but the value gained from thinking in a certain way and understanding how languages work and interact with each other- now that just seems like a fundamental understanding of human nature to me.
And that, my friends, is the opposite of specialization: the ability to understand fundamental truths.
Click here for Part Two!
Latest posts by Jesicka Labud (see all)
- 10 Common Misconceptions About Programming- Part II - September 25, 2013
- Still Looking for Techie to Do Your Work For You? Not me. - September 13, 2013
- 10 Common Misconceptions About Programming- Part I - September 9, 2013
- When You Feel Like Giving Up Most: Please Don’t. - August 19, 2013