Time really does fly. As I write this, I have unlocked the two year milestone of working as a professional software engineer. It only feels like a short time ago I set myself the goal of changing career and becoming a professional software engineer. I feel incredibly privileged to have had the opportunity to change careers, to be working for Big Health and working in web development.
I was discussing with a friend at work some tips he was collecting for a friend of his who was just starting out as a professional web developer. I thought it would be useful exercise to post an expanded write up of the advice that would have benefited me just before starting my job. My hope is that this may also prove useful to others.
Learn how to learn #
There is one constant in this career and that is you should always be learning. Find out the most effective ways for you to learn in a sustainable manner and keep learning.
Don’t reinvent the wheel #
I learn best by building stuff but there isn’t time to build everything. Give less weight to reinventing things and doing a lot of coding, and more attention to reusing other tools and investigating what’s out there.
Dealing with imposter syndrome #
Don’t compare yourself to other developers. Remember your own journey and progression. A trick I use to remind myself how much I have learned is to keep a journal of achievements. This keeps me grounded as I know I still have a lot to learn but looking at my journal I can see I have learned a lot in my 2 years as a professional software engineer.
Hone your problem solving #
Improving your problem solving skills will help with bug fixes and in general working in web development. I found this a good article on problem solving.
Broaden your horizons and stay up to date #
Listening to podcasts and reading blogs are a good way to immerse yourself in the latest developments, get familiar with terminology, and learn about how other engineers think and work.
In addition to finding good podcasts and blogs, read some of the best programming books out there to get familiar with best practice programming principles, software design and other important topics which interest you. Here’s a post on some good books I ready last year (two of the books were recommend to me by my VP of Engineering).
It’s not just about the code #
Soft skills are important. If you’re a career changer like me your soft skills you’ve developed will stand you in good stead. When you work as a professional programmer, you won’t be coding all day every day. You’ll be interacting with other people on a daily basis. Don’t neglect your soft skills.
Understand process #
I’ll admit I’m a process geek but even for those who are bored by process, realise that at work process will impact how you and the team work, and it will be a major influence on how effective the team is. Whilst it will differ at each company, we follow Agile, with daily stand-ups and sprints, and follow GitHub flow as part of a release train process. Process is important and getting familiar with the basics e.g. how to open a GitHub pull request will help you get up to speed.
Focus on what to learn #
Focus on a few areas rather than trying to learn everything.
There’s a mountain of stuff to learn so have a plan. Something that really helped me to put some structure around my learning and a path to follow was freeCodeCamp, followed by Udacity Nanodegrees. You can choose a different education provider - and there’s lots of high quality out there - but following a curriculum put together by experts will help you to focus. This applies to getting your first software engineering job but I would also argue for continuing your ongoing learning.
An additional good resource to help guide learning activities are these developer roadmaps.
Avoid burnout #
Software engineering is a tough job. The temptation - with me at least - was to code at work and then do coding learning projects in my spare time. Whilst I still do this to an extent, it’s also important to be able to step away and recover and recuperate.
Have a hobby to get away from the mental stresses of coding. Spend time with your friends and family. Exercise. Seriously, do lots of exercise. This is a good read on how to stay fit physically and mentally.