- Fresh out of high school. No plan, no direction, just a laptop and a feeling that I should probably figure out what to do with my life. Eight years later, I'm a full-stack developer working with Node, React, TypeScript, building production apps that actually matter.
But here's the thing nobody tells you about learning to code - it's not linear. It's messy. Full of false starts, detours, quits, and comebacks. This is that story. The real one.
(By the way, some years here might be a bit off maybe, The point isn’t the exact date, it’s the grind, we all start somewhere.)
Now I build things with Node.js, React, and TypeScript — stuff I couldn’t even imagine back then.
The Beginning: HTML, CSS, and Pretending I Knew What I Was Doing (2017)
Started in 2017 right after finishing high school. My first exposure to code? HTML and CSS. Not because I had a plan, but because some random YouTube video said "start here."
I built the ugliest websites. Blue backgrounds, Comic Sans everywhere, images that were so big they broke the layout. But it worked. I typed stuff, refreshed the browser, and MY code showed up on the screen. That hooked me.
Spent maybe a month just playing with HTML and CSS. Built a portfolio site (embarrassing), a fake restaurant menu (even worse), tried to copy the Google homepage and failed spectacularly.
But here's what I was actually learning without realizing it: how browsers work, how to structure a page, how to Google error messages when things broke. That foundation mattered more than I knew.
Resources that actually helped:
- W3Schools (https://www.w3schools.com/) - Everyone trashes it but it's simple and works for beginners
- MDN Web Docs (https://developer.mozilla.org/) - Bookmarked every page, still use it today
- CSS-Tricks (https://css-tricks.com/) - When my layouts broke (which was always)
Then I got cocky. "HTML and CSS are easy, programming is gonna be easy too."
Wrong.
The School/UNI Years: Where Nothing Really Clicked (2017-2020)
Here's the uncomfortable truth - school didn't teach me much about actual programming. They had computer science classes, sure. We "learned" about loops and variables. But none of it stuck because none of it felt REAL.
The teacher would show us pseudocode. We'd write some Java on paper (yes, on actual paper). Take a test. Pass. Forget everything the next day.
Programming felt like memorizing math formulas I'd never use. Abstract. Boring. Pointless.
I was going through the motions but nothing was clicking. Passed the classes, but if you asked me to build anything, I'd have no idea where to start.
Looking back, the problem wasn't that I couldn't learn. It's that I wasn't BUILDING anything. Just copying examples and regurgitating them on tests.
The Detour: CCNA and the Command Line Awakening (2018)
Around 2018, I made a weird decision. Quit programming completely. Decided to get into networking instead. Started studying for CCNA (Cisco Certified Network Associate).
Sounds random, right? But here's what happened.
I was configuring routers and switches using Cisco's command line interface. Commands like:
Router> enable
Router# configure terminal
Router(config)# interface fastethernet 0/0
Router(config-if)# ip address 192.168.1.1 255.255.255.0
And something clicked. This command line stuff, typing commands and seeing immediate results, it felt... powerful. Like I was talking directly to the machine instead of going through some graphical interface.
I spent maybe 6-9 months deep in CCNA. Learned about networks, IP addresses, routing protocols, VLANs. Got pretty good at it honestly.
But the whole time, there was this nagging feeling: "This is cool, but I want to BUILD things, not just configure things."
The command line experience though? That planted a seed. Made me curious about terminal, about scripting, about automating stuff instead of clicking buttons.
The Real Start: Coming Back to Programming (late 2018)
Late 2018, I was on a short break — stuck with a lot on my mind, wondering if I should fully dive into coding after getting hooked through CCNA
Came back to programming, but this time different. This time with a project in mind, since we were approaching the time to do school projects.
I researched on Google alot and went with a job posting system. Like an internal job board where companies could post openings and students could apply. I went with this project.
I had no idea what I was doing.
Still figuring life out in uni, you know how it goes — half trying to build a career, half just trying to survive classes. But I committed to building this thing.
The School Project That Changed Everything: Job Portal
This project, this job portal system, this was where everything finally clicked.
I chose PHP because I found some tutorial that made it look easy (it wasn't). Spent THREE MONTHS building this thing. Not just after class time - I'm talking all-nighters, weekends, skipping social events because I was obsessed.
The scope was insane for someone learning:
- Companies register and post jobs
- Students create profiles and apply
- Admin panel to manage everything
- MySQL database storing all the data
- Login/logout system with sessions
- File uploads for resumes and documents
My friends thought I was crazy. "Why are you doing so much? Just build something simple and pass the class."
But I couldn't. I was hooked. This was the first time I was building something REAL. Something people would actually use but remember its a school project.
The code was a disaster, I read and read man. SQL injection vulnerabilities everywhere (I had no idea about security). Probably 80% Stack Overflow copy-paste, 20% me trying to figure out how it all worked. But it WORKED.
Then I hit a wall. The site felt... dead. Static. Click a button, page refreshes, wait. Click again, page refreshes again. It felt old and clunky.
That's when I discovered jQuery. Found some tutorial about adding animations and making forms submit without page refreshes. Spent another few weeks learning AJAX, making things happen without the whole page reloading.
And suddenly the job portal felt ALIVE. Buttons animated when you clicked them. Job listings loaded smoothly without refreshing. Form validation happened in real-time.
When I presented it to the class, my friends were stunned. Teachers were confused because it was way beyond what they expected. One teacher literally asked if I copied it from somewhere (I did copy parts, but I understood them, that's what matters).
Got an A, obviously. But more importantly, I realized something:
This interactivity. This JavaScript stuff. This was what made websites feel modern. This was what I wanted to do.
The project is still on GitHub if you want to see how messy my code was back then: https://github.com/elvis-sautet/job-portal-system
Looking at it now makes me cringe a bit, but I'm also proud of it. That was the project that made me a developer.
JavaScript: When It Finally Made Sense
After the job portal project, I was done with PHP. JavaScript was where the magic happened, and I wanted more of it.
Started properly learning JavaScript. Not from courses, but from building.
javascript.info (https://javascript.info/) became my bible. Free, comprehensive, and doesn't treat you like an idiot.
Went through:
- Variables (let, const, var - still confused about var honestly)
- Functions (took forever to understand return values)
- Arrays and objects (mind blown when objects could contain functions)
- DOM manipulation (getElementById became my best friend)
- Async JavaScript (callbacks, promises, async/await - this broke my brain)
Built everything I could think of:
- Calculator (obviously)
- Todo app (built it like 10 times)
- Expense tracker (because I was broke)
- Random quote generator
- Weather app using free APIs
The key difference this time? I was building stuff I actually wanted to use. Not tutorial projects. MY projects.
I even went into nodejs, with my JS grasped, The Net Ninja was also kinda pushing me to understand Node, haha.
YouTube channels that saved me:
The Net Ninja (https://www.youtube.com/@NetNinja)
Shaun's JavaScript playlist is legendary. Explains things like he's talking to a human, not a computer science professor.
Web Dev Simplified (https://www.youtube.com/@WebDevSimplified)
Kyle makes complex things feel simple. His React hooks video finally made hooks click for me after weeks of confusion.
Programming with Mosh (https://www.youtube.com/@programmingwithmosh)
Mosh's teaching style is structured and clear. Good for fundamentals.
Traversy Media (https://www.youtube.com/@TraversyMedia)
Brad's crash courses taught me more practical skills than any paid course.
But here's the trick I learned: watching isn't learning. I'd watch a video, pause it, try to build it myself without looking. Break it. Fix it. That's how it stuck.
Spent 6-8 hours a day coding. Not exaggerating. Morning, afternoon, evening. My laptop was basically an extension of my body. My parents thought I was wasting my time. My friends thought I was obsessed.
I was. And that obsession is what made the difference.
React: The Framework That Almost Broke Me (late 2021-2022)
Around late December 2021, I kept seeing React everywhere. Job postings wanted it. Developers talked about it. So I dove in.
And I almost quit coding entirely.
React made NO SENSE for the first month. Components? Props? State? JSX that looks like HTML but isn't HTML? What the actual hell?
Tried learning it three separate times before it clicked:
First attempt: Watched a 10-hour course. Understood nothing. Brain hurt. Gave up.
Second attempt: Tried to build something. Spent a week fighting with errors. Gave up again.
Third attempt: Went back to basics. Read the React docs (https://react.dev/) slowly. One concept at a time. Built tiny examples. Didn't move forward until I understood.
That's when it finally clicked. React isn't magic. It's just JavaScript with a different way of thinking about UI.
My breakthrough project? A movie search app using the OMDB API. Type a movie name, see results, click for details. Simple enough to finish, complex enough to actually learn from.
Then I did something that cemented my understanding: I rebuilt it from scratch without looking at tutorials. That's when I knew I actually learned it, not just copied it.
React resources that worked:
- React official docs (https://react.dev/) - Start here, seriously
- freeCodeCamp React tutorial (https://www.freecodecamp.org/) - Long but thorough
I went with it in depth, well, it clicked, but not that much, but hey i also went into nodejs in depth, I got gigs locally, built projects, and even I was comfortable with React and node but i wasnt a "GURU", i was somewhere.
TypeScript: The Boss Level (2023-2024)
Early 2024, TypeScript was everywhere. Job postings required it. Senior devs swore by it. Time to level up.
"It's just JavaScript with types," they said. "Easy," they said.
They lied. TypeScript was FRUSTRATING.
Everything I wrote errored. "Why is this breaking? It works fine in JavaScript!" became my daily scream into the void.
Then I found Matt Pocock.
Matt Pocock (https://www.mattpocock.com/ and https://www.youtube.com/@mattpocockuk) is THE TypeScript wizard. His free tutorials on Total TypeScript (https://www.totaltypescript.com/tutorials) changed everything.
He explains TypeScript in a way that makes sense. Not academic, not overly complex, just practical.
TypeScript learning path that actually worked:
- Matt Pocock's TypeScript for Beginners playlist on YouTube
- Free Beginner's TypeScript Tutorial on Total TypeScript
- TypeScript official docs (https://www.typescriptlang.org/docs/) - good once you have basics
- Convert a JavaScript project to TypeScript (painful but educational)
TypeScript basics you actually need:
- Type annotations for variables and functions
- Interfaces for objects
- Union types (the
|operator) - Basic generics
- Utility types like
Partial,Pick,Omit
What you can skip at first:
- Advanced generic tricks
- Mapped types
- Conditional types
- Declaration files
Learn those later when you actually need them. Don't overwhelm yourself.
The Things That Actually Made Me Better (The Real Lessons)
Let me skip the motivational fluff and tell you what ACTUALLY leveled me up:
1. Building Projects I Cared About
Stop building todo apps. Build something YOU want to use.
I built:
- Habit tracker (used it for a year)
- Side project ideas manager (still use it)
- Chrome extension blocking Twitter during work (saved my productivity)
- Personal finance dashboard (helped me stop being broke)
When you use your own stuff, you find bugs. You add features. You care about making it good.
2. Reading Other People's Code
Found projects on GitHub. Small ones, 500-1000 lines. Read through them completely.
Learned:
- How real projects are structured
- Patterns I'd never seen in tutorials
- Better ways to do things I already knew
- How to navigate a codebase
Read through maybe 30-40 projects. Learned more from that than any course.
3. Deploying Everything
Built something? Deploy it. I don't care if it's ugly or broken. Put it online.
- Vercel (https://vercel.com/) for frontend - free, takes 2 minutes
- Railway (https://railway.app/) for full-stack - replaced Heroku
- Netlify (https://www.netlify.com/) for static sites - also free
Having real projects online > having projects on localhost forever.
4. Writing About What I Learned
Started writing on DEV.to (https://dev.to/) around 2022. Short posts about stuff I figured out.
Check my posts on Dev.to.
Writing forces you to understand. And people comment with better solutions. You learn from that, too.
5. Hours. Stupid Amounts of Hours
There's no shortcut. I spent 6-8 hours a day coding. Sometimes more. Weekends included. Early mornings. Late nights.
Not because I'm disciplined. Because I was obsessed. Couldn't stop thinking about the problems I was trying to solve.
If you're not a bit obsessed, this path is gonna be really hard. Find what makes you obsessed about coding.
The Path I'd Take If Starting Fresh Today
Knowing everything I know now, here's exactly what I'd do starting from zero:
Months 1-2: HTML, CSS, JavaScript Basics
Week 1-2: HTML and CSS fundamentals
- W3Schools for basics (https://www.w3schools.com/)
- Build 3 simple pages (portfolio, landing page, anything)
Week 3-6: JavaScript fundamentals
- javascript.info (https://javascript.info/) - Read these sections: variables, functions, arrays, objects, loops, conditionals
- Build: calculator, grade book, random quote generator
- NO frameworks. Just vanilla JavaScript.
Week 7-8: DOM manipulation
- Learn querySelector, addEventListener, innerHTML
- Build: todo app, counter, simple game (rock paper scissors)
Resources:
- javascript.info (https://javascript.info/)
- MDN Web Docs (https://developer.mozilla.org/)
- The Net Ninja JavaScript playlist
Months 3-4: Modern JavaScript + Async
- ES6+ features: arrow functions, template literals, destructuring, spread/rest
- Promises and async/await
- Fetch API, working with APIs
Build: Weather app, GitHub profile viewer, movie search
Months 5-6: React
Don't touch React until JavaScript is solid. Seriously.
When ready:
- React official tutorial (https://react.dev/learn)
- Build 3-4 small projects (YOUR ideas, not tutorials)
- Learn hooks deeply: useState, useEffect, useContext
Months 7-8: Node.js and Backend
- Express.js basics
- REST API concepts
- Database (MongoDB or PostgreSQL)
- Authentication (JWT or sessions)
Build: Full-stack app (todo, blog, or simple CRUD)
Months 9-10: TypeScript
NOW learn TypeScript, not before.
- Matt Pocock free tutorials (https://www.totaltypescript.com/tutorials)
- TypeScript docs (https://www.typescriptlang.org/docs/)
- Convert a JavaScript project to TypeScript
Months 11-12: Portfolio and Job Prep
- Build 3-5 real projects
- Deploy everything
- Write about what you learned
- Practice interviews (unfortunately necessary)
- Apply for jobs
What to Skip Completely
Skip: Design patterns before you need them
Singleton, factory, observer - learn these when you feel the pain they solve.
Skip: Multiple frameworks at once
Pick React OR Vue. Master one. Learn others if needed later.
Skip: Tutorial hell
If you've watched 3+ tutorials on the same topic, stop watching. Start building.
Skip: Certificates
Nobody ever asked about my Udemy certificates. Build projects instead.
Skip: Perfectionism
Ship working code. Refactor later. Perfect code that never ships is worthless.
My Resource Bookmarks (The Real Ones)
Learning:
- javascript.info (https://javascript.info/)
- MDN Web Docs (https://developer.mozilla.org/)
- W3Schools (https://www.w3schools.com/)
- React Docs (https://react.dev/)
- TypeScript Docs (https://www.typescriptlang.org/docs/)
- Node.js Docs (https://nodejs.org/docs/)
YouTube:
- The Net Ninja (https://www.youtube.com/@NetNinja)
- Web Dev Simplified (https://www.youtube.com/@WebDevSimplified)
- Programming with Mosh (https://www.youtube.com/@programmingwithmosh)
- Traversy Media (https://www.youtube.com/@TraversyMedia)
- Fireship (https://www.youtube.com/@Fireship)
For TypeScript:
- Matt Pocock (https://www.mattpocock.com/ and https://www.youtube.com/@mattpocockuk)
- Total TypeScript (https://www.totaltypescript.com/)
Community:
- DEV.to (https://dev.to/) - Write about what you learn
- freeCodeCamp (https://www.freecodecamp.org/) - Structured curriculum
- Frontend Mentor (https://www.frontendmentor.io/) - Real project briefs
Deployment:
- Vercel (https://vercel.com/)
- Netlify (https://www.netlify.com/)
- Railway (https://railway.app/)
The Uncomfortable Truths Nobody Tells You
It takes way longer than you think
I'm 8 years in (2017-2025) and still learning daily. You don't "finish" learning. Tech moves too fast.
You'll feel stupid constantly
Even now, I look at code and think "what is this?" That feeling never fully goes away. Get comfortable with not knowing.
Getting the first job is brutal
I applied to probably 100+ jobs before landing my first one. Once you have that first year of experience though, it gets easier.
Imposter syndrome is real
I still Google "how to center a div" sometimes. Senior devs still Google basic stuff. We're all figuring it out.
You don't need to know everything
Master ONE stack. JavaScript, React, Node, TypeScript. That's enough to get hired and build real things.
Where I Am Now (2025)
Today I'm a full-stack developer. Work with Node.js, React, TypeScript, PostgreSQL. Build production applications that people actually use.
I'm not a genius. Not a 10x engineer. Just someone who spent a lot of hours writing code, breaking things, fixing things, learning from mistakes.
The path from those ugly HTML pages in 2017, through the CCNA detour, the PHP job portal project in 2020, to production apps today wasn't linear. It was messy. Full of false starts, quits, comebacks.
But I'd do it again. Maybe skip the CCNA year (though that command line experience helped). Focus more on building earlier. Spend less time in tutorial hell.
But the core would stay the same: build stuff, ship it, break it, fix it, learn, repeat.
If You're Starting Today
You're in a better position than I was in 2017. Better resources, better tools, AI to help debug (don't rely on it completely though).
But the fundamentals are the same:
Spend hours writing code. Build projects you care about. Ship stuff even when it's not perfect. Be okay with feeling lost because that feeling never goes away.
Start with HTML and CSS. Then JavaScript deeply. Don't rush to frameworks.
Then React. Then Node. Then TypeScript.
One step at a time. One project at a time. One hour at a time.
In a few years you'll look back and realize you came way further than you thought possible.
That's my story. The real one. No shortcuts, no overnight success, just 8 years of consistent work, constant learning, and a lot of hours staring at error messages at 3am wondering what went wrong.
If this resonated with you, share it with someone trying to learn to code. We all need real stories, not just highlight reels.
Follow my journey:
I'm still learning, still building, still making mistakes. Come say hi.
Elvis Sautet
Full Stack Developer | JavaScript | TypeScript | React | Node.js
Questions? Think I'm wrong about something? Hit me up on Twitter. I'm just another developer trying to figure this stuff out.
Top comments (0)