3 ms·
> It's easy for established programmers to forget the days when a pointer was beyond mindblowing Oh? I distinctly remember – after hearing the same story over
by randomdata 3y ago
> It's easy for established programmers to forget the days when a pointer was beyond mindblowing
Oh? I distinctly remember – after hearing the same story over and over that they are mind-blowing – thinking "that's it?" when I was first exposed to them. I was primed to see my life change, and all I got was a nothingburger.
But maybe it is that I still don't yet truly understand pointers, and thus have not reached the point where my mind gets blown? What have I missed?
- jerf 3y agoThen for you, it was some other thing. Nobody is born knowing how to program, and nobody learns how to program by starting out on day one by architecting a cloud-native scalable solution for a real-time chat client for one hundred million users a day with five nines of reliability, infrastructure-as-code, source control, repeatable deployment, high-quality code review practices, etc. Nowadays I have a hard time finding a task even a 4-year-grad can do right off the bat without another 6 months of intensive on-the-job training. Asking for the programming curriculum to cover only directly-relevant tasks is pretty much guaranteed to pull the ladder up well above anybody's heads. Especially with the improvements in the past 20-30 years with getting basic algorithms like search and sort reusable (I got into programming just on the tail end of when you might still be expected to write one yourself), there just isn't anything left to give a computer science freshman to implement that isn't already some combination of obsolete and provided by library in every environment they'll ever use.
- randomdata 3y ago> Nobody is born knowing how to program I think we can agree that nobody is born with the language needed to express a program. But can we equate that to having no innate sense of how to program in the abstract? One of the newer programming languages on the scene, GPT, has shown that many people who didn't think they could program are suddenly able to thanks to a syntax that is nearly identical to languages used for regular social communication. It seems people could program all along, they just lacked a way to express it. I seems fair to say that a "cloud-native real time chat client" also requires understanding a lot of implementation details that have been built up over decades. Those particular systems are no doubt something that needs to be learned to work with. But that's really moving beyond programming in and of itself. In a similar vein, are people born able to conceive of a story? I think we can agree that nobody is born with the natural language necessary to express it to others, but if you were raised by wolves in the forest would you still have some semblance of a story floating around in your mind? Understandably we lack the tools needed to give a definitive answer, but the best evidence suggests yes. So, why not programming?
- jerf 3y agoI suspect you have not spent any time with a child lately in a teaching context, if ever. Yes, I'm perfectly comfortable saying people have no innate sense of programming, even if I simply discard babies and toddlers (which is a pretty large concession to be making). Some pick it up more easily than others but nobody is simply born with it. Unsurprisingly (for an HN poster), I'm on the higher end of talent myself in general, but I still remember when I realized programs don't need line numbers, how closures work, etc. Pointers was no big deal to me but I still wasn't born knowing about them, and while pointers to pointers posed no conceptual difficulty in what they are in some brute sense, grokking what could be done with them was a process. I don't think even Knuth learned what pointers are and immediately would have derived the Dancing Links algorithm without conscious thought.
- TillE 3y agoPointers are a really common stumbling block for a lot of people, maybe because it's a memory address stored in memory (at a different address). If you've written a little assembly, you understand all this stuff and there are no deeper secrets.
- randomdata 3y agoPerhaps it helps that C was my first exposure? As it conceptualizes memory as an array, a pointer was naturally conceptualized as an array index. There was no real novelty in that. But maybe we're talking more abstractly, outside of computing? I watched my children start to learn about lists and indices around the age of four to five. Presumably the story was similar for me. If there was a mind-blowing experience at that time, it is true that I have forgotten about it (along with most other things that happened back then).