The Irony of AI
If you asked me a year ago about AI and its place in this world, I would have told you that AI is crap.
Today.... that all changes... 😎
No, but honestly, today AI is much, much better for certain types of programming. Come at me.
I'm by NO MEANS a gifted programmer. Plenty of people pick up concepts faster and more effectively than I do. That being said, AI was writing objectively crap code.
The Good ol'days
Lots of file changes, unnecessary abstractions where they weren't needed, and no abstractions where they were needed. All but expected back then. Overall, a perfectly terrible experience. Also, does anyone else remember the looping problem AI used to always get itself into?
Prompt to solve problem
AI suggests solution A
Send error that was result of solution A
AI suggests solution B
Send error that was result of solution B
AI: "You're totally right, lets try something new!"
AI suggests solution AOne thing back then that I saw AI being much better than me at was solving those Leetcode style problems, the party tricks, the one off never will touch or need to look at again code. It isnt that during my coding I ran into binary searches or graph problems. There were however weird edge cases with things like dates or string manipulation that I just said "Frick it" and let the AI write those quick functions.
After all, why push out memories of my late grandma so that I could remember how to reverse a linked list, right?
State of AI Now
Welp, fast forward a little bit and I'm starting to use AI more and more. I'm enjoying some aspects and I'm sad because other aspects are now "gone". I use AI after the scaffolding is up. I establish the patterns. Once those patterns exist, AI is very good at continuing to follow them.
AI still shits the bed if you get it working before those patterns exist. It needs to make assumptions. I don't want AI deciding my fate at 3am... I want it doing the monkey work while the monkey does the fun stuff (in this example I am the monkey).
Ok great, the majority of fullstack dev is now maintaining and extending that. There isn't a lot of rocket science that goes into these (this is based on the apps I worked on and maintain, I'm sure GooGoo devs or whatever have insane problems that make fullstack much more difficult sure.). Perfect, why not use AI here? Personally I see AI as the perfect answer for this now. This is a GOOD thing.
AI doing the monkey work is good (the AI is the monkey now). That also means youre doing less of the thing you enjoy: writing code/programming.
But... I like programming...
I love programming. More broadly I love software development. I love working with like-minded people solving cool problems and hearing different solutions to a problem that I couldn't/wouldn't have thought of only on my own. AI kinda makes this easier as a solo dev without any friends that code outside of their jobs. Because of AI, I now can get my immediate confirmation bias on my terrible idea and build away.
Why do I love programming? I dont know, maybe I was dropped too much as a kid but I do. I enjoy that domino effect of putting a bunch of code up, then plopping that one last domino in and all my type errors fade away and suddenly the app springs to life. This is just one of hundreds of things I love about coding.
If only there was something we could do to keep that joy of coding by hand...
Enter. Leetcode
I'm not suggesting Leetcode does anything magical now that it didn't do years ago. I am however suggesting you give it a try and see if you have fun programming by hand again. Since a lot of people now are dealing with 1000+ line diffs dumped out by the slop machines and are tired of being slop janitors, I'm suggesting taking a step away from that and going back to the simplicity of just seeing a well defined problem, and then simply whiteboarding and coding.
I'm giving Leetcode a very narrow, focused job. Keep my raw programming fluency sharp.
I'm not trying to ship anything, I'm not trying to IPO. I'm not digging through OSS to find cool projects that I then need to dedicate hundredds of hours to understand. I'm simply writing some bullshit function that gets submitted, immediately gives me that dopamine injection via checkmarks, or a headache and thoughts of dread and despair.
Then, I keep coding.