Coding...is engineering. Put the world behind the wheel of a car and they can make it go places. This...does not make them an automotive mechanic.
What a terrible analogy, just because you know the car's firmware doesn't mean you know how to properly diagnose something not related to the electronics (worn wheel bearings or suspension components) let alone how to diagnose or repair.
While I agree coding serves engineering, it's always funny to me how quick people want to use the term 'engineer' when it suits them, but then developer when things go wrong and accountability is on the table. Furthermore, engineers tend to have licenses in their respective fields, something I don't personally agree with, and to this day I have yet to see the same in IC roles.
Sidenote: As a former tech (mechanic) there were times when you would question not just an engineer's competence, but their entire sanity given how something was deployed, and needed to come up with a work-around for it to function correctly; which is why I think coders (at least the proficient ones) are more like techs.
I'd argue strongly against understanding. Our computers are just sophisticated version of Jacquard Loom and music box.
If a machine can interpret instructions and follow them then that is a sort of understanding. At least it has the same kind of result as handing instructions to a human and having them follow the directions to complete a set of tasks.
Does the human understanding of instructions differ significantly? Yes a human can understand much more ambiguous instructions and perhaps complete a larger set of possible tasks, nonetheless it's a similar process going on at least on the surface.
Well in the case of Python, the interpreter is indeed interpreting.
We could also talk about how the word 'executes' implies some kind of agency which computers lack. It's like saying a rock just executes the laws of physics when it rolls down a hill...
Where is this player piano that creates original works every time, and sounds so good we almost can't tell the difference?
"Programming" is not the same as "hacking".
I can hack away in any new language and produce something that works, and I have the benefit of a programming background and decades of experience.
That said, the areas where a hardcore, professional "programmer" is really needed, are quite few and will be even fewer in the future.
Now in the world we have zillions of software engineers doing the same thing redundantly. In a way the software development industry protects itself not creating the tools to reduce the industry itself. This is a typical innovation dilemma for a whole industry. Not saying that this is conscious but there is a big focus on pleasuring ourselves with new things that continue a well known road of fancy programming languages, etc.
I've been laughing to myself a bit, not about your comment, but because predictably there are so many people who chose the most uncharitable way to view, both my original comment and the people using these tools. Copying and pasting, never learning and becoming knowledgeable, as the most probable outcome that will come from this. That's just not how it works.
Excluding the people who will stop anyway of which there will always be, what this will do is break down barriers for a lot of people (not everyone), who thought they wouldn't like it or couldn't be good at it and entice them, hook them, and then build them up. It's just a new way of learning programming. Hacking with LLMs is going to be the entry point for these people, not the final destination.
I agree overall that LLMs will lower friction and barriers to entry for some folks looking to get into hobby hacking, programming, or software engineering as a profession. Anecdotally, I think that's true beyond software. In wood working I find LLMs helpful when youtube leaves me with unanswered questions. More anecdotally, I have some high hopes for when LLMs can use tools, I think paired with the knowledge I've gained over the years that using an LLM that uses tools will be like the force multiplier I gain when using a compiler.
To some degree, like any useful tool (eg: StackOverflow) there will be those who use it recklessly, but I'm less concerned about that because those people will always exist. The "anyone can do it" sentiment is highly inclusive, but also a bit falsey and what I took more disagreement with. I've met a good number of people who got into the industry of software engineering based on sentiments like that, thinking the job would eventually become "easy" and it never does for them. That or they falsely equivocate that sentiment with working at a FAANG, that these are just easy jobs where you get paid beaucoup bucks only to find out that's not so true, or at least not nearly as common as the sentiment invokes. That's worth being a bit cautious in language in my opinion, but I say that out of having experienced how hard it is to navigate this industry at times. To find out the things that you knew to be true that got you into it in the first place were false or falsey would be a big let down.
I think these things are worth talking about and I don't want to make this industry look more gatekept than it is so I don't think I'm 100% right with my opinion, but I also don't want to give people false impressions. I appreciate you being willing to respond and talk about this stuff.
I think ultimately if I had to try and make a more balanced take, it would be that this will help a non trivial amount of people become programmers as it makes programming more approachable where traditionally as a field we struggle with that. It will not magically make you a top programmer or anything like that. I also think it's unavoidable that some people regardless will not be cut out for it.
I really wasn't trying to suggest that this will solve the difficulties of becoming a professional programmer, but I do think it is going to be the entry point into the field for a significant amount of future programmers.
I am glad that for once I'm being cautioned about being overly optimistic though, typically I fall on the other side of that spectrum and it's something I've had multiple people tell me to work on.
If your an Expert and you only care about that one subject it's probably not that useful. or you expect perfection from AI it makes mistakes. but you know what they say. To err is human but you need recursive AI to really fuck thing up.
I disagree a bit. Code is the precision vehicle. A majority of our job is problem solving; some problems can be solved generally, other problems require precision. Not all programmers will ever encounter a problem that requires precision solutions.
> I also maintain that for a lot of the programming that makes the world go round, it's not that hard. People just convince themselves they won't be able to.
I also disagree on this. I've taught a good number of people to code to different degrees and I can confidently say that not everyone is going to have an appetite for this as a job or hobby. That's to say, hobby coding is different from career coding, the incentives are different, and attract/require different personality characteristics to be successful. I think infantilizing programming does no one any favors.
I like to describe it as a job where you solve many, many tiny problems and put them together. You must like breaking big problems down into small ones, coordinating and communicating asynchronously and clearly, and have a good head on your shoulders to tolerate the literal endless stream of failure that you'll encounter along the way without being too dissuaded. Lastly, you'll constantly be learning something new; sometimes learning about the same old things, other times learning things far outside your domain. The single most important tool in a programmers war chest is not knowing all the things, but where to look and how to discern good information from bad or so-so information.