9 ms·
Everyone needs to learn to do calculus by hand before advancing to the calculator. People picking up frameworks without fundamental understanding is a shockingl
by 88913527 3y ago
Everyone needs to learn to do calculus by hand before advancing to the calculator. People picking up frameworks without fundamental understanding is a shockingly common fallacy.
- saurik 3y agoI mean, you certainly should learn arithmetic before using a calculator, right? But a calculator is more of a library than a framework, anyway, so your attempt at proof-by-analogy isn't at all resonating with me. (edit: I think I misread the comment I replied to and am now in the process of maybe figuring that out downthread.)
- chongli 3y agoCalculators do a lot more than arithmetic these days. Without knowledge of calculus, most people think of a calculator as a magic “black box” that outputs square roots and cosines.
- saurik 3y agoFWIW, I am willing to believe that I have misunderstood the comment I responded to, and that they are not making a sarcastic proof that people should not have to learn calculus to merely use a tool like a calculator, but that they in fact should do so, and I'd actually be willing to get on board with that? (But, as anti-framework as I am, I think that might be going a bit far.) I frankly still can't tell as that's use of "fallacy" to describe "people picking up frameworks without fundamental understanding" is apparently extremely confusing to me as it isn't in the form of a fallacy--like, is the fallacy that this happens? that this is a problem? is it the thought which leads people to do that? etc.--so I automatically added stuff to the sentence to make it work and maybe I did it wrong.
- deleted 3y ago[deleted]
- hajile 3y agoRoots were calculated at least as far back as 1800BC thousands of years before calculus existed. Trig functions were indirectly messed with since around at least 300BC and was definitely discovered by Indians around 600AD. Meanwhile Calculus wasn't published until the 1700s.
- chongli 3y agoThose techniques were precursors of calculus. They're often taught in introductory calculus courses (at the university level). I consider them part of the field of mathematics we now call calculus. Indeed, if you study the history of mathematics you'll find that calculus isn't just something Newton invented out of whole cloth, as he himself was well aware: "If I have seen further, it is by standing on the shoulders of giants."
- hajile 3y agoYou could argue that algebra was a precursor of calculus and that basic operations were precursors of algebra. This is a rather reductionist argument. They hadn't even invented zero or algebra when they found ways to produce square roots or that you could make interesting ratios from the sides of a triangle (yes, I know about the history of zero and that is a slight exaggeration, but no symbol for zero existed in Mesopotamia when they were calculating inverse proportion roots). My real point is that these thing don't require calculus (though calculus does require them). Most people who take trigonometry (or "precalculus" as they usually call it today) couldn't tell you anything about limits let alone derivatives, integrals, and the fundamental theorem of calculus. As to Newton inventing calculus, he was a vehement antagonist to Leibniz claiming that his work on calculus had been stolen. That's no the attitude of a man who believed calculus was obvious from looking at previous works.
- chongli 3y agoMost people who take trigonometry (or "precalculus" as they usually call it today) couldn't tell you anything about limits let alone derivatives, integrals, and the fundamental theorem of calculus. And to those people, the calculator is a magic “black box” that spits out cosines. My original point stands: if you are using a tool professionally you should understand how it works, at least on a basic level. For a calculator, that means calculus, Taylor series, Newton’s method, etc.
- ekianjo 3y agoThis is a good example. You dont need to learn number theory and operations in n dimensions to be able to effectively use arithmetics in your daily life. A lot of CS courses feel like stuff thats purely theoric for that purpose only.
- spicybright 3y agoExtremely common, and was one I fell into as a junior dev myself (early 2010's). Some reasons (based on my experience): - University classes were either very low level, or using some new framework to increase your employment prospects - All the experienced devs would hop jobs every few years, leaving less opportunity for mentorship. - Lack of convenient resources for gaining base knowledge. Googling "how to make a todo list webpage tutorial" will always have articles using the latest web frameworks, for instance. (Not really anyone's fault, a good engineer has know where to go for the right information. But as a junior without that skill it's easy not to get good information.) My personal strat when learning a framework is sometimes building what I want without it, running into the common problem patterns, and then looking at how a framework solves it. It's very time consuming so I only do that for personal projects, but I think I've learned the most base knowledge for really groking a framework doing that.
- JohnFen 3y ago> a good engineer has know where to go for the right information That colleges aren't teaching this as a first-rate topic is a real failure. This is, in my opinion, the most important skill any engineer should have.
- ljm 3y agoI would add that intuition and knowing how to question it is also vastly important. My main driver is Ruby - I have a good feeling about code that can be refactored to use Enumerable more effectively; but I also know that Enumerable offers so much that I might be expecting too much of it. So 80% of the time I point to a method that solves the exact problem and the rest of the time I know how to write it differently. "Why do you know about filter_map?" "Because people were confused about reduce and each_with_object and map and maybe you just want to loop through non-nil objects in one pass"
- JohnFen 3y ago> I would add that intuition and knowing how to question it is also vastly important. I agree. Especially knowing how to question and how to break problems down. I'm not sure intuition is a thing that can be taught, but it's a thing that emerges as a consequence of being curious and learning how to question and find answers to those questions. That aspect is also why I think that being generally curious and having a broad base of knowledge makes you a better engineer. It's amazing how often apparently unrelated knowledge can give you an insight into solving programming problems. People who are laser-focused on "computer stuff" specifically often miss important insights.
- inopinatus 3y agoDon’t do calculus in glass houses.
- hyperthesis 3y agoWait, you're saying that calculators now do symbolic differentiation and integration (like sympy and mathematica)? Kids today...
- TheJoeMan 3y agoMy recent TI-nspire calculator had a track pad mouse built in…
- deleted 3y ago[deleted]
- lacksconfidence 3y agoMy handheld calculator, a Ti-89, did basic symbolic differentiation (and maybe integration, it's been awhile) in the late 90's.
- LoganDark 3y agoOh hey, I have a TI-89 Titanium. It can emulate the gameboy advance playing Pokémon Red at 30FPS. :)
- lacksconfidence 3y agolol, thats awesome. i suppose i shouldn't be surprised. Can do a heck of a lot with a couple dollars of silicon these days.
- LoganDark 3y agoAnd they mark up the price to $200 (that's what the device costed... a 68k in 2017...)
- hughesjj 3y agoIirc they had to lobby college board to change the rules to allow colored screens on exams since the black and white screen was more expensive than the colored ones since no one made the black and white ones anymore I'd be open to allowing smartphones/tablets on all tests so long as there's no internet. Note taking is more important then ever imo, and knowing how to apply things rather than doing he computational machinery in your head is the more valuable skill to spend time developing (not that we shouldn't teach mental computation at all, just de focus it)
- GuB-42 3y agoThat's the reason why CS classes and degrees exist. Or at least it should be. No company will pay you for several years just to learn complexity theory, write sorting algorithms, study schedulers, rewrite UNIX tools, understand hardware architectures, etc... They want you to be productive right away, and the shortest path is just to follow recipes with the latest framework. That's the point of education, universities teach you what you won't learn on the job. So that when you finally get to work, you will have a better understanding of what you are doing.
- VoodooJuJu 3y agoThis misses the mark. CS classes and degrees are akin to reading books about swinging hammers rather than just swinging the hammer.
- bruce511 3y agoA lot of people think CS is "learning how to program in xyz." In fact programming is just a tool used to implement CS ideas and demonstrate their application in the real world. In my degree we spent maybe the first 6 weeks on actual learnjng-to-program (in turbo pascal.) Then another later on in Scheme. In 3nd year we did C, I don't recall what instruction we had there - maybe a week? Then 2 weeks in 3rd year where we did 10 different languages in 10 days. Language was considered a distraction from the science part. No, it's not reading books about swinging hammers. We were learning about physical forces on wood, and by wood, and other construction materials. We learned the difference between a spice rack, the drawer, and the 40-floor building to house the spice rack. Sure we wielded the hammer like Thor. But the focus was on the hammered not the hammer.
- josephg 3y agoThis is a fantastic metaphor. Thanks for this - I’m going to use it myself.
- tough 3y agoAs someone who hasn't learnt CS -the good way- I'd wager that I'm interested in a niche of CS, mostly the internet, and websites, and apps and what not. So when I tried to learn C and code unix tools I just felt miserable tbh. Science !== building I agree langauge and syntax are just distractions from the -building- part. In software engineering there's infinte hammers and you can build new hammers out of old hammers btw
- Aeolun 3y agoI think it can go either way. Finding out frameworks aren’t perfect is what you do when you’ve exhausted all the simple projects.