Starting your career as a software developer can be daunting, especially since technology changes at such a rapid pace. The role of a software developer can be quite diverse, and you may find yourself doing a number of different things and dealing with many different technologies, frameworks and applications. Over the years, I have managed to learn a few things, and here are some tips and pieces of advice that I wish I had known as a junior developer.
My software developer journey
My journey to where I am now started off following the somewhat normal route of attending university and studying for a B.IT degree. Afterwards, I pursued the Business Analyst job avenue but was never successful and ended up studying some other things. I eventually found myself a job at the CSIR (Council for Scientific and Industrial Research) performing research and ended up studying for my MSc degree in Computer Science. While a lot of software development was involved, I wasn’t really strict on adhering to proper coding standards and design patterns, etc. It was more about getting a proof of concept and an MVP going.
My first junior role
Once my time at the CSIR came to an end, I began looking for a more corporate junior developer job through OfferZen. I had a few interviews and found a job at a small fintech company in Cape Town. Once I made the move, I realised I had a lot to learn in this high-pressure and fast-paced work environment, with multiple products and tech stacks to work with. I went from using C#, SQL and MVC to Vb.Net and ASP.Net to even Excel macros - amongst many other frameworks and applications.
I found it quite challenging initially and often wondered if I would ever become good at it. But it paid off in the long run. The experience that I gained there really helped me become the developer I am today.
Technically I gained a wealth of knowledge. I also learnt a lot of soft skills, like interacting directly with users and clients, and how to work under a lot of pressure and to solve or get to the route of problems quickly.
After a few years, I moved from a junior role to a more senior role at a much bigger software consulting company called Entelect, where I have been working with some great people and continuing to grow and develop my skills. Entelect really focuses on their employees and their individual growth. There are also many skilled and intellectual people to learn from, which I really value.
The 12 Pieces of Advice for junior developers
Over the years, I have often thought about what advice I would have liked to have received - and many times did receive - when I was a junior and starting out.
When I started, I would feel afraid or intimidated and would often doubt my abilities. Over time though, I grew more confident in my abilities. What served me well here as a developer was keeping an open mind and having a continuous learning attitude. With this in mind, here are some of the tips that I’ve picked up along the way and would like to share with anyone starting out in software development.
1. Stop worrying if you are good enough.
Sometimes we worry that we aren’t good enough for the role we’re in. It’s important to remember here that you wouldn’t be at the point you are if you weren’t good enough. You wouldn’t have made it through the interviews and landed that job. But if you’re still feeling worried, then you should remember that everything will come with time, experience and hard work.
I learnt early on that being a grad, or a junior doesn’t mean that you can sit around and be spoon-fed everything. I had to ask questions (even though they may have sounded like I didn’t know what I was doing) and dig deep into things. This really accelerated my understanding of things in such a short space of time and helped me gain confidence in my abilities.
2. Never stop learning, it’s part of the job.
Technology and programming frameworks are always evolving, so you have to develop a constant learning mindset. When I first started, for my first nine months or so, I would get to the office an hour before work time and go through PluralSight courses to get better at the frameworks that were being used in the applications I had to manage at the time.
3. Read and learn about imposter syndrome.
You will probably experience imposter syndrome many times, even as a senior, and it is perfectly normal.
I have experienced this many times, even in my current position. I often have to reflect on the things that I have managed to accomplish and solve throughout my career and realise then that I am more than capable of solving whatever problem lies in front of me. I tend to find reassurance in my abilities when mentoring and helping out other devs as well.
4. Seek out mentors who can guide you and pick their brains.
Many seniors love to share their knowledge and help others, so don’t be afraid to ask. On that note, though, be sure to respect their time and do not waste it. Always try to put in some effort on your own to answer your question first, then seek out an answer from them. A great way to find a mentor is to ask a senior dev in your company or to join a developer community within your area or even online.
5. Watch YouTube videos or casually watch online courses now and then.
Don’t worry about paying full attention to everything, but you will be surprised by what small things and bits you may pick up from them. YouTube videos are great, especially now with the ‘Shorts’ videos. You can watch just one a day on some new concepts, even things like clean code, as there is always something that we can improve upon.
6. Re-read Clean Code every few months by Uncle Bob.
If you have not heard of that book, please Google it now. In one of my first junior dev jobs, it was recommended a lot to me by one of the directors.
One of the key aspects of the book is to look at pieces of code that you have written and ask yourself, “How can I make it cleaner and refactor it?”. Practising this helped me tremendously as a junior in identifying gaps when analysing other people’s code, as well as speeding up my coding workflow.
7. Get familiar with design patterns.
Design patterns let you apply existing tried and tested solutions to your code - because why solve a problem twice? They also help you to start thinking in a certain way, and this sort of thinking will help drive the way you code as you progress.
Some design patterns can be complex but focus on reading up on a couple every few months. This will help you _‘notice’ _them when looking for coding solutions, and after some time, you will start to notice patterns, making it easier to apply certain design patterns.
Read or watched something interesting? Go and try to do it, code it, break stuff and put it back together. This is how you learn.
As a junior (and still as a senior), I would watch Pluralsight courses and would code along with the teacher. I would then try to programme the application from scratch and add new features to it that were not covered in the course. This helped cement the understanding of what I was doing and why certain things were done in the code.
9. Learning how to find and approach solutions.
Personally, I think the points here under number 9 are some of the best pieces of advice for becoming a better developer.
Learn how to Google and how to read Stack Overflow.
It may sound simple, but there is an art to knowing how to Google your problem and which Stack Overflow answers to pay more attention to. Sure, you can do it yourself by trial and error, which you will no doubt do, but also take note of how seniors do it and learn from them.
Pay attention to and become familiar with errors and error messages.
Many times we encounter errors when our code compiles or when something breaks in the application, and we become intimidated because we don’t know what the cause is or where to even start looking for the solution.
In software development, you will find yourself faced with this situation over and over, so if you can immediately identify the error or know what causes it, you will have a better idea of where to start looking. Don’t worry, this again comes with experience, and you will get better at solving errors the more you come across them, but being aware of this and paying more attention to errors will certainly help.
Get another perspective.
Often times when faced with a bug or something strange happening that should not be happening in our applications, we often only think of the immediate or most obvious causes of the error. When that doesn’t help, we find ourselves struggling to find the problem and usually need another pair of eyes to try something else, or to look in a different place for the cause.
This is where we should be asking other developers (especially senior developers) for help. The different perspective they bring often helps, especially when you have been looking at the same piece of code for a long time.
Learn how to try everything.
Sometimes we may think that we have tried everything, but it could turn out to be quite unusual or be related to something we thought was unrelated. Thus we have to keep a very open and broad mind and try to think of all possibilities and all the things that could be affecting our problem. Like in the point above, when you are stuck, consult another dev for help and observe how they go about solving it and where they tend to look for the cause. This will help give you the skillset you need to try everything.
Again, it does take time and experience (which is the common theme here if you haven’t picked that up yet), but if you keep this at the front of your mind when debugging, it will help you solve problems and fix bugs that much quicker.
10. Nobody was a senior overnight.
Give yourself time and keep at it. With time and experience, it will come, and there will always be something new to learn and some new problem to solve.
11. Don’t be afraid to put your hand up for things that you are unsure of.
This can be a challenge, but it’s often about your attitude. By changing my mindset to ‘I’ll_ figure it out_’, rather than only picking up tasks that I already knew how to solve, I was able to step out of my comfort zone and learn so many cool things, which improved my skills in many different spaces.
It might be scary to just figure things out, but there’s always a way, and usually, it’s only a matter of time until you figure it out. Take on any task, put up your hand and say you will do it. Try and figure it out. If you get stuck, don’t worry. Ask for help, there’s nothing wrong with that, and that is how you learn.
12. Don’t worry about following all the points on this list perfectly.
It can be overwhelming just reading this. Remember, it is all a progression, and it is about growth over time. The main things are:
- Be diligent and enthusiastic.
- Always keep learning.
- Understand with experience and time, you will get better and accumulate a lot of knowledge.
- Just don’t expect to always be spoon-fed, and you will be good.
Pay it Forward
I hope you found this article useful and the points helpful. Remember that one day when you are a senior, some junior developer will be looking up to you for guidance and advice, so pay it forward and help out if you can. You will also be surprised by how much you may learn just by teaching and offering guidance.
Nishal Morar is a senior developer at a software consulting company, Entelect. He has a keen interest in all things tech, electric skateboarding, the environment and likes to keep active and try various forms of training and sports. He manages fitnish.com, where he shares a lot of information on health, fitness and motivation amongst other things, and which encompasses a lot of his interests.
- How to Improve Your Coding Skills as a Junior Software Developer
- Excelling as a Junior Dev from Day One
- How My Mentor Enabled Me as a Junior Developer
- How I plan and focus my Project-Based Learning