It's really common to hear developers say that they are not happy with their code at the beginning of their programming career. The best way to learn to code is to build something from scratch but when we start, we don't know the best practices to write clean code, what is the best way to organize the project structure, or simply, we turn easy problems into complex solutions.
I decided to take programming professionally when I started a web development Bootcamp at Ironhack two years ago (another good story to tell), and one of the things more heard by the teachers was that when a year pass, we would be a little ashamed looking at our code.
These are the links to the project I will be talking about
- Code repository: https://github.com/javirequejo/pokemon-league
- Live demo: https://javirequejo.github.io/pokemon-league/
And well, it's right. If we review the code of this first project (feel free to do it here), we can find a lot of things that can be improved, starting with the lack of organization of the files, continuing with the code duplication everywhere you see, jQuery... Ahm, wait a minute, jQuery is not a bad thing, unless in this project because it fulfills its function for developing a simple game in the browser.
So, there are a lot of things to improve in that project but I'm not ashamed. I could say that I'm a little proud when I see the demo and the code of this project.
Reasons to be proud
- It's the project where I can see my first progress. In the bootcamp, you are doing small exercises to practice the concepts learned but this was the first big project to show my learning. And see what I built from scratch, developing an entire game by myself it's something to be proud of in the future.
- I took my first architectural decision on my own. We learned canvas API and we were recommended to use this technology to develop the game but I didn't find good sprites for the characters and thought that I could build something cooler if I used CSS animations, so I decided to use only jQuery and pure CSS to make the game. The result was successful and although I invested a lot of time in the development, it would have taken much longer using canvas.
- The result made me keep learning and give my best. When I showed the demo on the presentation day, I was very nervous and afraid that my project doesn't worth it, but as I was explaining the game and its code, I was gaining confidence, and finally, teachers and colleagues congrats me on the good work. For this reason, I felt very motivated to face the next modules and finish successfully the bootcamp.
- I had my first job interviewers playing for several minutes to this game. Yes, maybe unreal, but they liked Pokemon a lot, so they were playing the game in the interview and they seemed to enjoy it. This took my nerves off completely and I got the job :)
This project doesn't show the best code and practices because it was my first project developing something from scratch. But there a lot of positive things to feel proud of your first coding project. It's the sign that you are learning, you are having doubts and you are solving them.
And all of this can only make you a better developer.