So you survived your first day on the job. First week. First month… now what? At the end of my first 4 weeks as a software developer I felt useless at best and like I might get fired at worst. Here I was making more money than I ever had while barely contributing to a codebase that I did not understand and pestering my co-workers about the processes for deploying, reviewing and creating code on a daily basis. Maybe I’m not cut out for this I thought.
Did my co-workers resent me for all my questions? Was the boss waiting to fire me? Why did they even hire me? I was filled with self-doubt for the better part of my first year and as my end of year review approached I increasingly felt like I might get ripped apart and resigned myself to the fact that my review would probably be pretty critical. Did I mention I’m a but neurotic? Didn’t know if you could tell.
Surprisingly, despite a fairly high profile bug I created, my inability to take on some of the more difficult assignments and what seemed (to me at least) like my constant pestering, my manager was actually really happy with my performance. Huh? While he didn’t site my superior coding ability as any of the reasons he was happy to have me on the team, he was impressed with my willingness to take on whatever task was asked of me, my incessant curiosity and my grit! What I lacked in technical ability I consciously tried to make up for by assisting our senior engineers where I could: with mundane and repetitive tasks or with dreaded in person phone calls to our customers to triage issues.
I was shocked with delight at the end of my first review as a developer. Since then, I’ve had the opportunity to mentor other junior members at different companies and I’ve learned to appreciate the same things my former manager mentioned in my review.
If you are in your first year as a developer, here are some of the things you can do to not prevent self-doubt from eating you up from the inside and contribute to you team:
We spend a lot of our time at work with other humans. It helps to like them. A little at least. Software development can be incredibly stressful and having teammates that show up with a positive attitude makes dealing with critical bugs and creeping deadlines a lot more bearable.
Basically, don’t be an asshole. If you are one, try and fake being the opposite. As a developer who is likely at the bottom of the totem pole, you want to make sure your team doesn’t have incentive to let you go. Ace McCool, the super senior developer that grumbles at every meeting and berates others may get away (though he shouldn’t) with being a downer because he knows that one critical piece of code that no one else seems to understand but you need to find other ways to be indisposable…
Offer to Help
Is one of the developers struggling to write a unit test? Having difficulty with a complex query? Offer to help. Yeah, I get that you likely won’t know how to troubleshoot their problem, but a new set of eyes on an issue never hurt. Maybe you can be their life-size rubber duck. It’s surprising how often we tend to figure out solutions when explaining a problem out loud. This will help you get to know your teammates better and offer a chance at some low cost pair programming.
At worst, you have just learned more about the codebase and at best you’ve helped a developer on your team get unblocked. Win!
Do the Grunt Tasks
At standup, the team gets a last minute request to change the color of a button, or update some text. Something CSS related… the room collectively groans. This is your time to shine. Mundane tasks like these don’t really push the team forward but they must get done and the optics of you offering to help when others may not want to, will reinforce their image of you as a good teammate, despite how trivial the work is. Take the easy wins!
Can I Shadow You?
Is there a developer working on something well outside your comfort zone? You wonder how you would ever tackle that assignment if it was thrust on you and you have no clue. Good. This is a prime opportunity to learn from someone else. Ask your teammate if they can invite you to pair when they are working on a piece of the code that would be beneficial for you to see. If they are reluctant, ask to be added as an additional reviewer on their pull request.
Whenever you hear of a task that you don’t think you would be able to accomplish, look at it as an opportunity for you to learn how you might approach it.
A wise person told me that your first job is the training for your second job. As a first year developer, your job is to learn and grow. You will make mistakes and feel useless at times. The worst thing you can do is focus on not getting fired and forget about your own personal development. Write code outside of work, write down what you’ve learned from your team and the contributions you’ve made. Look back on these notes when you’re feeling down and hopefully you’ll realize that you’re doing better than you think.