Grounding yourself as a programmer in the AI era

Recent developments in AI research have led to the release of remarkably capable AI assistants. I was skeptical of these at first, because the first tools that were released made a lot of mistakes that could easily lead people astray. But the latest tools are much more capable, and well worth learning about.

This series starts off with some guiding questions focusing on how to think about AI assistants. The main posts in the series evaluate the quality of suggestions that AI tools make in the context of a small, real-world project. The series closes with some conclusions about how to think about these tools as you start to incorporate them into your own workflow.


This series has 6 parts:

MP #22: The first post shares a set of guiding questions for making sense of AI's impact on programmers, programming, and the world as a whole.

MP #23: I’ve been adding borders to screenshots lately, and macOS does not provide an easy way to do this. In this post, we build a small utility that makes it easy to add borders to images. The program runs on any operating system. This is all done without the use of AI assistants.

MP #24: Now that we have a useful project, we do some refactoring to support further development. Again, all of this is down without any AI assistance.

MP #26: In this post we start with the code as it was at the end of MP #23. We again go through the refactoring process, but this time we let an AI assistant do as much of the work as possible.

MP #27: Most of us have used pip to install third-party packages, but have you ever created a package yourself? In this post we turn the add-border utility into a package, and post it to PyPI.

MP #28: This post includes some reflections on the role that AI assistants are playing in the programming world, and how we should think about them as they continue to evolve.


If you have any questions about what you find in these posts, please feel free to leave a comment and I’ll be happy to respond.