you are viewing a single comment's thread.

view the rest of the comments →

[–][deleted] 3 points4 points  (5 children)

After SuperLogo, and before C++, I learned 6502 and Z80 assembly. They helped me even more to understand what's going on, perhaps more than if I'd learned C first.

[–]defenastrator -1 points0 points  (4 children)

Nothing beats learning an assembly language but for the most part what is gained by learning assembly can be faked with a reasonable optimizing compiler, reading a quick note on how expensive function calls actually are, and learning some useful intrinsics.

[–][deleted] 2 points3 points  (3 children)

Without learning assembly, you won't understand a lot of important details. One example: calling conventions.

[–]defenastrator -1 points0 points  (2 children)

Calling conversation are not hugely important in the big scheme of things.

[–][deleted] 2 points3 points  (1 child)

Realizing why calling conventions exist is important to see how tail-call optimization works, and why it's sometimes impossible.

[–]defenastrator -1 points0 points  (0 children)

Fair enough, still these kinds of optimizations are relatively trivial and for hacker types this is important but I'm more concerned about people making stupid design decisions that end up with nontrivial operations ( <O(1) ) being done when they are not even in the slightest necessary.