Surprising Life Lessons I Learnt As a Software Engineer

Balance Beam Board
29 followers
3 Video Views·Nov 22, 2024
You might think that being a software engineer is just about coding and fixing bugs,
but honestly it's so much more than that. Working in tech has taught me so many different life
lessons that are applicable to so many different aspects of my life and have really changed how I
approach everything. Today I'm sharing some of these lessons with you, things that I wish I'd
known sooner and things that have changed how I approach my work, my life and just how I approach
everything. And hopefully these lessons can help you too, no matter what field you're in.
Hey all, welcome back to my channel. If you're new here, my name's Becca, I'm a software engineer
and on this channel I just share bits of my life as a software engineer, working a second job as a
Pilates instructor, having multiple passions, multiple interests and yeah just showing bits
of my life, bits of productivity and a little bit of everything. So first of all, no one knows what
they're doing. They're probably figuring it out just as much as you are and they're probably
suffering from imposter syndrome just as much as you are too. Everyone is acting like they're
confident, pretending that they know, but in reality no one knows. In the tech world and
specifically in software engineering, I feel like it can often feel like everyone knows what they're
doing, everyone is super smart, is a master of their field, but in reality everyone is figuring
out as they go along. Even the most experienced professionals encounter so many problems and new
things that they don't know. They have to google things all the time, they have to maybe ask chatty
BT, maybe they have to ask a colleague or someone else that's more experienced in that particular
area. No one could know everything and people are always encountering new things in software
engineering. Everyone is figuring this stuff out together and often it's just an appearance of
confidence that masks underneath the fact that they don't know and it really is a universal
experience. Everyone is in this boat together and then in life it's easy to fall into the trap of
thinking that everyone else has their life figured out, they know where they're heading, they know
what they need to do and they have their whole life planned out for them and you're the only one
lagging behind or unsure or lost, but the reality is no one knows and the future is so unpredictable
so I think we need to not get caught up in the idea of having everything planned, knowing everything
and just move with it freely because really we can't know everything. And then once you
realise that you're not the only person that's unsure, this relieves a lot of pressure and then
you can just start to accept the fact that all of this is part of the learning process and just
part of life. Talking about figuring things out as you go along, this brings me to my next point which
is you have no choice but to figure it out. Working as a software engineer you often encounter
difficult scenarios, different challenging problems and maybe you encounter unfamiliar
situations, different technologies, different languages, loads of unfamiliar situations and
often you're left alone to figure those things out. You might sometimes have the help of your team
but sometimes you really are on your own or maybe people are busy and you're expected to figure
those things out for yourself even if you haven't worked with it before. And when you're forced to
on your own like this, when you're forced constrained to a deadline, you will find a way.
If there's no one around you'll figure out how to do it, there's no other option. And in these
moments you have to really rely on your problem solving skills, your creativity, your perseverance,
your persistence and really just figure it out. And this process teaches you so many different
lessons. It teaches you that when the path isn't clear, when you don't know what you're doing or
when you think you don't know what you're doing, you will figure it out. And this applies to life
in so many different situations right because there are so many times where we don't know what
we're doing or we encounter so many unexpected scenarios or we are left by ourselves with
no one who can help us or no one can help us with our specific problem because it's specific to us.
And software engineering has taught me that really through all of those skills that I mentioned
it is solvable, there is nothing that isn't solvable. Even if it's not the method you
originally had thought of or not your preferred route, there is a way to solve it. And these
moments really test so many different skills, they test our resourcefulness to figure things out,
they test our mental resilience and so many things but it just shows us that we're so much more
capable than we think we are. And each time we encounter one of these scenarios or situations
it builds so much confidence and it really does reinforce the belief that you can handle whatever
life throws at you. Okay next thing is don't rush, don't run before you can walk. There are two
aspects to this and the first is for example in software engineering in your coding abilities
you don't want to try and rush ahead build the biggest app without having the foundations first.
You can't go and build a big app without even knowing how to write a function, without knowing
the basic syntax. So we don't want to rush ahead because that will only set you back in the long
run. And then the other aspect is when you're programming, maybe in your day job, maybe you have
a new ticket, maybe you're working on a different project, you want to make sure that your
code is of good quality. You don't want to just rush out bad code just to get the job done because
those cracks underneath will show through later. We want to make sure that we have good quality
code now so that we don't waste time in the long run. And Robert C Martin in Clean Code, I've got
the book here, got it on my desk always to force me to finish this book, still haven't finished, but
in this book he talks about this, about having good quality code all the time because again it
will make the process so much easier for future you, for other developers and basically the
business and every scenario, every situation. So he has this quote in here where he talks about this
a bit. Perhaps you felt that you didn't have time to do a good job, that your boss would be angry
with you if you took the time to clean up your code. It's your job to defend the code with equal
passion. And this quote there and all of this idea of don't run before you can walk, it can apply
to so many aspects of your life. Whether you're starting a new fitness routine or a new hobby or
putting a new habit into place, we don't want to go right to the extreme straight away because then
we won't stick to it. We don't want to try and master the most advanced technique, the most
advanced skills, without having the basic technique first so that we don't injure ourselves.
So I think this lesson is so important. Slow and steady wins the race. Now this idea of not rushing
leads nicely onto my next point which is take things one step at a time. Small steps lead to big
changes and now as engineers we often like to break problems down. We break big stories down
into smaller tickets, smaller tasks and work on those in maybe weekly sprints or bi-weekly sprints.
Everything is broken down in a methodical way. The big problem is reduced to smaller little problems
and this makes it so much more manageable and so much easier to approach. So I think it's useful
to sometimes approach our life challenges or personal challenges with this approach as well.
Improvements don't need to be massive each time. Small little steps can lead to so much big change
over time. There's this quote that I really love and it's that people overestimate what they can
achieve in a day but underestimate what they can achieve in a year and I just think that's such a
great quote because it's really so true. We can achieve so much just by making small little changes
each day. Think about what you can do today or tomorrow or each day this week that can get you
that one percent closer towards your goal. Any progress, any small improvement is still progress.
Maybe it's about adding that extra 1.25 kg plate on top of your reps or maybe adding an extra rep.
Maybe going to bed 10 minutes earlier or waking up 10 minutes earlier. Maybe you want to make time
for journaling in those 10 minutes or maybe you get off the bus to stop early so you can add in
some extra steps in your day. Whatever it is just think what you can do to make yourself that one
percent better than the person you were yesterday. Another thing I've learned in my career as a
software engineer is it's okay not to have all the answers. In both work and life it's impossible to
know everything and people expect this and I think it's much better to show that you don't know
tell people that maybe you need a little help or a little more time to figure things out and
this will be appreciated far greater than you pretending to know what you're doing and
messing things up. Admitting that you don't know the answers is not a sign of weakness and
it's a sign that you're curious and willing to grow and learn. Curiosity and a willingness to
learn new things is much more valuable than pretending to know it all and we need to learn
to ask questions, seek out help from other people, create relationships and this will create great
bonding experiences as well. I think generally people are always willing to help other people
and it can create some great relationships and that brings me to my last point which is embrace
failure. Being a software engineer helps you become more comfortable with making mistakes
and failing and messing things up essentially. During this job you will constantly be figuring
things out and there is a high chance that you will get things wrong and a high chance that you
will fail many times and like I said before this is very much expected of you especially in the
early stages of your career. You won't always get things right and you'll probably end up breaking
some things time to time and I mean obviously the aim is that you don't continue breaking things,
the aim is that you learn from those mistakes but sometimes failure is necessary and then once
you've been through that failure, once you've learned what you did wrong and learned how not
to go wrong next time, you will come out a much better developer. Same thing in life, once you've
made those mistakes and figured out what you can do change or help grow for next time, you'll come
out a much better person and you'll see that everything has a solution. I believe that
everything will work out one way or another and again similar to what I said before even if it's
not the intended outcome, there is a solution and you will find a way through that failure and you'll
find a way to fix it. You'll come out the other side having grown as a person and hopefully having
learned some new things. So that's all for this video, I hope you learned something from it.
If you liked please don't forget to give it a like, subscribe and comment down below to let me know
what you've learned from your career, maybe you're a software engineer as well or maybe you're in a
different field, I'd love to know. Thank you and hopefully see you next time.
