DEV Community

Adam Chain
Adam Chain

Posted on

Practice javascript via first principle thinking, not syntax memorization

I'm a brand new coder. I started my first JavaScript course on Udemy on November 13. Quickly, I realized that I grasp new concepts via understanding the reasoning behind where and why specific pieces of code belong, rather than just memorizing syntax. Knowing how to write every JavaScript component correctly is valuable, but it doesn't automatically = understanding how to structure a program, determine execution order, or manage control flow. For me, grasping the "why" is essential to mastering the "how."

To apply this learning philosophy, I created my first public program—a tool that generates project guidelines with these principles in mind. Powered by OpenAI's API and structured outputs, it allows you to specify the JavaScript concepts you want to practice (e.g., setTimeout, eventListener). The program provides step-by-step instructions using the "why" teaching method and even generates PDF/TXT guidelines to help you follow along as you build.

Open on GitHub

*I built this for myself but, based on demand from my new coding friends, I decided to make it public. All feedback is appreciated.

Example output:

Image description

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

Top comments (1)

Collapse
 
marcos_bonfante_224dc4b9e profile image
Marcos Bonfante

You should spend a little time and touch base with all your Muncho investors that you left high and dry.

Heroku

Build apps, not infrastructure.

Dealing with servers, hardware, and infrastructure can take up your valuable time. Discover the benefits of Heroku, the PaaS of choice for developers since 2007.

Visit Site

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay