25 ms·
Very nicely written, and congrats on doing such a deep dive on this kind of topic. These days 17 year olds can get away with "programming" by gluing things the
by ggambetta 3y ago
Very nicely written, and congrats on doing such a deep dive on this kind of topic.
These days 17 year olds can get away with "programming" by gluing things they don't understand, but I think they'll eventually hit a ceiling. So what you're doing is super valuable, not for yourself, but for everyone else who will learn from your materials.
Well done :)
EDIT: now go write an emulator if you haven't already, it's a ton of fun :)
- onion2k 3y agoThese days 17 year olds can get away with "programming" by gluing things they don't understand... I've been doing that for 26 years. ...but I think they'll eventually hit a ceiling. I wonder if it'll happen soon.
- ggambetta 3y agoI'm not sure it's always obvious to ourselves when we have. We humans are amazing at denial and telling ourselves whatever story we want to believe in. I'm not picking on you. If there's one thing I'm terrified of, it's blind spots.
- ethbr0 3y agoIn my experience, it's an unknown-unknown problem (don't know what we don't know). Is it important you can recite cache eviction algorithms from memory? No. Is it important you know there are such things as caches and roughly how they work? Yes. Because then you can quickly look up the details when/if you need them.
- wizzwizz4 3y agoIs it important that you understand cache eviction algorithms well enough that you can look at a description of an algorithm and see how it applies to your system? Yes. And if memorising is the way you gain that ability, then memorising is what you need to do. And what is it important for? Why, for making sure that your software makes efficient use of system resources. This is essential if you're writing application software that's used by other people – but if you're writing server-side code, or some one-a-month business-logic data-processing scripts, or code that's only ever going to run on five specific machines, it's not that big of a deal. I haven't needed this skill yet.
- freedomben 3y agoAgreed. I can almost guarantee you that if you've written code that has any sort of performance needs at all (which describes most code) you've written something badly or suboptimally that you could have easily avoided or improved if you'd had a deeper understanding of the compiler or CPU. Every single one of us have.
- sverhagen 3y ago> I'm not sure it's always obvious to ourselves when we have. Agreed. Some people would have to change employers in order to break through the ceiling, or to even see how they're limiting themselves. And for some of them: why would they?
- Gehinnn 3y agoI think there are different ceilings. And probably everyone has some spaces where they didn't reach their ceiling yet.
- glial 3y agoMeh. A nicer way to say "gluing things together" is "reasoning with abstractions." There's detail all the way down, but you don't need most of it and can't remember all of it. The key is just knowing when to dip down and when to float on top -- screw that up and you run into trouble.
- arendtio 3y agoI think the ceiling is less about what you can achieve, but about the quality you produce (e.g. correct application of principles, which can lead to better maintainability). Before I studied I thought of objects in terms of Object Orientation as a memory layout plus some functions to manipulate it. When I studied, I learned that Object Orientation is much less about the implementation, but more about the principles at hand (e.g. polymorphism). I still love good implementations, but studying gave me a whole new perspective on certain topics.
- Swizec 3y ago> These days 17 year olds can get away with "programming" by gluing things they don't understand 17 to 21-ish is probably my least gluey era of programming. I wrote an MVC framework from scratch, built my own interpreter, my own compiler, accidentally tried to reinvent machine learning and NLP from scratch, all sorts of cool and wonderful things. Then I discovered money and prior art. Wow you can build things so much faster if you let others tell you “here, just use this”! And frameworks!! Omg jquery makes life so much easier this is amazing. Many years later now, the stuff that used to count as “just gluing things together” is now considered “super low level advanced stuff”. We’ve built new abstractions on top of those abstractions. The stuff beginners “can get away with” now, that’s the next generation’s super low level here be dragons stuff. Programming is great that way.
- tornato7 3y agoProgramming was more fun before I learned how to import libraries. So many things I wrote from scratch... JSON parsers, distributed K/V stores, optimization algorithms, UI frameworks etc. From 17-21 nobody expected me to be Uber-productive so I just kind of went off and coded these things from scratch for months at a time. Good times.
- Bedon292 3y agoOr write an operating system. I remember, a long time ago, starting to work through a book (Operating System Concepts) and covering a lot of similar topics. So this reminded me about it. Although I only remembered the dinosaurs on the cover and had to look up the name.
- doublepg23 3y agoI’m certainly wondering when this fad of high-level languages like C goes away.
- bdavbdav 3y agoI got away with this for a long time then realised it was probably better to manage people who really understand what they’re doing, while having a really good feel for what is technically possible, but not necessarily the best on the finer implementation points.
- ericmcer 3y agoHard disagree, unless you pursue a super niche position doing a specific technical task you are going to have to become really really good at reading docs and learning how to cobble stuff together out of cloud services and JS libraries. Far more likely someone with an academic approach to programming would be completely overwhelmed when a task requires them to get a base understanding of a bunch of different technologies before moving on. If you work at a huge company and have a bunch of project managers and designers narrowing specifications down so you can focus entirely on execution sure, but that is rarely the case for most people.
- racl101 3y ago> These days 17 year olds can get away with "programming" by gluing things they don't understand, That was me 10 years ago as 30 year old dev just breaking in. Some things never change.