Remix.run Logo
▲ InsidiousWombat 6 hours ago

Yes. The people that didn't enjoy coding say that.

AI is great enabler for stuff that you don't want to be good at, it cut a ton of chore type jobs out of my workflow, but for stuff you do want to get better and care for, it's both joy killer, and if you're not careful you will only learn how to prompt, not how the stuff works.

▲itishappy 6 hours ago | parent | next [-]

I enjoy coding deeply, and my feelings are not that simple.

I love code as a craft. I love spending time designing the perfect abstraction. I love seeing it come together in the implementation stage. I love the troubleshooting process and the understanding that comes when you finally engage with the root cause of the issue. I love all of this so much that I ship little, all my time is spent in process.

I also love code as a tool. I love working tirelessly towards describing a goal and then watching it come to completion. I love knowing my projects consume terabytes of data and spit out useful results. I love seeing my assumptions on the outcome proved right or wrong.

Now I can do the latter without the former, and it leaves me deeply conflicted. A large part of me is more excited than I've ever been. Another part of me is quite sad, and this is unfortunately the part where my ego lives. For now, I keep it in check by asking the LLM to describe the pros/cons of alternative architectures. That way I stay learning about the products I create.

▲Karrot_Kream 5 hours ago | parent | next [-]

As I like to tell others: before my job was 70% architecture & patterns and 30% coding & algorithms. Now my job is 100% architecture & patterns. While I still spend the majority of my time on architecture & patterns, and while I enjoy this aspect more than coding and algorithms, I am still working a "different job" than I was when my hands steered the code completely.

▲falkensmaize 4 hours ago | parent [-]

People say stuff like this all the time, but what does it actually mean? Like, isn’t the details of the code, at least at some level, part of the “architecture”? I’m so curious about what people who say this are actually making where they just sit around all day and dream up new lego structures without ever having to look at any of the bricks.

▲Karrot_Kream 2 hours ago | parent | next [-]

The bricks are pretty standardized? I mean, you're not reinventing singly-linked and doubly-linked lists from first principles no? When I program I think in terms of data structures, data hierarchy, and algorithms. I want to use a queue here, a lock here, a double linked list there, an array list over here, maybe a hash dictionary with linked-list chaining for collisions. It's only a few times in my career that I built a bespoke data structure from the ground up and they were all for very hot loops and one case involved working on a lock-free algorithm.

I've done a lot of functional coding in the past (in academia, in Haskell as a hobby, and Scala for a unicorn where I was an early hire.) This probably affects how I think. But I find it quite natural to organize my code this way. After all the fundamental data structures and the hierarchies relating them are what often determine core properties of your programs such as being CPU, Memory, or IO bound.

I also work as a pretty senior engineer and my tasks before agents were usually about leading a team to implement something. I would often do the v0 implementation to make sure we met customer requirements and then take a step back and help the team scale the service up. These days the team is a lot smaller and maybe just another engineer; the agents make up the rest.

▲retsibsi 4 hours ago | parent | prev [-]

I may have it wrong, but I think 'architecture' can include relatively low-level details: you could even design a program down to the level of what each function does, and still only be doing 'architecture', not coding, so long as you're not writing the code or specifying exactly how it should work.

▲skydhash 2 hours ago | parent [-]

> you could even design a program down to the level of what each function does, and still only be doing 'architecture', not coding, so long as you're not writing the code or specifying exactly how it should work.

So it all wishes and prayers? no wonder software quality is down.

▲itishappy 22 minutes ago | parent | next [-]

> So it all wishes and prayers?

Software is built on wishes and prayers. Programmers don't ship pixels to be installed in monitors, nor do we (mostly) work with compiler internals. We write a detailed set of instructions and hope that a bunch of systems we don't necessarily comprehend follow them well enough to get the intended results. It works because some folks got together and wrote down their wishes and prayers so good that others were able to understand and follow them later.

▲Karrot_Kream 2 hours ago | parent | prev [-]

We can be curious about how others approach problems or we can try to find the faults. I feel like this comment is a great example of jumping to the negativity rather than trying to understand a different perspective.

I ultimately think learning how other people structure programs is an enriching task and not one that should cause you to dig in and discredit differently-shaped approaches.

▲skydhash 2 hours ago | parent [-]

> I ultimately think learning how other people structure programs is an enriching task

Learning from others is great. But there should be actually something to learn. When someone says

  so long as you're not writing the code or specifying exactly how it should work.
It means they’re not creating software. They’re just playing with randomly generating something.

A software is the recipe for some process. The code is the formal version where everything is exhaustively specified. Not thinking about the code means you’ve stopped thinking about the software somewhere and no longer can say if it’s ok or not.

▲Karrot_Kream an hour ago | parent [-]

What's the point of leaving a comment if you're not going to change your mind and they're not going to change theirs? Is it just to advocate for your position?

▲skydhash 7 minutes ago | parent [-]

As you're being very vague, I write more about my opinion, which is based on a guess of what your approach. Basically the Q of P imply Q where P is the guess (and P is the thing you're being vague). I'd like if you can prove that either P is not valid or that there's a different Q that exists.

  P: A software is the recipe for some process. The code is the formal version where everything is exhaustively specified. 
  Q: Not thinking about the code means you’ve stopped thinking about the software somewhere and no longer can say if it’s ok or not.
▲barbazoo 6 hours ago | parent | prev [-]

Username checks out and thank you for writing out my own feelings better than I ever could have, even with AI.

▲aerhardt 5 hours ago | parent | prev | next [-]

There are many of us who enjoyed coding, and who enjoy the new paradigm, too.

▲wartywhoa23 4 hours ago | parent [-]

Yes, sadly there are many people who are not honest with themselves because of peer pressure, FOMO and livelihood at stake.

▲lazyasciiart 2 hours ago | parent [-]

What condescending self-righteous delusion.

▲lowbloodsugar 2 hours ago | parent | prev | next [-]

> and if you're not careful you will only learn how to prompt, not how the stuff works.

I’ve been coding over four decades and it is clear to me that most programmers don’t know how the stuff works, and not just script kiddies but some PhDs I worked with.

For those who want to know how it works, LLMs are massive enablers. I’ve written so many debugging and inspection tools with an LLM; had a model explain the assembly language produced; had rubber duck conversations with it. I’m having such fun tbh.

▲eithed 6 hours ago | parent | prev [-]

That's a very simplistic view. I'm very good at writing tests and I'm happy to offload writing tests to LLMs, as long as they follow the structure I've provided.

You're saying that I must not be good in writing tests, irregardless on how I feel about test writing.