DEV Community

Cover image for Is Learning Web Development Directly with Frameworks a Mistake?
Imam Ali Mustofa for Character-driven Code

Posted on

Is Learning Web Development Directly with Frameworks a Mistake?

Hey there, coding enthusiasts, from beginners to seasoned professionals!

Picture this: a web developer who creates beautiful websites using the latest frameworks but struggles to write basic CSS or create simple JavaScript functions. Is this a parenting mistake, or are we witnessing the consequences of being spoiled by the ease of modern tools? Let's unravel this intriguing topic and explore whether diving directly into frameworks is the best approach in our coding journey.

The Temptation of Frameworks

In the vast landscape of web development, frameworks reign supreme. They offer pre-built solutions, powerful components, and time-saving tools that accelerate the development process. It's no wonder many developers are drawn to these shiny frameworks right from the start.

But here's the catch: by embracing frameworks too quickly, we risk overlooking the fundamental building blocks of web development. CSS and vanilla JavaScript lay the foundation upon which frameworks are built. Forgetting these basics can be detrimental, hindering our ability to build from scratch and adapt to unique challenges.

Spoiled Programmers and Characterless Code

Imagine a world where web developers have mastered the art of complex framework wizardry but struggle to create a simple div layout with CSS or a straightforward function to handle form submissions. It's like a superhero who forgot how to tie their shoelaces!

While frameworks offer convenience, they can inadvertently create a generation of developers who rely solely on pre-built solutions without understanding what happens under the hood. As amusing as it sounds, it highlights the importance of striking a balance between mastering frameworks and nurturing a solid foundation of coding skills.

Embrace the Basics, Embrace Growth

Dear developers, let's embrace the magic of frameworks while also cherishing the beauty of basic web development. CSS, the artist's brushstroke, enables us to craft captivating user interfaces, while JavaScript, the problem solver, empowers us to create interactive and dynamic web experiences.

Don't shy away from the fundamentals! Take the time to learn CSS layout techniques, understand how JavaScript events work, and experiment with building simple components from scratch. These skills will become your secret weapon in solving unique challenges and making your code truly characterful.

Average, Unique, and FOMO

In the vast coding community, we encounter developers of all skill levels - from beginners taking their first steps to seasoned professionals pushing the boundaries of technology. Embrace your uniqueness, whether you're a CSS guru, a JavaScript magician, or a framework aficionado.

The fear of missing out (FOMO) on the latest trends is understandable, but remember, there's no one-size-fits-all approach in web development. Each coder's journey is different, and the key to growth lies in continuous learning and embracing versatility.

As we navigate the exciting world of web development, let's remember that frameworks are powerful allies, but they should never overshadow the essence of web development - CSS and vanilla JavaScript. Let's avoid the pitfalls of being spoiled programmers and instead cultivate a community of characterful coders.

So, whether you're a beginner eager to learn the ropes or a seasoned pro pushing the boundaries of web development, let's join forces, share our experiences, and celebrate the beauty of both frameworks and the fundamentals.

In the comments below, share your thoughts on balancing frameworks and the basics. Let's ignite a supportive discussion and inspire each other to reach new heights in our coding journey! Happy coding, and may your code always have character and heart! 🌟

Top comments (40)

Collapse
 
hasanhaja profile image
Hasan Ali

“Is this a parenting mistake?” 😂😂😂

Love this! I feel like this whole take is so underrated. I completely relate to this! I started my web dev journey with React (I like using the term “React baby” for this) and I’ve been playing catch up in recent years to retroactively learn and explore the web platform. That’s been paying dividends!

I think one thing I’ve noticed with the “embrace the magic of frameworks while also cherishing the beauty of basic web development” approach is that a lot of developers who agree with this stance says this, but it’s never enough for production. Maybe a few web fundamentals bleed over as a result of their exploration, but a lot of time I’ve seen people reach for “battle tested frameworks” when it comes time for serious work.

That’s why I think this take is underrated. I think more people should explore what the web platform has to offer, understand the problems different frameworks solve and only opt into them when necessary.

Collapse
 
darkterminal profile image
Imam Ali Mustofa • Edited

So, this a parenting mistake! 🤣😂😹

I've been in the world of "telling through code" for almost 9 years. And 3 years ago I used to say that JavaScript was a lousy language! (from my narcissistic and haughty perspective). I used to be a PHP geek who liked to sit behind the terminal chatting with NGINX on Linux Server.

But the following year, I started to get interested in JavaScript when I saw React getting mature and looking sexier, it seemed PHP was getting wrinkled and less exciting for me or indeed because I was bored with it. Then I slowly filed for divorce papers with PHP, but kept good communication with PHP.

Not long after I got divorced with PHP, I started flirting and approached react and started dating for 4 months and we fell in love, long story short, finally we have a good relationship until now to raise a child together named Nextjs.

Why is it only 4 months that I can fall in love with React? Because I'm already familiar with the oldest family of pure (vanilla) HTML, CSS, and JavaScript.

Collapse
 
hasanhaja profile image
Hasan Ali

😂😂😂

Thread Thread
 
darkterminal profile image
Imam Ali Mustofa

This happen to me... 🙈

Collapse
 
mbaihornom profile image
Hornom

😅😅

Thread Thread
 
darkterminal profile image
Imam Ali Mustofa

Whahaha... why laughing... It's true? If yes, then 🤣😂😹

Collapse
 
overflow profile image
overFlow

So are you saying that PHP is not worth it anymore ?.Im fighting with javaScript at the moment and scaling that mountain. However I am thinking of spicing things up with PHP. At some point I had thought perhaps Python but I think I will jump onto PHP. until now from your comment; I am thinking different.

Thread Thread
 
darkterminal profile image
Imam Ali Mustofa • Edited

Note: "PHP is not worth it anymore"

I'm not saying anything like that, I still use PHP at work IRL. All I said I was "I am divorced from PHP and still have a good relationship with PHP" 😂

Thread Thread
 
overflow profile image
overFlow

You have me confused lol ....is it worth it or not worth it ?
And what is worth the while ?

Thread Thread
 
darkterminal profile image
Imam Ali Mustofa • Edited

This is not yes or no kinda statement or question. This is an art, you've your own...

Anyone, help this dude...

Thread Thread
 
soumyadeepdey profile image
Soumyadeep Dey ☑️

darkterminal.vercel.app/

Please give me repo of this

Thread Thread
 
overflow profile image
overFlow

who?

Thread Thread
 
darkterminal profile image
Imam Ali Mustofa

Sorry, who are you?

Thread Thread
 
overflow profile image
overFlow

wat do yo mean?

Thread Thread
 
darkterminal profile image
Imam Ali Mustofa

I mean @soumyadeepdey sorry mobile navigation it's not perfect for me 😁

Collapse
 
zabdiel51 profile image
Developer • Edited

they should never overshadow the essence of web development - CSS and vanilla JavaScript

I remember developing for the web before Firebug was released. When Macromedia was cool and HomeSite was the IDE du jour. (We won't talk about Dreamweaver and FrontPage.)

Oh wait: you don't know about Firebug? Imagine—if you dare—a world before dev tools existed.

I'm no purist; I don't develop on a 386 connected to a CRT monitor and bang out code in vi using an OEM IBM mechanical keyboard. I wonder, though, how many devs who started earnestly coding in the time since React was released ten years ago could, as an exercise, create a non-trivial responsive web page that interacts with a server using vanilla, modern HTML, CSS, and JavaScript. Something like a contact page: input some information on a form and send the contents to yourself as an email. No bundlers/packers/package managers, no console.log() (alert() is okay), no frameworks. By all means use ECMAScript 2023 and level 3+ CSS specs and the backend of your choice; we aren't supporting IE6 after all 😉

Make it an annual exercise. I wonder if something like No Framework February is an idea we could rally around.

In a world of abstractions and ever-growing tool chains and frameworks, sometimes it's refreshing to run on bare metal and return to first principles.

Collapse
 
darkterminal profile image
Imam Ali Mustofa

Like Micro-services then back to monolith, it's big joke in the world!

Collapse
 
overflow profile image
overFlow

So when do we start this no No Framework February??? Its a great idea. I like!! How are we gonna push it??

Collapse
 
shifi profile image
Shifa Ur Rehman

While on my journey to coaching, i have found two types of students mainly:
One who go from fundamentals to basics to advanced and other who go fundamentals to advanced to basics primarily because they can't understand anything in that domain and then they move to fundamental again because they didn't pay much attention there in the first place and then they move to advanced practices and topics again only to swing back to basics and then move again to advanced.

Now I don't know about you guys, but i coach not for money, but for experience. Not the experience of the field but the experience of understanding the psyche of monkey brains that all students have at that level. But of the both types, i have a very diverse conclusion. The first type of students, their code is extremely well done, basic but from the syntax to logic, their output is very consistent. But the second type of students, their code practices are much more chaotic. They write code without thinking of the concequences most of the time and mostly follow the methodology of what works just works and is enough.

It gets equally hard to judge them, as you first have to understand their psychology, the drive that drives them, both of them are equally ambitious. But their ideologies make them a very different kind of developer from the other kind.

But one thing i can vouch for a 100%. If you make them collaborate in an even pack i.e. 1 of each kind in a pair, they groom each other. Their practices start to streamline a lot. Two of the same kind if collaborate, they end up losing interest after a little while.

I dont know what my take is out of this. Afterall i wrote all of this while sitting in my bathroom under a shower :p but maybe the psychology and collaborative experiences do matter, maybe just maybe, our grooming patterns need grooming too. There is no shame in learning javascript either from react, or plain old js. You eventually end up in the same place. How much time you spend while at it completely depends on the drive you have. Doesn't matter what kind. Your curiosity will always lead you there.

Collapse
 
shifi profile image
Shifa Ur Rehman

Chances are, i completely took your article wrong but went ahead and wrote it all anyways. Sorry in that case. Maybe it might serve as a research topic for someone interested in the eventual outcome of such debate.

Collapse
 
darkterminal profile image
Imam Ali Mustofa

Indeed, it is intriguing! Personally, I refrain from drawing such significant conclusions about specific domains. However, I see myself as a builder who would never start constructing a house from its roof first. Before constructing its foundation first.

Thank you for sharing your profoundly impressive experience!

Thread Thread
 
aarone4 profile image
Aaron Reese

Not a good analogy. Are you a worse house builder for using ready made bricks rather than casting your own?
Does it make sense to have doors that are a non-standard size so have to be custom made, delay the project and put it over budget.
Productivity comes from doing the things you do that add value and dropping, delegating or standardising the things that don't

Collapse
 
rasheedmozaffar profile image
Rasheed K Mozaffar

Everything said is true, I myself experienced that even in a different ecosystem, jumping off and skipping the foundational building blocks of a learning endeavor is a big mistake, regardless of how far we go, without a clear understanding of the underlying essentials, it's never a good practice, that holds true for whichever concept, idea, technology or a language.
Learning and mastering the fundamentals results in a potent foundation which can be fruitfully harnessed to build on top.
Nice post, very well said ❤️

Collapse
 
darkterminal profile image
Imam Ali Mustofa

Nice catch my punk!!! Let setup a 🔥 and ☕ in my ⛺ and let's explore the 🌏 together! 🛩

Collapse
 
not-ethan profile image
Ethan

I do agree. I think its best to learn plain CSS make projects with it until you are conformable using it. Then you learn frame works. And the same goes with JavaScript.

Another down side is that it may make using the frame work harder because you dont know the concepts needed like functions or classes to use the framework well.

Collapse
 
darkterminal profile image
Imam Ali Mustofa • Edited

👏👏👏 Amazing!!!

Remind me about:

People are born old, and grow up like babies.

Everyone nowadays feels proficient with ChatGPT and AI. But they forget AI is a mirror to measure our intelligence.

Note: Never share your conversation history with ChatGPT to other people. 🤣😂😹

Collapse
 
ingosteinke profile image
Ingo Steinke

Talking about a "spoiled generation" (of programmers) sounds a lot like simply regretting to get older and looking back on earlier times in a nostalgic way imaging a past never actually existed.

I often present myself as an old-school developer starting web development before CSS , Firebug and React. While that's true, it's also misleading. I did use Flash, Dreamweaver, and Homesite and it helped to proceed and experiment before seeking to break out of its limitations and learn to write my own HTML from the start. Today's generation might have a similar experience with WebFlow, WordPress or Elementor.

React is another story, as it doesn't limit you that much, but it makes you learn domain-specific syntax only partially related to the underlying concepts and target technologies like HTML, CSS, and ECMAScript / JavaScript. But then again, those technologies can also be seen as syntactical sugar on top of machine languages or browser bytecode, so does it matter that much in the end? Even machine language is an abstraction, but that doesn't mean everybody needs to start soldering bare metal before designing their own websites.

I imagine there must have been strong opposition when the piano became popular as a music instrument, or what about a church organ or a digital synthesizer: it's all fake like electronic music in general, and people must not use any of those unless they learned to sing and build their own instruments. But the point is: some eventually will want to do that!

Don't get me wrong, I'm a fan of vanilla web tech and I will tell everyone they should learn HTML, CSS, and JavaScript, understand core concepts and care about cross-browser compatibility and accessibility. But frameworks can be the perfect tool in a specific situation and they're no highway to hell but rather a stepping stone for aspiring developers.

Collapse
 
darkterminal profile image
Imam Ali Mustofa

Thank you very much to share your thought mate... this is really wise... 👏👏👏

Collapse
 
pageshidara profile image
Hide Shidara

I don't think it's a mistake. I think it's more like... the wrong framework can really mess with your learning curve. You have to find the right balance. Django worked well for me, Ruby on Rails worked for others.

Collapse
 
darkterminal profile image
Imam Ali Mustofa

Indeed fascinating! Do you comprehend the fundamental workings of a framework from that standpoint? Personally, I have always envisioned a framework as a palette of vibrant hues employed by artists, and ink of myriad colors utilized by graphic designers to imprint their creations onto paper:

The Palette of Colors and the Artisan

The palette of colors is a medium employed by artisans to imbue their creations with artistic and aesthetic finesse, captivating the eyes with a harmonious blend of hues, ultimately yielding an extraordinary masterpiece.

The Ink of Colors and the Graphic Designer

The ink of colors serves as a medium for printers, enabling them to reproduce images or text that faithfully reflects the creative endeavors of graphic designers.

Both mediums yield the same output, yet they evoke distinct sensations.

Collapse
 
stainlessray profile image
stainlessray

This is myopic. This is classic. This is untrue. Frameworks are capable of enhancing one's understanding of fundamental CS principles as well as common design patterns. Frameworks leverage language use and enforce guidelines (guard rails) for building complex systems in less time.

People have this same achievement bias opinion about the IDE. It's blather.

Collapse
 
darkterminal profile image
Imam Ali Mustofa

Thank you very much!

Once the fundamentals have been grasped... otherwise, I often liken it to "a one-month-old baby yearning to run."

Collapse
 
akshitarora profile image
Akshit Arora

Great and much-needed article. Learning development using Frameworks can make things easy and make your job-ready faster. But, it won't be a long game. I have met developers who knew the complex functionalities of Laravel but were not aware of the basic array-related functions of PHP.

If you get a chance, would you read my latest article here on dev.to?
Top 5 things a Framework is NOT responsible for!

Collapse
 
darkterminal profile image
Imam Ali Mustofa

Thank you... and your top 5 things about Framework that not responsible for, is awesome catch!!! That's really true... IRL! Damn it...

Collapse
 
aarone4 profile image
Aaron Reese

The stuff under the hood is under there for a reason. You don't need to know how it works to use it.
Remember that it is all abstraction until you get down to machine code so I would say that junior Devs only need to know how to use the framework. As you progress you will dig deeper into the lower levels of abstraction, especially where they surface in your framework of choice. To use React you really need to understand array.map; if you use Vue or Angular you get away with not knowing these for longer but you may get to understand ref.value and idempotent state objects sooner.
But I wrote my first websites in PERL and cgi_bin so what do I know.

Collapse
 
darkterminal profile image
Imam Ali Mustofa

And I love this:

a one-month-old baby yearning to run.

Collapse
 
raguay profile image
Richard Guay

My first program was entered into the computer with switches! I’ve worked on web projects since the gopher net. So, I first learned HTML and CSS before the was JavaScript. When JavaScript came, I picked it up as well. So, I agree with this article. I think everyone should start their journey without any frameworks and then add them on later. Then you know how to best use the framework instead of letting the framework master you!

Collapse
 
darkterminal profile image
Imam Ali Mustofa

Oh man, you are the most competent person to provide enlightenment from what I have conveyed! Thank you for stopping by to read and comment on my article. 🤠🤘

Collapse
 
juanfrank77 profile image
Juan F Gonzalez

Mostly yes. Kind of like the debate of not using calculators in math exams.

Collapse
 
darkterminal profile image
Imam Ali Mustofa

Ahahaha... nice 🏜 btw