Learn a framework, not a language

I was listening to a podcast recently here that discusses the advantages of learning a framework first, in place of learning a vanilla language. Learn Rails instead of Ruby, learn Angular/React instead of JS, learn Django instead of Python, Learn Bootstrap/Foundation or SASS/LESS instead of CSS, etc.

The main argument was that, in the professional field, company’s are using frameworks to build their products, not vanilla languages. I am just interested in hearing this community’s take on whether this is a valid argument or if you should learn vanilla first to build your foundation upon. I’d especially love the opinions of any experienced professional developers.

In my job search I’ve seen a lot of companies that still like to use vanilla JS. I think while it’s really great and beneficial to learn a framework, one should learn the fundamentals of the language first which would help further ones understanding of the framework. I can’t imagine jumping into something like React without a solid understanding of Javascript, since React is pretty much vanilla js with JSX.

3 Likes

Just to clarify, I’m not a professional developer but I think I’ve spent enough time with Javascript to develop an opinion.

You need both. – though you don’t necessarily have to “finish” learning the language first before jumping on and learning the framework. Sometimes you may need to go back-and-forth between the two paths.

I remember when I first started learning Rails, it was all muddy and cloudy to me… Why? Is the question that keeps popping in my head. Then I paused, and jump into learning Ruby and learned the fundamentals of that language, that made some sense of Rails.

Same can be said of Angular. If you know (not even have to be an expert) Javascript, learning Angular and jQuery becomes easier and makes more sense.

And not everything can be solved by the framework. The framework isn’t a substitute for the language. Even though you’re using Bootstrap, you still need to know CSS. And Bootstrap makes more sense if you know the underlying CSS. If you have a good grasp of CSS, you can write better/more efficient LESS/SASS code.

1 Like

That’s a great podcast @Incredibl3dible! I listen to it too. Dain (the host) offers great insight. He brings an interesting point here, and I think his intention is to encourage new developers to just get going as soon as possible by diving into frameworks to be able to start simple projects right away. I agree with @codefu-chivy though - you need to know the fondamentals. For example, with React, the better your js skills the better you will be with React. You could start with a framework I suppose but you’d have to study the languages in parallel with them. That’s my take anyway.

My personal take is learn the language 1st then any frameworks 2nd. Frameworks are simply abstractions on top of the language itself with a goal to make it easier to work with and build something of value usually quickly. I think its much easier to learn a specific API whether its Angular or React or Ember, etc after you have good fundamentals.
Speaking from personal experience I went from one job working with micro libraries that were chosen to build an application to working at a company that uses React et al for their project. The transition is very fluid and was easy to pick up the toolset. Moreover I would say learning data structures and understanding their application can be helpfully when making architectural or design decisions of whatever you are building.

Sorry, as a developer…you’ll find you are not always developing for the main web.

We have to turn down applicants who can’t write basic JS, because the system we use requires it. If all you know is JQuery, it just won’t work.

Besides you’ll get a lot more milage if you can develop for frame works by knowing the base language. Many companies have their own frameworks too (kind of like style books for grammer lol).

2 Likes

Well, similar to learning to drive a car just on automatic then some random day you have to drive a stick-shift, maybe you will do good but most will either suck completely or the ride will be less smooth than it could be…While you would say you know how to drive a car, you basically can just drive a certain car, whereas if you learn on stick first you can drive any automatic with such an ease.

So if it makes it easier for one to just get started it is probably worth it, but just knowing a framework and not the underlying language may make your journey bumpier than needed.

I’m not sure if you can learn a complex framework with out knowing the language. Sounds to me that if you try that, you would be learning the art of copy pasta from Stackoverflow.

I think framework are really great but whenever you encounter a problem that the framework didn’t “think about”, that’s where your vanilla skills come in action, hence their uttermost importance. Of course, fast prototyping and production ready frameworks are the go-to most of the times, but your toolbox should have that vanilla feel XD

1 Like

I go back and forth. I see the benefit of learning them at the same time.

Since you must know JavaScript to even get a job, it would make sense that the first framework you learn is NodeJS. Once you know JavaScript, it is the easiest framework to learn, since it is JavaScript based.

Angular is a little harder to start out with the NodeJS and it is also losing its popularity. NodeJS was the first that I learned. After I got comfortable with it, it wasn’t that hard to learn Angular.

Just some advice from a freelancer!

1 Like

I don’t know about other frameworks, but I don’t know how you could possibly be good at React if you aren’t pretty good with regular Javascript.

hello can you tell me about scopr of html css in future

The important thing is to learn fundamental concepts and coding patterns. The most important concepts are learned best by focusing on JavaScript because you won’t get distracted by all the framework boilerplate. Ideas like scope, closure, hoisting, and the difference between copying by reference and copying by value are absolutely essential. When you get comfortable with basic JS syntax, design patterns are the key to understanding larger structures:

https://scotch.io/bar-talk/4-javascript-design-patterns-you-should-know

If you learn this stuff thoroughly, you’ll be able to pick up any framework and the differences between Angular, Vue and React won’t bother you.

1 Like

From my personal experience, when I started to learn a framework before getting acquainted with JavaScript, I miserably failed to understand the JS Framework & stopped learning it. After some time I took a JS Udemy Course which covered most of the important concepts related to JavaScript and now when I tried learning the JS Framework it was so easy for me to learn & build projects using it.

The point being is learning the core fundamentals is very important because in the near future when other frameworks do come you will need to learn them too and that time if your fundamentals are not clear i.e. of JavaScript then you will fail miserably at learning & understanding them.