How should a programmer work in the era of AI? Any tip & tricks that you apply ?
Mark Seemann: I don't want to tell anyone else how they should work, but I can share some thoughts. Two years ago, at IT Days, in my keynote I spoke about epistemology, which is the philosophy of knowledge. It applies to science in general, but also to software development. The gist of it is that empirical methods require that we make falsifiable predictions about the future.
You can do that with LLMs as well. Ask it to write a test and then run the test to verify your prediction that the test fails. Ask an LLM to write implementation code and verify your prediction that all tests now pass.
This latter part, however, may be necessary, but isn't sufficient. Consider the degenerate case: If you have no tests, and ask an LLM to write implementation code, then subsequently 'all' tests 'still' pass. This is what in logic is known as a vacuous truth.
It all boils down to the fundamental question: How do you know that the work an LLM performs on your behalf is aligned with your goals?
I think you need to find systematic, scientific ways of determining answers to that question. In the end, I find LLMs much less useful than most people seem to, but I do use them when I have easy ways to verify that their answers are aligned with my goals.
One of the new AI effects that we see now in the industry is the lack of jobs for newcomers. What do you think about this and how the teams will look in few years?
Mark Seemann: This is a really difficult question to answer. To be honest, I'm mostly inclined to believe that we're still in a big hype bubble related to LLMs, and that the bubble will burst in a couple of years. If so, we may settle on a new plateau, as per the Gartner Hype Cycle. I think we'll learn that LLMs are 'productivity tools' for programmers, but that they aren't going to replace programmers. Not even junior programmers.
But it may just be that that's what I hope, and that my prediction is influenced by that. I'm not making any bets.
We are glad that you will join us at IT Days and this year we are proud to have an exclusivity from your side. It will be the only conference in 2025 where you will be on stage. Tell us about your presentation at IT Days.
Mark Seemann: The title is 'Worse is Better', based off Richard P. Gabriel's phrase. I want to talk about how mainstream technology often isn't cutting-edge technology, and why that is. In the end, it's about trade-offs. As I often say: You can only use the right tool for the job if you know about more than one tool.
If it is possible to exclude the AI related tools, what a software engineer should learn more in 2025?
Mark Seemann: Learn fundamentals, because they tend to never grow old. I wrote an article about that last year[^1]. Learn algorithms, design patterns, SQL, HTTP, FP, OOP, etc.
Your blog is really popular. Which are the most read topics ?
Mark Seemann: A bit surprising, to me at least, is that in the last seven years, a recent article titled You'll regret using natural keys seems to be the most popular. Other than that, the most popular content is actually quite old articles about Dependency Injection.
If you will have a team tomorrow to create a new product. What that product will be ?
Mark Seemann: That would be a commercial secret.