2 ms·
I think the real problem is that people are misunderstanding what programming is: understanding problems. The hard truth is that you will learn nothing if you
by agentultra 2y ago
I think the real problem is that people are misunderstanding what programming is: understanding problems.
The hard truth is that you will learn nothing if you avoid doing the work yourself.
I'm often re-reading ewd-273 [0] from Dijkstra, The programming task considered as an intellectual challenge. How little distance have we made since that paper was published! His burning question:
> Can we get a better understanding of the nature of the programming task, so that by virtue of this better understanding, programming becomes an order of magnitude easier, so that our ability to compose reliable programs is increased by a similar order of magnitude?
I think the answer AI-assistants provide is... no. Instead we're using the "same old methods," Dijkstra disliked so much. We're expected to rely on the Lindy effect and debug the code until we feel more confident that it does what we want it to. And we still struggle to convince ourselves that these programs are correct. We have to content ourselves with testing and hoping that we don't cause too much damage in the AI-assisted programming world.
Not my preferred way to work and practice programming.
As for, "democratizing access to programming..." I can't think of a field that is more open to sharing it's knowledge and wisdom. I can't think of a field that is more eager to teach its skills to as many people as possible. I can't think of any industry that is more open to accepting people, without accreditation, to take up the work and become critical contributors.
There's no royal road. You have to do the work if you want to build the skill.
I'm not an educator but I suspect that AI isn't helping people learn the practice of programming. Certainly not in the sense that Dijkstra meant it. It may be helping people who aren't interested in learning the skills to develop software on their own... up to a point, 70% perhaps. But that's always been the case with low-code/no-code systems.
[0] https://www.cs.utexas.edu/~EWD/ewd02xx/EWD273.PDF https://www.cs.utexas.edu/~EWD/ewd02xx/EWD273.PDF
Update: Added missing link, fixed consistent mis-spelling of one of my favourite researchers' name!
- falcor84 2y ago>The hard truth is that you will learn nothing if you avoid doing the work yourself. I understand where you're coming from, but this would imply that managers, product people and even tech leads don't learn anything from working on a project, which would strongly go against my experience. It is absolutely possible to delegate implementation details but stay close to the problem.
- throw4847285 2y agoManagers and product people are doing the work themselves, they are just doing different work.
- falcor84 2y agoDo you feel that by using an AI-assisted editor you are doing less of "the work" of building a product than you would by delegating it to another developer? That is not my experience at all.
- VeninVidiaVicii 2y agoFWIW his name is Dijkstra and it’s pronounced Dike-stra