Firsthand tips for junior developers to start right
by Muamer Ribica, Director of Software Development at Klika
Junior developers are often faced with different challenges when they start their first job in a software development role. Projects that require a serious approach, collaboration in a small or big team, and short deadlines, often make junior developers feel like they are in the wrong place.
Dear juniors, we believe it is not easy to dive into producing countless lines of code and finding solutions to complex problems, and that’s why we are bringing you several tips from people who worked through the same predicaments and walked in your shoes not that long ago.
Below, you can find useful tips from Klika senior developers, who have been in the IT industry for years. Here is what they came up with to provide some guidance for their younger colleagues.
Don’t be afraid to ask questions
Often, junior developers spend too much time on researching a problem trying to find a solution, while it would be far easier and more efficient to look for help from their mentor. The most common reason juniors succumb to this habit is because they are afraid to ask “dumb”questions, so they rather research for hours on their own. There are no stupid questions, though, so feel free to ask your mentor as they can help you remove the obstacle in record time and save you valuable time. As our interlocutor says, the role of the mentor is to accelerate the learning process and remove obstacles blocking you from doing valuable work. Take advantage of your mentor’s knowledge and experience, as well as other senior colleagues.
No one expects your code to be perfect
The saying “Mistakes are proof that you are trying” is also true for the IT industry. Nobody will expect your code to be perfect in the beginning, and it is okay to make mistakes sometimes. One of the most important steps to professional growth in this industry is learning from mistakes, because it will help you get rid of imposter syndrome and build self-confidence. Once you get the psychological barriers out of your way, it will be easier to acquire new knowledge and actively participate in meetings, which constitutes a solid basis for further development.
Accept feedback to be able to grow
Don’t grow too attached to your code. Everything you write should be open to feedback and changes. Pull request revisions are not personal attacks and should not be taken personally. Quite to the contrary, they are an excellent way to communicate with your team and mentor in a constructive way. Use them as a space for discussion about a certain functionality and its implementation. Pull request revisions contribute to more constructive feedback and comments from your team, and they give you time to think about your response to the comments.
The best way to master new technologies is through your own side projects
When learning new technologies, start your own side project. In this way, you can implement all parts of an application. It is the fastest way to familiarize yourself with certain technologies and it helps you avoid getting caught up in a cycle of repetitive tutorials or courses which mostly deal with the subject matter superficially.
To learn advanced concepts, analyze the source code
After learning the basics of a programming language or framework, the best next step to master advanced concepts is to read the source code written in the same language or framework. It is the best way to acquire hands-on knowledge and gain insights into how experienced engineers use the language or framework.
Test your own knowledge by sharing it
In order to test your own knowledge, share it with your colleagues and peers. Once you can explain something, you can be pretty sure that you understand it. Mentoring also helps you get all the puzzle pieces together and discover your own knowledge gaps, which we usually tend to ignore while working on singled-out tasks.
Learn about all parts of a project
Make an effort to learn about all functionalities of a project, especially those that no one is touching, like already existing features that work well. It is a very common trap. Developers tend to ignore smoothly running functionalities and they never get a chance to learn about them. The most common examples are authentication and authorization that have been implemented at an earlier stage, and developers resort to implementing them as is, never getting an opportunity to learn about these important standards.
Use the best tool for a certain problem and avoid approaching technology from a dogmatic point of view. Don’t trust blindly all the claims you hear circling around among developers. Always question the reasons behind such claims. One of the examples that come to mind is the mantra that TDD is the solution to non-working code or that the microservice architecture solves all architectural problems. Don’t let this kind of dogmatic hearsay define your course.
Borrow good ideas from other disciplines
An abstract way of thinking in programming can be applied to any other abstract skill, like music, design, literature, and the same goes for the other way around. The general principles of good writing in literature can be applied to writing code. The principles of music composition can be applied to an application structure. Such an approach can help you be more creative with solutions and perform better overall.
Feed your curiosity to stay motivated
The best way to stay motivated in software development is to constantly feed your curiosity by experimenting with different technologies. Getting a raise or switching to another project are most often short-term solutions, and usually don’t bring satisfaction in the long run.