fbpx

Why Learning Software Engineering is a Lifelong Journey

Looking over should of woman who is full stack engineer looking at code

ARTICLE SUMMARY

Bryn Bennett - Full Stack Engineer at Sensible, shares with us in her latest piece why learning software engineering is a lifelong journey.

Traditional schooling teaches us that there is a start and an end to learning. To learn something is finite — you study it, and then it has been learned. You receive grades, from 0–100%, which indicate to what extent you were successful in said learning.

Software engineering is quite the opposite. While there is a beginning to learning it, this start will vary for each person and can happen at different stages in life. But there’s certainly no end. You’re never truly ‘done’ with learning about software engineering. Every day offers the chance to gain new insights and experiences, making you more effective in your work. Yet, the journey is endless—you’ll never know everything. Reflecting on what prepared me for learning to code, I realize that the mindset of continuous learning and adaptability is key.

This is why I say that learning software engineering is a lifelong journey. It is education in its purest form — not for the sake of completion, or a percentage point, but with the sole intention of improving yourself and what you bring to your surroundings. That’s a pretty amazing thing when you think about it.

This is the case for several reasons, most of which have to do with the fact that our world is ever changing.

Software is Always Changing

The rapidly changing landscape of software engineering is reason enough to treat your learning as an ongoing and never ending process. You may be a remarkable engineer today, but try not learning anything new for the next 5 years and then looking for a new job. The technologies, languages, frameworks, and tooling used will all have changed and you will have been left in the dust.

Needs are Always Changing

Your team’s and company’s needs will be changing in a much more immediate and tangible way than software as a whole, based on changing goals, priorities, customer demands, and all of the other factors that go into determining the day-to-day operations of a team. If you only know exactly what’s in front of you, you won’t be able to keep up with these changes. Only through continuously exposing yourself to new ideas can you ensure that you will continue to have the right tools in your toolkit as new needs arise and new problems need solving.

The wider your breadth of knowledge and deeper your understanding of your core technologies, the better equipped you will be to make informed decisions and suggestions.

You are Always Changing

Possibly most importantly, you are always changing, and what interests you today may not be what interests you tomorrow. One of the most incredible things about being a software engineer, in my opinion, is the feeling that there are endless opportunities — there are so many different rabbit holes to go down, and so many different avenues to choose from. I’m sure there are more than I even know of.

software engineering

Do yourself the favour of not becoming complacent in what you are currently doing. Complacency is boring, and you won’t know what you’re missing out on. This isn’t a “grass is always greener” thing — I’m not saying you should always be looking for something that you like more. But through continually exposing yourself to new areas, you will see the work in front of you through a new lens. You will be able to approach it from original angles, and have additional tricks up your sleeve for troubleshooting when bugs pop up.

Perfection is a Fallacy

Lastly, the thing you have been hearing your entire life — there is no such thing as “perfect”, and code is no exception. Your code will never be perfect, but you do have a duty to write better code today than you did yesterday, and to incrementally improve the code that you have written.

To the original point that we are not working on a graded system, you will never get a 100%. But the user experience and impact of your software is predicated on the quality of your code. So while you will never produce 100% bugless code that works absolutely perfectly all of the time, you should always be working to decrease the presence and impact that these issues have on your end user. And you do this by — you guessed it — bettering yourself as an engineer through learning, learning, learning.

Conclusion

I always try to encourage people not to get caught up so much even in what they are learning, but just to ensure that they are. Some of my go-to’s in my own journey are software engineering books, Udemy, and Medium. I find myself constantly stumbling upon new concepts, reading through brand new approaches to problems I have faced, and trying to comprehend concepts that don’t seem to click in the moment, but inevitably pop up in my coding life in the next two weeks, adding the context and clarity I needed to understand.

RELATED ARTICLES

Dr. Marlene Wolfgruber, Director of Product Marketing at ABBYY, explores what it takes to excel as a Software Product Manager, and shares her tips on getting started.
Preparing for a job interview can feel daunting, but with the right approach, you can turn your anxiety into confidence. Whether you’re a seasoned professional...
Discover Lisa Iudiciani, Lead Software Engineer at Vista's journey of career reinvention, balancing technical growth with leadership development, and her insights on mentorship for aspiring...
Amanda Whicher, Technology Director at Hays UK&I, highlights the importance of job interviews as a two-way street, where both employers and candidates assess each other....