DEV Community

Cover image for Frameworks hurt junior devs (and why math is important)

Frameworks hurt junior devs (and why math is important)

anes on October 11, 2022

Introduction A debate as old as coding itself: "Math is rudimentary for coding!" "No, it's not, you just enjoy it and try to force it ...
Collapse
 
wadecodez profile image
Wade Zimmerman

You can get pretty far in code without needing to understand the underlying principals of mathematics. My weakness has always been calculus but I've been exposed to enough math that I can glance at a expression and know Greek letters like Sigma and Pi are the equivalent of for loops.

For all the other hieroglyphic symbols I just use Google to lookup references like the one on Wikipedia to translate math into code. Kinda of like a modern day Rosetta stone.


IMO writing a lot of math is code smell and probably an indicator that you're overthinking/over-engineering. Odds are, there is already a library that does the exact same thing but better.

Collapse
 
aneshodza profile image
anes

I have to agree on that, writing math is often unnecessary and libraries solve that often times. My point is that having an understanding of how the libraries work make you a more well rounded software developer, which knows how to build on top of libraries and also fix errors that came up while building on top.
For the "just look it up part" it's not always possible to do so. Sometimes you just face a problem or something you need to implement, where no one has given you a mathematical expression and those are the cases I'm referring to. Having a good intuition for math and problems gives you the ability to come up with a solution (or formula), which you can then look up and convert into code.

Collapse
 
incrementis profile image
Akin C.

Hello anes,

thank you for your article.
I enjoyed reading it with controversial emotions and thoughts.
Kudos for that, as this might be a good way to start discussions.

I would say not everything needs math in programming and it's fine if someone wants to specialize in less math oriented programming.

I agree with you that understanding a framework in detail can help tremendously, but to be realistic we can't learn everything about some frameworks and hence the time we want and have to spend should be well thought out.

Collapse
 
aneshodza profile image
anes

Obviously you can be a good programmer, even without understanding what's happening under the hood. The issue with that is, that you are building a house on top of a shaky foundation. As soon as you try to venture into more complex topics (blockchain, AI, security etc.) you lack necessary knowledge to learn those topics.
And yes, I also agree with your point on "we can't learn everything about some frameworks". I also use next and solid start without understanding a lot of the "magic". But then, when I need more complex stuff, I can always return to rails, where I understand a lot more of what is done how. I feel like that makes you more able to fix bugs.

Collapse
 
theaccordance profile image
Joe Mainwaring • Edited

This is the second post I’ve read in the last week downplaying frameworks.

I do have to respectfully disagree with the premise. I agree that there is value in junior devs learning and building at a lower level, but many frameworks are a lot like Icebergs
Image description

Our criticism tends to focus on what’s most apparent as we use these tools, but it often overlooks a great deal of minor things that can suck up enormous amounts of time for your junior devs if they have to implement those pieces themselves.

Perhaps you want your devs to know that stuff, but me? I want my devs accelerating the growth of my business, and that means shipping in a timely manner. Ultimately, that’s what frameworks provide: accelerated development.

Collapse
 
aneshodza profile image
anes

Thanks for the comment! As I mentioned above, not using a framework "will cost you a lot of time and probably also code efficiency, so you should probably let frameworks do it for you when the project is of commercial and not educational nature". I agree with you when you say that in a commercial environment frameworks have to be used, but what I am trying to tell with my quote and this post in general is, that all of those little project that many junior devs build to get a good feeling for coding should focus on the educational part and not to get stuff done quick.

Collapse
 
theaccordance profile image
Joe Mainwaring

That’s a fair point, although my own learning track for beginners is different.

I do a lesson on bare bones but don’t get overly detailed with it, and then shift to a RTFM mentality with frameworks. But I will concede I have a clear difference in goal than you: I’m trying to get people placed in jobs quickly.

Thread Thread
 
aneshodza profile image
anes

I think your goal of getting a job as quick as possible is also necessary for many people. I come to the IT from a different background: With 15 I started a four years long education as a software developer. I have a lot of time that I can spend on learning instead of earning money. If someone comes from working another profession and needs to feed himself or his family I think the quick approach is the correct one.

Thread Thread
 
theaccordance profile image
Joe Mainwaring

Very true! When your academic path is longer, you can afford certain liberties!

There’s certainly no one right answer here given development is such a broad category of professionals, and then of course there’s also the hobbyist audience.

Thread Thread
 
aneshodza profile image
anes

Agreed

Collapse
 
mellen profile image
Matt Ellen

I'm all for learning about what frameworks are actually doing, so I'm fully in agreement with your approach.

I'm not sure I understand your first example. Why do you need to know the length of the line to draw the line? Did you need to plot the individual pixels?

Collapse
 
aneshodza profile image
anes

No, I just needed to draw the line. But to do that I needed the angle with which I had to draw, and the length of the line which had to be drawn.

Collapse
 
mellen profile image
Matt Ellen

I see. I've not encountered a drawing system that doesn't take the two coördinates and draw a line. What were you using to draw the line?

sorry, I'm just very curious

Thread Thread
 
aneshodza profile image
anes

I had to create a new html element in the DOM, because of what my teacher said it would have to be able to do in the near future. Dw abt it, I'm happy to clarify!

Collapse
 
uzair004 profile image
Muhammad Uzair

Not learning math is biggest hole in my heart as programmer, even though I am doing good as programmer from a year.
But understanding math give you so much power, like I cannot choose any of future tech (AI, ML, Data Science, Blockchain) because of math dilemma.

Planning to start again from school level, but that will take me a lot. Plus these days you have to choose between being introvert and hard working programmer or market yourself with not much.

Collapse
 
aneshodza profile image
anes

I think you would benefit by educating youself on some basic math topics. When you try to step up to the complicated stuff (like AI and blockchain as you mentioned) it gets more and more complicated. With a missing foundation in math it will be hard to move onto subjects like those