8 ms·
How Developers Stop Learning: Rise of the Expert Beginner
- fuball63 8y agoPerhaps professionally, being an "expert beginner" is bad, but in other pursuits being content with competency can make them more enjoyable. To build on the bowling example, it is ok to be an average bowler if you are having fun with it. Anyone that's bowled casually with someone that is over competitive knows how obnoxious it is. Accepting that improvement is not always necessary to enjoyment is important.
- mykowebhn 8y agoNot sure I get the analogy. If you're an expert beginner bowler, everyone can see how good, or bad, you are. All the expert beginner developers I've met act as if they are not beginners. You only find out piecemeal, and that can end up in frustration and wasted time.
- shittyadmin 8y agoI think what you're more talking about is just sitting at what he considers "advanced beginner" or "competent" phases, rather than calling yourself an expert at something. And that's fine if it's what you're going for - you definitely don't need to try to squeeze every last ounce of knowledge and skill into every department in your life - just don't assume you know everything!
- ip26 8y agoYeah, I'm with you. For example I'll never be a great skiier, and I'm content with that, but at the same time in fact I derive a fair amount of enjoyment out of the simple process of trying to get better.
- deleted 8y ago[deleted]
- shittyadmin 8y agoI feel like I may have wound up on this path... I'm working in a government role where I've been put as the lead developer on some major pieces of software despite only being 5 or so years into my career because the people I'm surrounded with seem to have some significant competency issues. Not sure what I can do but quit and I just don't want to give up on the stuff I'm working on yet and I'm relied upon quite a bit... but I'm almost completely stagnating. Worst part is, I can probably just keep doing it for another 20 years and retire, it's almost too easy to just go that route.
- mcny 8y ago> I feel like I may have wound up on this path... I'm working in a government role where I've been put as the lead developer on some major pieces of software despite only being 5 or so years into my career because the people I'm surrounded with seem to have some significant competency issues. Please don't quit yet. Please work on some pet project or something in your free time if you'd like. As you saw, we need people who care in government IT projects. We won't magically find people who care. We are the people who care.
- hahajk 8y agoI’ve been in a similar organization and have been put in charge of projects that I’ve been under qualified for, too, but I pressed on with good intentions and an “I care!” attitude. The problem is that at these organizations there’s often no one more competent to turn to for help. If you fail (like I did) you get the sense that there’s a class of people who can do things rigorously and well and then there’s the class that includes you. It’s an experience that can easily leave you worse off. It would be noble to stick around, but maybe a person owes it to him or herself to find an organization already doing things the right way that is willing to hire and train eager inexperienced team members.
- crimsonalucard 8y agoSo basically the article is saying if you wound up on this path, it means you're an incompetent programmer. Why would people rely on you if you're incompetent.
- jonnycoder 8y agoGolf is the same way. I know people who improve a little but it’s rare to find a golfer who shoots high 90s and makes their way into the 70s. I went from a 15 handicap to a 5 in two years, and even now I am just starting to grasp at my core weaknesses and faults. Software development has been similar in past few years, in that the growth has come from facing my feers of talking to people, communication, leading, etc.
- blackflame7000 8y agoI think that as you get more towards the 70s golf becomes more of a mental game and a battle of endurance to hit shots as crisp on 18 as you did on 1. That being said, I jumped from 100s to around 80 from simple mental things like instead of focusing on hitting the ball with the club, I instead tried to hit the club with the ball. I found that helped me hit the sweet spot much more.
- geddy 8y agoProbably not the place for this, but your advice regarding golf: super spot on. I used to think the same way with tennis.
- mannykannot 8y agoIn software development, there is currently no more certain route to this state than to read 'Clean Code', take it as dogma, and stop there. Most of its major prescriptions and proscriptions have important caveats that are either glossed over or forgotten.
- Animats 8y agoWhat that tells us is to design development environments for the expert beginner. Expert beginners are cost-effective. Competence and expertise in web development is not cost effective. By the time someone reaches the expert level, the technology in which they are an expert is obsolete. Like Java programmers.[1] [1] https://www.infoworld.com/article/3195285/java-and-c-continue-to-decline-in-popularity.html https://www.infoworld.com/article/3195285/java-and-c-continu...
- saila 8y agoCompetent (web) developers can roll with changing technology, leveraging fundamental skill and understanding; beyond superficial differences, the basics haven’t changed all that much in the past two decades. “Expert beginners” seem to complain about rapidly-changing technology (as well as basics like proper usage of version control); they also make giant messes, which can’t possibly be cost effective.
- blub 8y ago"the basics haven’t changed all that much in the past two decades" I did some front and back-end development in the mid 00s and almost nothing still applies. Even the HTML standard is different, CSS has gotten much more complicated and JS has changed immensely. Most importantly, people don't build web sites any more, they use various frameworks to build so-called SPAs. The front-end is in eternal turmoil and front-end skills expire fast, good thing I got off this carousel.
- matt-snider 8y agoI don't want to trivialize learning modern frontend development with a clean slate, because it is a long process to get familiar with the tools. But I think those are the details and not the basics. Whether you use html templates rendered server side, or JSX in an SPA, the experience is quite familiar.
- AlexandrB 8y agoThis is a very narrow way to look at software expertise. The technology stack may change but the fundamental problems are unfortunately quite stubborn. And once you understand fundamental approaches like OOP or functional programming the only thing many “new” technologies bring to the table is a bunch of new syntax for expressing the same ideas. It’s rather like mechanical engineering. Every decade brings new equipment, software tools, and manufacturing techniques but the problems (and solutions) of stress, strain, and heat transfer remain stubbornly similar.
- zanydude 8y agoI've seen this (or variations of) this article before, but what is lacking is how to resolve this problem. How to bring programmers out of the "expert beginner" stage once they realize it. Is it just a heavy dose of mentoring? Where do they find companies most fit to put programmers on the right path?
- _zskd 8y agoI am by no means an expert programmer, but this is my strategy to stay relevant and employable. Obviously I'm not perfect and break my own rules, but this is what in my mind an optimal honkycat would get up to: Read books, lots of them. Books about programming, math, computer science, game design, user interfaces, graphic design, productivity, investing, meditation, history, criminal justice, fantasy, science-fiction, and everything else. Watch conferences. Go to your local tech meet-ups. Meet people. Ask questions. Take classes that interest you in your city. If I get too bored at a job I find a new job. You can't stop learning. What you are going to be good at is what you do for your day job. Have a schedule. Work out frequently, keep my health in order. Wake up EARLY in the morning and work on side projects BEFORE WORK. If I wait until after work, I'm going to be too tired to actually get anything useful done. Turn off the computer/tv for a few hours before bed every night, and read books instead of surfing ( social media of choice ).
- winrid 8y agoThis is great advice. If you want things to improve for you, you have to improve.
- wolco 8y agoWhat happens is people get caught make a big mistake and become humble.
- Chris_Newton 8y agoThis reminds me of the saying that you can have ten years of experience or you can have one year of experience ten times. Unfortunately there several forces in our industry that tend to push in the latter direction. One such force is that compensation tends to increase more quickly, at least in the early stages of a career, with rapid job-hopping. This leads to the kind of title inflation mentioned in the article, and in the extreme case you get the 27-year-old founder/CTO who has an impressive-looking list of former employers on their résumé yet who has never built a substantial software system from scratch nor maintained an existing system for more than a year or two. Another force pushing towards short-termism is that lot of new software simply isn’t expected or intended to last. The commercial incentives to invest in building robust, future-proof software are often outweighed by the commercial incentives to deliver early and deal with any problems if and when you get to v2. But then v2 has to be shipped early, and… Issues with reliability, scalability, performance and security just get kicked down the road until the next big rewrite, and writing maintainable code that can support ongoing development for a long time is unnecessary if you’re going to throw it all out and start over within a year or two anyway. Eventually, if the business hasn’t failed along the way, it reaches a level of maturity where it’s worth investing in these things more seriously, and then you do need developers who know what they’re doing. But by then a lot of the cool kids have moved on to throwing stuff at their next employer’s wall to see what sticks. Of course there are parts of the industry that don’t follow this pattern and do have serious quality and longevity requirements for what they are building. However, they don’t tend to be in today’s fashionable parts of the industry like web app and mobile app development. As a result they may not be so attractive to the expert beginner, which is unfortunate because the expert beginner is not then exposed to better ways of doing things that are used routinely out of necessity in more demanding environments.
- matt-snider 8y agoThat quote was used in the article! I guess you missed it: > If you’ve ever heard the aphorism about “ten years of experience or the same year of experience ten times,” the Expert Beginner is the epitome of the latter. I agree with the factors you listed. As always I think company culture plays a big role too. If you're surrounded by expert beginners it's like an echo chamber where everyone thinks they are rockstars. Being surrounded by people who genuinely want to learn and improve instils the opposite mentality and drives progress.
- blackflame7000 8y agoI think this is where a good college curriculum is invaluable compared to say a bootcamp. The reason being is that you get exposed to a lot more aspects of computer science that show you just how much you don't know.
- scarface74 8y agoNot really. Computer science curriculums don’t really teach you anything about being a competent developer.
- blackflame7000 8y agoNo they definitely don’t you can only get that through experience. But instead of learning one thing and thinking you’re the master of everything, in a fast moving CS curriculum you don’t have time to move further than advanced beginner and it will give you humility and wisdom to know what you don’t know
- scarface74 8y agoI find just the opposite. For the jobs that I hire for when I am in a hiring position, new CS grads are basically useless. At least the boot camp grads can hit the ground running and do simple features.
- zczc 8y ago(2012)
- zaptheimpaler 8y agoPeople get stuck in expert beginner land in no small part due to how shitty the hiring/training process is in most places. Outside of big tech companies and SV, no one hires generalists (past entry-level dev) and your resume gets screened out if you don't tick all the right boxes for language/framework (right down to exact framework..) or have a BigCo brand. No one is willing to take on people who might need the slightest bit of ramp up time on new tech. So if you don't get all the right chances early, the only jobs you can even get hired into are those doing almost the exact same shit you have always done. God forbid someone hires a Java developer without experience in Spring into a gasp role that requires Spring (I see this constantly)! I suspect managers like the authors basically fulfill their own prophecy. They insist on putting people into boxes and pretending they cannot learn, provide little opportunity to do so, and then blame the devs when they do not grow.
- travoltaj 8y agoYour Java example hits too close to home. I know Java pretty well, and despite several good interviews, I got rejected because I didn't know Spring. One company even told me to learn Spring, build an independent project on it, and come back to interview. They followed up with me for 3 months after that till I told them not to anymore. At that time I was proficient in Java, Angular, Typescript, C# & Jython. Ironically - I got hired into a product company which mostly works on their own internal java frameworks and didn't have a spring requirement. I figured I'll have to give time to learning Spring on the side since most Java jobs require it, but my first project here was on Spring Boot/Hibernate/Angular because of a client requirement, and I was put on it purely because of my Angular knowledge. I'd understand if a company required complicated stuff done in Spring/Hibernate, but most organizations use of Spring Boot is limited to building rest APIs, for which no previous knowledge is necessary. I haven't yet run into an issue I couldn't solve by less than an hour of googling despite having no experience in it beforehand - even making interceptors and adding Spring Security. Because of its simplicity I do wonder if I've barely touched the edge of it, and the usual usecase is much more complicated than this, but I'm planning on learning spring on Udemy anyway, so I guess I'll find out.
- yowlingcat 8y agoI fully believe that the Jack Welch style stack ranking school of management, performance and skills acquisition was a very expensive cultural mistake in modern corporate culture, perhaps one of the worst. The idea of stack ranking or internal competition is so naive and practically ineffective that it's no surprise it was an utter disaster in nearly every instance its been implemented -- it's also no surprise that it has been broadly recanted from most large tech firms that once implemented it, as well as disavowed by its original inventor! That's what makes this article (and series) frustrating. It ignores that corporate software engineering is a team sport. Individual contributors need and deserve coaching and constructive working environment to unlock their true potential. But who is responsible for that? Is "everyone equal" or is it the case that the executives highest in the hierarchy are also responsible for the outcomes? I would say it's the latter. Are you a leader that's tired of expert beginners on your team? Take a look in the mirror. You hired them (or chose to retain them). You failed to provide them with the mentoring they needed to grow. You failed to build a constructive environment for them to be an engineer. And sometimes, most damningly, you failed to select the right kind of company or industry for your professional working style, goals, or preferred compensation. The truth is, if you didn't fail in any of these ways, you would never see any of these things you complain about! Being a leader is hard, but doing it properly makes such a disproportionate binary impact on the ability of the organization to function properly that it's almost always my first (and often my last) question I need to ask to assess an organization. I'd like to see an end to these kinds of think-pieces and I'd highly recommend that folks who want real solutions to these problems (whether you're an IC or not) look elsewhere. By no means do I have the all the answers here, but a great place to start is one of my favorite books about engineering management: Camille Fournier's The Manager's Path.