Three Lessons as a Developer
To write this post means that I’ve now spent three years in software development. Time flies and acknowledging that is scary. It feels like the other day when I walked into my first computer science class when it has now been ten years. Each year I’ve told myself I should write one of these “what I’ve learned articles”. Well this is the year, year three. My goal with this series is to revisit this post each year. I plan to add one more lesson I’ve learned with each year. Along with adding a lesson, I will edit any of the existing lessons based on what I’ve learned the past year.
My hope is aspiring devs will use these lessons to build better careers for themselves . Some veterans of the field may even get an inside look at what junior developers might be feeling, although these lessons wont be the same for every developer. Hell, some developers might think the exact opposite from me and that’s okay. Take what you find useful and leave the rest. Here are my three lessons learned three years into my software career.
Lesson 1: I Know What I Don’t Know
This lesson isn’t impostor syndrome, in fact it’s the opposite. I’ve realized that I know almost nothing, but so does everyone else. From that realization comes a sense of calm and confidence. I don’t feel the pressure to walk around acting like I know everything. If someone says something and I don’t understand I’ll ask them to clarify. This sounds like a no brainer, I know college me would have thought so, but when your enter the workplace you can get surrounded by lots of smart people with large egos. The egos and knowledge can be infectious and lead to a massive feeling of pressure to preform.
My first year I spent so much time trying to learn enterprise systems and coding styles. Each night my thoughts would be yelling at me: “you should have taken this class or that class in college then you would already know this stuff!”. At work I was unsure of myself around senior developers, not wanting to say something and get ridiculed.
I realize that even the smartest people in the room have areas that they don’t know about. I’ve come to realize that no one out there knows it all. We all slip up and say something incorrect or flat out don’t know, and I’ve now learned that’s okay. Those moments where I admit to not knowing have lead to the biggest growth opportunities in my career. I’ve experienced the opposite as well, worried that asking a question might draw scrutiny to me. Those moments, where I feigned competence, have been some of the biggest missed opportunities. I’ve learned that in those moments I need to ask why I don’t feel comfortable speaking up. Is it because of a competitive work environment? A self-imposed desire to know it all? The fear of judgement from colleagues? Analyzing these moments has provided me with signposts in my journey.
Lesson 2: It’s All About the Soft Skills
I graduated from college thinking I was entering a field dominated by measurable, teachable, hard skills. The stereotype in my head was of a mathematical genius ripped from "A Beautiful Mind" with the DNA of Alan Turing. The reality of my job has been the opposite. I’ve seen plenty of brilliant engineers come and go from my workplace frustrated by work, politics or their peers. I was going down this path as well. In my first two years I would come in and try to avoid all contact and interaction. I thought the more code I could write, the more stories I could close and the better I would become. In my third year I’ve realized the opposite is true. I spend my days pair programming, connected at the hip with another developer. I give presentations to technical and non-technical coworkers. I attend daily design, security, collaboration, planning, and scrum meetings. I mentor new developers and walk them through existing code and architecture diagrams. None of these things need me to be a rock star developer. They do need me to have great soft skills.
I’ve learned that software is created by teams not individuals. Every team has to be able to function as a whole, a sum of parts. Yes there is a need for the rock-star developers but those developers also need to be able to talk to with others. Those are soft skills, and developers should maintain them, as they do their hard skills. Nights out with friends, chats with strangers, all these things build those skills. Building those soft skills also makes sure that I live my life and don’t spend it all in front of a computer screen.
Lesson 3: Time Limits All
The hardest lesson that I’ve learned is that time becomes the most limiting factor in life. Getting stuck on a problem can extend a 9 to 5 job into 8 to 6. Sprinkle in some off hour production support, work on my YouTube channel, or blogging and 12 to 16 hours of a day can be work related. I find myself getting off work and trying to prioritize between side projects, learning new skills, seeing my girlfriend, playing with my dog, going to the gym, and socializing with friends. I don’t know exactly when it happened but at some point in these three years life caught up to my live free attitude. I no longer have time to do everything I want or plan to do in a day. I’m learning that if I don’t set time boundaries and plan my day I will lose my day. Luckily I work for a company that places some value on work-life balance.
Here’s to Another Year
Writing this article was much harder than I thought, hell it took me three years to finally work up the will to write it. Once I started writing I realized trying to sum up everything I’ve learned into three lessons is impossible. I’ve come to terms with the fact that as soon as I publish this I’ll think up a lesson that is more important than the three listed above. Everyday I learn something new. It seems like the more I learn the dumber I get, that’s why I love this field, because no one can ever learn it all. Here’s to another year and another lesson!