I am writing this for myself as a way to structure my learning journey for programming, and to note down some questions that I still have. The reason that I want to learn how to program is because I want to create my own Flashcard (web)application for my language learning website Language Atlas by the end of 2025. This will allow me to stop depending on Anki. I learn best by doing, and therefore my learning strategy will be very much based on learning by doing. Naturally learning and doing go hand in hand. However, structuring things in such a way makes things easier for me. If this essay should help you too, then all the better, but it helps to know your own learning style before deciding to copy mine. In this essay I will talk about how I plan to learn programming, do (small) projects, and share what I do.
I will learn programming from freeCodeCamp. I enjoy the method as it immediately lets you write code and it explains things as you go. I am currently doing the first step “Responsive Web Design”. I don’t think that all steps are necessary to reach my goal, but I will see as I go. From my current understanding, it helps to know a framework/library if you want to create (web)applications. My research thus far has brought me to Svelte/Firebase to create my own Flashcard (web)application. This is not a definitive choice, and I don’t know how I plan to learn this. I believe that when the time comes I will have solved this problem too.
I will do challenges from Frontendmentor to put my learning into practice. I will do challenges that are at my own level and then continuously progress to higher levels. I will share my results on GitHub.
I will work on my own Flashcard (web)application in an iterative manner. I notice that my level is low. This makes adding all the features that I want difficult. When I generate the features with Claude, I notice that I don’t understand the code. I do not wish to have code that I don’t understand. I believe, therefore, that it is better to work in an iterative manner. I will only add features that are at or close to my understanding. As I improve, it will be easier for me to add more and more features. I also want to be able to (re)create things by myself and without Claude. A strategy could therefore be to ask Claude to create something. Then I would see if I understand it and am able to recreate it myself without Claude’s help. One question that I still have is when and how to release the minimal viable product. Again, I believe that when the time comes I will have solved this problem too.
I will share my progress via this website and through Twitter. On Twitter I can use #learninpublic and #buildinpublic. Currently, I am not sure if I should also share other content or thoughts on Twitter. In the future, I may create a community on Discord to talk to people who are interested in my Flashcard (web)application, as well as an email-list. I want to do this to keep myself accountable, share what I have learnt with the world, and most of all, it seems like a lot of fun.
I have attempted to learn how to program in the past and fell off track. This time I have a good rhythm and am making good progress. It is my hope that with this strategy that combines learning, doing, and working in an iterative manner on my own Flashcard (web)application, I will reach my goal. How fun would it be to look back at this a year later and see that I reached my goal? And who knows, perhaps through this journey I will encounter things that I was not aware of at the time of writing that are even more fun!