DEV Community

Cover image for Why I Personally Decided to Bet on JavaScript

Why I Personally Decided to Bet on JavaScript

Gabriel Palhares on January 05, 2024

and some junior developer mistakes In my previous post, I shared my opinion and some details about why Woovi Bets on JavaScript, but I focused mor...
Collapse
 
soanvig profile image
Mateusz Koteja

If one is just starting out: don't use any framework. Learn the language, not the tool. Learning the tool doesn't learn proper programming. If a junior developer is just knowledgeable about one or two frameworks that person is the most replaceable developer on the planet. That is: most of the developers are like that. And especially with current situation on the market, it just doesn't make sense, you have to be different from others to get the job. It's harder to move forward without using any frameworks, but very quickly you will invent your own helper functions, you will easily see mistakes you are doing, and after all become much better programmer.

I do agree that learning both FE and BE it's a good idea, however i think it should be suited to the needs. Learning programming is not about studying, especially in the beginning, it's about doing the actual coding and thinking. Start with whatever, then gradually as you need a feature for your test app, adopt new solution (for example: start with FE, then you need to add login feature or save something permanently, implement BE with simple storage - that's the typical example).

Collapse
 
tomosterlund profile image
Tom Österlund

These are nice words of wisdom. But don't you think learning a framework and a language in parallel can also be a good idea?

I personally believe that one can gain a very strong foundation in a language, while at the same time learning its common frameworks. I would say the key lays in not neglecting getting a strong foundation in the language one works with. Then if someone start learning Vue, React, Laravel, Spring or whatever, parallel to learning JavaScript or Java, doesn't harm ones learning effort.

Collapse
 
soanvig profile image
Mateusz Koteja • Edited

No, because then one will learn the tool, and learn language just enough to use the tool. But in my opinion, that's not enough to be a good programmer. Nowadays frontend tools are too complex, they have elegant API, but hide a lot of heavy important logic under the hood.

When it comes to frontend:
I think the best way is to learn how to make dynamic frontend using pure JS with one's own helper functions, then at some point very simple library to make one's work easier (like jQuery or something), and then learn heavy-job tooling like React or Vue. That way one learns the language, but he also see the value they give him, without making him crippled "I know React" developer. I mean, if one is ambitious. Otherwise just get the job, get the money, and you are done. However I predict such developer will very quickly hit glass ceiling. I've seen it many times. If you just use HTML/CSS/vanilla JS, you don't need even package manager. Just a browser. It's very natural.

When it comes to backend:
I would consider using barebones tools offered by the language environment, just to see the progress, and to know how frameworks and tools work.

When it comes to both:
Don't use library unless absolutely necessary (like driver to connect to database).
No newbie needs to work in production-ready environment (and yes, most framework are production-ready environment). There is no rush, there is time. It's like those developers who cannot build coherent monolith, but jump right away into full-cloud microservices. Disaster at the horizon.
Just imagine how many moving parts are involved in frontend ecosystem if you are a newbie: HTML, CSS, JS, the library itself, state management, HTTP requests, compilation, package manager and more. It's seriously too much, and the person can in fact build something that "works", but doesn't understand anything, and the worst thing: probably never will, because it is already satisfying. If you start barebores there is lower excitement (effects are less impressive), however the sense of progress, the joy of discover, and the playfulness is irreplaceable.

ALL passionate developers I know personally (who discover, learn, experiment, and are always ahead of everybody else in the team) started barebones.
NONE developer I know personally who started right ahead from frameworks is passionate. It's just a job for them, and certainly less rewarding mentally in the long run.

Thread Thread
 
tomosterlund profile image
Tom Österlund

Hmm. Coming into this thread with a slightly more laxed opinion, I have to say: this is probably the best case I ever read for why one should not rush the learning process learning programming frameworks.

Thanks!

Thread Thread
 
gabepalhares profile image
Gabriel Palhares • Edited

That's a great explanation! Almost an article itself, congrats!

Collapse
 
valeriavg profile image
Valeria

I really liked your article! Love your passion for programming! And I wholeheartedly agree that one should master whatever makes their craft enjoyable, even if it’s saturated. Because yes there are many JavaScript developers, but they are all specialised in specific areas and aspects. Besides if one understands how programming works in general it’s much easier to extrapolate that knowledge on to other languages and libraries.
All the best in your journey!

Collapse
 
adaptive-shield-matrix profile image
Adaptive Shield Matrix

JS/TS won by being the only tools that

  • can do full stack: backend and frontend
  • good enough for scripting (much less verbose than say Java)
  • fully embraced web/browser standards
  • being truly cross platform (by using the browser or js runtimes)

Other backend languages can do templating, but that's only good for static websites, not for highly complex and dynamic web apps.

Only web apps can provide the best user experience.
Having a product with better/best user experience always wins.
JS/TS won by being the only solution that can do web apps.

Collapse
 
random_ti profile image
Random

Nice article 🔥

Collapse
 
officialphaqwasi profile image
Isaac Klutse

This article is very educative.

Collapse
 
thomasjunkos profile image
Thomas Junkツ

In general I do not think JS is a particularly good language to start with.

The only reason why I would recommend it is: general availability. To get a "console" to work with you could use a browser and don't have to install anything (besides the browser you already are using).