







In this post, I describe the phenomenon of the so-called expert beginner -- someone with mediocre skill who thinks he's an expert.
How Software Groups Rot: Legacy of the Expert Beginner - DaedTech
Expert Beginner Recap In my last post I introduced the term “Expert Beginner” to describe someone who has capped out in their learning at some sort of local maximum, convinced that the local is global. Expert Beginners are developers who do not understand enough of the big picture to understand that they aren’t actually experts....

The traits of a proficient programmer
Bridging the gap between competence and proficiency

Eight Habits of Expert Software Designers: An Illustrated Guide
The best designers employ specific habits, learned practices, and observed principles when they work. Here are a few of them.

Redefining the Software Engineering Profession for AI
"How do you train someone to verify work in fields they haven’t mastered, when the AI itself prevents them from developing mastery?"

Developers, Reinvented – Thomas Dohmke
What started as fear of AI replacing developers is switching to pragmatically embracing the ambitious reality of AI and viewing it as a growth opportunity. As we build the tools of tomorrow, we can usher developers through this reinvention of their role in ways that are intuitive, delightful, and cater to developers’ curiosity, keeping them fulfilled and happy during the transition. That makes us optimistic. Realistically.

Motivating Adult Learners by Introducing Programming Concepts with Scratch
Novice programmers usually fail to combine abstract concepts and knowledge into program design, even though they know the syntax and semantics of individual statement. Adult novice programmers with little computer background knowledge might face more ...

We should rethink how we teach people to code | deadSimpleTech
It's fair to say that the tech industry at the moment is not in a good place. Software engineers tend to be detached, demotivated and unwilling to care much about the work they're doing beyond their paycheck. Code quality is poor on the whole, made worse by the current spate of vibe coding and whatever other febrile ideas come out of Sam Altman's brain. Much of the software that we write is either useless or actively hurts people. And the talented, creative people that we most need in the industry are pushed to the margins of it.

How AI Impacts Skill Formation
AI assistance produces significant productivity gains across professional domains, particularly for novice workers. Yet how this assistance affects the development of skills required to effectively supervise AI remains unclear. Novice workers who rely heavily on AI to complete unfamiliar tasks may compromise their own skill acquisition in the process. We conduct randomized experiments to study how developers gained mastery of a new asynchronous programming library with and without the assistance of AI. We find that AI use impairs conceptual understanding, code reading, and debugging abilities, without delivering significant efficiency gains on average. Participants who fully delegated coding tasks showed some productivity improvements, but at the cost of learning the library. We identify six distinct AI interaction patterns, three of which involve cognitive engagement and preserve learning outcomes even when participants receive AI assistance. Our findings suggest that AI-enhanced productivity is not a shortcut to competence and AI assistance should be carefully adopted into workflows to preserve skill formation -- particularly in safety-critical domains.

How AI Impacts Skill Formation
AI assistance produces significant productivity gains across professional domains, particularly for novice workers. Yet how this assistance affects the development of skills required to effectively supervise AI remains unclear. Novice workers who rely heavily on AI to complete unfamiliar tasks may compromise their own skill acquisition in the process. We conduct randomized experiments to study how developers gained mastery of a new asynchronous programming library with and without the assistance of AI. We find that AI use impairs conceptual understanding, code reading, and debugging abilities, without delivering significant efficiency gains on average. Participants who fully delegated coding tasks showed some productivity improvements, but at the cost of learning the library. We identify six distinct AI interaction patterns, three of which involve cognitive engagement and preserve learning outcomes even when participants receive AI assistance. Our findings suggest that AI-enhanced productivity is not a shortcut to competence and AI assistance should be carefully adopted into workflows to preserve skill formation -- particularly in safety-critical domains.

AI Skills with Matt Pocock
What do professional software developers need to know to succeed in an age of Artificial Intelligence?
Generative AI is showing early evidence of productivity gains for software developers, but concerns persist regarding workforce disruption and deskilling. We describe our research with 21 developers at the cutting edge of using AI, summarizing 12 of their work goals we uncovered, together with 75 associated tasks and the skills & knowledge for each, illustrating how developers use AI at work. From all of these, we distilled our findings in the form of 5 insights. We found that the skills & knowledge to be a successful AI-enhanced developer are organized into four domains (using Generative AI effectively, core software engineering, adjacent engineering, and adjacent non-engineering) deployed at critical junctures throughout a 6-step task workflow. In order to "future proof" developers for this age of AI, on-the-job learning initiatives and computer science degree programs will need to target both "soft" skills and the technical skills & knowledge in all four domains to reskill, upskill and safeguard against deskilling.

Introducing beginners to the mechanics of machine learning – Miriam Posner
Every year, I spend some time introducing students to the mechanics of machine learning with neural nets. I definitely don’t go into great depth; I usually only have one class for this. But I try to unpack at least some of the major concepts, so that ML isn’t quite such a black box.
Undervalued Software Engineering Skills: Writing Well
I have been coaching several experienced software engineers to further grow professionally, since transitioning [https://blog.pragmaticengineer.com/things-ive-learned-transitioning-from-engineer-to-engineering-manager/] to being an engineering manager. I have noticed a few skills that people often underestimate the importance of developing. Skills that add a
Effective Learning Strategies for Programmers - Allison Kaptur
In early September I gave a keynote at Kiwi PyCon in New Zealand on effective learning for programmers. There were two pieces to the talk: one about …
Avoiding Skill Atrophy in the Age of AI
How to use AI coding assistants without letting your hard-earned engineering skills wither away.

How to keep learning in the age of LLMs | Oğuzhan Olguncu
Notes on how I keep learning as a programmer in the age of LLMs
