Immersing Myself in JavaScript to Become a Better Developer: Scrimba’s JavaScript Course
An interview in January 2026 opened my eyes to the fact that I could write Next.js but I couldn’t write it alone. I had used AI as a crutch since August 2025 when I started my first frontend development internship. After the interview, I realised that I needed to get better at writing programming logic on my own. No more leaning on my expertise in HTML and CSS and only writing JavaScript ‘because I had to’.
At the time, I didn’t like JavaScript and had always avoided it because it looked complicated to me and the visual feedback to the work I was doing is different to when writing CSS. Now, I enjoy it. I can confidently say I can write the most common JavaScript syntax from the top of my head since committing to immersing myself in it since January 2026.
Scrimba became a refresher to all the JavaScript-related web articles I had searched for and read through online. It was also a refresher to engaging with over 14 hours of a video JavaScript course on YouTube that was made by a channel called SuperSimpleDev. I got to do a lot of active recall while watching Scrimba screencasts and just like for the YouTube course, I did all the challenges by myself after listening to the instructor. Mr Per has a way of explaining things in a way that helps them stick.
My Process
Whenever I finished a module, on the final recap video, I would comment out Mr Per’s code, hit the enter key multiple times to push it outside the viewport, then go through this step-by-step process which I developed for myself after many practice sessions:
- Copy and paste relevant HTML into my JavaScript file and comment it out so I can see all the ids I need to create references for in JavaScript without switching between HTML and JavaScript files.
- Use the challenge’s UI to decide what the app needs and create JavaScript references for every element I would either be replacing with JavaScript, writing JavaScript into or that would trigger functions from user interactions on the client.
- Create the render function. Somehow, writng this function first helps my brain compute the state values that I need.
- Write the state values under the JavaScript references to DOM elements.
- Start writing event handler functions and helper functions as I go through the UI design from top to bottom.
- Update the state values, render function and other functions if I have to.
For the last few projects, when I was done, I would copy all the code to my clipboard, then ask three different AIs a cheeky question along with the pasted code: ‘Which code is better? The one at the top or the one at the bottom?’.
Almost always, the answer was Per’s code at the bottom at first, but I would keep making the suggested changes until that changed.
Get Ogechukwu Onuora’s stories in your inbox
Join Medium for free to get updates from this writer.
In my most recent attempt, I ended up eliminating repeated ‘save to local storage’ and ‘render app’ calls in my event handler functions because I created an updater function that I passed new state updates into directly. I just had to call the updater function that I created in relevant event handlers! Most of it was documented here: Sky ✨ | SJcodes (@skyweeklydiary) | TikTok
Mr Per reduced the complexity for us learners to understand. I used AI to learn patterns that are easier to update, reusable, easier to read/reason about and more maintainable down the line.
ChatGPT emphasised that programming can boil down to how we manage three things:
- State
- State updates
- State storage and retreival
- Ensuring the UI reflects changes to state when necessary
I now place importance on pinning down what my source of truth is, deriving state from that, handling state updates in a predictable and maintainable way and ensuring that the UI of the applications that I build always reflects current state.
Thinking in terms of state, state update functions and update-dependent re-renders reminded me of patterns from the JavaScript libraries/frameworks I had used.
In addition, working at a startup has taught me to work in feature branches, add validation on the frontend, always have fallback UI and fallback data when fetching asynchronous data from an API and to include helpful messages/toasts/skeletons/loaders for improved UX.
Acknowledgement and Appreciation: Scrimba’s course on JavaScript was the first one that really helped me grasp what a ‘single source of truth’ is even though I had been coming across the term for months, especially while learning about JavaScript frameworks.
I now feel confident enough to write apps on my own. I can understand programming logic better, I can reason about it and I can contribute to discussions on it. There’s a senior programmer that goes by LetPhil on YouTube and I joined his live Q&A recently. I was making comments on JavaScript, planning data architecture before starting projects and other topics and he and one of his Discord moderators, Aaron, were agreeing with me! Aaron even suggested we make a JavaScript course together. It made me happy. They didn’t know how green I feel sometimes as a developer. Possibly, they even thought I was more experienced than I am.
Part of my knowledge on the importance of planning data architecture is from my part-time work as a frontend developer and from having to develop an ‘almost full-stack application’, as I like to call it, from scratch for a frontend development residency program (with intentionally tight submission deadlines) that I got accepted into earlier this year. I ended up mostly using AI for that (they were open to it as long as we made it clear) due to the time limit coupled with my limited experience of what was required of us at the time, but I learned so much about implementing real-time updates, using Zustand, TypeScript and other things.
Thank you Per Harald Borgen and thank you to everyone that has contributed to the amazing learning platform that Scrimba is! I’m really happy about my progress in the last few months and am looking forward to building more things, learning more and getting a full-time job as a web developer. Until then, I’ll keep learning, improving and putting myself and my work out there.
Right now, I’m building a web app from scratch and taking my time, not rushing through it like I had to before, and I am happy about it! Here’s to more growth.
And here’s a link to Scrimba for anyone that’s interested. They’re offering a free month of Scrimba Pro for me (adding that link was a requirement) and 20% off for you, the reader. Happy learning guys!
Edit: Here’s a link to the Scrimba course that I took: Free JavaScript Tutorial: Learn the basics in this 9-hour interactive course lead by Per Borgen. Also, six free courses that helped me when I started my first job as a developer are (i) Learn JavaScript (ii) Learn Programming (iii) React Tutorial (all by Jad Joubran), as well as React.js and Next.js teams’ official tutorials: React Tutorial, React Foundations | Next.js and App Router | Next.js.
Best Regards,
Ogechukwu Onuora







