DEV Community

Cover image for The Harsh Reality for JS Developers: If You Don't Study The Fundamentals You Will Be Just Another “Coder”

The Harsh Reality for JS Developers: If You Don't Study The Fundamentals You Will Be Just Another “Coder”

Dragos Nedelcu on February 16, 2022

Three years ago, I faced a brutal truth. Up to that point, I had been writing dozens of lines of code. But, when asked to solve specific technical...
Collapse
 
1oglop1 profile image
Jan Gazda

This is a great article even when I just skimmed through!
When I wanted to learn JavaScript 90% of peole told me to learn the framework, when I asked them about the particular error they had no idea because of lack of fundamentals. So I told them this is the reason I do not want learn the framework until I understand it's ideas!
With this mindset I continued my study and now I can bring up an application from the code to the infrastructure on my own. Frameworks/lauguages do not matter that much anymore.

Collapse
 
dragosnedelcu profile image
Dragos Nedelcu • Edited

Thanks Jan, glad you found it useful :)

Collapse
 
ahelmi365 profile image
Ali Helmi

What are the sources that you used to learn JS first?
Thank you!

Collapse
 
marvintensuan profile image
Marvin

What do you mean by this? Did you mean they cannot at least read tracebacks? Or is it to be expected that an average JS programmer should at least be able understand its internals (e.g., JS event loop and execution behavior).

Personally, I'm only a hobbyist. Python is my primary language but a lot of concepts are transferrable to JS. So even though I don't understand JS as deep as I do Python, I can manage to scaffold a Nuxt app and read the docs whenever I hit a problem.

Collapse
 
1oglop1 profile image
Jan Gazda

Hi, my first professional language is Python as well.
I mean that when I started learning python (at uni) I did not start with the framework I started with the language and concepts.
However then I wanted to learn JS and 8 out 10 people asked me "which framework" at that point I was not able to answer nor I was interested in learning the framework.
Later on I could see that learning the language fundamentals is gave me and advantage because I'm not dependent on the framework.

Collapse
 
godstime_nwabue profile image
Godstime Nwabue

Currently stuck in fundamentals, still I was asked to learn the frameworks

Collapse
 
teetotum profile image
Martin

For me this article reads too much like advertising and I find very little of any real substance in it.
To become a good developer there is no other way but to gather experience, lots of experience, lots and lots of it, through doing actual coding for actual projects. For years on end. It's a journey without a true end. We all learn new things every day. There will always be colleagues who know more than us, and always some who know less.
But there is no shortcut.

Collapse
 
leob profile image
leob • Edited

Totally agree ... yeah reads a bit too much like an ad - not sure why it has more than 600 likes, and why this article from 2022 even pops up in my dev.to "stream" ...

Collapse
 
christiankozalla profile image
Christian Kozalla

Great post as always worth reading!

In general, I feel watching coding videos is a waste of time. Simply because you can learn much more in the same time reading tutorials or documentation - I believe it's faster, and I feel I can accomplish much more in the same amount of time.

And of course your right to focus on learning software engineering fundamentals, or web-platform-specific fundamentals, rather than frameworks. Frameworks come and go. The web is here to stay!

Collapse
 
dragosnedelcu profile image
Dragos Nedelcu

100% Christian, the web is here to stay, fundamentals to the rescue!

Collapse
 
tylim88 profile image
Acid Coder

is this ad?

Collapse
 
lalulafrei profile image
Lara

I felt the same. And the “don’t worry, I gotcha” kind of tone referring to the “links” at the bottom which are ultimately only a link to his “5 step system” smh… plus the advise here is really generic if you think about it: “you are better than you think”, “master the basics” (yeh that’s the whole point, isn’t it?). It’s super pitchy and no substance. The “links with help” just link to a video of the guy talking, which I do not feel tempted to watch after reading all his ad.

Collapse
 
synchromatik profile image
synchromatik

Ofc it is.

Collapse
 
mmikael_18 profile image
Matti Uusitalo

Great article. Even though I already have over a decade of code experience, I always come back from time to time to learn the basics again. Another important thing is to focus your expertise strengths. For me it is that I have an interface designer background.

Collapse
 
pengeszikra profile image
Peter Vivo

You right! Without strong base you cannot build up something stable. I think, the real root of javascript is base manipulation of array, objects and functions, without any DOM manipulation. I found this site is really handy for start learn any languages, because have lot of test, so you can learn by TDD : codewars.com

Collapse
 
dragosnedelcu profile image
Dragos Nedelcu

Yes Peter, I would advise you to go even further then "language fundamentals". JS runs in the browser mostly (or in a browser like environment, eg. the Node platform). The better you understand not only the language, but the platform it has been designed for, the better you will do over all.

Collapse
 
ahmedmj profile image
Othman

Do you mind expanding more on the idea of learning fundamentals?
like fundamentals of what, exactly? Since you've mentioned that languages and frameworks change and it's futile to try to stay on top of them, it leaves me wondering what are these low-level fundamentals that you are referring to.

Thanks for the article it was an enjoyable read...

Collapse
 
thormeier profile image
Pascal Thormeier

Most likely that's the underlying paradigms, concepts of languages and frameworks, design patterns and - at the most fundamental level - maths. Seriously, understanding the maths behind computer science brings a whole lot of understanding as to why we do certain things the way we do it. Set theory, for example, or even some calculus and linear algebra help big time.

Collapse
 
drsensor profile image
૮༼⚆︿⚆༽つ

I found out that creating simple real time html game (something like top down shooter) is a good start for encountering a lot of JS quirk. Using reactive framework like React or others give me a lot of headache than writing all of it in vanilla.js (of course with some helper libraries like physics and canvas rendering).

Collapse
 
yuridevat profile image
Julia 👩🏻‍💻 GDE

Thank you so much for this article, Dragos. This is what I wanted to focus on in 2022, to improve my quality of code, fundamentals, ad knowledge. This will help me a lot on my journey of becoming a better developer. Really appreciate it and looking forward to other great articles about this topic. 🙏

Collapse
 
mikewudev profile image
Mike Wu

Is that great developers live in the NOW.

Great call to action, but I have to disagree with this statement.

As someone who reviews more code than I write these days, a common theme in rejected PRs is that the writer was only concerned about the now: the happy path. What happens when feature Y get's deployed too? What if this dependency stops being maintained? What if that state isn't what you assumed it was?

Want to stand out as a developer? Continuously learn + a healthy dose of self-doubt, and yea, maybe take a mentorship program like the author is offering.

Collapse
 
dragosnedelcu profile image
Dragos Nedelcu

Hi Mike,

Great point!

The "NOW" mentality is meant to make us all live a bit more in the present and take action. It does not reffer to our design choices which should always keep in mind future choices.

Cheers,
Dragos

Collapse
 
michthebrandofficial profile image
michTheBrandofficial

Great article Dragos. One thing I do when I have a burnout from coding is to quickly write down the basic concepts in a language I know I don't know, it really helps me to know the next important thing to learn.

Collapse
 
bogdanned profile image
Bogdan Nedelcu

A great read for all the ambitions devs out there

Collapse
 
limacon23 profile image
Rodel Talampas

Great article, and I would say this is not just learning Javascript. If you want to be a developer of any programming language, there is the need to learn the basics and fundamentals. Twenty plus years ago, there were no google or bing or any search engine to ask for sample codes. We create pseudocodes and flow charts to do the basic logic in Plain Paper. New breeds of developers today are lucky to have such resources available to learn every bit of fundamentals.

Collapse
 
heyandre profile image
Andre Castro

One of the best articles I’ve seen about web development. Super! 👍🏼

Collapse
 
rholo profile image
Rodrigo Ahumada

Great article, if I could add a tip, it would be to strongly recommend not to get used to vscode plugins or other editor plugins.

Collapse
 
rus19023 profile image
rus19023

Do you mean like Copilot and Tabnine? LOL

Collapse
 
atifshafi65 profile image
atifshafi65

this is point accurate, it reminds me when i started my web DEV journey , and i understood that learning just frameworks is just not the deal

Collapse
 
nsoul9 profile image
Natali

Thank you for your report, very motivating... :)

Collapse
 
dirman8 profile image
dirman8

Amazing article. You don't just mastery Software Development but Copywriting too :-)

Collapse
 
aaronksaunders profile image
Aaron K Saunders

I guess I don’t see what’s necessarily wrong with just being another coder, being part of a team, finding joy in your success and the success of the overall team.

You make it seem like just another coder is indicative of failure. This mindset is what’s wrong with this industry IMHO….

Collapse
 
amanda_peters12322 profile image
Amanda Peters

Great post, very insightful and helpful for newbies coming out of coding bootcamps!

Collapse
 
dragosnedelcu profile image
Dragos Nedelcu

Thanks Amanda, glad you enjoyed it :)

Collapse
 
zippytyro profile image
Shashwat Verma

Great post Dragos! really deep

Collapse
 
smoore4moma profile image
Steve Moore

Fundamentals that a lot of people are missing:

  • Relational database (you prob know something NoSQL)
  • Server-side language (Rails, C#, even Java)
  • Cloud everything but mainly serverless functions, storage, and databases
  • Servers (Windows and Linux) - web and proper security mainly. This is all about being able to publish your work, particularly on-premise. Carries over to cloud too.

This plus JS puts you in a very strong position...imho.

Collapse
 
joelbonetr profile image
JoelBonetR 🥇 • Edited

I can fix this ⬆️ from my experience as tech lead in projects involving JS:

  • Server-side (Node JS)
  • Understand OOP (Java, C# or C++ are probably better to grasp this concepts and design patterns, tho) just to have an idea, fallback to FP as fast as possible (multiple benefits like tree-shake, faster development, less boilerplate...).
  • Relational database (DB Normalization; understanding it and being proficient applying 1FN, 2FN, 3FN and BCFN) and usage (any ORM such Sequelize is nice to grasp the concepts quick).
  • Linux Web Server management - This is all about being able to publish your work, including the web server, monitoring tools (e.g. PM2) and DB servers (MariaDB, MySQL, PostgreSQL, MongoDB...), hint: you can rent a VPS for few bucks a month.
  • Understand JavaScript core API in Frontend. Most people fail to understand that if something can be done with React/Angular/whatever it can also be done with Vanilla JS. Try it, so you will understand the benefits of frameworks and libs later on while having an idea on what's happening behind the scenes. It'll help understanding and adopting new tech.
  • HTML and CSS are the most underrated pieces of stack on newbies even though you can avoid using JS for a notable part of the presentation logic while being more compliant with the standards just by understanding those two.

I may have missed something but it's mostly this, probably 😂

Collapse
 
agnel profile image
Agnel Waghela

I think you mean Ruby (language) instead of Rails.
Rails is a framework made in Ruby.

Collapse
 
smoore4moma profile image
Steve Moore

Yes, you could just learn Ruby, and I would suggest that. But the real world wants people that know Ruby on Rails. That is really what I was getting at.

Collapse
 
r0272mrz profile image
Sam

This is a lot of words to say very little. A very obvious add for the author’s course. Also the survey/quiz requires your email address to see the results.

Collapse
 
satyam01byte profile image
Satyam Sundaram

Exactly. It's just an ad. I read the whole article waiting to find "what exactly I should learn" but all it provided was "learn the fundamentals" .

I already knew that.

Collapse
 
shatlyk profile image
Shatlyk

54

Collapse
 
eljayadobe profile image
Eljay-Adobe

For learn the fundamentals I recommend an introductory computer science textbook from MIT. Read the book. Do the exercises.

The book is free, in a variety of electronic formats.

The book is called Structure and Interpretation of Computer Programs, by Harold Abelson, Gerald Jay Sussman, and Julie Sussman.

Also called SICP or "The Wizard Book".

The electronic versions can be downloaded from here.

It's not in JavaScript. It's teaching the fundamentals, which are applicable to all general purpose programming languages.

Collapse
 
muhammadcodes profile image
Muhammad Sani Haruna

Thanks for the recommendation, I'll surely check it out

Collapse
 
rega14 profile image
rega pradipta

Great article

Collapse
 
ahelmi365 profile image
Ali Helmi

Thank you Dragos, this is very helpful.

Collapse
 
joelbonetr profile image
JoelBonetR 🥇

this is an ad

The only way of becoming a senior is by experience. This is:

  • Working on different features and use-cases across many different projects.
  • Having experience communicating effectively with team mates and other teams (backend, frontend, design, UX, security, data, infrastructure, business, management...).
  • Working on different teams to properly understand the different roles and the different development processes and nuances.
  • Proficiency by experience. The more you work, the fast you workaround things to do in your head and the better your estimates become.

Of course you can go for the "Fake it till you make it" path, but it usually backslash you sooner or later.

Can my lack of a "Computer Science" degree be turned into a strength rather than a weakness?

*Sighs* No. The most you can do is to learn the same base concepts through books, Internet tutorials and courses, and keep learning from that base point.
You will never get any strength by not having learnt the basics on something (for obvious reasons I'd say).

You may be putting a lot of effort and doing a good job -or not, we can't know- but stating:

I help JavaScript Developers Get To Senior Level In 3 Months Or Less With A Step-By-Step Plan WITHOUT Any Courses Or Side Projects

Looks like a scam to me, honestly.

Best regards

Collapse
 
miguelznunez profile image
Miguel Z. Nunez

"If you don't study the fundamentals, you will be just another coder", I don't quite understand what you mean by this title, respectively. I think it would make more sense to say, "If you don't go beyond the fundamentals, you will be just another coder".

Collapse
 
latobibor profile image
András Tóth

For me the tipping with JS came when I stumbled upon the book of getify: You don't know JS. He's updating it for the recent ES versions, so expect more books to come. The old ones are still relevant, though the emphasis has shifted from certain things: Prototypal inheritance and generator functions are only used by masochists.

His approach worked perfect: tiny examples that you can run in a browser console, with all the edge cases you can try. I really recommend grabbing code, playing with it, trying to break it to learn.

Collapse
 
osamafayyaz_ahmad_4381c8 profile image
Osama Fayyaz Ahmad

Hi,

I always hear the sentence "Learn the fundamentals" thrown around by everyone. But little detail is provided as to what "the fundamentals" really entails. Can you please elaborate a bit on this point or at least list out some of the fundamentals that every aspiring developer should focus on?

Thank you.

Collapse
 
pfullen profile image
Peter J Fullen, CPA Full Stack Web Developer

Checkout Secrets of the JavaScript Ninja. It was published a few years back but it is a great book for those wanting to master the fundamentals

Collapse
 
mshortt profile image
Matty Shortt

Advert.. self promotion. Is that what this site is about?

Collapse
 
andrewbaisden profile image
Andrew Baisden

Learning programming is a real grind but the pay off is huge!

Collapse
 
yusufkolawole profile image
Yusuf Kolawole

Ohh, Andrew is here. I sight you boss

Collapse
 
rueoplo profile image
rue-oplo

Interesting concept.

As a senior developer (frontend) it was quite interesting to see that one of my weaker points was actually UI Engineering. I agree the premise of learning the fundamentals is 100% more beneficial than tutorial rabbitholes.

This would probably be a much better article targeted at non-payment audiences.

Collapse
 
fyodorio profile image
Fyodor

Looks like a cheesy landing page in form of a blogpost TBH

Collapse
 
indraryadi profile image
Indra

This is one of the best article i ever read. Thank you so much for sharing your knowledge Dragos.

Collapse
 
danities316 profile image
Danities Ichaba

Wow.....

What a good read. You are good man.

Thank you for this insightful write up

Collapse
 
ageekdev profile image
ΛGΣΣK

TLDR: learn software engineering to become a true software engineer

Collapse
 
rextech profile image
Agamuyi Precious Edobor

Nice writeup. But I couldn't schedule a call

Collapse
 
fluxthedev profile image
John • Edited

Hello! Really cool questionaire! I'm a little confused on how to get my results of the assessment. It takes me to this page. Do I have to watch the video to see my results?

Collapse
 
fluxthedev profile image
John

Just kidding I see the email lol

Collapse
 
drewswaycool profile image
Drew McMurry

Nothing wrong with being “just another coder” - it’s my goal personally.

Collapse
 
tisoportes profile image
tisoportes

"Do one thing, and do it well"
Agree with you about "I know this is the complete opposite of what the "community" is doing."

Collapse
 
trandinhhiep789 profile image
eltr

Great! so lucky to see this article

Collapse
 
dragosnedelcu profile image
Dragos Nedelcu

Glad you got value out of it :)

Collapse
 
naimahmedshuvo profile image
Shuvo

Thanks for the post.It is really helpfull for new developers

Collapse
 
tisoportes profile image
tisoportes

If we do not keep consistency in backbone, it will be difficult to build a huge building.

Collapse
 
beccadyn profile image
Becca

I must say it's very insightful.

Collapse
 
yusufkolawole profile image
Yusuf Kolawole

Can you just mention one insight here??

Collapse
 
faraib profile image
Farai Bvuma

Great advice!

Collapse
 
krsnlth profile image
krsnlth • Edited

Hi, I'm new to programming and have recently started learning JS from udemy. Is it okay to learn basic knowledge from udemy or should I try something else?? @dragos

Collapse
 
ramisj12 profile image
Info Comment hidden by post author - thread only accessible via permalink
Rami S. Jaber

@dragosnedelcu excuse me please.
Hello everyone, please follow me i am new in Dev.to please. Thank you

Some comments have been hidden by the post's author - find out more