I was eighteen years old when I learned how to write my first program in Python. Six years, multiple languages, and a degree later, I can safely say code has taught me life skills that stretch far beyond the command line. This is my list of the top five skills I've learned, and continue to practice as a programmer.
Lesson 1: Attention to Detail
The first mistake I ever made writing a piece of code involved one tiny piece of punctuation. This a mistake almost every beginner level programmer makes at some point in their code journey and few things are more frustrating. You read your code over and over and over again, and the logic is flawless yet the program keeps breaking. Then after a bathroom break or coffee run, you see it. You missed a comma. It is the slightest mistake that can keep you at a standstill for hours. Yet, once you've made that mistake you're unlikely to make it again because you realize how important that little detail truly is. This a mistake that is representative of the importance of taking nothing for granted and treating everything with care. So often the logic of your code falls apart thanks to a failure to think through a small detail and similarly, many an opportunity can be lost when you fail to get the little things right. Be it forgetting a deadline, or making a spelling mistake on a job application form. Being aware of and committed to getting the little things right is a skill that shows professionalism in your work life and care and commitment in your personal life, and more often than we care to admit, it is the difference between a great day and a terrible one. So, let your code help you learn that skill.
Lesson 2: Withstanding Frustration - Hint Resilience and Flexibility are key
My favourite thing about code is the immediacy of feedback that it offers. You know within minutes whether you've been successful or not. This means you can course-correct quickly, throwing everything out and starting anew. However, this quality also means that a failure to get it right after multiple attempts breeds a level of frustration I had never known before beginning my code journey. With that frustration came self-doubt and fear. Yet I'd argue that frustration has been my greatest teacher through this journey. The hardships of tussling with a piece of code that just won't cooperate teach you resilience and flexibility. You are forced to struggle not only with the problem at hand but the knocks to your self-esteem that come with it. You have to believe you're smart enough to figure it out, and in that belief, you're forced to stretch yourself, outside the solution you initially thought up. Few things have consistently reminded me of the importance of lubricating your resilience with flexibility like code has.
Lesson 3: The humility of sharing in knowledge
The discipline of Computer Science and the world of code is as vast as it is deep and constantly expanding. To know everything about everything in this field is an impossibility and the coding community leans into this understanding. So many of the concepts and bugs I’ve come up against in writing code I’ve only been able to work out by asking others for help, and so many of the projects I am proudest of having worked on I’ve built alongside other people. Code reminds me of the value of humility. The humility to know you don’t know everything, and that everything must be learned from either experience or others whilst also highlighting the importance of being willing to share what you know. There is humility both in asking for help and in striving to share what help you can give that lends itself to an expansive experience of the world and all it has to offer.
Lesson 4: Mistakes are made to be learned from
One of the joys of writing code on modern computers is that your machine may not always tell you exactly what you did wrong, but so often they tell you where you went wrong. Your machine is trying to help you find your mistake, learn about your mistake, and understand your mistake. Learning is so often about learning from your mistakes, and code helps you learn how to value your mistakes because they are the engines toward any real progress when you’re coding. I have regularly done everything humanly possible to avoid making mistakes, and because that is not how life works, I instead found myself paralyzed out of life. Code has helped me learn how to swallow my mistakes, how to swallow my imperfections, and how to love the lessons that come from my mistakes.
Lesson 5: The ability to enjoy the small wins
I remember writing my first “Hello World” program, and how silly I felt for being proud of that at the time. Yet, I also remember how that taste of making something out of very little made me want to do more of it. Learning anything is hard, but learning how to code can be torturous in how it makes you feel about your ability to learn when things are not going well. This discipline touts itself as a space where geniuses and nerds roam free, delighting in all the crazy ways their brains can bring their ideas to life. There’s a pressure to show up as one of these said geniuses to feel valid in the space. The truth is that the only way to get to a genius level is with time, and I’ve learned the easiest way to stick with it over time is to revel in the little wins. Every cool new little thing you build is a badge honouring your growth and should be treated as such. I’ve taken this attitude into so many of my other hobbies be it running, learning Spanish or writing this blog. Code has taught me how to celebrate the small wins, both because I deserve to take joy in them and because that pours fuel into me to keep going with it.
So yes, learn how to code because it may reap benefits for your career, but also learn how to code because it will reap benefits for your character if you stick with it. It has for me.