Live data from Hacker News

The Need to Grind Concrete Examples Before Jumping Up a Level of Abstraction

justinmath.com

61–70 of 74 posts

Re: The Need to Grind Concrete Examples Before Jumping Up a Level of Abstraction

#61
post #3

That's the same principle which makes it wise to first do some copy pasting before you abstract stuff into a common library. Gathering some (more than two) concrete use cases before you factor out the common functionality makes much better library functions. A common sign of prematurely deduplicated code is a common function with lots of boolean flags and other knobs to tweak its behaviour for every use case added af…

You owe it to yourself to type out your copied code again. So easy to lose track of context when you’re moving fast. Variables have the wrong name, conditionals can’t be false, etc. Copy, yes, but don’t paste. Do it the hard way.

Re: The Need to Grind Concrete Examples Before Jumping Up a Level of Abstraction

#62
post #49

Earlier quoted context omitted.

> Sports are good at distinguishing drills from practice The military also. Individuals learn 'part task' drills (e.g. firing a tank gun), then practice them in a team environment (e.g. the different crew roles working together in a single tank) and then finally (in something fairly unique to the military) exercising collectively: multiple teams working together to achieve a common task. E.g. several tanks coordinati…

Definitely true, but probably easier to get nerds to rewatch Ted Lasso than Full Metal Jacket.

I’m not sure that would be my go to movie for military discipline and effective teamwork, but I’d sure watch it again.

Re: The Need to Grind Concrete Examples Before Jumping Up a Level of Abstraction

#64
post #35

Earlier quoted context omitted.

Sports are good at distinguishing drills from practice. Practice is meant to look almost like real play. Drills are something you do so practice goes better, and to narrow your window of harm in practice. I put, for instance, TDD in the drills category. I don’t think you should live in TDD. nor do I think you should avoid TDD because someone said they thought it wasn’t a viable lifestyle choice. You should do it for…

> Sports are good at distinguishing drills from practice The military also. Individuals learn 'part task' drills (e.g. firing a tank gun), then practice them in a team environment (e.g. the different crew roles working together in a single tank) and then finally (in something fairly unique to the military) exercising collectively: multiple teams working together to achieve a common task. E.g. several tanks coordinati…

> 'part task' drills (e.g. firing a tank gun), then practice them in a team environment

Brought to mind "wax on, wax off" from the original Karate Kid movie.

https://thekaratekid.fandom.com/wiki/Wax_On,_Wax_Off

Re: The Need to Grind Concrete Examples Before Jumping Up a Level of Abstraction

#65
It depends. Some people most certainly grasp things better if they are concrete, grounded in their perception of reality. For others, they see each 'example' as a mere partial projection at best that completely fails to capture the true essence of the abstraction.

That said, in sloppy engineering we often see the reverse. 'Here's a meta-model I cooked up overnight. Now if you spend the next 3 years gathering all the domain knowledge and expressing it in my nifty notation, you can have the outline of a potential candidate for your question. I'll write up a journal paper tomorrow about how I solved your problem'. There was a lot of that around when I was in academia.

Re: The Need to Grind Concrete Examples Before Jumping Up a Level of Abstraction

#66
post #59

Earlier quoted context omitted.

100%. And why is it so hard to have math education based on good concrete contextualized examples, vs just rules and problem sets? Understanding the “why” behind the math is often lacking… and math doesn’t always need to be applied, that’s ok— but if it can be, it is so much easier to understand

Because math is the tool while physics and engineering are the application . So, now instead of one concept you have two unfamiliar concepts--one of which is far removed from your pedagogy. It sucks, but there just aren't that many straightforward applications of abstract math classes.

The addition of a concrete example almost always makes the pure math easier to understand.

Knowing whether a particular aspect of math has real application is relevant to students. And this remains hard.

Re: The Need to Grind Concrete Examples Before Jumping Up a Level of Abstraction

#67

Earlier quoted context omitted.

> others need the abstraction before the examples provide the most benefit Would anyone need examples if they understand the abstraction? They can stamp out their own examples, can't they? Needing examples after you've a grasp at the abstraction would be like saying 'I need help coming down this zip line', where as discovering or arriving at the abstraction is the result of working through and distilling n number of…

I find that people often think they understand an abstraction, but examples either expose that they don't or add deeper insight.

Yes, that was my gist--that, examples introducing examples gives you a feel of the landscape, and assists you to arrive at the abstraction yourself. The abstraction feels like your own rather than something forced upon you.

Re: The Need to Grind Concrete Examples Before Jumping Up a Level of Abstraction

#69
post #53

Earlier quoted context omitted.

Adding, not disagreeing, but at some point, those abstract concepts like dot products become concrete on their own when you get into things like SIMD programming.

Yeah, but to arrive at that point, you'd have to have understood dot products already. It's one thing to take two float arrays, multiply them componentwise and sum the results. It's another thing to understand why this operation constitutes the dot product in R^n vector spaces.

You also have to understand that a^T b is a popular way of writing the dot product. is for dumb high schoolers.

Then there is the fun part in German that the dot product and inner product are both called Skalarprodukt. There are many inner products of which the dot product is only one.

Re: The Need to Grind Concrete Examples Before Jumping Up a Level of Abstraction

#70
post #36

> What a lot of math learners fail to understand is that grinding through concrete examples imbues you with intuition that you will not get if you jump directly to studying the most abstract ideas. I feel that's more a lesson for a lot of math teachers to understand. I remember some frustrating linear algebra, calculus and computational complexity courses where the lector basically threw some formulas onto the blackb…

Does it matter whether the professor or the teaching assistant is the one giving the examples?

The professor is in an awkward position, because the professor at the front of of the large-group lecture hall doesn't have anything to do to add value. Watch videos, read book, work exercise, and then go to recitation or office hourse for interactive tutoring.

Post reply on HN