3 ms·
Start with learning symbolic logic. I'd then suggest learning something like 6502 assembler on a simple machine that existed (in order to attain predictable re
by fallous 10y ago
Start with learning symbolic logic. I'd then suggest learning something like 6502 assembler on a simple machine that existed (in order to attain predictable results and in order to have reference materials based on the programming results and tricks that real coders of that machine achieved).
I'd then suggest moving to something like SICP and/or NANDtoTetris.
If you learn the abstract fundamentals first, you will understand how they apply in every increasingly complex system you encounter... and none of that is syntax or frameworks but instead an ability to see and extract the underlying problem domain, which will then guide you in the solution.
- fallous 10y agoTo be clear, I understand the student in question cannot have access to an actual 6502-based machine but a simple 8-bit computer (without a lot of custom chips for graphics/sounds/etc) is easily understandable by a reasonably intelligent person and the CPU itself can be expressed in a simple state machine. Given the documentation for a real machine, the student can run by hand the system clock and understand memory latency, the instructions that can be executed, the interrupts, etc. That's a level of fundamental understanding that the vast majority of newly-minted "programmers" have not and will never attain.