Programming With Claude – The First Week

I am not a programmer. I have made multiple attempts to learn programming, from Ruby on Rails back in the day to Python a year or two ago. While I understand the basic concepts – variables and types and loops and functions and classes, I find that the complexity mounts quickly and at a certain point I get discouraged – often around starting to create classes or managing error states – and don’t get any further. It all seems just too complicated and time consuming – why won’t it just work!

Another common issue was managing the infrastructure. How to get a web server running and move my files to it or how to get my python environment set up correctly. These things were nothing to do with the problem I was trying to solve, but each one, any of them, could be the cause of the issue I was trying to debug.

Then along comes Claude. I’ve toyed with AI copilots before, and managed to get little scripts working, but have never made the effort to do any major – for me – programming. But now I have a trial version of the pro plan with Claude Code.

In a week, I’ve got four projects working:

  • A triangle generator – which generates a random triangle, shows angles, lengths, sin, cos, and tan, and various other characteristics of the triangle – this was a first effort and is a bit rough and ready but interesting.
  • Random Robby – Toss or roll from one to five coins or dice. Here I wanted to get a nicer look and feel and I’m quite pleased with getting this up an running and sufficiently polished in a few hours.
  • Contract Whist Score Board – This took a bit longer and is still a work in progress, but my father and his friends are already using it for their regular games. I’m really pleased with the stats screens and to have a fully working program so quickly, and now want to iterate on more fun aspects.
    As I started iterating through versions, I realized I needed to get serious about
  • Homepage – Also a work in progress. I’m not very happy with Claude’s default layout and color scheme, but I’m delighted with the fact to have a list of recent blog posts and wiki edits, as well as project cards working. And, to get away from the default local storage solution for storing whist scores, I got Claude to create a database and an account system to be able to save scores and statistics.

I’m very pleased with my progress this week:

  • I would never have been able to get any of these projects working in this time – if at all!
  • In addition to getting real outputs, I also learnt a lot about the infrastructure I needed to put in place. Now each change is routed to my github repository and, once I merge to the main branch, things are automatically pushed to my web server, using github actions. Every time I got stuck with making this pipeline work, Claude was able to help me through it.
  • Inspired by Simon Willison, I even tried dictating updates to my phone and was amazed to see this working remarkably well
  • I work with programmers, and part of my work is helping to understand use cases and design UIs to meet them. This work is, I think, very good training for working with LLMs to code.

My experience has been almost wholly positive. My few niggles are:

  • Why is Claude Code different to and separate from chats and, especially, projects? I started out in code and then one day started in chat and then couldn’t access my repository because I wasn’t in Code. And Claude couldn’t take my chat and open it in Code? Can I use Code from a Project? I’m not sure. These barriers seem odd.
  • I learned that Claude does not do image generation. I created a project to explore logo ideas and instead of generating an image to my prompt, it built what I think is meant to be an SVG generator to generate text from synapses(?) which I couldn’t get to work.
  • I love that Claude was able to create my account system for me, but why didn’t it use the standard patterns of email as a username (rather than a separate username) and not provide (or at least propose) standard features like “Remember Me”, show password, and forgot password?
  • Usage limits are (deliberately) very opaque. I only ran out in one session, and after that have been more careful. I don’t know whether Sonnet should be adequate for most of my programming questions. Maybe so? Maybe I should use Opus to plan out a project and then switch to Sonnet for the actual work? I don’t know.

Overall, this has been a very positive experience. Often, at work, I’m iterating over a design with a developer and I find that here I can do the same, but Claude is an infinitely patient (and seemingly infinitely knowledgeable) colaborator who doesn’t mind if I change my mind or want to go in a wholly new direction!

Obviously my first efforts are fairly simplistic, but I’m hoping that my imagination will grow with the freedom!

Upcoming projects:

  • A link management page with persistence in my database
  • Help my wife with a tool for getting photos from her iPhone to her PC and converting HEIC to JPG
  • A virtual cribbage board with various themes/visualizations of the board
  • Restarting the triangle generator and adding a quiz elements and more geometry concepts

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *