When I joined Frogslayer one year ago, I had recently graduated from college and began to face the challenges of transitioning from software development in an academic setting to an industry setting. It was a shift from being surrounded by my peers with very similar skills and experience to working with professionals with decades of hands-on experience with different technologies, tools, and strategies, which was both intimidating and exciting. During this formative period, I transformed from someone who simply knew how to write code to a team member that can contribute to solving problems, breaking down solutions, and providing meaningful feedback.
While I didn’t always get it right during this first year, I learned some valuable lessons along the way from experienced software engineers.
Lesson #1: Be a sponge.
Regardless of your background – be it college, a coding boot camp, or self-study – as you begin your first few years of software development, you are likely missing lots of little bits of key information that come with experience. My advice for you during this time is to adopt a sponge-like mentality and absorb every nugget of information that was already won by your more experienced colleagues. Embracing this type of attitude will save you a significant amount of time by leveraging the wisdom gained from other developers’ experiences.
Don’t be afraid to reach out to teammates just to talk. Many times, I have gained so many invaluable ideas from conversations that didn’t even start with a problem I was currently tackling. By adopting the sponge mindset in your conversations, work, and feedback, you will be amazed at how fast you can expand your learning.
Lesson #2: Sometimes you’re the hammer, sometimes you’re the nail.
Software engineering is a career that brings about a unique mix of emotions. Some days, you feel like an unstoppable genius, akin to Alan Turing. Other days, you question if you should ever be allowed to touch code again. My advice is to embrace the process. Celebrate the days you’re the hammer after finishing up a PR faster than expected or finding a nice solution, while learning from the days you’re the nail when something takes longer than expected or you create some nasty bug you didn’t see coming. Ebbs and flows come with the territory and it’s important that you keep learning and moving forward despite how the day’s work transpires.
Remember, Rome wasn’t built in a day. When you’re first starting out, it’s natural to find yourself as the “nail” far more often than the “hammer,” and that’s perfectly fine. Some of the most profound lessons you will learn come from failures and mistakes.
Lesson #3: Contribute as often as possible.
Active participation is crucial in various aspects of software development, whether it’s stand-up meetings, backlog breakdowns, or discussions between developers. Even if you feel like you have little to contribute, it’s important to make an effort to engage.
When you speak up, you can achieve two things:
- Gain A Learning Opportunity – By saying you’re unsure about an idea or solution, you provide your teammates an opportunity to help you gain a better understanding. In turn, this helps deepen your knowledge and equips you with valuable tools for future discussions.
- Help Others Grow – By proposing an idea or solution, you may unveil something your other team members haven’t considered. Don’t hesitate to share your observations, as you may possess information or ideas that could greatly benefit the team.
Software development thrives on collaboration, and to grow in this field, it’s essential to embrace a collaborative mindset, particularly when you’re new.
Closing Thoughts
Software development is an ever-changing field and one that demands a lifelong learner. In that learning process there will be failures, success, and maybe a little pain, so it’s important to embrace the marathon in the world of sprints.