I’ve attempted the plunge into the coding world for years now. I’d get my feet wet in something like Javascript, Python, or Ruby, but then throw it to the wayside in favor of higher priority projects. In retrospect, learning to code was a lower priority for me because I didn’t have anything I actually wanted to build to give coding a sense of purpose. Well, no longer is that the case. With a project in mind, and a seemingly limitless amount of free resources on the Internet, I felt it was time to get serious with learning to code. Thus far, my overall experience seems to be progressing from fun to frustrating to fruitful.
Fun
In my opinion, learning a new language is incredibly fun. Codecademy is a blast. It feels good to write your first function that can process logic and spit out the answer you were looking for. Telling all of your tech-savvy friends that you’re learning to code to make [insert cool idea here] is very gratifying as well. My first few weeks learning code was a blast, and I really enjoyed it.
Frustrating
But then comes the frustrating part. This is the phase where you know enough to start coding, but not nearly enough to make your idea functional. Your code consistently breaks, you can’t figure out how to fix it, and you’re still clueless after reading through 20+ StackOverflow threads.
David Bauer, in his blog post on learning to code in under a year, makes a great point about why it can be so frustrating to learn to code:
The weeks after my initial euphoria turned out to be a nasty endurance probe. It feels like you make hardly any progress and it freaks you out when almost perfectly written code simply fails. Like ordering a full three course menu at the restaurant and not getting anything just because you pronounced the name of the wine slightly wrong …
I feel the same way now. I spent two hours this morning trying (and failing) to have a block of text update when a checked box is unchecked. So easy in theory; much more difficult in practice.
Fruitful
Although I’m currently stuck in the frustrated phase discussed above, I’m eagerly awaiting the fruitful phase. In this phase, you’ve finally created something that adds real value to one or more people’s lives. This is when you can sit back and enjoy the fruits of your labor. This is when you rejuvenate and wait for the inspiration that will carry you towards your next project.
I can’t comment too much on this phase, since I’m not here yet. But I know it exists, and I’m definitely looking forward to it.
Conclusion
If you’re learning to code – much like any skill – it’s usually fun at first, but quickly becomes frustrating as you realize how little you know, and how much you’ll need to learn to reach your end goal. As Seth Godin wrote in The Dip:
“Never Quit.” What a spectacularly bad piece of advice. I think the advice giver meant to say “Never quit something with great long-term potential just because you can’t deal with the stress of the moment”. Now that’s good advice.
That’s exactly how I feel now, despite immense levels of frustration. Knowing how to code is simply too valuable to quit simply because I’m frustrated and stressed out by my lack of progress in the short term.
Now, back to figuring out why those damned checkboxes aren’t functioning properly!