CareerDiscoveries of a Junior software developer
Not every software developer has the same career in programming, still, everyone started somewhere - as a junior. Being a junior holds more challenges than expected and in this article, I’ll be sharing with you a few discoveries I was lucky enough to make.
You know more than you think you do
Starting fresh out of the university, a Bootcamp or a self-learning path, you accumulate a massive bag of knowledge. This knowledge gives you the confidence and ability to land a job.
The first day of my job is here, and I’m already questioning my career choice. Am I a software developer? I can’t seem to understand a word of what they’re saying 🤦🏼
The first quarter is over, and the second and third, and I'm starting to get more confident in what I have learned and the codebase is less intimidating. However, I still struggle with the thought: There is always more to learn, I barely know stuff.
When I saw the senior developers in my team excelling in some tasks and coming up with new ideas, I felt less confident about what I knew.
Of course, I always had in mind that they’re seniors, and it’s going to take me years to achieve the same, however, that doesn’t seem to be enough to shut the voice in my head telling me: “You don’t know enough”?
Well, let me tell you. You know more than you think you do.
Instead of looking at your brain as an encyclopedia where all the needed information is stored and directly accessed, picture your brain as a navigation system.
When you decide to go to a place, a GPS cannot teleport you there, but it will show you the way. That is what your brain does. It doesn’t know the information, but it will show you the way. You may not be using everything you studied before (of course, you won’t), but what you’re collecting with time is the ability to effectively access the information you’re looking for.
As a junior developer, I learned that I can’t know everything. My selective memory finds it hard to store information that I may or may not use one day. This is why watching complete courses were never as beneficial for me as I expected.
I decided to be more goal-oriented and spend my energy on creating easy access to information when I need it. I suggest creating a strong bookmarking system to store directions in your brain instead of random raw data. Next time, instead of memorizing a piece of code, having easy access to it and ways to use it will save the day.
It comes down to one concept: Understanding and storing the path, not the solution.
The ability to find the right websites, articles, and documentation is an underrated skill, and if effectively used, can lead to vast access to knowledge that juniors “assume” they don’t have.
Not all Juniors have the same knowledge level
Comparing yourself to seniors can be draining, but comparing yourself to other juniors can be toxic.
Keep in mind that not all juniors are on the same level. Everyone came from a different background. Some people started early by developing apps in school, and some decided to become software developers after a life career switch. Passion and exposure fluctuate among developers, and comparing two people with different levels of passion for software is like comparing black and white, which brings me to the next discovery.
You don’t have to be passionate about it to do a good job
“I Hate Programming. I Hate Programming. I Hate Programming. It works! I Love Programming.” - Anonymous
I started my career two years ago when I graduated with an engineering degree. I played it safe by choosing the software industry being the Boom and developers were in high demand.
I never questioned how passionate I was about it or if I wanted to keep doing what I do for the rest of my life (maybe that’s my comfort zone but that’s a whole different topic).
What I learned as a junior is that you can learn to love anything you’re doing.
I decided that I wanted to be a software developer, and I will find ways to like my job and enjoy doing it. You might ask, how? I got a simple formula for you.
Since I mentioned my comfort zone, sitting behind your desk (thanks to remote culture), getting the job done, and getting paid for it can be a smooth experience. Software developers are in high demand also salaries can be competitive.
Moreover, choosing the right company culture and environment could help you grow. In my not-so-long experience in development, the work environment can deeply affect your motivation and orientation.
My job at Factorial helps me appreciate the power of the company culture on your daily dose of motivation. A company where growth is encouraged, and everyone aligns on one purpose can play a huge role in defining your own goals in software development.
Factorial provided me with room for growth. You get to witness your direct impact, from solving bugs to developing features, getting feedback, and defining goals. At Factorial, I’m able to have immediate feedback about features I develop or bugs I solve. Also, I get to have an opinion on setting priorities for tasks as well as participating in quarter objectives. That’s all while keeping the bigger vision in mind. In other words, creating and feeling that you’re part of something big can be fulfilling.
You start liking a genre of music only by listening to one song or one artist, and when it comes to Tech it’s never far from that.
Find your idol in Tech. Find someone you admire for their skills and knowledge, someone you aspire to become one day, someone who, to you, is the ideal developer. That can push you forward to give the best you have. It could be one of your teammates, colleagues, tech blogger, or even a Youtuber with a bunch of tutorials of your framework.
It can be inspiring when you have a developer you look up to, especially if they provided you with a new and fun perspective on programming (if you don’t like the original one 😉). Also, it will allow you to share your thoughts, and concerns and get recommendations from an ex-Junior. I was lucky enough to have a senior developer on my team whose passion for programming and ideas inspired me to grow. He tends to use analogies to explain complex concepts which I find the most effective learning method.
Imagine a world where no developer has been stuck once on a task. 🌈
Now, back to the real one 😀
Bugs, mistakes, and unproductive days are a nightmare when you’re trying to kick off your career in development. They can hold you back from enjoying your job and cut your motivation by half. Acknowledging your gaps and targeting them is the best way to go. I’m mentioning three gaps here, but please do feel free to add yours 😉
The most effective way to fill this gap is by asking questions. Remember you’re a junior, no one expects you to know “what you don’t know”.
Before signing up for a 5-hours course on Udemy, try to gather knowledge from targeted articles on your specific issue. Long courses can be distracting from your main growth goal. There are a lot of platforms (Medium, W3Schools) for browsing junior-friendly articles.
Knowledge gaps are also created by a lack of mentorship. You can find learning resources everywhere in any possible form, however, you’ll need a mentor guiding you in your search. Your mentor can be your manager or an experienced developer in your team.
No matter how much we normalize making mistakes or learning from them and saying “no, I don’t know”, the confidence of a junior is fragile, especially at the start of their career. Picture your confidence as a Jenga tower, easy to construct but still easy to destroy with one nudge or misplaced piece. What I experienced in confidence building, is that you can get far and have a confidence spike right before a tiny bug takes down that Jenga tower.
One day, I stumbled upon the Dunning-Kruger Effect, defined as “a type of cognitive bias whereby people with limited knowledge or competence in a specific area largely overestimate their knowledge.”
This graph illustrates how competence or knowledge can affect confidence. If you zoom in on the beginning of the confidence axis, you notice the exponential growth of confidence with little to negligible acquired information. A junior with limited knowledge can suffer from confidence on steroids.
Self-awareness or self-assessments can help alleviate this steroid effect. Journaling lets you keep track of your competencies and keep you mindful of your knowledge so you can balance your confidence.
Here’s what I suggest: a simple grid where you can log every bit of knowledge you’re gaining (or just what you would find necessary to be noted down). It’s a twisted way to log your TIL(Today I learned). First, the information you acquired, where to use it, and how, finally, whether it can be followed by future actions to complete your competencies.
This method can induce more mindfulness in your learning by finding patterns over time and studying the direction you’re growing in. It’s also a reference for repeated problems that we may forget how we solved in the past.
Unfortunately, external factors also affect your motivation such as your team, your environment, or your company culture overall.
Joining an existing team as a junior can hold many challenges, such as trying to be heard, finding common ground with your teammates, or maybe just showing that you’re part of the team. At this point, communication is key, and making your concerns known constructively will make an immense difference for you and the people around you.
Anytime you may doubt the validity of your concern, ask yourself the following two questions:
- Is it ethically valid and does it conform to the company policy?
- Am I raising my concern to the right person/party?
By answering “Yes” to these questions, you’re good to go!
Urgency definition is expansive when it comes to tech companies. That being said, you need to rely on your company culture to understand it. Be sure to define ”urgency” with your manager or team lead so you can know the margin you’re allowed to stay within, without draining yourself or doing overtime.
Remember, the world is not on fire (at least until now). A sense of urgency can be misleading while you’re a junior developer exploring the coding world. 🌈
In conclusion, my journey as a Junior has been a rollercoaster with challenges, breakdowns, and celebrated wins. It’s never riding a straight upward elevator, but rather climbing a bouldering wall while gripping onto the strongest handholds. Nevertheless, the direction is always upward. Hopefully, this article provided some strong handholds for you. Thank you for reading 🙇🏼♀️