I’m 3 weeks in to my coding journey. It’s been a blast so far. Robert Frost had some line about “Making my advocation my vocation”. It’s great when you find something in life that you’re so excited about you want to give your all to it.
After 3 weeks I had solved a whopping 45 leetcode problems. I could tell I was into it. Being a noobie, obviously I was using a lot of resources, especially AI, to help.
Here’s basically how I operated:
- Hold myself to solving at least 1 new problem a day
- Start off by reading the problem, and brainstorming answers
- For brainstorming, I did a lot of free form writing, just capturing my thoughts.
- Pass your thoughts into Gemini (or LLM of your choice), and review.
- Important: clarify that you don’t want Gemini to give you an answer. You just want guidance and nudges. A lot of times I would start my prompts with, “Don’t tell me the answer, I just want a little nudge.”
- Continue until you’ve zeroed in on a solution
I repeated this process for a code outline, and finally, coding.
Every step of the way it was important to me to take the first step myself. Otherwise I would just be reguigitating or even copying what the LLM spit out.
This approach worked pretty well. But it was also very slow. After 3 weeks I was craving more speed.
Reset #
I brainstormed ways to move faster. One thing I’d been doing was randomly selecting a problem. So, for starters, I decided to focus on one set of problems at a time. This would be useful because, with Binary Trees as just one example, there’s a lot of repeatable strategies you can use across problems in the same category.
Next, I wanted to refine the length of time I spent going back and forth with the LLM. I noticed that with problems that were very difficult (or, at least, very difficult to me), I could go back and forth with maybe 10 interactions between me and the LLM. This is a very healthy way to learn, but I decided to try capping this number: 3 back and forths on approach, 2 for code outline, and 2 for actual coding.
These adjustments really go me moving, but one thing was still missing: review. I noticed also that while I was logging every problem I solved, I wasn’t making enough time to review them all. Focuing no a category made this easier. For each cateogry I set up a new Google doc. I logged my problems here, took problem-specific notes (mostly areas where I struggled, or “ah ha” moments after getting a soluiton from the LLM). I also had a special category for JavaScript specific things that were new to me or that I had to look up.
I continued to hold myself to one problem per day, but now I was moving so fast I could easliy do 2, and sometimes more. Reviews were like a pause from solving, and sometimes lasted 2-3 days. It was EXTREMELY helpful to go over the problems again, and see what I could do from memory.
So, this is how I’ve been operating. It slowed donw my week 4 progress, as I had to allocate some of my study time to planning and implementing this new approach. But, since then, I’m moving.