The Learning Adventure: Tales from a Junior Developer
Tags: learning, beginners
Published: 2023-07-02 20:41:37

As a passionate junior developer, I want to share my learning journey in the world of software development. In this blog post, I'll discuss the strategies that have worked well for me and contributed to my growth.

### 1. Studies

My master's degree in computer science provided a theoretical foundation that I found very useful.

While you may not regularly utilize advanced algorithms, the process of developing logical reasoning skills through their study is invaluable.

I have also gained soft skills that are difficult to acquire through self-learning. Skills such as effective communication, teamwork, and time management are really useful.

But the most useful skill I've learned is **the ability to learn new things and to do research by using the internet ([RTFM](https://en.wikipedia.org/wiki/RTFM)) and seeking guidance from experienced individuals**.

### 2. Online tutorials, documentation and whatever.

While the studies gives you the fundamentals, you will need to learn more by yourself by looking for tutorials on the internet.

The countless hours spent searching computer-related content on Google even resulted in an unexpected invitation to partake in the intriguing Google Foobar recruitment easter egg.

> Google send the invitation on the basis of your search history and your problem solving related keyword searches, like if you are a developer, it is obvious that you search a lot of problems related to programming on Google or Stack Overflow. And based on Google search algorithms, they show you an invitation for Google Foobar.

![Google Foobar](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fnk8ieeb0dk58gflhoo9.png)



### 3. Books

So far, I have read two popular books, "Clean Code" and "Clean Architecture" by the same author. These books have been immensely helpful, providing valuable guidance and principles for writing clean and maintainable code.


![Clean code and clean architecture books](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lcqm5azlool5r12ibh3e.jpg)

Despite facing criticism for various reasons, these two books present an **opportunity to engage in critical thinking and reflection on various aspects of clean code.** I recommend exploring books by different authors to gain diverse perspectives and opinions.

### 4. Side projects

And the most important one that works great for me: **learning by doing mistakes**. You should find the answers to every “Why”. Good developers are constantly wondering why issues are solved in one way and not another. This allows us to reflect on the processes and improve them with the passage of experience.

![Learn by mistakes](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zp412tvep5m0towjtjeq.jpg)

I enjoy working on personal projects, like managing my own virtual private server running on Linux. With this server, I learned so much about networking, system administration and Docker.

Currently, I am focused on learning how to build a web application using microservices architecture. As I strive to apply best programming practices, I find myself conducting extensive research (yes, again research!) to ensure I'm following industry standards. 
Some things could be bad, over-engineered, not well understood. However, I try to do my best as a junior and it's totally normal to make mistakes!
Also, I explain in the `readme.md` file all my choices whenever I thing it is interesting.

In the future, I also plan to participate in Open Source projects.

### 5. Learn with others

I've recently learned (a bit late) the significance of networking, engaging in discussions with colleagues, asking questions, sharing ideas, and attending technical events/conferences. These experiences have proven to be invaluable for learning new things and connecting with passionate individuals in the field.

For instance, I recently started attending to [tech meetups](https://www.meetup.com/fr-FR/paris-tech-meetups5/) in France and it's a great way to meet people and learn many things!