I was lucky enough to get myself a job (through the amazing Ada’s list!) the Monday after Makers Academy finished. So it’s been nearly three months now since I started as an apprentice developer at Happy Bear Software.
Here’s just a few things I’ve picked up along the way… some points more specific and technology based, other points more general:
1. Don’t Freak Out at Existing Codebases
When you’re learning to code, you’re likely to be creating projects from scratch which is great for understanding how applications work and fit together.
In the real world, you’re more likely to be working with existing projects which are often big and sometimes.. a bit ugly. This threw me at first. How are you meant to fix a bug when you can’t even track down the code that’s causing it?!
Maybe it’s something that comes with experience but I can’t scan through a codebase and understand how it all works. Keep calm and track down the specific piece of code you need to work with and focus on that. Learning by doing is much more effective than just looking and as you explore different areas of the codebase, you’ll gradually see how it all fits together.
Making some edits on open source projects would be a great way to practice working with existing codebases.
2. Use Git Responsibly
I’d got myself into some pretty bad Git habits. “Git add .” was my best friend and you’d regularly see commits which looked a little like this: “dsdfsdfsdukdjuyuerjlkds i did a thing”.
But when you’re working professionally (and especially with clients), that just won’t cut it. Commits need to clearly describe a change in the codebase and the committed code needs to be exactly that code that makes the change.
Commits should clearly tell a story to others working on the code and should be specific so they can be cherry-picked if needed.
Therefore, it’s best to get in good Git habits even for personal projects. Make branches for new functionality and banish “dffsdsfdsfsdf” commits to the past.
3. Clarify, Clarify.. and then Clarify again
When you’re a junior developer there’s probably a part of you that wants to prove that you’re capable, that you can do things without help and that your employer didn’t make a massive balls up when hiring you.
And it’s definitely important to try to be self motivated and self-reliant but you need to strike the balance. If you’re unsure about a client’s request, ask them. And if you’re unsure if you’re going down the right path with your implementation (or even if you’re pretty sure but some confirmation would be nice), outline your plan to a senior developer and see what they think. Better five minutes of their time rather than you going off down a rabbit hole for hours and emerging frustrated and empty handed on the other side.
As a junior developer, you’ll be expected to ask questions so ask them :)
4. There will be Ups.. and there will be Downs
There will be days when you think: “I suck”, “HOW did I think I was ever cut out for this?!!”, “I wonder how hard it would be to reskill as a dolphin trainer”. You’ll be stuck hunting an elusive bug for hours and hours and the code in front of you will be swimming before your eyes.
Minutes later and you’ve fixed it. You think.. “actually I’m pretty awesome. I’m one of those rock-star developer/code ninjas all the job adverts talk about!”.
The road to code is anything but smooth. I wonder if senior developers have the same intense ups and downs or whether they’ve just learnt to ride the waves a little better.
5. Share your Knowledge
Teaching other people is one of the best ways to solidify your knowledge. I’ve recently volunteered as an instructor with Code First: Girls and Rails Girls and they’ve both been great experiences.
Teaching forces you to uncover and fill in gaps in your knowledge and trying to explain technical concepts simply and clearly can really help you to get your head around them as well.
Being a junior developer can often feel like being a tiny fish in a very big pond so teaching others also helps to remind you how valuable your skills are and how far you’ve actually come.
Plus, there’s the benefit of hopefully encouraging more people into the tech industry so it’s winner winner, chicken dinner all round.
6. Get yourself a good set-up
I put off getting a MacBook. I didn’t like feeling like a sheep and there’s also the small factor of.. the price.
But with my old laptop taking approximately five years to boot up every time, I decided to take the plunge and I haven’t looked back since. I’m sure people who know more about computers than me will say that it’s not necessary to have a MacBook but for me it’s made developing 1000% easier.
Whatever you choose to program on, this will be your most important tool. Invest it in, give it a name, buy yourself a fancy clicky keyboard and cover it with stickers like all developers seem to do.