Osmose

I make websites and chiptunes!

  • he/him

AKAs:
Lapsed Neurotypical
JavaScript's Strongest Warrior
Fake Podcast Host
Thotleader
Vertically Integrated Boyfriend
Your Fave's Mutual
Certified 5x Severals by the RIAA
Inconsistently Medicated
The Source That Views Back
Carnally Known
The Alternative


Homepage
osmose.ceo/

eramdam
@eramdam
Anonymous User asked:

I've been seeing a lot of linkedin jobs that requires knowledge on Angular/React/[Other popular framework]. I have been learning web development [and JS] for around 1 year and have not touched any framework because "I would rather have an understanding of the basics than shoving thousands of frameworks on my code that I don't even know what they are doing behind the curtains".
As a experient web dev,

  1. do you think my learning "philosophy" is good for a web development career/just being a good web developer overall?
  2. do you have any strong opinions on frameworks?

do you think my learning "philosophy" is good for a web development career/just being a good web developer overall?

Yes, it never hurts to know the fundamentals well before diving into frameworks! I genuinely think being able to just read the MDN reference or the code of your dependencies is a great way to learn.
If you feel spicy I would recommend either reading the source code or look for high-level explanation of how a given framework works, it's a good learning exercise! You might surprise yourself to find that some of it might be easier to understand than anticipated!

do you have any strong opinions on frameworks?

Short answer: they're fine, ignore the flame wars against or between frameworks and choose the right tool for the job. You might not need one if all you're doing in a simple website.

Long answer: I tend to go against the grain of "Frameworks bad" because I've worked with them for almost 10 years so I have a more nuanced opinion than just "React Is Bad And Every JS Developer Needs To Be Shot On Sight":

Frameworks are tools, how opiniated they are depends on which one you choose. Some will give you everything you could ever need as a "batteries included" package, some will have the bare minimum.
None are perfect, it all depends on what you, your project and (if in a team/work environment) your team needs.
Your role as a front-end developer, if you're asked to make that decision, is to weight the pros and cons and make your choice. Sadly, there is not silver bullet! It's trade-offs all the way!

Story/detail bit: When I first started at my current job, we were using AngularJS (precursor to Angular (yes, it's confusing)). We switched to React a few years later because we had reached the point where our app was complex enough that AngularJS became the performance bottleneck. We're still rocking it and so far it hasn't been close to being a performance bottleneck. Our app is is slow at some things but "rendering a div after changing a piece of state" is not one of them. The chances of a new project running into that nowadays are low IMO because of how much better modern frameworks (and how fast browsers are) but if you're doing something very specific you might butt heads against your framework. 99% of the time the culprit will be your code though.

Hope that helped!


You must log in to comment.

in reply to @eramdam's post:

my philosophy is framework bad grrrr grrr but that’s because i really like basic html and css a lot and i don’t like that frameworks can often gen in the way of that. unfortunately we’re not yet in a world where we can live without them so i still learn the thing so i can get a job

nooo i want to live in my perfect world of fancy css selectors and cool properties don’t replace that with scoping to components with autogenerated class names noooooooo

To your point, I'd note that some frameworks are useful specifically for developing web components that can be re-used or dropped into other applications that don't use the same framework.

In other words (to be more apropos to the original question), there is a range of tasks between "make a vanilla static webpage" and "make a progressive web app". Many jobs frequently involve combining knowledge of fundamentals and frameworks to modify existing bits of software (for better or worse :eggbug:).