Coming out of university, My core technical competence & related skill-set was systems admin intense. But over the years, I've learned that specializing in a particular technical discipline can be very good yet also a challenge for many practitioners in the IT industry given the current job market.
Personally, As an IT Engineer, I have taken on multiple roles in the technology space and some were Software Developmentrelated. In fact, every job within my work experience exposed me to different roles and responsibilities, which is good for any professional looking to blossom their portfolio. It all comes down to job experience, exposure and hands-on skills development.
On Being a Software developer
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.
As a Junior Software Developer, it never gets any easier. In fact, it goes way downhill before it gets better for most Developers starting out or otherwise.
For me, programming was not my strongest capability coming out of the university. It's safe to say, I didn't give it a lot of attention and it didn't endear itself to me either early on in my career.
But years later, I realized the professional roadmap I has set for myself required a well-rounded tech engineering portfolio and 1–2 programming skills would be ideal.
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.
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.
The struggles of a junior developer are usually ignored and often overlook 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.
My take-aways from working 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 help in their professional growth in the Software Development space. It's important to know that learning struggles and tasks 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 the 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 Is key to a Junior Software developer's professional growth. - Being able to articulately report on tasks and projects is very important in the career of a Developer at any level. Most importantly, you need to know, understand and align yourself with your team's collaboration language.
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 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 your build.