5 ms·
“Before AI I would have to study how Bluetooth works now I don't have to.” And “It's very good at handling the BS part of coding…” This is the part that I th
by kamranjon 2y ago
“Before AI I would have to study how Bluetooth works now I don't have to.”
And
“It's very good at handling the BS part of coding…”
This is the part that I think is difficult in a team situation.
Learning and understanding is the important part, and certainly isn’t BS.
I understand that it really can make it seem like velocity has increased when you really are shipping things that more or less “work”, but it’s really a good practice to understand your code.
I’ve had to spend a significant amount of time fixing work that was admittedly generated using AI by other engineers, and I really fear engineers are beginning to trade deep understanding for the high of getting something that “works” with little effort.
It might “work” but you might be ignoring the work everyone around you is doing to clean up your brittle code that doesn’t scale and wasn’t thought through at inception.
- mrtksn 2y agoIt is effective because you can spend your mental energy on the things that matter, things that make difference. Code quality actually doesn't matter when you remove the human from the loop as long as it works correctly because it becomes something made by a machine to be interpreted by a machine.
- kamranjon 2y agoCode isn’t a binary scale of works or doesn’t - there is inefficient code and insecure code and everything else in between that still technically “works” - but a lack of understanding will eventually cause these “working” solutions to catch up to you.
- mrtksn 2y agoYou can always revisit that part of code if it doesn’t perform. For vast majority of code running on consumer devices there’s no difference between smart implementation and mediocre implementation. LLMs are great at being mediocre by default. As for security, that mostly stems from the architecture. LLMs mediocracy also helps with following industry conventions and best practices. In my case I never get the code being written at once, instead I make LLMs write pieces that I put together myself. Never got used to copilot or Cursor, I feel in control only with the chat interface.
- rsynnott 2y agoNot understanding how Bluetooth works while building a Bluetooth thing seems like… a problem, though. Like, there are going to be bugs, and you’re going to have to deal with them, and that is where the “just ask the magic robot” approach tends to break down.
- mrtksn 2y agoFunny enough, you already don't have access to low level radio so building a "Bluetooth thing" is just about dealing with some libraries and API. Bugs happen but its not that different from any other type of bugs. Also, you end up learning about Bluetooth as bugs and other unexpected behavior happen. The great thing about LLMs is that they are interactive, so for example when collecting Bluetooth packets for analysis I ended up learning that the communication with Bluetooth is a bit like talking through a middleman and some packet types are only about giving instructions to the Bluetooth chip and others are actually about communicating with a connected device. Using LLM for coding something you don't understand is much different than Googling something, then copy+paste a snippet from Stackoverflow because you can ask for instant explanation and modifications for testing edge cases and other ideas.
- smw 2y agoOh come on, I'm not an "AI believer", but it regularly does things for me like write complex SQL queries that I can then verify are correct. Just something like that will often save me 20-40 minutes over doing it manually. There is _something_ there, even if it's not going to replace the workforce anytime soon.
- saturn8601 2y agoYou have an entirely valid worry and I get a bit scared at my use of AI because of this. I fear that dev jobs might go away or become third world only jobs like electronics manufacturing but in the mean time its scary how much it atrophies your mind. At the same time, it has opened up a universe of answers to questions I wouldn't normally ask because the bar was too high. Everyone seems to have their own unique stories. For example just today, I dumped a crash log from the Mac version of Microsoft Remote Desktop into it. This damn app locks up 10 times a day for me causing a "Force Quit" event and subsequent crash dump to be generated. Normally what can I do with that crash dump other than send it off to Apple/Microsoft? It identified where it thought the crash was coming from: excessive right clicking causing some sort of foundational error in their logic. Avoiding right clicking has solved the issue for me. Now that I write this out, I could have spent hours upon hours finding a needle in a haystack and that would probably made me a better developer but the bar is too high, there is too much other work I have to get done than to chase this. Instead I would have just lived with it. Now I have some closure at least. Again it seems like everyone has got their own unique stories. Is AI taking everything over? Not yet. Can I go back to pre-AI? No, its like going back to Windows 95.
- rurp 2y agoThe only part I would quibble with is the fear that superficial AI generated code becomes widespread. It's not that I think this won't happen, and I wouldn't want it on my team, but I think it could actually increase demand for competent software engineers. I got into coding about a decade ago when cheap outsourcing had been all the rage for a number of years. A lot of my early experience was taking over very poorly written apps that had started off with fast development and then quickly slowed down as all of the sloppy shortcuts built up and eventually ground development to a halt. There's a decent chance LLMs lead to another boom in that kind of work.
- derkster 2y agoFor mass production/scalability, I absolutely agree with you. For products that won't be scaled, I imagine it becomes just another abstraction layer, with the cost of human input outweighing the cost of the additional infrastructure / beefing up hardware to support the inefficiencies created.