César Ochoa
0 followers · 289 views
on the atlas — 1
highlights — 26
the distinction between "code" and "data" is arbitrary, only enforced as a safety mechanism after a series of famous exploits that revolved around tricking programs into executing user-supplied data as code.
how I think when I think about programming - alice mazthese abstractions are not airtight either. but they're outside my paygrade. google "rowhammer attack" or "spectre attack" or "acoustic cryptanalysis" sometime if you want to peer into the void
how I think when I think about programming - alice mazI firmly believe every high-level programmer worth their salt needs to understand c, and every c programmer needs to understand assembly. the mediocre dive into their abstraction and make a career out of it and it alone, shutting their eyes to anything outside their walled garden. but to actually be good, you need to know what's happening underneath your feet
how I think when I think about programming - alice mazinterpreting these number streams is famously difficult for humans, though not impossible. programmers who wrote raw binary or could read coredumps in hex are part of the lore of the field. our culture-heroes
how I think when I think about programming - alice mazfollowing examples in a book to make the console print sunny or cloudy based on random number rolls bores most people to tears. you want to build something that you enjoy, that makes you feel like you've created something of value, no matter how silly or small. and then just build up from there. feedback, response
how I think when I think about programming - alice mazthe best way to learn to program, I think, is by coming up with some small project that seems tractable and figuring out whatever you need to solve it. this is easier said than done, because new programmers have the hardest time of anyone at thinking up things to attempt and judging whether they're doable. 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
how I think when I think about programming - alice mazlearn the command line. it's a fucking pain in the ass to get started, everything is inscrutable because all this stuff was thrown together by a group of guys in the 70s at one company for one machine, not expecting it to be the basis of all modern computing. the original unix clock ran at 60hz and would have rolled over after 2.5 years if they hadn't changed it, that's how far ahead they were thinking. sorry, this is just how it is. the command line is too useful to neglect
how I think when I think about programming - alice mazuse linux. ok, ok, you can use osx if you really insist, but don't blame me when getting software to work is annoying. don't use windows, you're making your life hell for no reason.
how I think when I think about programming - alice mazas for what distro, ubuntu is fine. I could bitch endlessly about it, but if you're new to unix, ubuntu is fine. you can develop strong opinions about linux distros much earlier than you can about version control, don't worry
how I think when I think about programming - alice mazversion control is a gamechanger for various reasons and I don't understand how nontechnicals live without it. you have backups of everything, files are error-checked for consistency, you can see when changes were made, you can describe why you made those changes, you can experiment with changes and back them out trivially. use it
how I think when I think about programming - alice mazif you ever have problems, copy the entire project directory somewhere for safekeeping before you fuck around with it. you now know more about version control than the typical cs undergrad who didn't just self-teach already
how I think when I think about programming - alice mazyou can develop niche opinions about weird version control systems when you are old and wizened. (hopefully by that time the pijul rewrite will be usable, and we can share a beer over that...)
how I think when I think about programming - alice mazust iterate, focus on getting more information, faster, and narrowing your focus. feedback, response
how I think when I think about programming - alice mazdon't try to analyze code if it feels overwhelming. the most important skill you learn on your first big codebase is how to not read code that isn't important. just relax, focus on the one thing you care about, and do anything that gives you more information about it
how I think when I think about programming - alice mazprintf was my best friend. just put that shit anywhere. print the value that's changing but shouldn't, that should change but doesn't, just scatter prints until you find where it happens. when you find it, print more
how I think when I think about programming - alice mazeventually it turned out the only real challenge was to invent debugging. in effect, the kids who realized in time you could systematically test every connection to find the one that needed to be fixed, passed. the rest failed. no one had ever taught them to do this
how I think when I think about programming - alice mazanyway. the overarching theme I have been trying to impart with the kata idea is simple: feedback, response. the tighter you make the feedback-response loop, the faster you can work, the faster you can think, the more natural and effortless everything feels. the exact same principle applies to debugging
how I think when I think about programming - alice mazI think being a great programmer, but also able to work across multiple fields, bridge gaps, draw novel inferences, is and will continue to be a superpower
how I think when I think about programming - alice mazI think the future belongs to people who can use code to gain leverage on the world and to create new things that are more than just software. I think being a domain expert who can program well will be more valuable than a great programmer with no other talents, or a specialist who is incompetent in software.
how I think when I think about programming - alice mazthe 21st century will have two lingae francae. english, to say. and code, to do
how I think when I think about programming - alice mazfor new things, for science and art and novel engineering, I think the norms surrounding programming will become more like writing. a tool of expression, a tool you use to enact your knowledge about some procedural or scientific topic. the means, not the end
how I think when I think about programming - alice mazI think the root of creativity is not inventing novel ideas out of nothing, but simply drawing novel edges on a large graph. I think a lot of adult loss of neuroplasticity, adult retreat to conservatism, adult inability to enjoy new art or music, all these various hatreds of newness are just people who decided to stop learning, to stop adapting, and thus lost the ability to do so
how I think when I think about programming - alice mazthe way I catalog knowledge is more like one big graph. giant, sprawling, with no organization to it, interlinked loosely in some places and tightly in others. when I encounter new topics, I never really worry if I "don't get" most of it. I just look for ways I can relate it back to my graph. if I read a text outside of my depth and barely understand it, it still lays groundwork, a skeleton structure that I can later flesh out with more material
how I think when I think about programming - alice mazthis is how college teaches you to think: in terms of tracks and prerequisites
how I think when I think about programming - alice mazso, get reasonably good at one language before branching out. but, do branch out! when you know a language, you think in terms of that language. once you know several in one paradigm, you think in terms of the paradigm. once you know the paradigms, you can just think in programming
how I think when I think about programming - alice mazthe only reason why programming is so commonly self-taught is because it is a system that is unusually suited to trial and error by people with no specialized knowledge or specialized equipment. once you master your learning style, as long as you are bright and curious and determined, you can learn anything
how I think when I think about programming - alice maz