Becoming a software engineer is a fantastic way to use your creativity and
technical skills to build amazing things that improve people’s lives. But it’s
not always an easy road, and a lack of guidance can often make the process
hideous and getting started daunting. Here are things I wish I had known before
learning software engineering.
Having a well-defined reason in mind when learning software engineering can help
through the rough parts of it. Software engineering may seem shiny and easy to
dive into, but it does get difficult. And when it does, you will want a strong
reason to keep going.
A valid reason may be an added value in your personal or work life. You may wish
to automate tedious processes in your everyday job. It can also aid you in
understanding the software engineers you work with, even if you are not in a
technical role. Others may learn software engineering to build an app or website
for a volunteer job.
Your reasons will be different from others. You may have a passion for
technology and programming and decide to learn software engineering. Usually,
passion is not enough. Software engineering is a complex maze that can be
impossible at times. It is more sensible, however, to set realistic goals and
expectations to keep you from lacking the motivation.
Money is also a valid motive for learning software engineering, especially that
software engineering does not require a degree. But money does not come easy,
and it may take you months or even a couple years before you start making good
money. Instead, setting a realistic set of objective goals is the better way
to go. Keep in mind that you may prefer average pay with a good work environment
to a 6-figure in a brutal atmosphere. It does not come down to just money.
I chose software engineering because it appealed to me at a young age. And this
passion has worked for me for as long as I can remember because I set realistic
expectations for myself and my goals, which motivated me to follow my passion.
The sky is the limit. What matters is a well-defined reason with realistic
expectations to make the journey worth it.
Our lives as software engineers consist mainly of learning. We start by writing
dirty code and improve over time. We discover better ways to build the things we
do.
Your code will be shit on. Others will completely dismiss it as useless,
unclean, or any other reason which will often be valid. But we are not machines.
We are human beings. We grow attached to the things we build and the code we
write.
You can gradually learn to detach yourself from your code, however. Start by
having colleagues, friends, or mentors review your code regu