11 Things I’ve Learnt about Becoming a Software Engineer; After a Coding Bootcamp…
I’ve been a Software Engineer at Gousto (a recipe box delivery company based in London) for six months now, so it felt like a good time to look back and reflect on what I have learnt on my coding journey so far.
As a quick intro into how I got to Gousto: In early summer 2018, after working in roles from Account Management, Project Management, Marketing and Sales, I realised I needed a change in my career. I felt like I had stopped learning anything new and that a whole part of my skill set, analytical thinking, wasn’t being utilised — and it didn’t feel great.
After what I would like to think was a not-quite-mid-life-crisis, I realised that my passion for tinkering with code and wanting to improve customer experiences hinted that becoming a Software Engineer could be my calling. I enrolled in the Le Wagon coding bootcamp in London and spent nine weeks learning what it could be like to be a web developer. And I loved it!
So without further ado: I like lists, everyone likes lists — here are my 11 things I wish I had known when I started…
1. Believe in yourself
I came out of the bootcamp feeling I had learnt a lot, but still thinking … “could this possibly be enough for someone to employ me?”. It’s all well and good finding a skill you love but you also kinda need to work and earn some money — and finding a job as someone with no actual work experience in a field is not that easy.
This is why I will be ever thankful to Matt Young (one of our Software Engineering managers) and the Gousto team for taking a chance and giving me the opportunity to join as a Junior Front-End Software Engineer. I was their bootcamp Guinea Pig (I kid you not, in my first interview here I asked to be one! Squeak squeak).
Believing that I could do the role and putting myself out there for interviews was the first step in beginning my new career.
There are still times when the dreaded imposter syndrome pops up — but looking back at where I was a year ago, I can’t believe how far I have come, and that was all down to working hard and having the support of a great team. Which leads me into…
2. You know so much more than you realise
It turned out that once I started at Gousto I knew far more than I realised and within two weeks I was working on my own tickets and putting my own code in production. It felt amazing.
I also soon found out I could challenge the ‘how’ of what we were doing; and that was because I was fresh out of learning and was close to the basics. Reading a lot of articles, especially around the fundamentals, doing online courses, playing around on code-pen — my new set of eyes allowed me to see things in a different way (and hopefully meant the team learnt a thing or two from me as well).
3. It is OK to ask for help — a lot (and always take notes)
I feel so fortunate as everyone at Gousto has never hesitated to help and support me, but at first I didn’t want to come across as such a newbie, so I would just listen and watch. This is just a recipe for disaster as you can’t make sense of things if you don’t know the ins-and-outs of why things are done the way they are. When I started asking questions and challenging, my learning started to sky rocket.
I also take copious notes on everything. When you are learning so much it is easy to forget or get things muddled up. Now I can always go back to my notes for a refresher (so I don’t annoy people by asking the exact same questions); and share them with the wider team who keep asking me to share them or write up official documentation on things!
I am a big fan of screen shot-ing code or taking photos of notes from meetings and adding them to google docs, or just copying lines of code and annotating these. It’s pretty simple and old skool — but it works for me. My advice to any newbie is to find what works for you. I now look back at some of the first things I wrote which are second nature now, but for the next bootcamper that starts at Gousto, this could be a great starting point for them to learn from.
We also do a lot of pair-programming and whiteboarding at Gousto which is the perfect environment to learn by asking questions.
4. Google is your best friend
The one thing I have noticed more than anything is that even the most experienced engineers are googling all the time — and that is such a relief. Syntax changes, new problems arise and things break — no one is expected to know exactly what to do all the time, and anyone who tells you otherwise is telling porkies.
My work set up is three screens which are permanently set to 1. Visual Studio Code (or the terminal, but VS Code is the best IDE IMO as the terminal is built in — and it is free), 2. LocalHost in the browser and 3. Google — slack floats around in the background too — we have a #freefood channel where we get to try all the upcoming Gousto recipes and I don’t want to miss out on that.
5. Don’t only apply for jobs in the language you learned
6. Coding isn’t just coding
When I was learning how to code I had no idea what a job in coding (software engineering, web development, tech — call it what you will) actually involved — and my mind has been blown. A large proportion of my time isn’t spent in front of a computer writing lines of codes — but involved in sprint planning, workshops on how to implement new features, helping make changes to our platform set-up up on AWS, “css-fun-time” sessions, demos and much more.
For someone who comes from a working background full of meetings and context changing this has been a godsend, as it means I get to ease into coding life by being involved in lots of projects and understand the big picture — which I love. However, I am now starting to cut down on these meetings so I can spend a good chunk of my day coding — and have joined in with ‘Gousto Makers Time’ where we are encouraged to block out our diaries from 2pm to the end of the day, each day, so meetings don’t interrupt us in the afternoons.
7. Non “coding” skills are super valuable
Coming from a non-tech background my previous experience hasn’t gone to waste. In fact, it was one of the main reasons I was hired at Gousto. Having strong business acumen, knowing how to work in a team and manage people, leading client meetings, presenting in front of hundreds of people and being active in company social life were all skills and experiences I could draw on to get up-to-speed quickly.
This has paid off; and in my six months here I have been involved in setting up the Tech-Team Social Committee, starting #pubclub, helping to run our twitter channel @GoustoTech, running the working group to improve onboarding into the tech team (blog post on this coming soon..) and supporting on meetups in the office. I can be vocal in meetings, have strong opinions and liaise across the business to help us drive our work forward.
8. You don’t have to code in all your spare time
I started off thinking the only way I could get better at my job was dedicating as much of my spare time to coding as possible. This soon became overwhelming and I was tiring myself out during the week. Now that I use my time at work to ask questions, pair with different people, attend code-dojos, lunchtime talks and work on Tech-10% projects (at Gousto we get every other Friday to work on projects we choose with the only caveat being they can benefit Gousto in some way), I am learning far more because I am not tired all the time and can absorb the relevant info from far more experienced people.
I still have a side project I work on and read articles, do exercises and play around trying new things — but that’s only when I have the time and am feeling refreshed. I make sure to have a good social life first and foremost with coding being something I do to relax rather than a chore.
9. Learn what you need to know; and what you don’t need to know
This is one of the biggest learning curves for me post bootcamp where I was spoon fed a curriculum. Where do you even start when choosing what to learn next? It is easy to get swamped and bogged down in all the resources out there and flit between different topics, learning styles and formats — I did this to the point where I was actually putting off learning as it was overwhelming.
The skill I have found most valuable is working out what I definitely need to learn and what I can just look up (refer back to point 4). What helped me most is sitting down with my manager and a couple of colleagues and mapping out the different big areas, and then subsections, that would help me get better at my current role. Now I have clear learning plan of where I need to up-skill and can keep track of how I think I am doing. Using this plan I now ask colleagues for the best resources that they have used and found most helpful. This has made everything feel more manageable and I don’t get that feeling like I need to learn everything right now.
I also have set time in my diary for learning during the working day (usually 30mins) that my manager and I choose topics for. I then report back on what I have learnt in our 1–2–1’s, which keeps me on my toes and means learning is still a big focus of my job.
10. You really need to know git and github — and collaborate well
On my bootcamp we used github a bit but I didn’t take the time to really understand how it works — it turns out the more you understand it the easier your coding life will be. The stereotype of coders being geeky introverts who always wear their headphones and communicate only through slack is actually only partly true — the reality is we pair more often than not, do thorough code reviews and ask for feedback — so having a good knowledge of git and github and how to do proper commits is invaluable (I am slowly getting there still though!) Pro-tip: when you start as a professional coder never, ever again, git push origin master.
11. Working for a company with a product you believe in is so important
Gousto absolutely rocks! I believed this before I started working here — a cool product people are super passionate about (including me), an amazing sustainability pledge and values I share. So it was a no brainer to apply here — and from the first interview I knew it was full of people I wanted to work with. Being in a new job is hard enough, let alone a new career — so not having to worry about whether I would make friends, whether the work was interesting and did I have great benefits made all the difference.
It can be tempting when starting out in a new career to take the first job you get offered (and I totally get that for a lot of people you don’t have a choice — you need a job, and now!!) — but if you have the luxury of being a bit more choosy then finding a company that is right for you will pay back in more ways than you can imagine.
If you are thinking about embarking on a coding career, have already signed up to a coding bootcamp or have just graduated — I wish you all the luck and hope my 11 points have helped in some way.