
8 Learnings in 8 Years
Jan 25, 2023
In a few weeks, I'll mark my 8th year as a web developer. When I transitioned into the field, I never imagined that several years later I'd still have a passion for the challenges and the joys that come from solving technological problems. While I've learned different languages and tech skills along the way, many of the tidbits I've picked up over the years are more general in nature.
As I reflect on the highs and lows and everything in between, I've decided to compile a list of the top 8 things I've learned over the past 8 years. These are drawn from my personal experiences so they may not apply to you or where you're at in your professional career. Take it with a grain of a salt, but also let it help you to ponder what you've learned over your career.
1. You'll Never Know Everything...
Imposter Syndrome is real. I'm sure if you're a developer you've experienced it (if not, please tell me your secret!) and it is often a hot topic of conversation amongst techies. Whether you're fresh out of college, a recent bootcamp grad or a developer with several years of experience, the feelings of inadequacy can sneak up at any time.
There will always be someone who knows more, who has a different (albeit not always better) solution, or who has a more prominent voice.
But comparison is the death of the developer.
There's simply too much that encompasses the tech world to think you'll know everything. There are too many languages, too many frameworks and libraries, too many tools and far too many ways of doing things that it's simply unrealistic to think that a single person will know every facet of development. No one should expect that — not you or your manager.
So, instead of dipping your foot into every possible aspect, start to specialize. Dive deep into areas that interest you. Become an expert where you find the most pleasure. Sure, it's important to understand a wide range of concepts and know how things work together, but you don't need to be the person that knows it all.
And, once you accept this, the more you'll realize how much you do know. And that brings me to #2…
2. You Know More Than You Think
While you certainly can't know everything about development, it is important to acknowledge what you do know. When we hear about tools other teams are using or a brand new technology, it can feel like we're 5 steps behind before we've even set foot on the ground.
But perspective matters.
You are unique and have your own individual strengths and skillsets. On days when I'm feeling flustered about a project, I can get down on myself as much as the next person. But the days where I'm helping someone more junior or offering an alternative solution to a problem, I'm reminded of the knowledge that I have gained over the years. It's a far cry from the girl that started development using HTML, CSS and very (I mean very) basic Javascript.
Over the years, I've learned to have some grace for myself. We're all learning and finding our way through life and our careers...so remember where you started and be proud of how far you've come.
2. Ask for Help...And Ask Early
I'll admit, this is something I still struggle with. It can be a fine balance figuring out when it's time to reach out to someone for troubleshooting help while still trying different solutions.
Asking for help early certainly doesn't mean you should pester a coworker after 5 minutes of working on a problem, but it does mean bringing up those roadblocks to your team early enough so that you aren't struggling on your own for hours or even days.
It's important to fight through some of the barriers and test out different possible routes, but ultimately, you need to figure out when you've been spinning your wheels long enough. I believe this is a skill of any developer. It can be difficult to admit that you're stuck and sometimes you may not even realize how much time has passed while trying to figure out a problem. But, when you have a 2- or 3-point card that you've spent several hours on, you've surprassed the point of asking for help.
It will take time to figure out that sweet spot.
Daily stand-ups should help prevent you from going too long without assistance. But it's also important you are clear on the requirements before diving in too deep. Don't be afraid to ask clarifying questions or admit you don't know.
We're all human. It's okay that you don't have all of the answers!
3. You'll Need to Do Things You Don't Enjoy — Accept It
For me, this is writing tests and documentation. Don't get me wrong, I know these are two very important parts of web development. I understand their impacts on teams and maintaining a codebase. But that doesn't mean I enjoy doing them!
Not everything we do as developers will be enjoyable.
We'll have days that are difficult because we struggled finding a solution. Just as we'll have days that will be spent doing tasks we don't find particularly enthralling.
I find tests and documentation less than exciting because I don't really see that work come to life. I often find fulfillment in development when I can see the visual result, which is probably why I tend to gravitate toward the front-end. I have fewer issues writing tests and documentation once I've started and gotten into a groove, but it's the "getting started" that's problematic.
And while I love the front-end, I know there are many developers that would be thrilled if they never had to touch another line of CSS again.
But it's a part of the profession. And sometimes doing things we dislike gives us new insight. It's likely not how the majority of your time will be spent, but it is important to understand that you will be asked to do things you may not truly enjoy doing.
4. Strong Opinions Come With Experience
We all have opinions about things – whether black coffee is better than coffee with sugar and cream. Whether the original Star Wars movies are better than the more recent ones. Or, whether React is better than Vue or Angular.
Developers are often not a shy bunch when it comes to voicing their opinions.
However, I believe the most strongly-backed opinions are formed after several years of experience.
In the first few years of my development career, I cared less about what framework I was using and more about completing tasks for a particular project. I was probably more of a code monkey than I'd like to admit. And, that's not to say I didn't have preferences, but as you're starting out, you really don't know what your options are until you've had more exposure to the breadth of possibilities available.
That's not to say junior developers shouldn't make their voices heard, it's just that you need to be able to have strong reasons for advocating for a certain path. And often times more senior developers have explored a wide range of options and can provide more evidence for advocating for one technology or path over another.
5. Collaboration is Better In Person
Before getting too defensive or upset, I'm not saying that remote work isn't great or virtual collaboration can't be beneficial. In fact, I quite enjoy not having a morning commute and the ability to complete small household chores, like a load of laundry, during my workday. The flexibility is unparalleled.
But I do think it comes at the expense of highly effective collaboration.
Before the pandemic, I was in an office nearly every day. I had fun coworkers and there was a great company culture, so I never dreaded going in. I miss cake days, pizza days, lunchtime chatter and yes, in-person collaboration.
The ability to tap a coworker on the shoulder (as long as they didn't seem too busy), was pretty much a daily occurence. Whether I had a quick coding question or had been running in circles trying to fix a bug, I easily had a handful of people at my disposal.
Now, that's simply not possible. There are many more barriers to "meeting" with someone when done virtually – first, messaging via Slack to check whether a coworker is free, waiting for a response and either hopping on Zoom or scheduling a meeting until everyone is available. The sponteneity and the free-flowing conversation is gone.
Have you ever tried to speak up on a Zoom call at the same time as one or two other people? Then you understand. There's either uncomfortable silence as no one speaks or a jumble of voices as everyone continues to talk over each other.
And frankly, it can be exhausting.
Zoom fatigue is real. And while, it is currently the most effective option for pairing or collaborating with others in a virtual workplace, in my opinion, it certainly isn't the same as those in-person, organic conversations.
6. Always Ask Why
As a new developer, it can be easy to get a ticket and just do it. No questions asked.
But as your career progresses, you will need to become more inquisitive. Developers should not just be silent parties within the business, but rather an integral part of day-to-day decisions. And, it is the developer's responsibility to ask why a certain featured is needed, why a change is being requested or why a completely new service needs to be built.
Developers need to think in terms of the business. And, while we may have internal customers, ultimately, developers need to think of how their coding efforts are benefiting the external customer.
If there is no good reason other than "so and so wanted it," then developers need to push back. Questioning decisions doesn't make you difficult, it makes you business-minded and customer-focused.
7. Surround Yourself with Diverse People
It's easy to gravitate toward people who think like us, have similar interests and lead similar lives. But life becomes pretty dull when we don't step outside of our comfort zone.
As a developer, it's important to embrace diversity.
If you're a senior developer, have a coffee chat with a junior developer or ask them to pair with you on a project. Learn about their experiences and see how they approach problems. Ask them what resources they use to stay up-to-date on development trends. Learn about some of their favorite projects or websites and why.
We can always learn from others.
And, it's not just what we learn from others technically that make us all better, it's also the perspectives others bring to the table that allow us to make better professional decisions.
Imagine if the men who originally designed airbags for vehicles had some different perspectives during the design and development process – they would have understood early on that women and children can't handle the same force that a taller, larger male can. Had they considered that not everyone looks like them, they would have not only reduced the number of injuries caused by airbags, but also saved themselves the hassle of having to update their designs.
8. Coding is Not Life
Shhhhhh...don't let others know, but coding does not need to consume your life!
Perhaps employers would like to believe otherwise, but life is far too short to spend all of your time focused on a job. I truly believe the majority of developers have a deep passion for their craft – that's why so many of us work on side projects outside of the 9-to-5 grind. We enjoy testing out new technologies and working on passion projects.
But life shouldn't be spent sitting behind a computer.
Live your life! Travel, socialize, exercise – do the things that make you happy. Those things are just as important as your development skills. Those hobbies and interests not only give your brain a much needed break from the computer screen, but they also give you more experiences to draw upon when solving problems.
Never underestimate how important it is to refuel your mind and body.
What's Next?
Where will my list end up in another 8 years? Who knows! It may look completely different than the one above as my knowledge expands. Maybe a robot will have replaced my everyday tasks. We can't predict the future, but we can draw on our past experiences to help shape our future.
Let's learn from our mistakes, celebrate our successes and embrace the unexpected!