DEV Community

Cover image for The one mistake that cost me 1.5 year and 10 000$
ibtihel ben salah
ibtihel ben salah

Posted on

21 1 3 2 1

The one mistake that cost me 1.5 year and 10 000$

1.5 years ago, I set out to learn Node.js by building a fullstack e-commerce app using the MERN stack. It sounded like the perfect project at the time—challenging, practical, and impressive on a
Image description portfolio. But looking back, I regret it.

Don’t get me wrong: the project wasn’t a waste of time. I learned a lot about Express, MongoDB, and API integrations. I even gained some experience with payment gateways and inventory management. But here’s the problem: I wasn’t trying to become an e-commerce expert. I was trying to learn Node.js.

Instead of focusing on mastering Node.js fundamentals, I spent most of my time debugging e-commerce-specific features. The complexity of the project became a distraction, pulling me away from my original learning goals.

What I Should Have Done Instead

In hindsight, I should have started with smaller, more focused projects that aligned with my goal of learning Node.js.

These projects would have allowed me to deeply understand Node.js without getting bogged down by unnecessary complexity. Once I had a solid foundation, I could have gradually taken on more ambitious projects, like an e-commerce app.

Lessons Learned

This experience taught me two important lessons:

  1. Start Small

    It's tempting to jump into big, flashy projects, but mastering the basics is far more important. Small, focused projects allow you to build a strong foundation before tackling complexity.

  2. Align Projects with Learning Goals

    Choose projects that directly help you learn the skills you’re targeting. If your goal is to learn Node.js, don’t let yourself get distracted by features or technologies that aren’t relevant to that goal.

Final Thoughts

While I don’t regret the effort I put into the e-commerce app, I do regret not being more intentional about my learning journey. It’s a reminder that growth comes from focused, deliberate practice—not just ambitious projects.

What about you? Have you ever started a project that didn’t align with your learning goals? What did you do differently afterward? Let’s chat in the comments!

Image of Datadog

The Essential Toolkit for Front-end Developers

Take a user-centric approach to front-end monitoring that evolves alongside increasingly complex frameworks and single-page applications.

Get The Kit

Top comments (17)

Collapse
 
mneme profile image
Alex T

mhm... I think the main challenge for learning new coding skills is the iteration to keep using it. I always learn new skills, frameworks, codings. The thing is once you don't always use it over and over again, you still lose it. like learning languages.

Collapse
 
ibtihelbs profile image
ibtihel ben salah

Great point!
You're absolutely right iteration and consistent practice are key to retaining any new skill, especially in coding. It’s like muscle memory; if you don’t use it, it can fade over time. I’ve found that building small projects or revisiting old codebases can help reinforce what I’ve learned, even if I’m not using a particular framework or language daily.

Collapse
 
stinklewinks profile image
Drew Marshall

I back this, wholeheartedly. I have found, also, by building small you can build more repetitively and get to know these languages. Build Small, Learn Small. Build Big, Learn None.

Collapse
 
ibtihelbs profile image
ibtihel ben salah

yeees !
Build Small, Learn Small. Build Big, Learn None.' It’s such a great way to approach learning! Starting small not only makes the process less overwhelming but also allows for deeper understanding and repetition, which is crucial for retention.

Collapse
 
thomas_baseline profile image
Thomas Nixon

I think learning a language and learning the problems for a domain specific solution are very different. There are things to learn about Node.js that have nothing to do with an e-commerce platform. There is also the hosting, styling, content, integrations. I would probably approach it from learning Node.js the language and then learning how to use it in different solutions, e.g. as an API, as a template driven server side rendered site, in a lambda/server/container, production considerations, scaling, auth, database connections, integrations, popular libraries. Also learning what the limits are and when to not use Node.js to solve a problem. Also learning the concepts but using something already put together can be a good use of time, it can save re-inventing the wheel. For example, it might be easier to get a serverless application with Baseline github.com/Baseline-JS/core instead of trying to spend the time figuring out how to get everything set up.

Collapse
 
ibtihelbs profile image
ibtihel ben salah

Honestly, I hadn’t heard of Baseline before either, but after looking into it, it sounds like an amazing tool! It’s always exciting to discover frameworks that can streamline development and let you focus on solving problems rather than reinventing the wheel.
As for Node.js projects, I think It’s all about finding the right balance between learning the language and applying it to real-world scenarios.

Collapse
 
gijs_epping_5604fb614af53 profile image
Gijs Epping

Well, looking at the rol of AI currently playing in the dev environment. I think really being able to understand complex environments and knowing how to debug is getting more valuable. And sometimes trowing yourself into the deepend provides more value insights then gradually dipping your tows in. But it is never a waist. You learn by failure.

Collapse
 
ibtihelbs profile image
ibtihel ben salah

While diving into the deep end can definitely lead to valuable insights and rapid growth, I personally lean toward a more gradual approach. For me, building a strong foundation through smaller, iterative projects helps solidify understanding before tackling complex environments. That said, I completely agree that failure is an incredible teacher.

Collapse
 
dvalin99 profile image
Domenico Tenace

Okay, you had to learn Node.js
But I do not know if it is the best for a complex project such as an e-commerce :(

Collapse
 
joelbonetr profile image
JoelBonetR 🥇 • Edited

Prestashop and WooCommerce are built (pretty badly I've to say) with PHP.
Based on the last time I've checked on them, the former has a hell of a mess in the table relationships, duplicated information across entities, questionable algorithms within its methods... And the latter treats the DB as a dumpster quite literally and to say the least. None of them have any unit, integration or e2e test.

Despite these they still work... kind of... so I'll assume Node would give a bit of an advantage in performance, amount of concurrent users served and so on. If you don't mess it up badly with the rest... Why not?

It will also probably outperform python and many other scripting languages as well nowadays.

Collapse
 
dvalin99 profile image
Domenico Tenace

In my experience, I can say that working with JavaScript/TypeScript, however versatile they are, the complexity of the project tends to increase and they are not robust enough to support the structure.

Confirm what you say about WooCommerce and Prestashop, they are quite confused and full of code.

This is my personal opinion: I come from the environment. NET for backend development and when I worked a bit with Node.js I didn’t feel so comfortable.

Thread Thread
 
joelbonetr profile image
JoelBonetR 🥇 • Edited

How's your architecture the languages fault? 😅

If you like the default .NET thingies just replicate them when using JS/TS 😊

Collapse
 
ibtihelbs profile image
ibtihel ben salah

About PrestaShop and WooCommerce! I’ve heard similar complaints about their architecture—especially the messy database design and lack of testing. It’s impressive (and a little concerning) that they still manage to function as widely used e-commerce platforms despite these issues. 😅

You’re absolutely right that Node.js could offer some significant advantages in terms of performance, scalability, and handling concurrent users—especially when compared to older PHP-based systems.

Collapse
 
ibtihelbs profile image
ibtihel ben salah

That’s a valid concern! Node.js definitely has its strengths, but like any tool, it’s not a one-size-fits-all solution. For complex projects like e-commerce platforms, there are a lot of factors to consider—scalability, performance, and the ecosystem of libraries and tools available. While Node.js can handle e-commerce (especially with frameworks like Next.js or Nest.js), it might not always be the best choice depending on the specific requirements of the project.

Collapse
 
treybrown19 profile image
treybrown19

If you could go back, what are some examples of projects that would be better to start with?

Collapse
 
ibtihelbs profile image
ibtihel ben salah

real-time chat application, serverless function for a specific task, static site generator, CLI tool

Collapse
 
bias profile image
Tobias Nickel

Yes, i get your point. I Also doch so, and Call iT weekend project.

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

👋 Kindness is contagious

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

Okay