404 private links
"abstraction" in mathematics means to use a higher-level concept that carries fewer assumptions but covers a broader superset of cases. complexity is removed for the sake of generalizability. "abstraction" in programming means to paper over the underlying workings of a system with shorthands or conveniences. complexity is added so you can pretend it isn't there. no matter how you dress it up, when you're using a computer, you are always somewhere in the jenga pagoda
master the fundamentals, understand how they're composed into abstractions, and you can pick almost anything up as you go.
So how to master them?
What is a kata: basic programming concepts as akin to martial arts kata. To be really good, you don't need to study any particular big thing. you need to practice and understand the small things, over and over, until they're second nature.
Frameworks and librairies are domains of specialists.
The rest is content about programming:
Kata one: variables, flow control, scope, functions; memory semantics stack and heap
Kata two: indirection and recursion; memory semantics structs, arrays, enums
Paradigms: imperative and oop
Disgression two: odds and ends. OS, IDEs, VCS, programming loop with feedback and responses,
Kata three: registers, jumps, calling convention
once you are are good at programming, you will have literally hundreds of ideas of things to do but lack the time to do more than two or three at once. so enjoy it while it lasts
Yes indeed
The end: further reading
the important thing to remember is that it's not enough to be valuable. you must be legibly valuable. this trips up people who are not used to cultivating an appearance.