The first six months
Lessons learned as a junior developer
August 24, 2022 Ā· Felipe Vogel Ā·- Find balance
- Keep up your learning journey
- Donāt be a silo: connect more, communicate better
- Conclusion
Iāve reached a milestone: six months into my first developer job š Time for some reflection! What have I learned? If I were to give advice to myself six months ago, what wisdom would I impart? Here are a few highlights.
Find balance
Learning the ropes as a junior developer can be exhausting, especially if you have a competitive āgotta get tons doneā personality like I do. Impressing your peers and exceeding your managerās expectations feels so good that itās hard to slow down.
But the cost is real, as Iāve been painfully reminded. A couple times already Iāve gotten into a cycle of overwork āØ burnout āØ lethargic exhaustion āØ panic āØ repeat. More recently, here are some ways Iāve found to stay out of that unpleasant cycle:
- Give pessimistic time estimates. When your manager asks how much time youāll need to finish a project, resist the fear of giving an embarrassingly long estimate, because what you think is a long time probably isnāt. Expect unexpected delays. After I was burned by a short deadline of my own making, a more senior colleague suggested that I add in a 1.5ā2x ācontingency factorā to my estimates.
- Put rest into your work rhythm. Despite my best attempts, Iāve found it impossible to work at a completely steady pace. (Even break timers donāt work for me, because I tend to cancel the pauses or close the app entirely if Iām āin the zoneā and donāt want to be interrupted.) Iāve accepted that there will always be crunch times when I need to do a lot of focused work, and there will always be slower times when not as much needs to be done right now. Rather than stressing about how to flatten that up-and-down, Iāve found it more helpful to take advantage of the slow times, using them as a chance to rest. Donāt immediately pile on more work when youāve just stretched yourself to finish something. Attune yourself to the ebb and flow, and look for chances to step away from the computer, quiet your inner restlessness, and rest.
- Maintain healthy habits. On the other hand, itās good to keep up a healthy routine even in the busiest times. Find a few things that help you relax and stay happy, and donāt beat yourself up if you donāt get around to doing all of them every day. For me these things include:
- Reading. I love reading because a good book gives me energy and relaxation at the same time, even while expanding my horizons. Try to find a hobby that does that for you.
- Latin. A more social hobby for me is spoken Latin. (Yes, thatās a thing.) Whatever it is for you, regularly doing something fun in a group can provide a refreshing change of pace from your usual day-to-day.
- Mindfulness. The Balance app is great, and free for the first year. I rarely enjoy mindfulness, but it helps me avoid bad thought patterns and appreciate the little things in life.
- Building up relationships. For me this means spending more quality time with my wifeānot just watching more Netflix, but trying new things together (this summer it was camping), and making an effort to listen more and be a better companion. Iāve also been reconnecting with old friends. It takes effort to do all this, but thereās no replacement for the love of family and friends.
- Going on walks. The exercise makes me feel good, and itās another chance to talk with my wife, or if Iām alone, to listen to audiobooks and podcasts š¤ But itās also nice to take off the headphones once in a while and just look at the trees.
- Lying in bed daydreaming. Iām not kidding! Even a short 10-minute burst can be very refreshing. To get there you might have to retrain your imagination, but itās worth the effort.
Keep up your learning journey
For two years before I got this job, I learned programming on the side while working a āpay the billsā type of job. It was a huge relief to put that stage behind me, but a few months into my new job I found myself missing the freedom and adventure that I felt when I was learning programming.
Thankfully it was an easy fix, because I was the one holding myself back. Juniors at my company are encouraged to take time to deepen their skills, apart from product work; I just wasnāt taking the time. Part of the problem was that I simply needed to slow down (see above). As soon as I did that, it became easier to spend an hour here and there on learning and deepening my skills.
Iāve found a few other practices useful in maintaining a learning habit:
- Set goals. Identify one or two areas where you want to improve, and focus on those. For me it helps that I already have lots to choose from in my āLearn Rubyā list, which Iāve been building up for the past two years.
- Keep an open mind. Even as a junior itās easy to think that you know better than most other developers, or to turn your nose up at X or Y bandwagon that your companyās developers have jumped onto. But if you resist that close-mindedness and try to see the good side of even the technologies and techniques that you donāt like, then youāll learn a lot more. That happened with me a few months ago, when I spent time learning more RSpec, and it finally clicked in my mind and I started to appreciate its strong points.
- Find mentors. If youāre not getting much one-on-one guidance at work, I suggest (a) asking persistently until you at least have someone who can check in with your learning on a regular basis, and (b) looking for mentors outside of your company, such as at First Ruby Friend. The Rails subreddit is another good place to find a mentor, and Iāve found the StimulusReflex Discord server to be a welcoming place for my questionsāand I havenāt even learned StimulusReflex yet, but they have very active channels for Ruby, Rails, and lots more.
Donāt be a silo: connect more, communicate better
Working remotely (as much as I love it) can make it harder to connect with others unless youāre very intentional. I mean this both in the sense of getting to know my colleagues, and also in the sense of hashing out important information.
An example of the latter is communicating with all stakeholders and making sure weāre all on the same page. Iāve found myself in situations where different people want different things from a new feature that Iām working on. The first time this happened, it was fine because I just added extra features that werenāt in the original spec, and everyone loved it. A few weeks later, as I worked on a different new feature, I again made adjustments mid-course based on feedback from a stakeholder, but this time it didnāt turn out so well. The adjustments I made departed from the original spec in ways that I realized were unacceptable only after a barrage of questions and complaints from other stakeholders. I then had to rush to redo some of my work on my last two days before going on vacation. Moral of the story: donāt be the monkey in the middle! š Get everyone together in the same room (Zoom call) if necessary.
As for getting to know my colleagues, I did great at the beginning when I scheduled an introductory Zoom call with each and every person in the product and engineering departments. However, it wasnāt long before I lost touch with even the handful of juniors that started at the same time that I did, and only now am I reconnecting with them. My hope is that we can get back to telling each other about our struggles and successes, as well as sharing new things that weāre learning.
Conclusion
I have a few other regrets about the past six months, but they all go back to these three lessons Iāve learned: find balance, keep learning, and donāt be a silo.
More fundamentally, Iām trying to shift my focus away from regrets and mistakes, and instead appreciate all that Iāve learned. These lessons are already helping me be happier and more fulfilled, and that makes me even more excited for all that Iāll learn in the next six months.