Live data from Hacker News

Learning to code is still worthwhile

stevekrouse.com

121–130 of 326 posts

Re: Learning to code is still worthwhile

#121
post #65

As a professional programmer entering the final third of an enjoyable career, I would now place "learning to code" in the same category as "making a living as a poet." As in, it's truly enjoyable art and some people appreciate it, but you'd better plan for a day job. Senior people who already know how to code are doing OKish for now, from the data I've seen, but the job is increasingly babysitting models like they we…

Which models and tools do you use to write and validate code?

Re: Learning to code is still worthwhile

#122
post #65

As a professional programmer entering the final third of an enjoyable career, I would now place "learning to code" in the same category as "making a living as a poet." As in, it's truly enjoyable art and some people appreciate it, but you'd better plan for a day job. Senior people who already know how to code are doing OKish for now, from the data I've seen, but the job is increasingly babysitting models like they we…

The babysitting work would still be impossible if you didn't actually know how to code.

For now, I can imagine a not too distant future where this is largely untrue.

LLMs are an abstraction just like machine code -> assembly -> C/JVM -> some lang -> LLMs?

At some point you stopped needing to understand the layer down because the layer you were on became so good. Yes there are always corner cases, but for the vast majority of developers/engineers out there, staying at your layer was enough to make a career out of it once your layer hit a certain maturity.

Re: Learning to code is still worthwhile

#123
post #17

Learning to code = understanding a problem, breaking it down into small, manageable pieces, putting all the pieces back together. Debugging. Iterating towards better metrics, etc. All these are amazingly valuable skills/mindsets that can be highly portable to other "problem solving" domains.

Steve Jobs used to say that everyone should learn to program, because it teaches you how to think. https://youtu.be/BRTOlPdyPYU

Lately I wonder if people should learn philosophy because it teaches you how to reason, what to reason about, and why. Just like with programming, you’re constantly forced to interrogate your impressions and reconsider what you took for granted. It’s an extremely useful exercise. Nothing will show you how wrong you constantly are like testing the logic of a program you wrote.

It’s a bit like learning to program, but without a compiler as the referee or the domain constraints. Maybe that’s where we should put more energy if learning to think is the goal, though I don’t know what could replace the purely logical and verifiable qualities of programming. That isn’t so readily available with philosophy, for better or worse.

We do need people to practice thinking and self-interrogation far more than we do today.

Re: Learning to code is still worthwhile

#124
post #116

Earlier quoted context omitted.

Interesting you bring up (artistic) painting and bridge building. I'm a house painter, and while the work is... It's just relentless work and staring all day. It's the end results of making something just, better, with the simple acts of reputation and giving a shit about it. Just wondering where house painter falls in your scale, I'd hunch.

Not the person you're replying to, but I'd agree with them, and think house painting would be basically identical to building a bridge. The difference this comparison is capturing in my opinion is that of thinking up something new, compared to arranging things in a well known/already defined configuration. We know how to build bridges, we just have to do it (maybe including some calculations and site surveys, yes, bu…

Creating a program is more like the interior designer choosing paints or the engineer designing a bridge in some CAD software. The actual painting/building has been automated for ages and they are the compiler/computer combo.

People who are new to the scene may find "browsing catalog"/"configuring models" tedious, but that's how you develop the intuition of what works and what not. After a while, you can shortcut most of the tediousness with those heuristics. You know enough blocks that it's just choosing the right one to fit the solution and you do not have to research them and understand them at the same time (where most of the beginners' time is dedicated to).

Re: Learning to code is still worthwhile

#125
post #120

> Code is a beautiful form of creative expression, as rich as literature or music I think this is overstating it and makes me wonder how familiar the author is with literature and music. Most programming is closer to plumbing. We come in, gripe about the guy who did the prior job, and solve a puzzle with some unique constraints. The reason LLMs are good at coding is because with coding we want boring, banal code.

I make this comparison a lot and a lot of devs don't like it.

I am sure I could make a decent industrial PLC tech, same shit, different tools.

Re: Learning to code is still worthwhile

#126
I was quite worried about having to code when I interviewed recently. A two- or three- year layoff is a lot. Turns out that it didn't really make much difference! After a few weeks of warm-up exercises, coding was as natural as ever and turned out to be the easier part of technical assessments. I guess a couple decades of muscle memory is hard to lose.

Now then, back to using Fable. It is doing work that previously took me months in an evening.

Re: Learning to code is still worthwhile

#127

Earlier quoted context omitted.

The babysitting work would still be impossible if you didn't actually know how to code.

For now, I can imagine a not too distant future where this is largely untrue. LLMs are an abstraction just like machine code -> assembly -> C/JVM -> some lang -> LLMs? At some point you stopped needing to understand the layer down because the layer you were on became so good. Yes there are always corner cases, but for the vast majority of developers/engineers out there, staying at your layer was enough to make a care…

> LLMs are an abstraction just like machine code -> assembly -> C/JVM -> some lang -> LLMs

The what is the semantic mapping between and LLMs?

I know the semantic mapping between maching code and assembly (some light weight syntax manipulation and macros). I know the one between assembly and C (the C abstract machine, which is mostly about the stack and whatever call/ret instructions pair). I know the one between C and something like python (not so much different than the one between C and assembly in mechanism).

Please talk about how you go from A LLM prompt to a piece of code in Python and guarantee the intent remains unchanged.

Re: Learning to code is still worthwhile

#128
post #65

As a professional programmer entering the final third of an enjoyable career, I would now place "learning to code" in the same category as "making a living as a poet." As in, it's truly enjoyable art and some people appreciate it, but you'd better plan for a day job. Senior people who already know how to code are doing OKish for now, from the data I've seen, but the job is increasingly babysitting models like they we…

The babysitting work would still be impossible if you didn't actually know how to code.

I fear the capability of the models will quickly outpace the need for a human to validate their output. They won't be juniors for much longer.

Re: Learning to code is still worthwhile

#129
post #116

Earlier quoted context omitted.

Not the person you're replying to, but I'd agree with them, and think house painting would be basically identical to building a bridge. The difference this comparison is capturing in my opinion is that of thinking up something new, compared to arranging things in a well known/already defined configuration. We know how to build bridges, we just have to do it (maybe including some calculations and site surveys, yes, bu…

Creating a program is more like the interior designer choosing paints or the engineer designing a bridge in some CAD software. The actual painting/building has been automated for ages and they are the compiler/computer combo. People who are new to the scene may find "browsing catalog"/"configuring models" tedious, but that's how you develop the intuition of what works and what not. After a while, you can shortcut mos…

There is programming that is like that - it is not all programming, and I strongly suspect not the the majority by dollars invested into developers - even it is less of an interior designer choosing paints and more of an entire designer designing an entire interior.

Once you get away from the very trivial side of programming, yes you are standing on the shoulders of giants, but the design decisions are in fact truly novel un-forced choices. Ask two people to make a "note taking app for university students" and you'll get two very differently shaped apps.

Re: Learning to code is still worthwhile

#130

Earlier quoted context omitted.

For now, I can imagine a not too distant future where this is largely untrue. LLMs are an abstraction just like machine code -> assembly -> C/JVM -> some lang -> LLMs? At some point you stopped needing to understand the layer down because the layer you were on became so good. Yes there are always corner cases, but for the vast majority of developers/engineers out there, staying at your layer was enough to make a care…

> LLMs are an abstraction just like machine code -> assembly -> C/JVM -> some lang -> LLMs The what is the semantic mapping between and LLMs? I know the semantic mapping between maching code and assembly (some light weight syntax manipulation and macros). I know the one between assembly and C (the C abstract machine, which is mostly about the stack and whatever call/ret instructions pair). I know the one between C an…

The non-determinism is one of the relevant features of this layer of abstraction! And one can learn to validate that the translation is being done properly. Some of the tools you have include writing extremely detailed specs, generating visualizations of the internals of the tool, or (perhaps) reading the code, though that becomes less feasible with volume.

Basically it turns out that code is full of incidental details and what you really want is to verify the important parts, while receiving a guarantee that the vast tail of incidentals is handled "reasonably."

Post reply on HN