I received my first computer in 1980, a TRS-80 color computer, when I was a pre-teen. A few years later, I received a TRS-80 Model 100 laptop, and a few years after that, in 1987 or so, an Amiga 1000, which I used through university.
I agree with most of this article, but with one big difference: I still really enjoy programming, professionally and personally. (And maybe I'm over-stating the authors lack of enjoyment today.)
Back in the beginning, for me, there was the thrill of discovery, in a rather low-level sort of way. My first functional, written from scratch in BASIC program was enormously exciting. A couple of years later, as frustrations with the poor performance of a truly interpreted language pushed me toward learning a faster way, the same thrill was felt when my first machine language program started working. And then again with my first C program for the Amiga.
35 years later, I ask Google questions throughout day, every day, while I'm programming.
Sometimes I of think of it as a compiler for an optimized but very high level language. I rarely have to sweat the details, and when I come across a very powerful and clever solution (typically from Google), it doesn't really mean much to me, because I didn't 'earn' it. And I may or may not remember it in any detail, so I'll probably end up finding it again later.
But gcc does that same kind of thing, right? It converts C++ code into a highly optimized executable using all kinds of tricks that you probably don't know about, and that you very rarely need to explore. (Not never, though, given that every abstraction leaks over a long enough time period.)
The thrill I get today is from higher level and more abstract 'data and design things'. As one example, powerful and novel ways distributed systems can work together.
I'm intentionally leaving unaddressed a lot of the other interest, meaty things in the article, because nostalgia got the better of me.
>there was the thrill of discovery, in a rather low-level sort of way
Same here, but whenever I embark on a new project today I remind myself of this mantra: "Do not reinvent the wheel" Someone out there has probably already solved your problem, so why not speed up the process and use the fruit of their brain power as a tool to speed up your process? Carpenters or mechanics do not invent a new type of hammer or drill every time they embark on a new project. Why should we?
to me this is more like you learned to be a woodworker because you liked actually creating things with your hand tools, and now all day long is just using a CNC router is copy-pasting CNC patterns from cncoverflow and then glueing the machined wooden pieces together.
it's not woodworking anymore, it's glueing and google-fu to find the best patterns on cncoverflow, together with maybe some shim-building here and there and making your own custom stain
hah surprised it doesn't honestly, you'd think there'd be a need for people to discuss feed rates, cnc bits, materials and so on, especially with quite a few techie woodworkers nowadays building their own CNC from kits
Speaking for my own professional experience, while there is a ton of glue and google-fu, the net results are frequently interesting and at least someone novel.
I guess it's a question of what is done with newly available, powerful tools and abstractions.
I agree with most of this article, but with one big difference: I still really enjoy programming, professionally and personally. (And maybe I'm over-stating the authors lack of enjoyment today.)
Back in the beginning, for me, there was the thrill of discovery, in a rather low-level sort of way. My first functional, written from scratch in BASIC program was enormously exciting. A couple of years later, as frustrations with the poor performance of a truly interpreted language pushed me toward learning a faster way, the same thrill was felt when my first machine language program started working. And then again with my first C program for the Amiga.
35 years later, I ask Google questions throughout day, every day, while I'm programming.
Sometimes I of think of it as a compiler for an optimized but very high level language. I rarely have to sweat the details, and when I come across a very powerful and clever solution (typically from Google), it doesn't really mean much to me, because I didn't 'earn' it. And I may or may not remember it in any detail, so I'll probably end up finding it again later.
But gcc does that same kind of thing, right? It converts C++ code into a highly optimized executable using all kinds of tricks that you probably don't know about, and that you very rarely need to explore. (Not never, though, given that every abstraction leaks over a long enough time period.)
The thrill I get today is from higher level and more abstract 'data and design things'. As one example, powerful and novel ways distributed systems can work together.
I'm intentionally leaving unaddressed a lot of the other interest, meaty things in the article, because nostalgia got the better of me.