Fail More | Learn Programming the Hard WayWritten by: zacbanas on August 30, 2019
If you want to learn programming, the truth is there is no easy way around putting the work in. Most of the time in life, there will be a wall between you and any worthwhile goal. Learning how to program doesn’t require you to be particularly gifted or intelligent, it requires determination and lots of elbow (knuckle?) grease.
The First Steps to learn programming
When I started to learn programming, I spent 6-7 months moving one metaphorical inch per day, I was stuck in the sand. Watching tutorials and running into small errors made me give up. Procrastination and giving up were my defining qualities. I know this is not something that was unique to me, but is common amongst people who want to learn programming.
I was stuck in this confusing, frustrating revolving door for months on end. Watching people code, asking dumb questions on Reddit, and not being productive – that was me for months. If I could go back in time, I would simply tell myself to close YouTube, open up my IDE (PHPstorm ftw), and START BUILDING.
Fail, Fail, Fail and then Fail Some More
If you have no idea what you’re doing, that means you’re doing it right. You need to fail dozens of times in the beginning, you need to create absolute garbage, and most importantly you need to push through all of that.
Anything I’ve ever gotten good at, I have failed time and time again. My goal when learning new things now is to fail fast and fail hard. The quicker I fail, the quicker I learn, the quicker I improve. This is an old tech adage but it applies to almost everything in life. It might help to think of this process like evolution. You change something or do something different and if it fails, it’s dead. If it succeeds then you follow it until it dies. You do this fast. What types of organisms evolve the quickest? The ones that die faster.
Build, Build, Build and then Build Some More
The best way to learn a spoken language is to get dropped off in a country that speaks that language. The concept I’m trying to get across here is similar. The best way to learn programming is to open up your Development Environment and get to work. Make really bad, really ugly programs and then look at why they are bad.
When I made the transition from tutorials to building things, my learning went from an inch a day to miles per day. It didn’t feel like it at the time, but I was developing so much as a programmer. I was not only learning hard skills like how to use databases, syntax, design patterns but also learning soft skills like grit and determination. The thing about this phase of your learning is everything will be frustrating if you’re doing it right. It’s just like being dropped off in a country where nobody speaks your language, you’re going to be pulling your hair out for a while. This builds a sort of stubbornness in the right person, a determination to solve the problem that will help you throughout your programming career.
Googling is not cheating. I do this professionally and Google 75% of things I do during the work day, and that is probably underestimating it. As a programmer, your value does not stem from being an encyclopedia, it comes from understanding problems and figuring out ways to resolve them. In the beginning I had trouble understanding this concept, it seemed weird that people who “knew programming” would Google everything, but there is simply too much to know.
Yes, over time you will learn a lot of things and not have to Google them anymore. There will always be new problems and things you don’t know. It is impossible to know everything about programming, it’s impossible to know a fraction of everything about programming. This is why we have sites like Stack Overflow, which quickly becomes the air in your lungs as you dive deeper into programming.
Just do it.
Get used to bashing your head against the wall because of faulty code. If you want to learn programming, the best way to do it is to jump right in.
I will give an example:
As a programmer, you are first and foremost a problem solver. You take in requirements from your client, boss, project, etc, and figure out a way to get it done. My boss often gives me a problem and says “get it done.” and that’s all he tells me, he doesn’t hold my hand or give me keywords to Google. At the core of every good programmer is the ability to understand a problem and the desired solution, gather data and apply it to their specific situation.
If you’re seriously looking to learn programming, you should have stopped reading this around the third paragraph. Get off this site, download an IDE, and build something. It does not matter what you build, how you build it or the language/tools you build it with. Just do it.
Shameless plug for SEO
Interested in learning about Web Development? Check out my related posts. You can also message me at any time at email@example.com, or leave a comment if you have questions.
Thanks for reading!