Hey, it’s me - you a year in the future! I know, you've just finished your coding bootcamp and that previously your experience with programming wasn't much grander than getting your laptop to run “Hello, world” in Python, but soon you will accept your first job as a programmer - and you’re going to love it! You're going to do a great job, but you could have done even better, and so I thought I’d pass on to you the gift of hindsight to help you make the most of your first year in the industry:
Get stuck in - You're not going to get a job at a brand-new startup, so you are going to have to get to grips with some ☠️legacy code ☠️. It can be a staggeringly difficult to navigate your way around, while keeping in mind what you have found and what you are looking for (and why you ever even started...). It can be incredibly daunting to look at the hundreds of lines of code, and it’s entirely natural to feel overwhelmed. The only way to get over this is to get stuck in - start wading your way through (by yourself, where you can), trying your best, and you'll get used to the code and how it has been written - you will soon realise that you know more than you thought you did.
Get bored - Read my blog post here about why I think it is important to allow your mind to wander. The TLDR is: try and let your brain recover by giving it some time, every day, of peace where your mind isn't getting saturated by podcasts, twitter or reddit. Get bored and let yourself relax for a bit. It has done wonders for my state of mind.
Get feedback from your peers - You are going to join a team where your colleagues have a lot more experience than you. Rather than feel disheartened or discouraged by this, you should make the most of this opportunity and take advantage of their knowledge. Try and expose yourself to their skills by teaming up for some pair-programming, ask them for some feedback on your approach by regularly asking for it, and (more importantly than anything else) get them to review your code. Having your code reviewed not only gives you confidence that you aren’t going to break the product, it also lets you know where your shortfalls are and gives you an opportunity to know how your colleagues would approach problems in ways different to your own. It can be quite easy to be offended initially, or take code review comments as a criticism of something that you have created, but it’s important to view the code not as your baby but as something that your whole team are working together to create and perfect.
Give yourself a break - Programming is hard, and no-one knows everything. It’s really important to acknowledge this early, as you will be working with people who know a lot more than you which can lead to you feeling inferior or that you aren’t actually good enough (also known as imposter syndrome - something I’m not going to try and get into, but these blog posts might help you feel a little better about it). Remember that you are brand new to this, and still learning, and at some point in the past those really experienced guys in your team were also in this position once and they made it - so can you.
Look stupid - So, you hate asking questions that you know everyone else already knows the answer to, and you don’t want to waste everyone’s time (or look stupid) by speaking up. The thing is, no-one cares to remember you asking that question, and may actually respect you more for having the guts to speak up. Also the chances are good that someone else in the room doesn’t know either and you are helping them out as well as yourself. So ask, fill your knowledge gap and potentially unwittingly help someone else who is afraid to speak up. If I still haven't convinced you, make notes throughout the day of anything you didn't understand and read up about it when you get a chance.
Don’t put off starting that project - It’s really easy to think up that cool project you’d love to start but can't shake the “I’ll just wait until I know (insert technology here) better”. By the time you know that technology better, you’ll also want to perfect your other tech skill too, and you’ll never get there. Just dive in and start something; you'll probably realise that you need to know more about yet another technology along the way anyway - but at least you will have started something and know exactly where you need to focus your energy and time.
Plan your study time - One thing that I wish I had done early on is to plan what I was going to study. I’m really lucky that my workplace offers specific training time each quarter, and one thing that I do now is plan out specifically what I am going to use that for a year (or more) in advance. This means that I have to know where I want to be and what I want to know a year in advance and means that I don’t bounce between learning technologies that might not actually help towards my long-term goals. This also allows me to plan any out-of-work reading that I want to do to support these quarterly sessions. Also don't get caught in a tutorial trap, where all you do is learn the basics of something shiny and new - put those skills into practise and make something yourself.
So enjoy the next year - it isn't going to be easy, but you are going to learn more than in any year since you left school and have an incredible time along the way - make the most of it!