Last week we spoke about how most challenges that a junior developer must face in the first jobs can be reduced to four main roots. Right after, we also established four pillars that will sustain a successful career development, preventing empty spots when the four of them are naturally combined in your work routine. The mentioned four pillars of a successful and fulfilling career were:
- For reaching expertise: Do tasks in pairs with experts.
- For getting used to working with other people (and not only your teammates!): Participate in meetings.
- For gaining confidence: Do tasks on your own.
- For finding out if you enjoy your career: Research, practice, learn.
Now, let’s dig into how each one of those pillars helps the junior developer.
Do tasks in pairs with experts… to feed your criteria
In arts or sports, watching top performers is one of the most inspiring activities and when we want to achieve something in those areas, we try to imitate them. Software engineering is no different, so don’t waste an opportunity to look at experienced people in action. Work also comes with an advantage: you can ask the expert working with you: “Why doing this?”, “Why not do that?”, “How does this lead us to our goal?”. With the answers, you’ll find a priceless stream of battle-tested criteria that costs a lot of time and effort to obtain.
In addition, have you ever experienced that enlightening moment in which you discover something that could have saved you a lot of time if you knew it before? Well, all of us have; wasting time because not knowing about that tool or that shortcut is a scar on everyone's careers. Whatever you think is the shortest path, it might be a naive approach to more experienced eyes. Vietnam War memories will then do their job and you will be taught about that painless way to achieve the same goal.
Some people (actually A LOT of people) fear being watched while they do their job. That’s a reasonable reservation we have because we all have our pride and dislike the idea of someone hurting it. Regarding that fear, here comes a wonderful secret: when you are a junior, you don’t have much to demonstrate, any reasonable coworker will know you’re not there to show world-class skills, so put any kind of pressure aside. Do you fear failing miserably with your teammate knowing? Don’t worry! Your position will not be hurt and being corrected after a public failure makes some knowledge to be recorded with additional strength. Those lessons are the ones that are less likely tofade away.
Participate in meetings… to feed your empathy and communication skills
Hey, not so fast! Don’t understand this as a command to start speaking about whatever you think suits any meeting. Fortunately, you don’t need to try hard. Communicating is not only about speaking but also about listening and reacting. Being able to extract useful information from any speaker’s words is a must-have for any successful professional. If you don’t think you have much to say, you’ll probably have much to listen to.
It’s pretty sure you must face meetings since day one, and the odds are high you despise them as time-wasters (some meetings succeed at that, indeed). But any reasonable meeting is an opportunity to realize the myriad of different concerns that surround you, no matter if they come from teammates, users, clients, or investors… paying attention to those concerns builds empathy. You’ll also see how someone (your tech lead, your product manager…) is able to modify the tone depending on the audience; many lessons to get from that. Keep an active attitude even when not actively participating, because learning doesn’t get along with passive attitudes. As well as you learn some hard skills by watching and imitating, you can get soft skills that way too.
Before going to the next pillar: Praise code reviews. They are the meeting point between working in pairs and communicating with others. It is an invaluable 2x1, plus the increased effect of seeing how your mistakes are being signaled (pssst… it only works if combined with humility).
Do tasks on your own… to feed your confidence
This one is easy, right? What’s the point of being hired if you are not able to do anything on your own?
Well, the point here is that focusing too much on doing stuff in pair programming or being the eternal learner will never take you out of that phase of, yes, obviously, being a learner. As said before, they’re four pillars as the four of them are needed to grow something in balance. You know: jump to the pool in order to start swimming. If you see you’re not being given enough autonomy, then demand it. Being able to make achievements alone is as important as feeding your criteria with curated help.
Furthermore, try to face new milestones of difficulty. If you make a mistake or the task surpasses your expectancy, don’t worry too much, you’re not completely alone and in the end, whatever help is needed will come to the rescue. If you don’t do those hard tasks, then you’ll never see a proper time to do them and your career will have an ill growth. Fight stagnation as if it was one of the worst demons menacing your life.
Research, practice, learn… to feed your curiosity
A professional career is expected to last decades, you better enjoy it when possible.
Fortunately, I personally find the software development field a rewarding one for those that are driven by curiosity. With a huge amount of resources about how stuff is built and how you can get similar results, it is a kind of paradise; but I also understand this might not be such a pleasure for everyone, so it’s also a way to discover early enough if this professional field is adequate for you. The fast pace of software engineering is secret to no one, let’s check if you can get used to it and its hungry demands.
Read blog posts, search for best practices (if stuff like SOLID principles still sounds strange to you, this is the right time to settle the lacking theory), try new technologies, get out of your more immediate area of work… in other words: sharpen your skills and discover what’s ahead of your job’s backlog. If you’re doing web development, then what does embedded systems programming look like? If you’re specialized in machine learning and neural networks, why not explore data visualization? Taking a sip out of your usual tasks and tools might discover a new passion or make you find unexpected ways of integrating technologies that are not usually seen together. Maybe you just learn how to do the same, but faster or with fewer risks.
This continuous learning is also the only way of keeping up to date in such a fast-paced world. In fact, no matter how junior you are, you can easily become your team’s expert in a side area or in new technology. Why decline that rewarding opportunity?
Wow, what a trip. As you’ve seen, I didn’t come up with niche stuff or esoteric methodologies, I just recommended four activities that are pretty usual in a healthy day-to-day job, so they all should be at your hand. If looking for an accessible plan, there’s no point in recommending a path full of hardly reachable milestones, right?
The key resides in keeping the proper mindset that lets you know what you must pursue in any of those activities, in order to obtain real value and not leaving any of them out, being sure all the four pillars have their respective share. A spread of 25% for each one can be a good enough plan, although the distribution can be liquid if that fills your schedule better. If you have almost no meetings that week, join a senior and do some extra pair programming. If those last Friday hours are not the best to start a long task, researching how your team’s CI/CD pipeline works is likely to have a good pay-off in the long term. Just don’t neglect any pillar!
Selecting technologies, switching jobs, embracing entrepreneurship, assuming leadership, becoming a speaker… These ones are specific decisions and milestones that should appear gracefully on top of the four pillars if they are properly maintained. Of course, these particular scenarios require support, so here's where I think Nova’s Software Cluster and a Talent Agent provide priceless resources and insight, especially for the gaps a simple article like this one unavoidably might have.
Another day, I’ll write about the role we more senior engineers can (and should!) have in the junior’s guidance. Supporting juniors is helpful for them and helpful for ourselves. Stay tuned!