DaedTech (Erik Dietrich)

daedtech.com · Personal blog · on HN since 2012

Erik Dietrich writes about software careers, management, consulting and why developers stop improving, including the "Expert Beginner" series.

What HN saysHN commenters recommend the Expert Beginner series and "Developer Hegemony" as worth rereading and as shaping how they think.
196HN people shared it
92linked it in comments
181stories submitted
4.5Kstory points
3 months agolast shared
2012people per year2026

Most-shared posts

  1. 1
  2. 2
    How To Keep Your Best Programmers
    9 people · 162 points · first shared 2012 · 26 comments on HN
  3. 3
  4. 4
    The 7 Habits of Highly Overrated People
    8 people · 474 points · first shared 2013 · 124 comments on HN
  5. 5
    Defining the Corporate Hierarchy
    8 people · 3 points · first shared 2018 · discussion on HN
  6. 6
    How Software Groups Rot: Legacy of the Expert Beginner
    7 people · 7 points · first shared 2014 · 1 comments on HN
  7. 7
  8. 8
    Software Consulting: What This Means and How to Start
    4 people · 18 points · first shared 2019 · 1 comments on HN
  9. 9
    Homepage
    4 people · first shared 2016
  10. 10
    Learning to code vs. learning to automate
    3 people · 398 points · first shared 2019 · 181 comments on HN
  11. 11
    The Beggar CEO and Sucker Culture
    3 people · 88 points · first shared 2015 · 7 comments on HN
  12. 12
    How to Actually Reduce Software Defects
    3 people · 8 points · first shared 2016 · discussion on HN
  13. 13
    How to Use a Code Review to Execute Someone’s Soul
    3 people · 8 points · first shared 2014 · discussion on HN
  14. 14
  15. 15
    DaedTech: Developer Hegemony
    3 people · 2 points · first shared 2017 · discussion on HN

What HN people wrote when they linked it

Tabular-Iceberg · 2021-04-23
Have you read Erik Dietrich's Developer Hegemony?[1] Perhaps a good way to grow is to pivot into his idea of an efficiencier firm, and you may be in a unique position to do so. It means you take on partners instead of employees, and completely bypass the need for a management structure. A bit like a law firm, but the big challenge is of course to convince clients that it's worth paying you like they pay their lawyers, and not like code monkeys. 1. https://daedtech.com/
orr94 · 2024-04-25
Joel Spolsky’s classic on why you shouldn’t rewrite software pops up in my memory on a regular basis: https://www.joelonsoftware.com/2000/04/06/things-you-should-never-do-p… I make frequent use of the “rule of 3”. Jeff Atwood had a good post about it: https://blog.codinghorror.com/rule-of-three/ And whenever I think of my old job, I always remember Erik Dietrich’s classic on the Expert Beginner https://daedtech.com/how-developers-stop-learning-rise-of-the-expert-b…
gherkinnn · 2023-01-09
It is a question of quality. I'll take anything that is well written and insightful. Posts like the Expert Beginner series [0] and anything ACOUP [1] I'll read and re-read. I keep a list of articles that have shaped my way of thinking. Most of what is on Medium et al can be discarded. Similarly, large amounts of books, mainly non-fiction, can be lobbed on the same pile. Many of which would have been better off as an article in the first place. 0 - https://daedtech.com/how-developers-stop-learning-rise-of-the-expert-b… 1 - https://acoup.blog/2022/12/02/collections-why-roman-egypt-was-such-a-s…
gregjor · 2022-10-11
I think you can group working programmers (as opposed to hobbyists and dilettantes) into three broad categories: - Newbies, still learning, don't know what they don't know. - "Expert beginners," employable but lack curiosity, stuck at a mediocre skill level. - Programmers you might call great, excellent, 10X. They have significant experience and domain expertise, constantly learn and expand their skills. I don't have any numbers. Anecdotally in my (40+ years) experience most programmers fall into the "expert beginner" category. A few never seem to get out of the newbie phase -- five years in and can't write FizzBuzz or debug a simple program. I got the "expert beginner" name from Eric Dietrich here: https://daedtech.com/how-developers-stop-learning-rise-of-the-expert-b…
mooreds · 2022-05-19
> I worry that by not being challenged I will become complacent. Fair worry. > What can I do to change things? You should switch jobs. I've been the top technical person at a couple of companies (not the size of your company, however). It can be exhilarating to be "the person". You get a lot of respect and autonomy. But it can be easy to fall into the curse of the expert beginner: https://daedtech.com/how-developers-stop-learning-rise-of-the-expert-b… While you can mitigate this to some extent by participating in groups (virtual and physical) for other great developers, the easiest way to handle this issue is to switch jobs. So, I'd suggest you start interviewing. Either you'll find a better place, or you'll discover advantages of your current situation.
ndiscussion · 2021-02-02
Check out this post: https://daedtech.com/defining-the-corporate-hierarchy/ I really recommend his book Developer Hegemony, although it was very depressing and I haven't quite recovered a year later :D
mxfh · 2020-07-08
If you need more confirmation: It's also possibe to just go to some "unoptimized" part of the blog. The whole wordpress theme seems to be trimmed to be "timeless", including URLs. https://daedtech.com/?s=%22Rise+of+the+Expert+Beginner%22 shows: Sep 30, 2012, since it's feed by the same database. WordPress dates are no authorative sourcem since they can by changed at any time to anything. But the story has about a dozen submits including pre https times: https://hn.algolia.com/?dateRange=all&page=0&prefix=false&… With the first one in april 2013, about half a year later.
lliamander · 2020-05-13
Erik Dietrich has a great article expanding on this principle [1]. [1]https://daedtech.com/how-to-keep-your-best-programmers/ EDIT: a comment on that link makes the point one of the best ways to retain great developers is to surround them with other great developers. I think this hits the nail on the head.
shrthnd · 2019-10-07
Starting a blog is a great way to demo your skills and ability to solve problems. Here's a relevant article with a few other ideas: https://daedtech.com/programming-job-without-degree/
wastedhours · 2019-05-20
> long-term efficiencies in following every step the great teachers of the past have laid out, in moving slowly albeit with rigor and confidence. I always return to this [0] diagram when thinking about learning. Am I taking shortcuts that'll actually stunt my ability to progress further in my development. The "Expert Beginner" is a dead-end development wise - it might be a perfectly reasonable place to end up, but not the right way to expertise. [0] https://daedtech.com/pics/ExpertBeginner.jpg
scarface74 · 2019-03-22
Daedtech has an excellent article https://daedtech.com/software-consulting/ If you live in a major metropolitan area almost anywhere in the US, and your skillset is in tune with the market, you should be able to find some W2 or 1099 contract quite easily through local recruiters. Yeah they will take their cut, but you still should be able to negotiate close to market value. You will definitely get paid more than using something like Upwork. I’ve been building up a curated list of local third party recruiters for years. I always engage with them when they reach out to me. Even though they call the above “consulting”, it’s actually closer to just freelancing.
sig_ · 2018-03-01
Not at all. Gervais Principle is a joke, though some serious research may have been done around it. It's about organizational dynamics. https://www.daedtech.com/ blog is (by quick reading of two posts) career advice for software developers. Very thoughtful, very well written and explicit, with analogies, anecdotes, and opinionated advice. Whether that advice is any good, I'm the wrong person to judge; I still work as a wage slave (: basically he's telling everyone to go out as independent consultant and solve customers' problems instead of being "an entry in someone else’s Gantt chart. If you can’t autonomously deliver value with your expertise, then you’re specializing in the wrong thing."
dceddia · 2018-02-28
There is an excellent book I read recently called Developer Hegemony [0] which goes into depth on your first point. It calls the naive folks "optimists" -- unfailingly devoting themselves to the company ideal. It discusses two other factions, the pragmatists (come in, do work, get paid, go home) and the opportunists (take every opportunity to rise to the top). I recommend checking it out, and the author's blog too [1]; 0: http://a.co/e22BQ4n 1: https://www.daedtech.com/blog
bogomipz · 2017-03-12
I had to look up the phrase "expert beginner" as I was unfamiliar with it. I found it interesting. This was a good read for anyone else who might be unfamiliar with the term: http://www.daedtech.com/how-developers-stop-learning-rise-of-the-exper…
douche · 2016-03-26
If you don't like the shilling for NDepend, you can read pretty much the same stuff over on the author's main website (http://www.daedtech.com/) - he's all about refactoring, legacy code, testing, etc, etc. Even in these NDepend articles, there's usually some useful stuff. Hey, you don't want ads, we'll give you sponsored content...
josephschmoe · 2014-06-13
I'm worried they may push themselves into this: http://www.daedtech.com/how-developers-stop-learning-rise-of-the-exper… An expert beginner is a person who is very competent in one area, but is unable to expand their horizons without making some very big changes. In a perfect world, I would love it if this game slowly turned into a real programming environment, where the user experiences freedom with a trajectory that will push them into learning core programming concepts.
joshka · 2014-02-19
My favourite argument for unit testing comes from http://www.daedtech.com/intro-to-unit-testing-10-the-business-value-of… "Do you think the customer is going to get angry if you explain that part of your development process is to execute the code you just wrote to make sure it doesn’t crash? If the answer to that is “no, of course not, that’s ridiculous” then you also have the answer to whether or not a customer would care if you happened to automate that process."
AndrewKemendo · 2014-01-09
I really liked the 7 habits of highly overrated people [1] article that you mention, but I would also encourage people to not ascribe all of those activities to overrated people, by default. If you read in the article he even concedes that very effective people do many of these things, which is why it is an effective cover for incompetence. Now, I know what you’re thinking — that might actually be productive. And, well, it might be, nominally so. But do you notice that you’ve got a very tangible plan of action here and there’s been no mention of what the project actually involves? A great way to appear useful without being useful is engage heavily in an activity completely orthogonal to the actual goal. So if the goal aligns with the plan of action and there is "overcommunication" there could well be value added. [1] http://www.daedtech.com/the-7-habits-of-highly-overrated-people
hsn915 · 2021-12-23
> > None of it is based on actual collective experience > I think often best practices are based on experience But not collective experience. Just some people's experience. If you survey experienced people in different corners of the industry, you will not find agreement with whatever is currently being floated as a best practice. Rather amusingly, best practices are often adopted much more strongly by the beginners (and the expert[0] beginners) rather than the experienced. When you reach intermediate level of experience you start questioning many of what you learned from the internet as a best practice and start looking for alternatives or just experimenting yourself with different ways of doing things. [0]: By "expert" beginners, I mean people who got stuck in a rut. See: https://daedtech.com/how-developers-stop-learning-rise-of-the-expert-b… But beginners will always out number the experienced, and they form an echo chamber. This is because every year, many beginners join, but reaching an adequate level of experience to start questioning the crowd wisdom takes several years. By the time you get out of the rut of "best practices", you are in the minority. Imagine a pryamid and you're in the middle of it. There's a lot more volume below you than above you. > If you look at something like Clean Code today, it seems like a bunch of pretty bad advice, but in the context of the late 2000s Enterprise Java, it seemed like a really fresh breeze. We've already…
rubyn00bie · 2020-12-27
I personally think the DKE is more likely to be found in knowledge based tasks requiring some level of gatekeeping. Like programming for example... It has been quite a while now ~9 years, but I had the chance to work at a pretty prominent tech company for about 8 months when it was roughly 13 people in engineering. It was my first job experience in "tech" proper; and I think, I was most fortunate, to have had the opportunity. Immediately, and without question, I knew for sure I was absolutely the most junior person there. It's not because anyone was unkind, quite the opposite; everyone else was so unbelievably experienced it was obvious. I had, up until that point, not encountered such levels of professional experience, or expertise in a field, outside of university. It gave me perspective for my (own lack of) ability I likely could not have gotten otherwise. It was humbling in a wonderful way because it meant I had, and have, a great deal to learn. I was happy to be resolutely at the bottom. While undeniably good for my person, and who I want to be in life, it has also come to cause me a lot of pain. Having worked pretty tirelessly since that original job, in the pursuit of learning and mastery of my craft. And if I am honest, to my chagrin, found I now underestimate my abilities. I only realized this because I generally give people the "benefit of the doubt" and it kept/keeps (still trying) biting me. It's very much insanity: doing the same thing again, knowing it…
hhas01 · 2020-09-26
Hagiographic nonsense. Sal Soghoian isn’t a programmer—I’ve seen his code, it’s embarrassingly amateur. Sal was not responsible for AppleScript of Apple event IPC; that was Cook and Harris, and that credit is theirs[1]. They walked out of Apple shortly after AppleScript 1.1 was released when Apple abruptly slashed their team. Sal had no part in its creation. Sal was an enthusiastic end-user and early adopter, who talked himself into taking over what was left of that department some time later. Unfortunately, his gift for the gab was not matched by skills in product development and marketing. Classic case of Peter Principle in action. Automator was Sal’s, and while it wasn’t a bad idea it failed as a popular product. It was badly positioned as a standalone app, which the standalone Script Editor already demonstrated doesn’t create interest or adoption. To sell it as an end-user solution it needed to be positioned where the end-users’ problems are: within the end-users’ apps. Automator should’ve been a self-contained GUI control for App developers to embed directly into apps, alongside the existing AppKit NSRuleControl and a standard menubar “Tasks” menu to provide high-profile visibility and instant access. Soghoian’s team was also responsible for Scripting Bridge (10.5) and JavaScript for Automation (10.10), which should have won Mac Automation millions of enthusiastic new users amongst Python, Ruby, ObjC and JavaScript geeks, but were so technically dreadful that they…
honkycat · 2018-10-22
You a have a huge attitude problem. > I am trying to get new ideas done. But after one day of programming for my job, I am exhausted and I cannot extract any brain-juice any more. And if I try to work during the week-ends, I can't rewind enough for the next week. And my progress are damn slow. It seems I would need a year to achieve what a good programmer could do in a week. Do you have professional training? A degree? How long have you been programming? I know the current fad is to brush off the stodgy past and just start hacking, but it's honestly complete horse-shit. You need some kind of training to be a great engineer, even if it is self training through reading books and documentation. Or do you think you will simply invent or absorb the past 40 years of software development and research through osmosis? Tooling around and poking at things until they work is a great way to start programming but it eventually becomes exhausting. Experience is an amazing resource, but in my opinion is over-rated. Directed practice and active learning is what leads to becoming a better programmer. If you are finding you aren't progressing, ask yourself: What are you doing to fix that? https://daedtech.com/how-developers-stop-learning-rise-of-the-expert-b… > Let alone be a Mark Zuckerberg This is such a toxic attitude. Did you go to an elite private university? Did you go to an elite, extremely expensive boarding high school? Did you have a merlin-style private tutor that…
goo · 2016-11-04
Here is some insight that has helped me, some my own advice, some paraphrased from other sources, and I credit the source when I have it in my notes: - There is no "silver bullet" for managing the complexity of user needs. Instead, (good) software is characterized by not a static state of "solving the problem", but a continuous refinement-- an existential struggle against incidental complexity. - Have a very positive mindset, and inspire the same in your team. - highly reliable websites for small companies: http://www.kalzumeus.com/2010/04/20/building-highly-reliable-websites-… - Learn your debugging tools well: Get good at Chrome Debugging tools, pdb, visual studios debugger, or whatever the debugging environment is for your project. - “… never consider your education complete or your opinion above questioning regardless of your title, your years of experience, your awards and accomplishments, or anything else that isn’t rational argumentation or evidence. Retaining a healthy degree of humility, constantly striving for improvement, and valuing objective metrics above subjective considerations will go a long way ..." (http://www.daedtech.com/how-software-groups-rot-legacy-of-the-expert-b… - This is a marathon, not a sprint. - Practical engineering advice: https://www.quora.com/What-are-the-best-kept-secrets-of-great-programm… - Read books. I can especially recommend Refactoring by Martin Fowler and The…
alosarv · 2015-11-07
I think that assumption is incorrect. Looking at the multitude of posts on "why can't programmers program"[1] (in the sense of not having solid fundamentals) and the difficulty of finding, let alone having an interview process that is reliable able to identify them, I would say there is a large amount of confusion distinguishing those who can weld and master metallurgists. People can spend a decade or more in the industry as working "programmers" and fail at writing FizzBuzz, let alone understanding basic relational theory or how a their chosen stack works. And then we try to patch it over with more tooling or new languages that are supposed to be less error-prone or somehow magically allow us to build out programming teams out of coders rather than teach them solid CS fundamentals and sound development practices. The problem is that to someone not trained in a craft, even a beginner would appear to be able to perform that craft; only someone with deep(er) understanding of metallurgy would be able to recognize that said welder has no idea of what they're doing and is just following a set scripted actions; what's more harmful is that said beginner is lulled into believing they are actually an expert whereas they're really an Expert Beginner[2]. [1] http://blog.codinghorror.com/why-cant-programmers-program/ [2] http://www.daedtech.com/how-developers-stop-learning-rise-of-the-exper…
davidgerard · 2015-03-16
Would you have known that everyone else had been calling it the continuum fallacy all that time? No, you wouldn't - you'd think Yudkowsky was uniquely insightful. Furthermore, you wouldn't learn anything beyond the limits of Yudkowsky's knowledge, or - more importantly - that there was anything beyond those limits. The habit of neologism makes stuff impossible to look up, and creates the illusion that this is new ground, not old, and that there isn't already a world out there. su3su2u1, debating this matter with Scott Alexander (Yvain), sums up a lot of their problems with the world view (which I am as familiar with as anyone who doesn't actually drink the Kool-Aid can be, having been on LW around four years and read not only the Sequences through twice but read literally all of LessWrong through from the beginning twice), which I largely agree with as a summary: https://storify.com/lacusaestatis/sssp-su3su2u1-debate I'll quote one telling bit, which points out the level after Bayes: > Heck, there are well defined problems where using subjective probability isn’t the best way to handle the idea of “belief”- when faced with sensor data problems that have unquantified (or unquantifiable) uncertainty the CS community overwhelmingly chooses Dempster-Shafter theory, not Bayes/subjective probabilities. Do you remember the Sequences post mentioning the words "Dempster-Shafter"? Me neither. (And then there's the use of "Bayesian" to mean things that nobody else uses the term…
ozim · 2026-06-21
Well I have seen a lot of „expert beginners” who have years of experience on paper but fight tiny duplications like their life depends on it. „How Software Groups Rot: Legacy of the Expert Beginner”. https://daedtech.com/how-software-groups-rot-legacy-of-the-expert-begi…
mjr00 · 2025-05-09
> juniors stop building real intuition because the LLM handles all the hard thinking. You get surface-level productivity but long-term skill rot. This was a real problem pre-LLM anyway. A popular article from 2012, How Developers Stop Learning[0], coined the term "expert beginner" for developers who displayed moderate competency at typical workflows, e.g. getting a feature to work, without a deeper understanding of lower levels, or a wider high-level view. Ultimately most developers don't care, they want to collect a paycheck and go home. LLMs don't change this; the dev who randomly adds StackOverflow snippets to "fix" a crash without understanding the root cause was never going to gain a deeper understanding, the same way the dev who blindly copy&pastes from an LLM won't either. [0] https://daedtech.com/how-developers-stop-learning-rise-of-the-expert-b…
syndicatedjelly · 2024-12-01
I was in this position for a few years in my first job, and I ended up quitting for exactly this reason. It's important to surround yourself with technical experts early in your career, lest you fall into the "expert beginner" trap (https://daedtech.com/how-developers-stop-learning-rise-of-the-expert-b…
lasereyes136 · 2024-10-22
Reminds me of a dev team I once encountered where they stated they wanted to be expert C programmers and that they didn't understand pointers, so they avoided them. I told them it was hard to become a C expert without understanding and using pointers and they didn't like that answer. https://daedtech.com/how-developers-stop-learning-rise-of-the-expert-b…

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close