The Struggles of a Junior Software Developer
Introduction
Starting out as a Junior Software Developer can be challenging, but if you are motivated and results-oriented then 6 months is enough to acquire the necessary skills to get hired at an entry-level role.
From then on, depending on one’s work ethic, effort, consistency, and determination, a developer will level up to a senior role in the Software Development space as their experience continues to improve.
It never gets any easier. In fact, it goes way downhill before it gets better for most Developers starting out or otherwise.
Jack Ma once joked;
“Before you turn 30 years old, follow somebody. Go to a small company. Normally, in a big company, it is good to learn processing; you are part of a big machine. But when you go to a small company, you learn the passion, you learn the dreams. You learn to do a lot of things at one time. So before 30 years old, it’s not which company you go to, it’s which boss you follow. A good boss teaches you differently.” -Quote source: According To Jack Ma, This Is What Your Life Should Be Like Between 20 And 60 Years Old published by Liang Hwei.
I’ve had a number of struggles while improving my development skills as my learning curve was mostly steep but the results and lessons are all worth it.
The Struggles
The struggles of a junior developer are usually ignored and often overlooked when addressing Software Development issues or even mentoring Junior Software Developers. But I’m blessed to have had some really good mentors and colleagues during the period I worked as a Junior Software Developer.
- Tutorial purgatory is one of the biggest problems Junior Software Developers struggle with in my opinion. This is when a Software Developer spends more time on tutorials and less time actually doing any Software Development work. I too was a culprit until I found this interesting read by Tony Mastrorio on FreeCodeCamp; How to escape tutorial purgatory as a new developer — or at any time in your career. I think all Junior Software Developers should read it and I wish I had read it when I was starting out.
- In Software Development working with experienced developers, technologists and visionaries can help one overcome a lot of difficulties & challenges when starting out. Most Junior Software Developers often struggle to accept this reality. In most cases, it’s because of ego and sometimes due to a lack of proper guidance and mentoring.
- For any Junior Software Developer, having the right people with positive energy, tolerance, and dedication helps in their professional growth in the Software Development space. It’s important to know that learning struggles and task execution problems never end.
- To excel as a Junior Software Developer, you need to stop making excuses & procrastinating. Multitasking too! — Handle blockers immediately rather than later. It’s important to understand that the problem you are avoiding or procrastinating on never really goes away. Rather it feeds into your next day’s tasks.
- A lot of Junior Software Developers suffer from Magpie Syndrome. — a situation where one is constantly jumping from one new technology, programming methodologies, or framework to another. This is usually a result of inexperience, little technical knowledge, or sheer technical indiscipline thus the excitement to try everything or “trial & error”.
- As a Junior Software Developer, learning new technologies, stacks and languages can be challenging. Thus the need to exercise a great deal of patience and have the willingness to listen. — If you can’t listen and take constructive criticism then Software Development is not your calling. Most importantly, knowing where to find the right tools and seek the right advice is instrumental to a Junior Software Developer’s Professional growth.
- Depending on your stack, technology industry, and workflow, knowing the right forums, and chat rooms can be very important. Start with Stackoverflow and move on from there.
- Communication and teamwork are key components of a Junior Software Developer’s professional growth. — Being able to articulately report on tasks and projects is very important in the career of a Software Enginer or Developer at any level. Most importantly, you need to know, understand and align yourself with your team’s collaboration language.
Conclusion
As a Junior Software Developer looking to carve a path for yourself in the Software development space, try to get into the habit of talking about your conquests and celebrating the small successes too. — If possible, teach someone else what you’ve learned or share it in the form of technical writing. This reduces the chances of you forgetting what you’ve learned. And it gives you room to learn from others within the networks you build.
Reading Recommendations
- Reflecting on The 10 commandments of Egoless programming.
- On Being a Great Product Manager
- A Basic Condensed Resource documentation Guide to Software Engineering.
- A Concise Software Engineering Beginner’s Guide for Business Tech Enthusiasts.
- Book Review: How to Manage Projects by Paul J Fielding.
- The 1960s Software Crisis.
- Book Review: A Philosophy of Software Design by John Ousterhout.