惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

S
Schneier on Security
博客园_首页
量子位
博客园 - 司徒正美
S
SegmentFault 最新的问题
J
Java Code Geeks
小众软件
小众软件
博客园 - 【当耐特】
The Register - Security
The Register - Security
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Microsoft Azure Blog
Microsoft Azure Blog
G
Google Developers Blog
Blog — PlanetScale
Blog — PlanetScale
T
Tailwind CSS Blog
博客园 - Franky
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
G
GRAHAM CLULEY
Cyberwarzone
Cyberwarzone
腾讯CDC
Apple Machine Learning Research
Apple Machine Learning Research
V
Visual Studio Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
The Hacker News
The Hacker News
aimingoo的专栏
aimingoo的专栏
V
Vulnerabilities – Threatpost
P
Palo Alto Networks Blog
Scott Helme
Scott Helme
L
LINUX DO - 热门话题
F
Full Disclosure
D
DataBreaches.Net
Martin Fowler
Martin Fowler
Cisco Talos Blog
Cisco Talos Blog
L
LINUX DO - 最新话题
云风的 BLOG
云风的 BLOG
C
Check Point Blog
T
Threatpost
Google DeepMind News
Google DeepMind News
WordPress大学
WordPress大学
W
WeLiveSecurity
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
有赞技术团队
有赞技术团队
Hugging Face - Blog
Hugging Face - Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
L
Lohrmann on Cybersecurity
Last Week in AI
Last Week in AI
T
Tor Project blog
T
Troy Hunt's Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
S
Security Affairs
SecWiki News
SecWiki News

Secret Weblog

Xee: A Modern XPath and XSLT Engine in Rust Looking for new challenges! Repeat Yourself, A Bit The Curious Case of Quentell The Humble For Loop in Rust The Humble For Loop in JavaScript Don Question Best Practices I Was a 1980s Teenage Programmer Part 5: Achieving Assembly I Was a 1980s Teenage Programmer Part 4: The Call of Assembly The Tooling Shift I Was a 1980s Teenage Programmer Part 3: MSX-2 JavaScript: when you need two ways to do it! Empowering Programming Languages Bloat and Retrofuturism Refreshing my Blog Again Random Rust Impressions Apilar: An Alife System I Was a 1980s Teenage Programmer Part 2: Olivetti M24 I Was a 1980s Teenage Programmer: the Alphatronic SolidJS fits my brain Is premature optimization the root of all evil? Framework Patterns: JavaScript edition Roll Your Own Frameworks Framework Patterns Secret Weblog Highlights Refactoring to Multiple Exit Points mstform: a form library for mobx-state-tree Seven Years: A Very Personal History of the Web Morepath 0.16 released! Is Morepath Fast Yet? Introducing Bob Strongpinion Punctuated Equilibrium in Software Morepath 0.15 released! Impressions of React Europe 2016 Morepath 0.14 released! Morepath 0.13 now with Dectate Dectate: advanced configuration for Python code JavaScript Dependencies Revisited: An Example Project The Incredible Drifting Cyber A Brief History of Reselect The Emerging GraphQL Python stack Thoughts about React Europe Build a better batching UI with Morepath and Jinja2 GraphQL and REST Server Templating in Morepath 0.10 10 reasons to check out the Morepath web framework in 2015 A Review of the Web and how Morepath fits in Morepath 0.9 released! Better REST with Morepath 0.8 Morepath 0.7: new inter-app linking They say something I don Life at the Boundaries: Conversion and Validation BowerStatic 0.4 released! Morepath 0.6 released! Morepath 0.5(.1) and friends released! New HTTP 1.1 RFCs versus WSGI Against On Naming In Open Source My visit to EuroPython 2014 Morepath 0.4.1 released (with Python 3 fixes) Morepath 0.4 and breaking changes Announcing BowerStatic Morepath 0.3 released! Morepath 0.2 Morepath Python 3 support The Call of Python 2.8 Morepath 0.1 released! WebOb and Werkzeug compared Morepath: from Werkzeug to WebOb Racing the Morepath: SQLAlchemy Integration The Centre Cannot Hold Breaking Morepath Changes Morepath Update How to do REST with Morepath Morepath Security the Gravity of Python 2 #python2.8 discussion channel on freenode Alex Gaynor on Python 3 Morepath Documentation Starting to Take Shape Back to the Center Morepath App Reuse Implementing Grok Grok: the Idea Why Linux Works for Me On the Morepath Reg, Now With More Generic! The New Zope as a Web Framework Jim Fulton, Zope Architect Renewing Zope Object Publishing The Weirdness of Zope The Rise of Zope My Exit from Zope Reg: Component Architecture Reimagined JSConf EU 2013 impressions Obviel 1.0! JS Dependency Tools Redux Obviel 1.0rc1 released! Succinct data structures
Becoming More
Martijn Faassen · 2026-02-11 · via Secret Weblog

Introduction

There's a lot of anxiety and reflection going on about the impact of AI on software development. I'm not sure why this is hitting the culture of software development in this moment in particular. I'm not really convinced by the "this new LLM model changes everything" narrative, as I've only seen incremental advances of models which were perfectly capable of doing a lot of programming a year ago. Perhaps it's that agentic coding tool usage has spread widely enough for more people to appreciate their impact and think about what it means.

I recently wrote about my anxieties too, which I definitely have, both personally and for society at large. But I have kept this document in draft. I'm not going to be sharing it today, and perhaps I will never share it.

This article is about my excitement about being a centaur software developer. But it's not about productivity. It's not about multi-tasking multiple agents in a feature factory. It's not about 100x developers. It's not about making more of the same, faster.

It's far more ambitious than that, and a lot more fun. It's about using AI to expand what you can do as a software developer. Who you can be.

What's a Centaur Software Developer?

A Centaur in mythology is a creature with the upper body of a human sticking out of the neck of a horse lower body. As a centaur, you have the mind and hands of a human being, combined with the ability to run like the wind, and kick the stuffing out of anyone.

A centaur chess player in chess is a combined human/computer chess player.

Occasionally, average players have been able to achieve a performance higher than that of computer programs and top grandmasters

It's debated whether this is still true with advancements in computer chess engines. But chess is a seriously constrained domain.

The notion of being a centaur programmer is derived from this concept, in a 2023 paper.

We introduce the idea of Centaur Programmer, based on the premise that a collaborative approach between humans and AI will be more effective than AI alone.

I'm not talking about productivity

We could now go into a discussion on why a centaur software developer could be more productive than either by themselves, and whether that's true, and quote various studies and rumors at each other, in a field that isn't very well studied. But I'm not interested in that. I'm interested in something else. Let's talk about curiosity, creativity and play.

Curiosity and play

I've been curious, creative and playful my whole life - this is an important part of what makes life worth living to me.

I'm also a very good software developer.

Those two things are connected. The reason I'm a very good software developer is not because I somehow started out this way, but because I have a growth mindset. I don't sit back and say "hey, I'm pretty good at this" and stop. I admit that's nice to do once every while; we all have egos.

But I frequently end up actually underestimating myself, because I look in admiration to others who know and do things I cannot do. I realize my many limitations and the things I have yet to learn. And that is why I keep improving, and why I'm a very good software developer.

I don't think I'm alone in this; I think many good developers share this attitude towards curiosity and play. I think you can see it in what they make and how they title their autobiographies.

Autobiographic narrative to back up my point

Over 40 years ago I learned how to program computers because I wanted to be able to make computer games. Many computer programmers share a similar history.

About 6 or 7 years ago I decided to put serious effort into learning the Rust programming language. I did not do this because I had any need for it in my career. I mostly wanted it so I could create faster artificial life simulations and maybe games one day.

You may say artificial life simulations and games are not enough because it's all about productivity, but in that case I'm not like you.

A few years ago I read a bunch of papers on how to create human readable diffs of structured content like XML. It's a surprisingly thorny problem, and carefully going through those papers and understanding them allowed me to create a successful implementation and iteratively improve on it. I used Rust because this tool needed seriously performance. Rust had empowered me.

A little over a year ago I read a bunch of papers on succinct data structures, something I knew nothing about before. So far this had lead to a few interesting experiments.

You may say interesting experiments are not enough because it's all about productivity, but in that case I'm not like you.

Creativity, curiosity and playfulness made me. It's how I learn: play expands what I know and what I can do. It empowers me. I have fun and I'm empowered to have more fun.

AI Empowerment

When I tried to understand some very tricky aspects surrounding succinct data structures a year ago, I started to experiment with AI to help me read those papers and associated code.

I did most of it without AI. But if I were to do it again today, I think I could have understood more, and had help with the implementation. I could have been more ambitious. 1

I've found this is very effective way to learn more about computer science topics, and use them. You can question and answer. You can have it write code.

I'm not saying AI has mades any of this easy for me; it's still hard! But it's easier. This means that things that were beyond my reach, due to a lack of time to study, or ability to comprehend, are now in my reach. I'm empowered.

On Understanding

I want to admit that this AI/human me, this centaur me -- my human understanding is on occasion limited. I lean on the AI quite a bit. Perhaps it isn't genuine understanding. A tricky question in epistemology. Let's not even talk about the AI understanding something, or not.

I do know this. I've always leaned on other people's understanding - I've reused computers, programming languages, software libraries, implemented algorithms from books and wikipedia. I've used search engines. This is more broad than software development. I am limited and don't understand everything about the world as it's far, far too much. I stand on the shoulders of giants.

And that's okay. I'm still empowered.

Becoming More

Let this empowerment sink in. Have you realized what this means? Have you realized what you can do now as a software developer?

I can use AI to do more. Not be more productive, that's boring and that's debatable 2. I'm not interested in grind culture.

Instead, I want to reach higher; expand my capabilities, grow. My creativity, my curiosity, my play can become more powerful. I can lift myself up by climbing on more shoulders.

I'm becoming more. And so can you.

Comments

You can use your Mastodon account to reply to this post. Learn how this is implemented here.

Reply to this post

With an account on the Fediverse or Mastodon, you can respond to this post. Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.

Copy and paste this URL into the search field of your favorite Fediverse app or the web interface of your Mastodon server.

Copied! Copy code to clipboard