"You don't want to over-rely on AI because a certain degree of "productive struggle" is essential for learning something deeply."
These two ideas are closely related and really just different aspects of the same basic frailty of the human intellect. Understanding that I think can really inform you about how you might use these tools in work (or life) and where the lines need to be drawn for your own personal circumstance.
I can't say I disagree with anything you said and think you've made an insightful observation.
In a world where everyone has a phone/calculator in their pocket, remembering how to do long division on paper is not worthwhile. If I ask you "what is 457829639 divided by 3454", it is not worth your time to do that by hand rather than plugging it into your phone's calculator.
In a world where AI can immediately produce any arbitrary 20-line glue script that you would have had to think about and remember bash array syntax for, there's not a reason to remember bash array syntax.
I don't think we're quite at that point yet but we're astonishingly close.
So yes, it's pretty useless for me to manually divide arbitrarily large numbers. But it's super useful for me to be able to reason around fractions and how that division plays out in practice.
Same goes for bash. Knowing the exact syntax is useless, but knowing what that glue script does and how it works is essential to understanding how your entire program works.
That's the piece I'm scared of. I've seen enough kids through tutoring that just plug numbers into their calculator arbitrarily. They don't have any clue when a number is off by a factor of 10 or what a reasonable calculation looks like. They don't really have a sense for when something is "too complicated" either, as the calculator does all of the work.
The neat thing about AI generated bash scripts, would be that the AI can comment their code.
So the user can 1) check if the comment for each step match what they expect to be done, and 2) have a starting point to debug if something goes wrong.
And if it spits out 15,395,143 I hope you remember enough math to know that doesn’t look right, and how to find the actual answer if you don’t trust your calculator’s answer.
Using AI to learn things is useful, because it helps you get terminology right, and helps you Google search well. For example say you need to know a Windows API, you can describe it snd get the name. Then Google how that works.
As an experienced user you can get it to write code. You're good enough to spot errors in the vote and basically just correct as you go. 90% right is good enough.
It's the in-between space which is hardest. You're an inexperienced dev looking to produce, not learn. But you lack the experience and knowledge to recognise the errors, or bad patterns, or whatever. Using AI you end up with stuff that's 'mostly right' - which in programming terms means broken.
This experience difference is why there's so much chatter about usefulness. To some groups it's very useful. To others it's a dangerous crutch.
That being said I usually prefer to do something the long and manual way, write the process down sometimes, and afterwards search for easier ways to do it. Of course this makes sense on a case by case basis depending on your personal context.
Maybe stuff like crosswords and more will undergo a renaissance and we'll see more interesting developments like Gauguin[0] which is a blend of Sudoku and math.
The difference is that you can trust a good calculator. You currently can't trust AI to be right. If we get a point where the output of AI is trustworthy, that's a whole different kind of world altogether.
I found a bug in the ios calculator in the middle of a masters degree exam. The answer changed depending on which way the phone was held. (A real bug - I reported it and they fixed it). So knowing the expected result matters even when using the calculator.
AI that writes a bash script doesn't need to be better than an experienced engineer. It doesn't even need to be better than a junior engineer.
It just needs to be better than Stack Overflow.
That bar is really not far away.
It was not about whether AI is useful or not.
My original point about not needing fundamentals would obviously require AI to, y'know, not hallucinate errors that take three hours to debug. We're clearly not there yet. The original goalposts remain the same.
Since human conversations often flow from one topic to another, in addition to the goal post of "not needing fundamentals" in my original post, my second post introduced a goalpost of "being broadly useful". You're correct that it's not the same goalpost as in my first comment, which is not unexpected, as the comment in question is also not my first comment.
Well that is because you ask a calculator to divide numbers. Which is a question that can be interpreted in only one way. And done only one way.
Ask the smallest possible for loop and if loop that AI can generate now you have the pocket calculator equivalent of programming.
Is it? What is 5/2+3?
“Which is a question that can be interpreted in only one way. And done only one way.”
The question for calculators is then the same as the question for LLMs: can you trust the calculator? How do you know if it’s correct when you never learned the “correct” way and you’re just blindly believing the tool?
This is just splitting hairs. People who use calculators interpret it in only one way. You are making a different and a more broad argument that words/symbols can have various meanings, hence anything can be interpreted in many ways.
While these are fun arguments to be made. They are not relevant to practical use of the calculator or LLMs.
No. There being "more than one way" to interpret implies the meaning is ambiguous. It's not.
There's not one incorrect way to interpret that math statement, there are infinite incorrect ways to do so. For example, you could interpret as being a poem about cats.
This is basically how AI research is conducted. It's alchemy.
Well that's not how LLMs work. Don't use an LLM to do thinking for you. You use LLMs to work for you, while you tell(after thinking) it what's to be done.
Basically things like-
. Attach a click handler to this button with x, y, z params and on click route it to the path /a/b/c
. Change the color of this header to purple.
. Parse the json in param 'payload' and pick up the value under this>then>that and return
etc. kind of dictation.
You don't ask big questions like 'Write me a todo app', or 'Write me this dashboard'. Those are too broad questions.
You will still continue to code and work like you always have. Except that you now have a good coding assistant that will do the chore of typing for you.
In fact if you are familiar with keyboard macros, in both vim and emacs you can do a lot of text heavy lifting tasks.
I don't see these as opposing traits. One can use both the goodness of vim AND LLMs at the same time. Why pick one, when you can pick both?
I mostly use manuals, books, and the occasional forum searches. And the advantage is that you pick surrounding knowledge. And more consistent writing. And today, I know where some of the good stuff are. You're not supposed to learn everything in one go. I built a knowledge map where I can find what I want in a more straightforward manner. No need to enter in a symbiosis with an LLM.
One can do pick and use multiple good things at a time. Using vim doesn't mean, I won't use vscode, or vice versa. Or that if you use vscode code you must not use AI with it.
Having access to a library doesn't mean, one must not use Google. One can use both or many at one time.
There are no rules here, the idea is to build something.
- Poor editor / editing setup
- Poor programming language and knowledge thereof
- Poor APIs and/or knowledge thereof
Mankind has worked for decades to develop elegant and succinct programming languages within which to express problems and solutions, and compilers with deterministic behaviour to "do the work for us".
I am surprised that so many people in the software engineering field are prepared to just throw all of this away (never mind develop it further) in exchange for using a poor "programming language" (say, english) to express problems clumsily in a roudabout way, and then throw away the "source code" (the LLM prompt) entirely such to simply paste the "compiler output" (code the LLM spewed out which may or may not be suitable or correct) into some heterogenous mess of multiple different LLM outputs pasted together in a codebase held together by nothing more than the law of averages, and hope.
Then there's the fun fact that every single LLM prompt interaction consumes a ridiculous amount of energy - I heard figures such as the total amount required to recharge a smartphone battery - in an era where mankind is racing towards an energy cliff. Vast, remote data centres filled with GPUs spewing tonnes of CO₂ and massive amounts of heat to power your "programming experience".
In my opinion, LLMs are a momentous achievement with some very interesting use-cases, but they are just about the most ass-backwards and illogical way of advancing the field of programming possible.
I wonder whether this is because people don't know about it or because they simply don't care...
But I, for one, try to use AI as sparingly as possible for this reason.
Change your search engine to one that doesn't include AI-generated answers. If none exist any more, all of Google's customers could write to them telling them that they don't want this feature and are switching away from them because of it, etc.
I know that internet-scale search is perhaps a bad example because it's so extremely difficult and expensive to build and run, but ultimately the choice is in the consumers' hands.
If the market makes it clear that there is a need for a search engine without LLM-generated answers at the top, somebody will provide one! It's complacency and acceptance that leads apparently-delusional companies to just push features and technologies that nobody wants.
I feel much the same way about the ridiculous things happening with cars and the automotive sector in general.
I'm using Cursor btw. It's almost a different form factor compared to something like GH copilot.
I think it's also worth noting that I'm using TypeScript with a functional programming style. The state of the program is immutable and encoded via strongly typed inputs and outputs. I spend (mental) effort reifying use-cases via enums or string literals, enabling a comprehensive switch over all possible branches as opposed to something like imperative if statements. All this to say, that a lot of the code I write in this type of style can be thought of as a kind of boilerplate. The hard part is deciding what to do; effecting the change through the codebase is more easily ascertained from a small start.
I too love functional programming, and I'm talking about Haskell-levels of programming efficiency and expressiveness here, BTW.
This is quite a different use case than those presented by the post I was replying to though.
The Go programming language has this mantra of "a little bit of copy and paste is better than a little bit of dependency on other code". I find that LLM-derived source code takes this mantra to an absurd extreme, and furthermore that it encourages a though pattern that never leads you to discover, specify, and use adequate abstractions in your code. All higher-level meaning and context is lost in the end product (your committed source code) unless you already think like a programmer _not_ being guided by an LLM ;-)
We do digress though - the original topic is that of LLM-assisted writing, not coding. But much of the same argument probably applies.
I honestly don’t think we’re far out from people being able to write “Write me a todo app” and then telling it what changes to make after.
I recently switched back to software development from professional photography and I’m not sure if that’s a mistake or not.
Honestly, I'm not sure this would account for most of the difficulty in learning. In my experience most of the difficulty involved in learning something involved a few missing pieces of insight. It often took longer to understand the few missing pieces than the rest of the topic. If they are accurate enough, LLMs are great for getting yourself unstuck and keep yourself moving. Although it has always been a part of the learning experience, I'm not sure frantically looking through hundreds of explanations for a missing detail is a better use of one's time than to dig deeper in the time you save.
[0] https://byorgey.wordpress.com/2009/01/12/abstraction-intuiti...
Feeling confident to be able to shrug off blockers, that might otherwise turn exploration into a painful egg hunt for trivial unknowns, can easily mean the difference between learning and abandoning.
They often can not generate relatively trivial code When they do, they can not explain that code. For example, I was trying to learn socket programing in C. Claude generated the code, but when I stared asking about stuff, it regressed hard. Also, often the code is more complex than it needs to be. When learning a topic, I want that topic, not the most common relevant code with all the spagheti used on github.
For other subjects, like dbms, computer network, when asking about concepts, you better double check, because they still make stuff up. I asked ChatGPT to solve prev year question for dbms, and it gave a long, answer which looked good on surface. But when I actually read through because I need to understand what it is doing, there were glaring flaws. When I point them out, it makes other mistakes.
So, LLMs struggle to generate concise to the point code. They can not explain that code. They regularly make stuff up. This is after trying Claude, ChatGPT and Gemini with their paid versions in various capacities.
My bottom line is, I should NEVER use a LLM to learn. There is no fine line here. I have tried again and again because tech bros keep preaching about sparks of AGI, making startup with 0 coding skills. They are either fools or genius.
LLMs are useful strictly if you already know what you are doing. That's when your productivity gains are achieved.
One with ChatGPT about dbms questions and one with claude about socket programming.
Looking back are some questions a little stupid ? Yes. But affcourse they are! I am coming with zero knowledge trying to learn how the socket programming is happening here ? Which functions are begin pulled from which header files, etc.
In the end I just followed along with a random youtube video. When you say, you can get LLM to do anything, I agree. Now that I know how socket programming is happening, for next question in assignment about writing code for crc with socket programming, I asked it to generate code for socket programming, made the necessary changes, asked it generate seperate function for crc, integrated it manually and voila, assignment done.
But this is the execution phase, when I have the domain knowledge. During learning when the user asks stupid questions and the LLM's answer keep getting stupider, then using them is not practical.
Also Im surprised you even got a usable answer from your first question asking for a socket program if all you asked was the bold part. I'm a human (pretty sure at least) and had no idea how to answer the first bold question.
I had already established from previous chat that upon asking for server.c file, llm's answer was working correctly. Rest of the sentence is just me asking it to use and not use certain header files which it uses by default when you ask it to generate server.c file.Thats because from docs of <sys/socket.h>, I thought it had all relevant bindings for the socket programming to work correctly.
I would say, the sentence logically makes sense.
So you did not convince me that LLMs are not working (on the contrary), but I did learn something today! thanks for that.
LLMs hallucinate.
That's true and by how they are made it cannot be false.
Anything they generate cannot bw trusted and have to be verified.
They are good at generating fluff but i wouldn't rely on them for anything.
Ask at that temperature glass melts and you will get 5 different answers, noone true.
GPT4o
https://chatgpt.com/share/673578e7-e34c-8006-94e5-7e456aca6f...
GPT4o
https://chatgpt.com/share/67357941-0418-8006-a368-7fe8975fbd...
GPT4o-mini
https://chatgpt.com/share/673579b1-00e4-8006-95f1-6bc95b638d...
Glass is not a pure element so that temperature is the "production temperature" but as an amorphous material it ""melts"" in the way a plastic material ""melts"" and can be worked at temperature as low as 5-700c.
I feel like without a specification the answer is wrong by omission.
What "melts" means when you are not working with a pure element is pretty messy.
This came out in a discussion for a project with a friend too obsessed with GPT (we needed that second temperature and i was "this can't be right....it's too high")
If the premise is that you first need to learn an alien psychology, that's quite the barrier for a student.
I got bullied at a conference (I was in the audience) because when the speaker asked me, I said AI is useless for my job.
My suspicion is that these kind of people basically just write very simple things over and over and they have 0 knowledge of theory or how computers work. Also their code is probably garbage but it sort-of works for the most common cases and they think that's completely normal for code.
I don't dismiss it as completely useless, because it pointed me in the correct direction a couple times, but you have to double-check everything. In a way, it might help me learn stuff, because I have to read its output critically. From my perspective, the success rate is a bit above 0, but it's nowhere close to "magical" at all.
I don't want to lose my ability to think. I don't want to become intellectually dependent on AI in the slightest.
I've been programming for over a decade without AI and I don't suddenly need it now.
> O most ingenious Theuth, the parent or inventor of an art is not always the best judge of the utility or inutility of his own inventions to the users of them. And in this instance, you who are the father of letters, from a paternal love of your own children have been led to attribute to them a quality which they cannot have; for this discovery of yours will create forgetfulness in the learners' souls, because they will not use their memories; they will trust to the external written characters and not remember of themselves. The specific which you have discovered is an aid not to memory, but to reminiscence, and you give your disciples not truth, but only the semblance of truth; they will be hearers of many things and will have learned nothing; they will appear to be omniscient and will generally know nothing; they will be tiresome company, having the show of wisdom without the reality.
But... I think you were actually bemoaning the shift from numbers to names as a loss?
We don't know how brain exactly works, but I don't think we can now do some things better just because we are not using another function of our brains anymore.
Same as AI. Cool it makes you 5x as efficient at your job. But after a decade of using it, can you got back to 1x efficiency without it? Or are you just making the highly optimistic leap that you will retain access to the tech in perpetuity.
Which, if any, have you used?
Did you give them a fair shot on the off-chance that they aid you in getting orders of magnitude more work done than you did previously while still leveraging the experience you've gained?
I don't have to remember most of them from today, so I simply don't. (I do keep a few current numbers squirreled away in my little pea brain that will help me get rolling again, but I'll probably only ever need to actually use those memories if I ever fall out of the sky and onto a desert island that happens to have a payphone with a bucket of change next to it.)
On a daily, non-outlier basis, I'm no worse for not generally remembering phone numbers. I might even be better off today than I was decades ago, by no longer having to spend the brainpower required for programming new phone numbers into it.
I mean: I grew up reading paper road maps and [usually] helping my dad plan and navigate on road trips. The map pocket in the door of that old Chevrolet was stuffed with folded maps of different areas of the US.
But about the time I started taking my own solo road trips, things like the [OG] MapBlast! website started calculating and charting driving directions that could be printed. This made route planning a lot faster and easier.
Later, we got to where we are today with GPS navigation that has live updates for traffic and road conditions using systems like Waze. This has almost completely eliminated the chores of route planning and remembering directions (and alternate routes) from my life, and while I do have exactly one road map in my car that I do keep updated I haven't actually ever used it for anything since 2008 or so.
And am I less of a person today than I was back when paper maps were the order of the day? No, I don't think that I am -- in fact, I think these kinds of tools have made me much more capable than I ever was.
We call things like this "progress."
I do not yearn for the days before LLM any more than I yearn for the days before the cotton gin or the slide rule or Stack Overflow.
Anyway now as an adult I have to remember a lot of pin codes.
* Door to home * Door to office * Door to gf's place * Bank card #1 * Bank card #2 * Bank card #3 * Phone #1 * Phone #2
YMMV, but I didn't ride a bike for 10ish years, and then got back on and I was happily riding quickly after. I also use zsh and ctrl+r for every Linux command, but I can still come up with the command of I need to, just, slowly. Ive overall found that if I learn a thing, it's learnt. Stuff I didn't learn in university, but passed anyways, like Jacobians, I still don't know, but I've got the gyst of it. I do keep getting better and better at the banjo the less I play it, and getting back to the drumming plateau is quick.
Maybe the drumming plateau is the thing? You can quickly get back to similar skill levels after not doing the thing in a while, but it's very hard to move that plateau upwards
You learnt the bike and practiced it rigorously before stoppping for 10 years, and you're able to pick it up. You _knew_ the commands because you learned the them the manual/hard way, and then used assistance to to do it for you..
Now, do you think it will apply to someone who begins their journey with LLMs and doesnt quite develop the skill of "Does this even look right?!", and says to themselves "if LLMs could write this module why bother learning what that thing actually does?" and then get bitten by it due to LLM hallucinations and stare like a deer in headlights.
I’m a little worried about developers turning to LLMs instead of official documentation as the first thing they do. I still view LLMs as mostly being fancy auto-complete with some automation capabilities. I don’t think they are very good at teaching you things. Maybe they are better than Google programming, but the disadvantage LLMs have seem to be that our employees tend to trust the LLMs more than they would trust what they found on Google. I don’t see an issue with people using LLMs on fields they aren’t too experienced with yet however. We’ve already seen people start using different models to refine their answers, we’ve also seen an increase in internal libraries and automation in place of external tools. Which is what we want, again because we’re under some heavy EU regulations where even “safe” external dependencies are a bureaucratic nightmare.
I really do wonder what it’ll do to general education though. Seeing how terrible and great these tools can be from a field I’m an expert in.
Already do — that's what "brain training" apps; consumer EdTech like Duolingo and Brilliant; and educational YouTube and podcasts like 3blue1brown, Easy German, ElectroBOOM, Overly Sarcastic Productions all are.
I just liked learning as far back as my memories go, so I've been jumping into researching topics because I wanted to know things.
Universe just gave me course materials, homework, and a lot of free time.
Jobs took up a lot of time, but didn't make learning meaninfgully different than it always has been for me.
> AI makes me at least 2x more efficient at my job. It seems irrational not to use it
Fair, but there is a corollary here -- the purpose of learning at least in part is to prepare you for the workforce. If that is the case, then one of the things students need to get good at is conversing with LLMs, because they will need to do so to be competitive in the workplace. I find it somewhat analogous to the advent of being able to do research on the internet, which I experienced as an early 90s kid, where everyone was saying "now they won't know how to do research anymore, they won't know the Dewey decimal system, oh no!". Now the last vestiges of physical libraries being a place where you even can conduct up-to-date research on most topics are crumbling, and research _just is_ largely done online in some form or another.
Same thing will likely happen with LLMs, especially as they improve in quality and accuracy over the next decade, and whether we like it or not.
For example, I have zero qualms about relying on AI at work to write progress reports and code up some scripts. I know I can do it myself but why would I? I spent many years in college learning to read and write and code. AI makes me at least 2x more efficient at my job. It seems irrational not to use it. Like a farmer who tills his land by hand rather than relying on a tractor because it builds character or something. But there is something to be said about atrophy. If you don't use it, you lose it. I wonder if my coding skill will deteriorate in the years to come...
On the other hand, if you are a student trying to learn something new, relying on AI requires walking a fine line. You don't want to over-rely on AI because a certain degree of "productive struggle" is essential for learning something deeply. At the same time, if you under-rely on AI, you drastically decrease the rate at which you can learn new things.
In the old days, people were fit because of physical labor. Now people are fit because they go to the gym. I wonder if there will be an analog for intellectual work. Will people be going to "mental" gyms in the future?