I am not sure how many other people on here are old enough to remember, but I first learned to program before I had the internet. I had to read books, and then if I was trying to figure out how to do something, I would have to figure out which book to look it up in, and then figure out where in the book to find it and how to apply it to my situation. It made me learn a ton, because I would have to read a lot of books to even know where to look; I had to do my own ‘scraping and indexing’.
I remember as the internet took off and you could just search for things, I thought it made programming too easy. You never had to actually learn how it worked, you can just search for the specific answer and someone else would do the hard work of figuring out how to use the tools available for your particular type of problem.
Over the years, my feelings shifted, and I loved how the internet allowed me to accomplish so much more than I could have trying to figure it all out from books.
I wonder if AI will feel similar.
I use AI for very little but I do like using it for stuff I'm just not very interested in but have to get done.
For programming, I don't like it. It's like a master carpenter building furniture from IKEA. Sure it's faster and he doesn't have to think very hard and the end result is acceptable but he feels lazy and after a while he feels like he is losing his skills.
The best days of computing for me were what you remember. A computer was just a blank slate. You turned it on, and had a ">" blinking on the screen. If you wanted it to do anything you had to write a program. And learning how to do that meant practice and study and reading... there were no shortcuts. It was challenging and frustrating and fun.
All fair, but I think a different interpretation could be that AI allows you to vastly expand the scope of the possible, such to create a situation again where things are challenging and frustrating and fun.
> I had to read books
Same here. Except that as native french speaker there simply weren't that many quality books about programming/computers that I could easily find in french.
So at 11 years old I also learned english, by myself, by using computers (which were in english back then) and by reading computer books.
And we'd exchange tips with other kids in the neighborhood who also had computers and were also learning to code (like my neighbors who eventually, 20 years later, created a software startup in SoCal).
I dont use it a lot but when I do it's pretty much 2 patterns
* "search on steroids" - get me to the thing I need or ask whether the thing I need exists, give me few examples and I can get it running.
* getting the trivial and uninteresting parts out of the way, like writing some helper function for stuff I'm doing now, I'll just call AI, let it do its thing and continue writing the code in meantime, look back ,check if it makes sense and use it.
So I'm not really cheating myself out of the learning process, just outsource the parts I know well enough that I can check for correctness but save time writing
I've always felt a little odd saying, "Back in my day we had to understand the cpu, registers, etc." It's a true statement, but doesn't help in any way. Is that stuff still worth knowing, IMHO? Yes. Can you create incredibly useful code without that knowledge today? Absolutely.
There are some people who still know these things, and are able to use LLMs far more effectively than those who do not.
I've seen the following prediction by a few people and am starting to agree with it: software development (and possibly most knowledge work) will become like farming. A relatively smaller number of people will do with large machines what previously took armies of people. There will always be some people exploring the cutting edge of thought, and feeding their insights into the machine, just how I image there are biochemists and soil biology experts who produce knowledge to inform decisions made by the people running large farming operations.
I imagine this will lead to profound shifts in the world that we can hardly predict. If we don't blow ourselves up, perhaps space exploration and colonization will become possible.
> Can you create incredibly useful code without that knowledge today?
You could do that without that knowledge back in the day too, we had languages that were higher level than assembler for forever.
It's just that the range of knowledge needed to maximize machine usage is far smaller now. Before you had to know how to write a ton of optimizations, nowadays you have to know how to write your code so the compiler have easy job optimizing it.
Before you had to manage the memory accesses, nowadays making sure you're not jumping actross memory too much and being aware how cache works is enough
I don't think it's odd. Sacrificing deep understanding, and delegating that responsibility to others is risky. In more concrete terms, if your livelihood depends on application development, you have concrete dependencies on platforms, frameworks, compilers, operating systems, and other abstractions that without which you might not be able to perform your job.
Fewer abstractions, deeper understanding, fewer dependencies on others. These concepts show up over and over and not just in software. It's about safety.
Even people with the Internet growing up still learned largely through books, probably until StackOverflow really took off. One "hack" prior to SO that sometimes goes under-acknowledged was Google Groups. Around 2000, they bought and made free to the public the entire Deja News USENET archive, and suddenly you could search comp.lang.whatever and usually find someone who'd asked (and someone who answered) whatever question you had. And the signal-to-noise ratio was extremely high, given the barriers to entry (technical and financial) to being active on USENET's technical groups in the 90s.
Of course, asking a question was another matter, likely to result in a rebuke for violating the group's arcane decorum. But given how pervasive "RTFM" culture was back then, most "n00bs" were content to do just that (RTFM) until they came up against something that wasn't covered in some FAQ or manpage.
I learned to program on a Commodore 64 using books I could get from libraries and some magazines like Compute!'s Gazette. I got online very early via BBSes (originally on a 300 baud modem for my C64) and was on the internet by the mid to late 1980s.
I never had the feeling that being able to search for things on the internet made things too easy. For me it felt like a natural extension to books for self-learning, it was just faster.
LLMs feel entirely different to me, and that's where I do get the sense that they make things "too easy" in that (like the author of the OP blog post) I no longer feel like I am building any sort of skill when using them other than code review (which is not a new skill as it is something I have previously done with code produced by other humans for a long time).
As with the OP author I also think that "prompting" as a skill is hugely overblown. "Prompting" was maybe a bit more of a skill a year ago, but I find that you don't really have to get too detailed with current LLMs, you just have to be a bit careful not to bias them in negative ways. Whatever value I have now as a software developer has more to do with having veto power in the instances where the LLM agent goes off the rails than it does in constructing prompts.
So for now I'm stuck in a situation where I feel like for work I am being paid to do I basically have to use LLMs because not doing so is effectively malpractice at this point (because there are real efficiency gains), but for selfish reasons if I could push a button to erase the existence of LLMs, I'd probably do it.
> I never had the feeling that being able to search for things on the internet made things too easy. For me it felt like a natural extension to books for self-learning, it was just faster.
I think this depends on how you are using the internet. Looking up an API or official documentation is one thing, but asking for direct help on a specific problem via Stackoverflow seems different.