If you learned to code by hand and are now learning to code this new AI assisted way, it’s really hard to understand all the mental models that you build writing code by hand. Boris Cherney’s prior job was maintaining code quality at facebook pre-AI years. That is a metric shit ton of practical experience most of us will never get. We’ve always observed that the best way to do software engineering is through practice, I don’t think that changes.
Maybe it’s just contrarianism, but if a new SRE or developer asked me “How would you learn software engineering in this new AI world.” I would respond. “Loosely, the same way we always have. Get hands on experience. Type every word.” I think one of the universals that the new AI assisted world has not changed is:
Most of us learn by doing.
There are little inefficiencies I used to add to my process when learning to code. If it was a new programming language or library, I wouldn’t copy examples into my code, I would transcribe them, even if it was word for word.
Especially as someone who came up as an SRE and not strictly a software engineering SRE/Operations whatever you want to call it was all about inefficiency. I’d set up an e-mail server to learn how that worked. I’d setup an apache web server with virtual domains. I’d setup a DNS server and manually create zone files. I’ve installed Linux from Scratch more than once.
There’s more to the question of “How should I use AI?” then, “Can AI write good code?”. If you’re going to engineer software for the long haul, you need to know how to read code. You need to develp your engineering skills. You need to understand the ecosystem of how code is written - libraries, frameworks, github issues. There will always be obscure new problems that the AI hasn’t been trained on yet, and there will always be ideas you have about how something should work that won’t be right.
I mean, you might be able learn the nature of thinking like a software developer by reading a bunch of books, or maybe doing logic problems. But it’s strange that before the advent of AI-assisted coding, it was a forgone conclusion that this was not the way to learn. A lot of the higher level thought process that make up “real software engineering” around architecture and guiding LLMs comes from having spent time wrestling with code.
415 Words
0000-12-31 16:07