Live data from Hacker News

I'm glad AI didn't exist when I learned to code

blog.shivs.me

21–30 of 48 posts

Re: I'm glad AI didn't exist when I learned to code

#21
One key thing that I found when learning to code mostly from actual books and online tutorials (well before AI), was to always re-type the code examples by hand instead of just reading them or copy-pasting them. If just reading the code is always miss a bunch of details, that id see when retyping.

I tend to do the same thing when using AI to explore something at edge of my knowledge, where I don’t know exactly what I just asked the AI to code. I ask it how to solve a general problem of the class I’m trying to solve, and the retype that code as I’m fitting it into my specific use case. I find that helps me much better understand what the AI generated code is doing, which comes in handy when it doesn’t work as described or goes wrong.

Re: I'm glad AI didn't exist when I learned to code

#22

I mentor a few recent grads and folks who change careers into tech, so I'll share here what I've told them for years. Writing code is the easiest part of software engineering. You're hired for your perceived ability to solve problems the employer needs solved. Many times you'll solve it with code. Sometimes you'll solve it with process. In every instance, you're expected to solve it using your learned experience and…

Couldn't have said it better. Unfortunately people who should know better like Zuckerberg are perpetuating the idea that coding is the whole job.

Partly because coding has become so hyper specialised in large companies, partly because folks who sell AI have an incentive to exaggerate to sell more.

Programming is over, jobs will disappear and we'll all be on UBI while AI turns into terminator. Meanwhile designing software systems still requires lots of intrinsic motivation and persistence

Re: I'm glad AI didn't exist when I learned to code

#23

I'm glad google didn't exist when I learned to code.

When I started at Oracle way back in the day, there was no Google.

I was charged with building a DSL so that users could specify their own business logic and tax rules.

I spent 5 x 16 hour days in a flow state coding in C and emerged with a parser that worked remarkably well, but was hideously slow.

After sharing the results with colleagues, one of them told me about lex and yacc. I rewrote it and it went from thousands of lines of code to a couple of configuration files and ran probably 1000x times as fast.

Of course if search engines had been around then I could have skipped all those hard steps and that project would have been completed more quickly.

But the skills and confidence I got from first doing it the hard way really helped in my career.

Re: I'm glad AI didn't exist when I learned to code

#24
Is this different than "I'm glad calculators didn't exist when I learned math"?

I'm mixed. I did try to get gemini to figure out how to do some fancy TypeScript stuff. It provided solutions but failed to meet the constraints and couldn't get it to really get what I meant. It would say "Oh, sorry, here's one dealing with that" and then spit out code that either still had the same problem or ignored a previous constraint.

Anyway, more relevant, I did wonder if I wasn't trying enough on my own to figure out what I was trying to do. I failed either way haha.

Re: I'm glad AI didn't exist when I learned to code

#25

I mentor a few recent grads and folks who change careers into tech, so I'll share here what I've told them for years. Writing code is the easiest part of software engineering. You're hired for your perceived ability to solve problems the employer needs solved. Many times you'll solve it with code. Sometimes you'll solve it with process. In every instance, you're expected to solve it using your learned experience and…

> If you can't be bothered to deal with the easiest part of your job, writing some code, how do you expect to be trusted with the hard stuff? If writing code is the easiest and least impactful thing you do as a software engineer, why does it matter if you use AI to assist with that part? Or to come at it from another angle, why is using Stack Overflow/Google in the hunt for answers and examples good, but using AI mod…

There is a lot of knowledge that devs gain by seeing how their code evolves over time.

Things like "This encourages people to add features here, here and here".

Without that experience, the code becomes inscrutable very quickly.

Re: I'm glad AI didn't exist when I learned to code

#26
post #8

Me Too! and I was a high schooler in the 1970s... Since I'm close enough to end of career to be able to ignore the whole trend as a developer, I'm mostly dreading having to "talk" to some frikin bot everytime I need support on some product. If you agree that "customer support" system hell is bad already, then you have to know that this is all on the verge of being much worse... me: My payment keeps being rejected on…

I don't see it as very different than humans who must follow a narrow script. And scaling support is a good thing. And then there's still prompt injection in lieu of social engineering

Re: I'm glad AI didn't exist when I learned to code

#27
post #4

I think this really isn't about AI, but rather about the good self discipline as well as the willingness and perseverance to explore deeply. I have seen people who learned to code before AI, and yet because they don't bother to ask themselves another layer of "why" they continue to have a superficial understanding of everything. And I have no doubt that the truly excellent programmer will understand the whole system…

Yes, and the persistence to figure things out when they're not working the way you think they should. So many people just go and ask for help the moment things aren't working and if they still can't get an answer they just give up. It doesn't matter if you're coming to me or ChatGPT, if I just tell you what's wrong you never learn.

[deleted]

Re: I'm glad AI didn't exist when I learned to code

#28

I mentor a few recent grads and folks who change careers into tech, so I'll share here what I've told them for years. Writing code is the easiest part of software engineering. You're hired for your perceived ability to solve problems the employer needs solved. Many times you'll solve it with code. Sometimes you'll solve it with process. In every instance, you're expected to solve it using your learned experience and…

There's also the "big picture" part of software engineering, that is the architecture and design of a piece of software. It's all done in the head (and maybe on paper). Once my fingers hit the keyboard the code pretty much writes itself because the hard part has already been done.

I wish we got more affordances here with this side of the experience. The nicest thing recently I think are the idea of a directed acyclic graph that describes the system. But even these get cumbersome when many parts are involved and these are only presented in 2d and fully appreciated when they fit within your monitor. While it can be nice if these sorts of things can be visualized in 3d in virtual reality perhaps, I think that in 3d digital environments that often look structurally similar it is easy to lose a sense of subconcious wayfinding that we inherently have when we observe real things in real life.

In other words, a messy dag is hard to interpret, but your messy desk full of papers you can subconciously place where everything might be, because it exists in the 3d space in real life where all your senses are active on it as they are designed to be. not in a simulated manner but the real thing that can never be fully modeled.

Companies used to model things in 3d via clay or balsa wood to help visualize ideas in this manner. Eventually people like architects started using autocad instead of balsawood. But one wonders if a certain dimension of understanding of a project was lost when we went from something we could walk around and look at unencumbered, into a digital abstraction of some real thing.

Re: I'm glad AI didn't exist when I learned to code

#29

I mentor a few recent grads and folks who change careers into tech, so I'll share here what I've told them for years. Writing code is the easiest part of software engineering. You're hired for your perceived ability to solve problems the employer needs solved. Many times you'll solve it with code. Sometimes you'll solve it with process. In every instance, you're expected to solve it using your learned experience and…

> If you can't be bothered to deal with the easiest part of your job, writing some code, how do you expect to be trusted with the hard stuff? If writing code is the easiest and least impactful thing you do as a software engineer, why does it matter if you use AI to assist with that part? Or to come at it from another angle, why is using Stack Overflow/Google in the hunt for answers and examples good, but using AI mod…

> If writing code is the easiest and least impactful thing you do as a software engineer...

Not sure if I've hit a nerve, but I never said it was the least impactful. Code is the distillation of all the work that precedes it to accomplish a task. It's the easiest part, but it's essential to the final solution in most circumstances.

Re: I'm glad AI didn't exist when I learned to code

#30
post #4

I think this really isn't about AI, but rather about the good self discipline as well as the willingness and perseverance to explore deeply. I have seen people who learned to code before AI, and yet because they don't bother to ask themselves another layer of "why" they continue to have a superficial understanding of everything. And I have no doubt that the truly excellent programmer will understand the whole system…

Maybe I’m missing the nuance here but I don’t understand the arguments against “blindly copying” in the parent post. I agree it is probably not good to give up like the sibling post is saying, but at some stages you kind of do need to copy code blindly, no?

You shouldn’t copy if you’re a student. But if someone is a working Salesforce Administrator trying to learn Apex as a first programming language, I imagine a lot of the introductory code you will see around Apex Triggers will make no sense but you’ll have to blindly copy it if you want to follow along.

Some learners will get frustrated with that teaching approach because they’ll be very curious about the syntax. I imagine at that point they’ll just consult other resources to get their questions answered.

Post reply on HN