Come make some candles with me
My good friend Courtney shared this with me earlier:
There's a new kind of coding I call “hype coding” where you fully give into the hype, and what's coming right around the corner, that you lose sight of what’s possible today. Everything is changing so fast that nobody has time to learn any tool, but we should aim to use as many as possible. Any limitation in the technology can be chalked up to a 'skill issue' or that it'll be solved in the next AI release next week. Thinking is dead. Turn off your brain and let the computer think for you. Scroll on tiktok while the armies of agents code for you. If it isn't right, tell it to try again. Don't read. Feed outputs back in until it works. If you can't get it to work, wait for the next model or tool release. Maybe you didn't use enough MCP servers? Don't forget to add to the hype cycle by aggrandizing all your successes. Don't read this whole tweet, because it's too long. Get an AI to summarize it for you. Then call it "cope". Most importantly, immediately mischaracterize "hype coding" to mean something different than this definition. Oh the irony! The people who don't care about details don't read the details about not reading the details
A tweet by Steve Krouse, shared by Simon Willison on his blog, relayed to me via chat. The social web doing its thing!
But, anyway: the tweet. It’s true, and I find it depressing. Maybe you don’t think it’s true because you don’t code that way. Well, good for you. Maybe you don’t find it depressing, which is fine. But more people are absolutely coding this way. Whether this is good or bad is ultimately something that remains to be seen, and it’s possible that our very understanding of “good” and “bad” in a software development context might wind up shifting along the way. Who knows. I don’t know.
For now, I do know two things:
- I’m tired of complaining about AI.
- Instead of complaining, I want to do something productive.
I want to do something that reinforces the human side of software development in a constructive way, something that taps into human creativity, and that puts some genuine positivity into the world. And I can’t do any of that through complaining.
Back in elementary school, we learned about life in 18th century America, and one part of the lesson that stuck with me was the reliance upon systems of apprenticeship for virtually all trades and professions. I thought it was neat, the way you could walk out of the one-room schoolhouse at age 12 and begin an exciting career as a printer, butcher, tailor, or candlemaker. You’d learn from a more experienced printer, butcher, tailor, or candlemaker, and eventually be able to do the job as well as they did (if not better). And then one day you’d find yourself in a position to take on an apprentice of your own, completing that particular iteration of the cycle, spreading the craft (and your own spin on it) to the next generation.
I was nine or ten years old when I learned about this, and I was in love with the idea. I was ready to quit school and learn how to make candles, because that seemed like fun. Who doesn’t like candles? I did not become a candlemaker, but web development is close enough. You can easily make a mess while doing it, and even an imperfect result is often somewhat usable. And there’s a fire/burning metaphor in there, too, somewhere.
But back to the AI/vibe coding/hype coding thing. I can’t do anything about that, but I can teach someone how to code the way that I code: thinking about what I want to do and then writing the code to do it. And I can share this craft with someone else so that they can do it too, hopefully better than me (the bar is really low, trust me). And maybe that person will go on to build awesome things that make the internet more fun and useful and interesting. That would be cool, and there’s no vibing or hyping needed.
So, I’m offering a web development apprenticeship, focused on PHP, HTML, and CSS. If you’ve ever wanted to build web stuff with these three technologies but didn’t know where to start, or if you’re the kind of person who learns better from a teacher than from a book or video or LLM output, this might be the apprenticeship for you. Here’s what I’m thinking:
- This will be a single apprenticeship for an individual person. (Maybe you?!)
- We’ll do this for about a month or so. Maybe more or less, depending on how the pace and progress goes. I’m flexible!
- The apprenticeship will be anchored around building something simple from start to finish. You’ll choose the project, though I’m happy to offer input. It could be anything, including something that’s already been done a zillion times (like a guestbook, or a newsletter service). Ideally it would be something that could be done comfortably in a few weeks.
- I’m open to all different ways of doing this. Video calls, text chat, whatever works best for the apprentice. (Again, I’m flexible!) We’ll figure out both a structure and a way of connecting that makes sense and is effective. I can work around most timezones, too.
- Hopefully by the end of this, you’ll have learned some PHP, HTML, and CSS. And if everything goes really well, you’ll also have a working thing that you built yourself!
If this sounds like something you’d like to do, you can apply by emailing apprentice@neatnik.net. Tell me a little about yourself, any background you have related to web development (none at all is fine!), what you’d like to build during the apprenticeship, and why you think this particular learning model will work well for you. The deadline for applications is June 20, and I’ll choose an apprentice by June 27. And then we’ll kick things off in July!
(And yeah, some of you who actually made it to the end of this are probably asking “hey Adam what about that PHP For People thing you mentioned a while back?” I’m still going to do that! But first, I’d like to do this, and I think offering this apprenticeship will ultimately make PHP For People even better.)