DEV Community

Tyler Smith
Tyler Smith

Posted on • Updated on

No, you don't need to learn the language before you learn a framework

Imagine you just moved to a new country that speaks a different language. Now imagine you're out-and-about, and you really need to use the toilet. In a panic, you Google how to ask someone for directions to the bathroom in this country's language.

Inside of every page you view, you find people arguing you first need to learn the language's grammar, conjugation and master its alphabet before you should even attempt to ask a local how to find the restroom. Someone who has been speaking the language for over 10 years even says that people who try to string together sentences without mastering these principles first make the whole language worse for everyone else who uses it.

You just need to use the bathroom, and it can't wait.

Anyone who is new to programming can probably relate to this story. Too often, a vocal minority of programmers on Stack Overflow, Reddit and Twitter will preach that a novice coder must master the syntax, data structures and best practices of a language before they are even allowed to ask questions. They certainly must know all of this before they're allowed to a use a framework!

Programming languages are just tools to get things done. Can you imagine if people demanded the same level of mastery with screw drivers and hammers before you were allowed to assemble Ikea furniture? And heaven forbid you use a power drill before you've mastered the screw driver!

Babies aren't expected to learn grammar or verb tenses before they're allowed to speak. They start by learning the words that are most useful to them to get the things they want ("mommy", "daddy", "cookie"). Much like babies mimicking the words they hear around them before they start forming their own sentences, copying and pasting code you don't entirely understand is a part of the programming language learning process.

Where you start in your programming journey will depend on what problem you're trying to solve. Maybe you start with a high-level web UI framework like React. When you start building things, you'll pick up some JavaScript along the way. As you run into challenging problems, your Google searches will likely lead you to discover established best-practices that help you grow as a developer. And if you stick with it, eventually you'll become fluent.

If you're new to programming, welcome! Look for the tools that can help you build the things you're interested in, and start coding. It's okay to be imperfect. There is almost no beautiful code in the wild: just coders doing the best they can with what they have.

Oldest comments (5)

Collapse
 
vanaf1979 profile image
Stephan Nijman

Good point. Just take the countless Javascript developers, like me, that started out with jQuery just because it was much easier. Knowing vanilla Js or Css wil probably make you more proficient in React or Bootstrap, but if these frameworks click with you you can always dive deeper later!

Especially for new dev's. Just have fun. There is nothing greater, and stimulating, than to build something that works, and if React helped you do that it's great. Just learn how things work under the hood later! :)

Collapse
 
tylerlwsmith profile image
Tyler Smith

I couldn't agree with you more, Stephan! I only learned vanilla JavaScript deeply after learning jQuery, Vue.js and React. I'm unashamed to say I still frequently reach for jQuery: it's a great little library.

All of these are just tools: it's what you build with them that matters.

Collapse
 
successtar profile image
Hammed Olalekan Osanyinpeju

I think why most people make emphasis on learning language before framework is because it is very easy to get carried away with what the framework offer without making attempt to revisit how things actually work under the hood.

Understanding how things work under the hood help during scalability and application performance.

But in all, no perfect system, we are only trying our best.

Collapse
 
tylerlwsmith profile image
Tyler Smith

Thanks for reading my article, Hammed.

I understand that knowing how things work under the hood can be valuable, but the further I get into my career, the less important the implementation details of any given language or framework seem to be.

I write a lot of PHP and JavaScript, but occasionally I need to work on existing Django or Rails projects. I don't write Python or Ruby often, but when these projects come up I need to create a feature or fix a bug quickly. Though I'm not great with those languages, I find that a solid grasp of software architecture and clean code can get me through the features most of the time. Writing good code is the hard part: I can look up the syntax and individual commands as needed.

For engineers that have written code in dozens of languages, many of them seem to learn languages and frameworks at the same time for a project. They have experience with several paradigms and tools, so they are able to figure it out as they go.

Collapse
 
wilson124607 profile image
ew2323219

This was literally a revelation for me. Every language has its own structure, and if you understand that structure first, learning the language will be very easy. Even though English is considered a fairly simple language, it took me a long time to get an intermediate english because I studied on my own. Now I've found an experienced tutor and I'm looking forward to faster and better progress.