Hello, experienced coders and newbies alike! You've likely witnessed the dilemma faced by newbies or are facing this yourselves: When getting started, should you prioritize mastering the fundamentals or plunge into the world of latest frameworks and technologies? How can you strike the right balance between mastering the fundamentals and staying updated with the latest frameworks?
Follow the CodeNewbie Org and #codenewbie for more discussions and online camaraderie!
Latest comments (32)
I was told this by seasoned devs:
"Learning a framework without understanding its underlying language and concepts makes it harder" So what I've done was to focus in on the fundamentals to get a grasp so "when" I'm even entertaining the "frameworks" I will have a "frame of reference". Management of the FOMO (fear of missing out) since coming into this industry to me seems like a roller-coaster ride of new things coming often. However, I have lots of things bookmarked, saved on YouTube for later feeding of info, lol. Life learners unite!! Lol
I think the key here is the word, "mastering". I think the benefit is to get a sold knowledge of the fundamentals, not mastering them. Knowing where to look for the information more than having the knowledge already.
Knowing the Frameworks that you are looking to use, or are already using, is FAR more beneficial. You can have an extensive knowledge of your language, but if you don't know how to correctly use the Framework, then the code you write will be inefficient and behave in unexpected ways.
FUNDAMENTALS.
a) how can you really exercise expertise in a framework if you don't understand what it's built on?
b) it actually makes learning frameworks EASIER when you know the basics first. You can't really Django without Python, or React or Next.js or Vue or Angular without a pretty solid Javascript in your pocket... But with it, you can learn them FASTER.
Fundamentals first. Frameworks are there to make fundamentals easy to do, not take away the need to understand how and why you would want them.
I think one has to first understand that the both are very essential in the journey of learning programming.
I have seen people not really focusing on the fundemental aspects of the programming let alone framework's fundemental.
Also there are some people who likes to deep dive in the fundamentals of a language but dont focus much on learning the framework itself.
I think these both two approaches can be summed down to two approaches in learning anything.
One is the top-down approach and other one is bottom-up approach.
One has to identity it for himself what suits him.
One another techniques is outside in, in which you start from the very high level birds eye view and alongside that you keep on learning about the fundementals. I find this technique the best of amongst the others.
Learning the fundamentals is the most important thing to do. Frameworks are used to enhance the fundamental skills and make it easier to do things quickly. I'm a web developer, so I'll give an example using React, NextJS and Tailwind.
Here are my thoughts as a graph
Basically, if you learn frameworks first, when you run into an error you have no idea how things work so it will be much harder. But learning the fundamentals first means you have a better understanding of how things work.
It's also harder to pick up new libraries/frameworks if you don't know the fundamentals.
As someone who did both fundamentals first and framework first, it depends on what you want to do, if that's getting a job then I'd say fundamentals, I would imagine fundamentals for experienced developers are important for when hiring a developer, let alone a junior, if you could not answer a question that to them is basic then they'd probably doubt your skills.
If you want to build things however then just go for whatever floats your boat, the benefit being that you go straight for the juicy parts, for example I got introduced to postgres when I decided to use supabase, a weird starting point since I don't even know the fundamentals of postgres but I already have a database that I can connect my web application to. The way I'm learning postgres right now is kind of blackbox-ish, and there are many gaps in my knowledge about it, but I still understand enough to utilize supabase. Although no one would probably hire me for a backend position
I I personally see code as language, so before reading poetry I need to understand the language and learn how to put words together. Learn JS , than TS and then specific framework as React. I'm currently learning dotnets EntityFramework, something I haven't really used professionally, but I have a good C# / OOP / dotnet base so makes the process much simpler 🙂
For me there's no point in looking at react if don't understand what "components.map(c => )" is actually doing.
HOWEVER this is my approach, do what feels right to you. There are people who learn by video, I learn by reading. Find your path 😉
Hands down fundamentals, have to understand JS concepts and how JS works under the hood of frameworks, so you know what design patterns are best for your use case, unless you don't mind spaghetti code!
Well, it'd be really painful to learn a framework without learning the underlying language. However, learning a language takes a lot of experience, which comes from a lot of practice.
I think it's good to start working with a framework if you really want to understand a language, just because it gives you something to do Just make sure you understand the language a little bit at least!