It’s almost been 5 months now since I made the jump to my “plan Z” and decided to teach myself web design and development, and I am finally starting to feel like I made a really really good decision. I knew from the start that learning how to code was going to require a lot of time before I might be able to start making anything awesome, and I would say I was generally right. Learning to code has not been “hard”, however it has been extremely time consuming. Like when learning any literary language, learning programming languages first requires a good understanding of language theory, and secondly a good understanding of the languages vocabulary. All those foreign words you see in computer code only look foreign because you haven’t learned them yet, and I am really starting to realize that.
The truth is, only you can hold yourself in the "stupid" category.
One of the biggest obstacles I have been able to overcome in my recent spat of learning is the human tendency to require instant gratification. Especially with learning to code, it could take weeks to accomplish some things that may seem pretty small. On multiple occasions I've spent the better part of 48+ hours debugging code that turn out to be tediously small syntax errors that cause the whole thing to quark. Just like a good construction worker has a full tool belt and the skills to wield them, a good programmer should have an equally well equipped mental tool belt. Every small technique learned is like adding a new tool to your toolbelt.
Just like a good construction worker has a full tool belt and the skills to wield them, a good programmer should have an equally well equipped mental tool belt.
On a slightly related note, today I was thinking to myself about my own conceptions regarding the differences between “smart” and “stupid”. While there are obviously infinitely different ways you could compare smart vs stupid, I was thinking more around the sense that “smart” connotations are usually considered to be more difficult to obtain, while “stupidity” is generally easier. For so much of my younger life I held myself back because I assumed that I wasn’t smart enough to be able to understand (personally) daunting fields like upper division mathematics or programming. The truth is, only you can hold yourself in the "stupid" category. And just to clarify, I do not only consider areas like the sciences as respectable “hard” categories of endeavor. Anything can be hard to an individual, for example social interaction was just as difficult for me in my younger years as math, which is one of the reasons I chose to go to a big University and join a fraternity; to help expand my social capabilities. Believing that coding was “hard” was one of the reasons I never tried it till after College. I used to look at simple HTML and think “WOW, I can’t believe people actually write that!” Fast-forward to today and I now think HTML is a piece of crumble cake, because I chose to get past the “hard” part and actually try and learn it. This got me thinking more about the things that I currently find hard, like difficult programming techniques that I’m still beyond foggy on, and I know they just seem hard because I haven’t learned them yet. A lot of the things I think are difficult will probably be pretty simple once I get around to fully learning them, and until that time my mind will try and seduce me into thinking they are too hard to master. So if you have ever thought about learning something hard, stop being stupid and get in there and learn it!
Riley scribbled this article down on: March 21, 2013