2 ms·
During college I got to see both sides of this play out. I started out majoring in Computer Engineering, an embedded systems oriented curriculum. They started
by GormanFletcher 6y ago
During college I got to see both sides of this play out.
I started out majoring in Computer Engineering, an embedded systems oriented curriculum. They started us with assembler, then C, and worked our way up. I switched over to Computer Science, which came from the other direction: Java, then C, then assembler.
I learned in myself and saw in my peers that both ways can work great, just for different people.
I struggled to understand how to apply C's pointers and memory management in homework without the context of how that fit into solving a problem in a program, because we hadn't yet written code that really did anything, just one-off tiny functions that demonstrated a mechanic without any purpose. Class tests felt like writing an essay about the applicability of the 4x2 Lego brick without having ever assembled a Lego set. I needed top-down learning to grasp the "why" before I could tackle the "how".
Some peers expressed the same difficulty as me, but others commented that they found their Computer Science courses challenging until they dug deep enough to understand the underpinnings of the computer. They struggled with their Java courses, but got much more confident once they progressed to C and then assembler, because all the unexplained high-level incantations suddenly started making sense.
Over my career, and in my hobbies, which of these approaches I need has come to vary depending on the task. When I'm learning a new way to do an old thing, I jump straight for the bottom-up information. If I'm learning something totally new, I still need to go top-down.
- sponaugle 6y agoVery interesting. I find myself in the other camp, where learning the underpinnings is by far the fastest way for me to use something. This is a good demonstration that there isn't a single best way to teach. Very cool.
- loukrazy 6y agoI remember I only understood C once I wrote a memory allocator in assembly in my Computer Architecture course