I recently tried my hand at these newfangled AI agent tools and color me impressed! I was given a very poorly instructed and vague jupyter notebook where I needed to implement some “basic” physics modeling of a skier going down various slopes.
I will note this was not for any assignment. This was exclusively for getting to a place where I could help someone else better understand where they were having issues.
I prompted Claude 4 in Visual Studio Code Copilot agent mode to implement all that logic that was missing. After futzing around with the permissions for a bit I let it run any jupyter cell It needed and let it develop only checking in every once in a while when it would get stuck or not follow the spec correctly. Surprisingly it finished successfully passing all test cases I could think of.
This isn’t the first time I had experimented with these sorts of tools. In fact the week prior I had Zed’s agent mode refactor a go script I had written to a more structured format. It did a decent job but it over did the abstractions a bit so I manually paired it down but it took significantly less time than I had planned out.
Before this round of agentic coding tools I had tried coding with different chatbots like Claude 3.5 Sonnet and hand various successes where I would make it to about 70% or 80% of the way on my project. An example of this was a chrome extension for my bookmark manager, mark. I wanted a simple button in my browser where I could automatically bookmark and tag any site I was reading without having to open up the terminal. Unfortunately, as a full time student I don’t have much time outside of studying. Using just Claude I was able to get to 70% of the way very quick, if I recall about it was under 3 hours, but the code had quickly become extremely unmaintainable and hard to debug that I needed to refactor this on my own, with little machine assistance.
I’ve been struggling with this change in development because I enjoy the struggle and suffering that goes on as a developer. This shift in development will very probably or almost definitely result in fewer developers. I find this tough as someone who was not drawn to computer science as a person who wanted to get rich quick but rather to enjoy the process of creating, the process of thinking and understanding larger systems and reasoning about them. It is possible I will not be able to get the job I want simply because of people who are new into this industry won’t be given a chance. Instead existing programmers will just not take the risk and instead just use the machine who does not care if you get mad, have a bad day, or if it does good or bad work. Not to mention that AI is often cheaper than a junior dev.
As an ACM president I will impart you with the advice I give freshman and sophomores:
- learn systems,
- learn how to think about the big picture, and
- learn as much as you can.
Something I have been hearing more from my media is that more IT departments and companies are able and willing to in-source more of the software as a service (SaaS) that they had been using. SaaS platforms often made a ton of promises that were never fulfilled. Plus a lot of the differentiation of customers was untenable for the SaaS providers. It is quite possible the software jobs will move away from tech and inside each company. A similar analogy is how accounting companies exist but most companies have their own accountants to deal with the specifics of the business.
Another possibility is that we as software engineers will need to think more about how the systems behave rather than how they are built. This already exists with network engineers who do not necessarily write the server or networking software and hardware but are in charge of ensuring that they are running smoothly and designed in a reasonable way. Programmers may need to become systems level engineers who will need to be really good at debugging and solving issues across the whole system.
If you have any words of encouragement or advice for a young developer, please reach out to
me [at] lukaswerner.com
.