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.