Thoughts on AI in school and work

This seems to be quite the topic in the industry, and frankly the world at the moment. It's easy to see senior software engineers talking about this on LinkedIn or random accounts throwing thoughts out into the void on x. As a younger programmer just starting to really get into this space, it makes for a very muddled experience and can be quite off putting. This blog is going to be a collection of idea's and opinions I have collected to try to make sense of how to continue learning while utilizing ai (LLM's).

I have been programming for a couple years now and the current state of LLM's and agentic coding models pose such an interesting problem. Due to their increasing ability to reason through coding problems, and write production ready code, it feels odd to continue to study syntax and basics of programming. So here's where I have found issues. I can easily hop in some agentic workflow and get to zooming off, using the ai to generate code. It feels like magic to a beginner, where you just need to explain your problem correctly and you get design patterns and code back. You start building that idea you have had in your head forever, but at some point in the project you start to feel this dread creep in, where you realize the code has gotten beyond you. You don't understand what is happening, and you quickly you realize you could not write much of this code yourself, or understand any of the technology you are using. Redis? Caching my requests, what is a UNIX Socket? Why is this file over 800 lines long?

I want to be able to write code and build software systems. That's what I am going to school for. They don't point us to an industry, but I wish to be able to write production ready code (or know what it should look like) and reason and plan through problems in a way that is conducive to a solution happening. It is super easy to fell left behind these days, with friends pumping out full stack typescript apps faster than light, using complex workflows and being fully hosted. Yet this is where I feel like an advantage is too be found. Ai can guide me to resources, do the boring tasks, and I can spend the time tinkering away at some low level C++ code, using ai to teach me!

This semester I am committed to evolving my thoughts on these issues. I want to find a better way. Questioning Ai, guiding me to the answer, and writing 90% of the difficult parts of the code myself. LLM's can help with the boilerplate, or the code that is redundant and I do understand. This leads to another issue, [[how LLM's could be a horrible teacher]] if they feed you the wrong design patterns or lead you down the wrong path in your thinking. Hopefully you can recover, but it remains an issue. Regardless I feel as if textbook learning may need to come back. Where slowly but surely you grind through a textbook, you attempt practice problems and get them all wrong, and come back to the material. You continually break the curve of forgetting by re-testing, and learn new things so connections can happen and you can build amazing things, and work with cool people. Sounds lovely!

I enjoy talking about these issues with others, and hear are some thoughts from friend and professors. I asked my computer systems professor if he had any advice for a younger student learning to code and using Ai. He said "... potentially syntax will be getting left behind, but the logic you will still need to understand." and my favourite part of the conversation "That's a difficult question. If any says they have the answer they are lying!".