How to survive your first experience as a developer
Are you an aspiring developer and facing your first experience in the world of coding? This comprehensive guide offers practical advice and helpful tips to survive and thrive in your new role as a developer.
Andrea Italiano
Backend JuniorDeveloper to be: personal insights and advice for aspiring developers
A year ago, I embarked on a journey to become a Java Developer, starting with formal education and then transitioning into a professional role. During my training, I often wondered what my first job would be like. The idea of joining such an extensive and complex world made me feel lost. But after all I realized that this is a feeling that everyone experiences at the beginning of their career.
So, what can you really expect from your first job?
Every single day, you'll be submerged by a bulk of knowledge and challenges, and each day you'll come out with something new. In this article, I'll share the highlights of my experience as a Junior Java Developer guiding you through my personal roadmap.
Whether you're just starting out or are still taking your first steps to become a Developer, you'll surely find some interesting insights in my roadmap to improve your skills and better tackle your first projects.
Read endlessly: the value of continuous reading
Read about any programming language, Spring Boot and its annotations, Hibernate or any other ORM, or JUnit and Mockito.
Read the code and take an interest in design as well as code organization in different layers. In this case, I recommend searching and making good use of public GitHub repositories (reading other people's code can be a huge help).
Moreover, explore the Medium platform for its vast collection of articles, tutorials, and resources authored by industry professionals. These materials can help you keep up-to-date and enhance your knowledge.
Even if you struggle to retain details or initially find specific concepts confusing, my two cents is to prioritize understanding the code's functionality. Learning a programming language resembles acquiring a new language. By reading, you gain a deeper understanding, which you will then translate into practical skills.
You'll have to be like a video game explorer hopping from one line of code to another and, if you want to make your journey more interesting, immerse yourself in "step over" debugging. This way you'll know every single code behavior and its mechanics will be much more clear to you. Plus, you will have more than three lives, meaning game over is not allowed!
Choose your IDE, get to know Maven, and make Git your friend!
You'll find people going for Eclipse, IntelliJ, or others. In my view, you should try the different tools yourself, find the one you work best with, and learn to configure it to your needs. Within each IDE, you can make use of some very useful tricks:
- keyboard shortcuts, (memorize at least the main ones) they will save you a lot of time while writing your code;
- formatting (yes, always format because it makes reading the code much easier);
- commenting sections of code when necessary (but don’t forget to remove unnecessary comments before pushing).
The more you dig into the mechanics of your IDE, the more you'll benefit when writing code.
Maven is a project management tool for building and distributing Java-based software projects. It's designed to automate the process of compiling Java source code, managing dependencies, and creating software distributions.
If you're confused by the question "Do you know the difference between building and compiling?", don't worry. Even if you knew the answer, I'd still encourage you to always refer to the paragraph "Read incessantly" because it's the only thing that will help you grow in terms of knowledge and skills. You'll find that the most commonly used Maven commands are "clean" and "install."
It's like saying to the computer: 'Hey, make room for the newcomer and put it where it belongs!' Let's not forget the Git version control system. Whether you're a fan of Github, Bitbucket, or both, you'll need to learn about Git and know how to handle it carefully.
If you hesitate when asked "Do you know the difference between 'rebase/merge' or 'fetch/pull'", just investigate deeper into the topic, and once again I'll remind you of the importance of constant reading.
Code review and debugging
Just like when you were writing essays at school and your teacher would underline what needed to be improved or corrected, the same will happen with your code.
The quality of your code is not only a prerequisite for a good project but will also be your goal because you should strive to become an excellent developer. Listen attentively to suggestions, ask questions to your supervisor or to more experienced colleagues. You can achieve professional improvement through continuous feedback.
Continuous Learning
One of the things I love most about my job is that every day represents an opportunity to learn something new. Imagine your learning process as unlimited and everlasting: don't expect it is going to be easy or you will ever leave behind or cease learning.
Think about a hiking trail: for those familiar with the route and physically prepared, the destination may appear easily attainable. However, for others, it might embody a more overwhelming challenge.
In the discovery learning theory of psychologist Jerome Bruner, the importance of people's mental activity in acquiring knowledge is emphasized. Bruner highlighted that students learn best when they are actively involved in exploration and discovery, rather than simply passively receiving information.
He also developed concepts such as "scaffolding," which is the support provided by a tutor to help learners progress towards a greater understanding. On your first experience, you never know what to expect from your supervisor, but a junior always hopes to find someone who can cross every ‘t’ in their career journey.
From personal experience, I can recommend a hybrid approach: studying independently, asking your tutor, and comparing yourself to more experienced colleagues, always ready to help you.
What to expect: a developer's first journey
Keep in mind that making mistakes is the first step to learning, and believe me when I say you'll make plenty!
The more tasks you're assigned, the more opportunities you'll have to learn. Also expect to spend a lot of time trying to figure out why your code isn't working as you wish. When you solve the problem, you might feel a mix of pride and euphoria for the accomplished task, as well as relief and disappointment because the error was due to a simple oversight (like forgetting a semicolon).
Often, your colleagues might speak a language you're not yet fluent in. If there are a lot of acronyms and technical terms, you'll have plenty of questions to ask them.
If you find yourself dreaming about a possible solution to your code while you're asleep, you'll realize that you can't live without programming anymore. Make mistakes and learn, observe and replicate, implement, debug… build, but please have fun. It's going to be an intense journey, but also one full of great rewards.
As my grandfather used to say: "one good turn deserves another"!
Please check out these resources:
RELATED
ARTICLES
Our technological stories to delve deeper into the world of software development: methods, approaches, and the latest technologies to generate value.