How to start as a developer ?

2020-01-15

(yes the screenshots are showing text in french, because I am)

Tutorial hell

I hate programming tutorials. This is the most counterintuitive way of learning programming. To learn effectively something, you need key things:

The main problem with tutorials is: you are formatting the way you think, based on someone else’s experience. There is no problems to learn from someone else. In fact, everyone do this. But, when learning through tutorials, you don’t strengthen your own brain. You are just copying someone else’s code and someone else’s way of thinking.

You must start a project without looking at others people code. Start by your own, do the work, even if you do it wrong. Even if this is not performant code, clean code (we will talk about this bullshit concept in later articles) or secure code.

My first programming project

For me, everything started with my first programming project: the Digital Agenda. It was a really simple To-Do List web app, where every students in my school could add homework to the list.

The Digital Agenda login page

The motivation behind this project? A student in my class complained that not everyone marked the same homework. Some didn’t even mark anything. So my developer pride has awakened, and it was my duty to create something to solve this problem.

Reinventing the wheel is not a problem

The reactions were like: “There is already an application for that, you don’t need to create one”, “We can just create a shared google doc” or “Every man for himself”. May God have mercy on them.

You should not be afraid of reinventing the wheel. The main argument against it is “You won’t do any better than what already exists”. Maybe you will, but that is not the point. The point is, you will understand the hidden concepts behind the wheel you are reinventing. By developing the Digital Agenda, I understood frontend programming, used Javascript frameworks, created a backend myself with my own password encryption system (it was really bad for sure, but at least I tried), created my own authentification system and so on.

I also learned that we didn’t program for ourselves, but for others. I talk more of this subject in this article.

Don’t be afraid of change

This project has changed a lot. The design evolved at the same pace as my skills, just as much as the app’s tech stack. Unfortunately, I lost older versions, but here is a list of technologies I used for this project:

I didn’t write this section to brag about my talents, or, to show that I use lots of different technologies/frameworks. I just want to enhance that I was not afraid of rewriting multiples times the same project. I was not afraid of changing my way of thinking about the project.

Thanks for reading me. You can take a look at my other articles.