Ben Patton

Thoughts. Technical tips. And other things.

← Back

Learning to code in 2025

December 19, 2024

I spent a couple hours today helping setup my dad’s computer with the tools I would recommend for him to get started with coding. This had me reflect on a ‘roadmap’ I would hand him for learning to code.

So here is a simple outline of “what I would learn” and hopefully a rather simple list of tools and sites you will need to setup.

After an additional bit of reflection, I realize these are things I would recommend for people wanting to learn foundational skills for the primary purpose of building software on the side for fun and small business.

What I would learn

  1. Basic git commands

  2. Command line basics

  3. HTML

  4. CSS

  5. JavaScript

  6. Custom Elements (Web Components) - I think 5-7 years from now custom elements will be refined and much more widely adopted.

  7. Node.js

  8. Hypermedia (HTMX, Datastar, etc)

  9. Authorizatoin/Authentication w/ JWT’s and Cookies

  10. SQL (Probably Postgres and Sqlite)

  11. NoSql (For learning purposes either Mongo or DynamoDB. Do this as part of the infra as code below)

  12. Infrastructure as Code (Architect - arc.codes)
    11a. Technology included in Infra as Code:

    • Lambda
    • S3
    • DynamoDB
    • Queues
    • Web Sockets
    • Events
    • Scheduled/Cron Jobs
  13. Enhance - Tie it all together with a framework

  14. Deploy to AWS

  15. Local First Development - Including this cause I am helping build a local first learning platform but also I think it will be a very legitimate way of building within the next year to three years.

Architecture Things / Patterns and Practices

  1. Functional Web Apps Architecture
  2. Progressive Enhancement
  3. Optimistic UI
  4. Local First Development
  5. Client Side Rendering vs Server Side Rendering

Tools

  1. Nodejs (I use nvm for managing node and npm)
  2. Github for version control
  3. Cursor (or some flavor of AI code editor) for having a personal AI learning assistant
  4. AWS Account

(If you are on Windows)

  1. Get your terminal setup like a mac terminal (preference but when I was beginning, Mac command line was easier)

Additional Thoughts - There are many paths, choose one.

I know many will look at this list and think “what the heck is this?” My aim here is to teach some of the simplest technologies with the fastest feedback loop and set these people up for success with foundational skills. Go would probably be a good language to learn. But I am thinking of people who are on a similar path as I was, web development.

Again, Iam starting from the nothing. These things may not end up being what people use on a daily basis but from experience, I know that knowing these things will make everything they learn later easier or faster or completely unnecessary.

I think I will take some future posts to talk about how I would go about learning these things as I think they all deserve some time.