8 Most Valuable Lessons I Learned in 5 Years as a Software Engineer

Felipe Rocha - Sep 9 - - Dev Community

I recently shared an article that I found incredibly inspiring. It featured a young software engineer reflecting on the key lessons they had learned after 35 years in the profession.

Reading that piece made me ponder the lessons I might share when my time comes. But before that, I honestly wondered if my time would ever come. A 35-year career is quite a long journey, and since I started a bit later in life, at 26, I'd be over 60 by the time I reached that milestone.

Perhaps I won't make it that far, or perhaps I will and simply forget to write about it. So, I figure it's best to start putting my thoughts down now, so that my future self can simply review and refine them. It's a way to lighten the load for my future self. Let's dive in:

Life is More Than Coding

Life extends beyond coding. To be a productive developer, you need to maintain both physical and mental well-being. Over these past 5 years, I've met great engineers with diverse hobbies that help them stay healthy. Soccer players, rock climbers, weightlifters, runners, swimmers, those who play volleyball or practice jiu-jitsu. Some also frequently attend parties, music concerts, enjoy the beach, or travel to exciting destinations.

The Profession is More Than Coding

Even the profession itself encompasses much more than coding. You need to understand your company's business and your team's goals. It's crucial to understand how your work contributes to achieving these objectives. As you gain experience, you'll share your knowledge with less experienced engineers or even guide another developer through a project they've never worked before. After spending some time at the company, you'll be recognized as an engineer with deep insights into the business. People from other departments will seek your perspective as an engineering expert.

It's Not Enough to Do, You Have to Show

It's not about boasting about your accomplishments. It's about ensuring that everyone understands what you can deliver, the challenges you've overcome, and your resilience as a software engineer. Maintain clear and active communication about your tasks, both in writing and verbally. And lastly, continue to track the impact of your work after the release.

Together We Go Further

We all know that people are paid to do their jobs, but they'll do them better and faster if they like you. Build positive relationships with others, respond to them as promptly as you'd like to be responded to. Treat them the way you'd want to be treated. And lastly, work correctly. I don't know anyone who hasn't built strong professional relationships by following this principle.
In fact, I landed my current job building good relationships. A former manager of mine was hiring and knew I was seeking a new challenge. He contacted me and soon I was hired..

You Drive Your Career

Managers and more experienced engineers can provide guidance to help you reach your goals. However, they won't do the work for you. Remember, this is YOUR career, YOUR future, and it will likely unfold far away from them. So, don't leave it in someone else's hands. Develop a solid career plan and review it periodically. Within your current company or team, seek out opportunities that align with your learning objectives. If you feel stagnant, ask for feedback, re-evaluate your plan, and ensure you're actively working towards your goals. Don't hesitate to revise your plan as needed, but never blame others for your lack of progress.

Deadlines are Dangerous

Early in my career, I started estimating deadlines before I truly knew how. I vividly recall being introduced to planning poker and assigning estimates to tasks in the most random way imaginable. If you're unfamiliar with it, I strongly recommend reading the chapter on estimation in "The Pragmatic Programmer" or at least an article inspired by it. Missed deadlines are like snowballs of problems for the team.

Be a Problem Solver

I believe this is the hardest skill to master, yet it's the one that can propel you to the next level the fastest. We're paid to solve problems, not to create them. How about trying to resolve your own issues before complaining in a daily meeting? Take initiative and do what needs to be done. If you need help unblocking your tasks, ask for it as soon as possible. If you're waiting too long for a response, politely follow up with the person. Having issues with another developer? Reach out to them and align your work. No one is reviewing your pull requests? Don't wait too long; send a gentle reminder. It's all about perspective. Approach problems as challenges and savor the endorphin rush of overcoming them.

Conclusion

I'm convinced that articles like this serve as invaluable compasses, guiding us on our professional journeys. That's precisely why I'm constantly seeking out the wisdom and insights of seasoned engineers.

The most profound aspect of these lessons lies in their universality. They transcend the boundaries of software engineering, offering profound insights applicable to both our personal lives and a multitude of other professions. These lessons encapsulate timeless principles that empower us to navigate challenges, foster growth, and achieve success in all facets of our lives.

Let me know if you have any other sections you'd like me to refine or any further questions!

. .
Terabox Video Player