Don't start from scratch every time you learn something new!

For practice, I am currently working on implementing a little web-project which you can use to organise some To Dos. It is nothing complex. After all, it is only supposed to be a project to make me more comfortable with some key concepts of Java.
As a webserver, I use Spring Boot. This framework would allow me to do so much more with my project, but I intentionally only use it as a webserver. Spring Boot could handle so many things which I need, such as SQL/Database-interactions, for example. But I rather do everything myself, fully in JDBC. Why? Practice!

It has been at the very beginning, that an experienced collegue told me not to use to much "Spring Magic" in the beginning, not to skip too much learning of the inner workings. And I wanted to stick to his suggestion. But that is where a problem occured: I now had somewhat of a plan. This plan was namely to make a beginners project, as professionally designed as possible, with modern architecture and all those fancy things. On the other hand, I wanted to use as few external helping hands, such as advanced frameworks as possible, to make myself learn the theory behind everything.

My project planning happened mainly through Claude, ChatGPT and Qwen. After finishing their wishes to start from the bottom up, which means first drawing an ERD (Entity-Relation-Diagram), then building the database according to that, I told them, I want to continue by using Spring Boot. So they suggested an architecture resembling something typical for a Spring Boot application. After creating the project structure needed for this project, I got more into implementation – of course while always emphasising to the AI that I want to stay as basic as possible and use as little "Magic" as possible to maximise learning. Today, I figured out, that this can lead to some chaos. Architecture and implentation don't necissarily match.

I consulted a fellow trainee, who is one year ahead of me, about this. "Should I start from scratch or continue in my mess?", I asked. Calmly he replied that I should of course continue in my mess. My mess has structure. My mess isn't a mess in the literal sense. "In your current project, you'll see the best version of yourself", he said. I was a bit confused by that statement. But he elaborated: This is, because you started a project knowing different skills, rules, logics in different depths. While working on this project, you will always do research and gain new experience, which does prepare you for your future tasks. But always coming back to old code to implement the newest things you know, will make you stay stuck at the same couple of lines of code for an eternaty. Yes, refactoring and reimplementing can be necessary sometimes. But this is a matter of dynamic growth of your projects and your actual needs. There is no need to artificially chase perfection. This will only harm your progress in every sense. Take your learnings to your next challenges and apply them there!

This article was updated on 10 Sep 2026