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. It’s good to keep an open mind and have a continuous learning attitude, both which will serve you well as a developer.
Developer Roles
In terms of roles, usually a developer is classified as either a front end, back end, or full stack developer, depending on ones preferences and strengths. Many times when starting out as a junior you may find yourself in the full stack role and over time, with experience find out exactly what you prefer and steer your career to a more specialized role, in say either back end or front end or even something like Devops. I could go on about the various roles and the different career paths and progressions, but I will save that for another article.
How Your Company Affects You
So, you have entered the job market and started as a junior developer. A lot of habits that you form, the way you approach things and how you do things will depend a lot on the company that you work for, and more importantly the people that you work with and lead the company.
For example in a smaller specialized company of only a handful of team members, you may find yourself wearing a lot of different hats and having to perform a number of duties. Also there may only be a couple of more senior developers and thus you will be at their mercy in terms of what you can do and what you cannot. They will expect you to conform to the way they do things and depending on their personalities, that may be a good or a bad thing. Ideally they will encourage you to look for different solutions and challenge the way they do things, but conversely they may be very set in their ways and you will have to do things their way, even though you may have better ideas and approaches.
On the other end of the scale, in a much bigger consulting company for example, you will get exposure to many different projects, and to a broad range of highly skilled people. This will encourage you to experience different styles of doing things and help you to build your own way. The point is, that the people and the seniors that you work with, have the potential to shape the way you do things, and shape the good, or bad habits that you form over time.
Lets get into the crux of the matter and some points of advice. These tips I have picked up over the years and often thought what advice I would have liked to have received (and many times did receive some of the points below), when I was a junior and starting out. When I started I was very afraid in a sense, or intimidated and would often doubt my abilities. Over time though, you get more confident in your abilities.
The 12 Pieces of Advice
1. Stop stressing yourself out and worrying if you are good enough. Everything will come with time and experience. As long as you are prepared to put in the effort you will do well.
2. Never stop learning, as this is 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 9 months or so, I would get to the office an hour before work time and go through Plural Sight 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 it many times even as a senior, and it is perfectly normal.
4. Seek out mentors who can guide you, and pick their brain. 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.
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 what small things and bits that you may pick up from them. Youtube videos are great, especially now with the ‘shorts’ videos, you can watch just 1 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 go google it now. Look at pieces of code that you have written and ask yourself how can you make it cleaner and refactor it?
7. Get familiar with design patterns. Some can be complex, but focus more 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 and it will be easier to apply certain design patterns.
8. Practice! Read or watched something interesting? Go and try do it, code it, break stuff and put it back together. This is how you learn.
9. Personally, I think the points here under number 9 are some of the best pieces of advice for becoming a better developer.
9.1 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 how seniors do it and learn from them.
9.2 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 become intimidated because we don’t know what the cause is, or where to even start looking.
In software development you will find yourself faced with many errors very often over and over, so if you can immediately identify the error or know what causes it, you will have a better idea where to start looking. Don’t worry, again this comes with experience and you will get better at it the more you come across, but being aware of this and paying more attention to errors will certainly help.
9.3 Learn how to try everything. 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 to 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. The different perspective of someone else often helps, especially when you have been looking at the same piece of code for a long time.
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 so 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 a certain point. When you are stuck and consult another dev for help, observe how they go about solving it, and where they tend to look for the cause.
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, so 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. It’s more about your attitude. Try to change your mindset to ‘I’ll figure it out’, rather than focusing on and picking up tasks that you know how to do. There’s always a way, usually its 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 so much about all of these points in this list. 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 remember to 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.