Six Months of Learning to Code: What I'm Learning

It’s been about six months since I started learning programming seriously, and I want to reflect on what I’m learning both about code and about learning itself.

Where I Started

In March 2021, I started university and began learning programming.

I knew almost nothing:

  • I had never written a line of code
  • I didn’t understand how websites worked
  • I thought programming was just typing fast

Where I Am Now

Six months later:

  • I can build full-stack web applications
  • I understand JavaScript, HTML, CSS, Node.js, Express, MongoDB
  • I’m learning React
  • I’ve built dozens of projects (most deleted after learning from them)
  • I can debug problems systematically
  • I can read documentation and learn new technologies

I’m not an expert, but I’m no longer a complete beginner.

What’s Working

Daily practice: I’m coding almost every day, even if just for an hour. Consistency matters more than long sessions.

Building projects: I’m learning more from building things than from tutorials. Even simple projects teach me a lot.

Learning in public: Writing about what I’m learning is helping me understand it better.

Multiple resources: I’m using YouTube, documentation, courses, and articles. Different explanations help concepts click.

Focusing on fundamentals: I’m spending time really understanding JavaScript before jumping to frameworks.

Not giving up: There are many moments I want to quit. Pushing through those moments is making the difference.

What Isn’t Working

Tutorial hell: I’m watching too many tutorials without building my own projects. Watching isn’t learning.

Jumping around: I’m trying to learn too many things at once. Focusing on one thing at a time works better.

Comparing myself to others: Seeing people who are “better” than me is discouraging. Everyone’s journey is different.

Perfectionism: I’m spending too much time trying to make projects perfect instead of moving on to new challenges.

Not asking for help: I’m struggling alone for hours when I could ask for help and save time.

Biggest Challenges

Imposter syndrome: Feeling like I don’t know enough, like I’m not a “real” programmer.

Information overload: There’s so much to learn. It’s overwhelming.

Debugging: Spending hours on bugs is frustrating, especially early on.

Balancing university and self-study: Managing time between classes and intensive self-learning is hard.

Staying motivated: Some days I don’t feel like coding. I have to push through.

Biggest Breakthroughs

Understanding async JavaScript: When promises and async/await finally click, so many things make sense.

Building my first full-stack app: Seeing frontend, backend, and database work together is amazing.

Learning to debug systematically: Moving from random changes to systematic debugging is saving me hours.

Realizing I can figure things out: I don’t need to know everything. I just need to know how to find answers.

What I Wish I Knew at the Start

It’s supposed to be confusing: Confusion is part of learning. It doesn’t mean you’re not cut out for this.

Build things immediately: Don’t wait until you “know enough.” Start building on day one.

Fundamentals matter: Don’t rush to frameworks. Understand JavaScript deeply first.

Everyone struggles: Even experienced developers Google basic things and deal with bugs.

Learning never stops: There’s always more to learn. That’s okay.

Quality over quantity: One good project is better than ten mediocre ones.

Skills I’m Developing

Technical skills:

  • JavaScript (vanilla and ES6+)
  • HTML and CSS (including Flexbox and Grid)
  • Node.js and Express
  • MongoDB and Mongoose
  • Git and GitHub
  • React (still learning)
  • REST APIs
  • Async programming

Non-technical skills:

  • Problem-solving
  • Debugging
  • Reading documentation
  • Googling effectively
  • Time management
  • Persistence

Projects I’m Proud Of

  • A full-stack note-taking app with authentication
  • A weather app using external APIs
  • A todo list with React (yes, another todo list, but it’s teaching me a lot)
  • Several smaller projects that help me learn specific concepts

What’s Next

Short term (next 3 months):

  • Get comfortable with React
  • Learn TypeScript
  • Build more complex projects
  • Improve my CSS skills
  • Learn about testing

Long term (next year):

  • Build a portfolio website
  • Contribute to open source
  • Maybe start freelancing
  • Keep learning and improving

Advice for Beginners

Start now: Don’t wait until you feel ready. You’ll never feel completely ready.

Build things: Projects teach you more than tutorials.

Be consistent: Code a little bit every day rather than a lot once a week.

Don’t compare: Focus on your own progress, not others’.

Ask for help: Join communities, ask questions, don’t struggle alone.

Embrace confusion: It’s temporary. Keep pushing through.

Celebrate small wins: Every bug fixed, every feature completed is progress.

Reflections on Learning

Learning to code is hard. Really hard.

There are days I feel stupid, days I want to quit, days I think I’ll never understand.

But there are also days I feel like a genius when something finally clicks, days I’m proud of what I’ve built, days I can’t believe how far I’ve come.

The key is showing up every day, even when I don’t feel like it.

The Journey Continues

Six months in, I’m still very much a beginner. There’s so much I don’t know.

But I’m a different person than I was six months ago. I can build things. I can solve problems. I can learn new technologies.

That’s progress.

Here’s to the next six months of learning, building, and growing.

If you’re just starting your coding journey, keep going. It’s worth it.