3 Things I've learned while learning to code
TLDR; You’re not dumb, write lots of code, and it’s ok to use DuckDuckGo.
Software is an incredible thing. We walk around with a tiny screen in our pockets that gives us unlimited access to a virtually unlimited repository of knowledge. All thanks to millions of lines of code cranking away in cyberspace. It’s no wonder why so many people are infatuated with the creative process of writing code, a skill that is not easily obtained. It takes years of practice to hone the expertise needed to write and maintain elegant, efficient, and secure code — a journey I started a little over half a year ago.
I’ve had some long, frustrating nights since I started to code. I’ve hit walls hard enough to ask myself questions like “do I really want to do this?” or “will I ever be able to spend more time writing code than reading Stack Overflow posts?”
The answer to those questions are yes, and yes. The journey to becoming a developer is a long and bumpy one, but anyone can do it.
As a little motivation to anyone who is starting to walk this long path, here are three things I wish I had front of mind when I started my own adventure.
No, you’re not dumb
Last month, I was writing a little Ruby module to verify user credentials. I kept getting an undefinedmethod error. I was STUMPED. Long story short, I had named a method authemticateuser instead of authenticateuser. Since I was trying to use authenticateuser, the Ruby compiler — due to my spelling mistake 🤦 — had no idea what I was talking about!
There is a lot to learn my friend and, remember, people learn at different paces. Don’t get discouraged when you hit a wall. Or worse: squash a bug, realize how simple the issue was, and then begin to doubt your ability to progress. Keep learning, keep improving. Even if it’s just 1% a day. Soon, you’ll blink and be laughing about the days where you got stuck authemticating users.
Spend more time drawing instead sharpening your pencil
Remember why you started – did you want to start a business, switch careers, or maybe automate some of your work tasks? Whatever the reason, regardless of the tools you use, you still need the skills to write the code. There isn’t a vim configuration in the universe that will boost your skills, so pick something and start breaking stuff!
Pick an editor, pick a learning resource, and stay disciplined. Seriously, stick. with. your. readings/videos/book 100% of the way through. Don’t bounce around from book to book without finishing and understanding all — or at very least most — of the material. Write a lot of code and be consistent with your studies. This will be one of the main factors that pushes you from tutorial junkie to Jr. developer.
Over the past few weeks, I’ve taken a break from the video series I’m watching and I’ve been writing my own code. I’ve probably learned 2x as much as I have in the past week than I have in the past two months just by branching out from tutorials.
“Talk is cheap. Show me the code.”
– Linus Torvalds
Search Engines are Your Friend
The tech industry changes often and it changes fast. Even if there is a 10x engineer out there with a photographic memory that only needs to read documentation once before they’re a master, they still had to read it! Which means they had to pop open their browser and search the web for some kind of tutorial or documentation.
Don’t discourage yourself if you need to search for something you believe to be trivial, especially while you’re learning. We all started with the same amount of knowledge: none. In fact, being able to efficiently search for and implement solutions is a critical skill to have as a developer. You’re building some serious google-fu skills. One day, they might save your life (or save you hours of banging your head against your keyboard, either would be good).
That being said, spinning your wheels is not always a bad thing. Let yourself get stuck, it’s great to do while there is no pressure. Ponder the task at hand and take a little break. Go grab some coffee or water, maybe some fresh air and let your mind wander for a bit. Then, come back and look at the problem with a fresh set of eyes. I can not tell you the number of times I’ve come back to my keyboard and kicked myself in the butt for not getting to the answer sooner.
“Programming isn’t about what you know; it’s about what you can figure out. As long as you know where to find out the things you forgot, your doing just fine.”
- Quoted tweet by Chris Pine
Continuous learning is one of the keys to happiness. We’re designed to learn. Give programming a shot, you just might fall in love with it :)