Skip to main content

Command Palette

Search for a command to run...

9 non-technical lessons I've learned in my first year of coding

Published
7 min read
9 non-technical lessons I've learned in my first year of coding

In April 2021, I made the decision to learn how to code. At the time, I wasn't sure of my long term goals. I only knew that I wanted to make an app. While I still haven't made an app, I've learned an incredible amount of technical information that will benefit me should I choose to go down the mobile app path. However, I find it's the non-technical discoveries that have benefited me the most on this journey. They have taught me valuable lessons that every programmer should know. Here are 9 things I'll carry with me throughout my career as a developer.

Don't stress over languages

Delving into the world of programming can be daunting. There are all of these languages, libraries and frameworks. Frontend or backend. It's difficult to know where to start. Many beginners feel as though they are locked into a language once they start, so they need to pick the perfect one for their goals. They then become paralyzed from choice overload and waste a lot of time that could have been spent learning. I spent several weeks just researching and was completely overwhelmed and intimidated by it all. The truth is, once you are proficient in one language you then have the tools to pick up any other languages you want. Professionals often have multiple languages in their repertoire, of various proficiencies. If their job requires it, they are able to pick up a new language with relative ease due to already mastering the fundamentals. So it really doesn't matter what you start with, just start! A tried and true choice for beginners is the path of HTML, CSS, and JavaScript. Once you have a good grasp of JavaScript, you'll be able to move on to another language much more easily.

Go Deep, Not Wide

Whatever language you choose, stick with it and learn as much as you can. It can be tempting to jump to Python after a few weeks of JavaScript. Or start learning a framework like React. But for your understanding, it's much better to deepen your knowledge as much as you can before seeking something new. Having a shallow understanding of basic concepts can make the more advanced concepts more difficult to grasp. Like building a house, you want a strong stable foundation before constructing the next layer.

Get out of tutorial hell

It's so easy to get stuck doing tutorial after tutorial. freeCodeCamp, Codecademy, all those Udemy and Coursera courses. Raise your hand if you have multiple Udemy courses waiting for you. These tutorials and courses are fantastic to start with but they can't hold your hand forever. At some point you have to step away from them and code on your own. Take the concepts you've learned and start building projects. You'll get to see real-world applications of concepts. And if you still enjoy courses, try one that doesn't walk you through it as much, like The Odin Project or Harvard's CS50 course. My comprehension increased immensely while completing the projects from The Odin Project.

Find a community

Learning to code is quite difficult. There will be times where you get tired. Where you feel like you're not cut out for this and maybe you should give up. It's during those moments when having a community matters most. A group where you can celebrate each other's wins. Give support through losses. Ask for help when you're stuck debugging. I spent most of my first year coding without a community. As a result, I got stuck a lot and I gave up when I was too frustrated. Joining the 100Devs community has been one of the most key factors in my continuing to code. Knowing there are people cheering me on keeps me going when morale is low. So whether it's in-person meet ups, on Discord or Twitter, find people who are on the same journey as you and get through the trough of sorrow together.

Manage your frustrations

Programming is a seriously frustrating line of work. You swear you wrote your code perfectly but it's throwing 100 errors at you. You spend hours trying to figure out the problem just for it to be as minute as a missed semi-colon. It's enough to make you want to rip your hair out. Or maybe you've spent days trying to understand array methods and it's still not clicking. You're at your breaking point and ready to give up. If you don't now how to properly manage your frustrations, you may experience burn out. When you're burned out, you're likely to step away from coding and never come back. I took a two-month long break after my attempt at CS50. I now know how to manage my frustrations with coding. If I've been stuck on one particular problem, I step away from the computer. Do things that bring you peace. Whether that's breathing exercises, yoga, music. I personally love to dance. Take as much time as you need and when you're ready, take another shot at the problem.

Learn how to learn

In school, common methods of studying were to use flashcards, highlight key terms in the text and re-reading multiple times. These methods are ineffective for programming. I would end up reading documentation multiple times and still not understanding what I read. I became a much more efficient learner once I learned how to properly learn. If you take any Coursera course, I highly recommend Learning How To Learn by Barbara Oakley. It's a powerful course on how to learn so that you can retain the material while also touching on common struggles such as procrastination. If you feel as though you aren't capable of learning these concepts, chances are that's not true. You just need better techniques for retaining the material.

Be consistent

One of the most important lessons I've had to learn was to be consistent in my studying. When I started, I was very inconsistent. Only learning when I felt like it. Of course, I forgot concepts all the time and made very little progress. Consistency doesn't have to be overwhelming. You don't need to do hours of work every single day to stay on track. Sometimes life gets in the way, and that's okay. Just pick back up when you can. If all you did for the day was review your Anki deck or do a Codewars challenge, then that's still great.

Take care of your body

Programming is not a career where you are doing manual labor. But many people don't realize it is still taxing on the body. When you spend hours in your office chair, your joints get stiff. You're more prone to weight-gain. You may suffer from strain in your fingers. That's why it's important to take frequent breaks. Every hour or so, step away and stretch. Rest your eyes and drink water. Outside of work, be sure to get plenty of exercise. As someone prone to joint pain, I take this very seriously. While being a great programmer is important, let's all take care of ourselves as best as we can.

It's not a straight line to success

When I first decided I was going to learn how to code, I set out a goal of making an app within 4 months. Is it possible? Perhaps. But I had no idea just how long of a journey learning to code truly is. I felt defeated after thinking I was taking too long. I often see other beginners having similar thoughts. While it can seem pessimistic to say, knowing the truth of how long this takes can give beginners a more realistic expectation. Learning to code to an employable level can take months and often times, years. You're supposed to struggle at times. You're going to feel inadequate at times. If you've been learning for a year and you're nowhere near ready for a job, you're not a failure. That's simply the nature of programming. You're right on track. I'm right on track as well. If you can hold on through the difficult times, you'll eventually reach your destination.

E

That was a lovely read Nia Labrette! It can be helpful for every code newbie :)

R

Good write-up! I like that you specifically chose to highlight the non-technical things you learned: they are valuable to everyone in the industry. Good luck with the rest of your coding journey!