7 ms·
An ask of anyone reading this article: Please don’t let yourself become a smug or cynical programmer. Too many programmers read articles like this and assume t
by PragmaticPulp 6y ago
An ask of anyone reading this article: Please don’t let yourself become a smug or cynical programmer.
Too many programmers read articles like this and assume that they are the 20% of good programmers while everyone who disagrees with them is the 80% of amateur developers:
> I have worked in software development for 20 years, worked on many projects with many software developers. I estimate 80 percent of software developers are amateurs and 20 percent professionals
Yes, it’s true that some programmers deliver better results than others. It’s also true that some have better methods than others. However, this is one of those situations where if you pulled developers aside and asked them to rank themselves relative to their peers, you might get 80% of people rating themselves as above average and 50% of people claiming to be in the top 20%.
A common pitfall I see is when developers forget that the goal is to ship software and instead focus on doing everything the most correct and perfect way they can think of, regardless of their resources. I’ve worked with many teams of professional programmers who spent so much time perfecting their tooling and code and architecture that they rarely ever shipped anything. Learning the tools of the trade is important, but don’t lose sight of the goal: We need to strike a balance and get work done, not just perfect our craft in a vacuum.
- danybittel 6y agoAnd the people claiming to be in the top 20% are going to medium and post a blog post about it. I mean, he's not wrong.. but I always get suspicious if somebody is making up percentages. You know 90% of percentages are made up? (Yes I just made that up)
- monkpit 6y agoYeah, I think it’s dangerous to try and say that there are 2 groups of people here. Instead, just say we are all amateurs and there’s no reason to take off the training wheels.
- bfgoodrich 6y agoThese articles are intentionally written to satisfy that "I'm a better programmer" itch. Everyone imagines themselves to be the better programmer, and will always have a laundry list of reasons why they're just "better". And people will post it on twitter and LinkedIn, etc, under the rather pathetic guise that it will demonstrate they they are the professional. It's a cheap, tiring tactic.
- duxup 6y agoThere's very much almost a meme of those programmers who tell us all how everyone else is doing it wrong ... but their whole idea about who is doing it wrong seems to be entirely driven by how often they're inconvenienced by other people's code, but never account for how often others are inconvenienced by their code. I get inconvenienced by other people's code all the time, but it's so easy to assume when you're looking at the bug "they should have known this was going to happen / tested for this" when you started your investigation knowing the trigger for the bug. Anecdotal story: I had a bug a few weeks ago that all sorts of people thought was really dumb / obvious / shouldn't have happened. I checked... the code hadn't been changed for FIVE YEARS. Nearly every customer we had ran this code for five years. Maybe I feel that they should have had a catch for the situation that occurred, but whomever wrote it wrote code that lasted bug free for five years ... maybe they weren't dumb and they knew something I didn't?
- freedomben 6y agoOne of the best experiences I had that humbled me was getting irritated by the inconvenient/obscure code I was dealing with. It was clever as hell, but impossible to understand and even harder to work on. It wasn't buggy but we needed to add a new feature and it clearly didn't anticipate that. I spent hours cursing the bastard who wrote it. Finally after I was done and checked in the changes, I looked to see who had written the original code. It was me.
- duxup 6y ago>I looked to see who had written the original code Oh man that guy is the WORST.
- sethammons 6y agoOh yeah, I’ve done that one a few times. However! I’ve also had a couple of cases where I was really happy with whoever had written something only to find out it was also me. Very rewarding.
- freedomben 6y ago
- FeteCommuniste 6y agoMaybe I'm weird but I think I am pretty average at programming. Not great, not terrible. I get things done, more slowly and with more bugs than some, more quickly and with fewer bugs than others. Of course most employers probably aren't looking for an "average" programmer, but I haven't found that they usually ask me to rank myself relative to others.
- hoskinator 6y agoI disagree, solid programmers should be the core of the team. That's how you make solid progress and deliver projects on time. Programming is about doing the fundamentals well and consistently delivering
- vsareto 6y agoTheir idea of average is going to be unique to that company. If they've got some objective test that ranks you accurately, they've got a multi-billion dollar process on their hands. If we had this test, we'd know what to train for, and we'd all become the average developer but write less bugs and better code. It'd become the standard test for developers. In many cases, companies just want you to sell yourself and hear the right things. Most companies know they can't hire a senior FAANG developer for $110k.
- thouitsme 6y agoThe Dunning–Kruger effect basically. I think we overestimate our ability to judge who, besides us, is a good programmer as well.
- afarrell 6y agoIt's also possible to try to strike a balance and to get it wrong. It is also possible to strike the right balance proportionally but be in a business environment where your best effort results in failure. https://www.youtube.com/watch?v=t4A-Ml8YHyM https://www.youtube.com/watch?v=t4A-Ml8YHyM "It is possible to commit no mistakes and still lose. That is not a weakness. That is life."
- culopatin 6y agoI am one of those that can’t get started because perfection and peer review is in my head. I blame it on Stackoverflow making me feel like a moron every time I ask something.
- PicassoCTs 6y agoIts a toxic, anti-enlightenment culture, if any question or request for information is perceived as a attack on the self-worth of the author of that piece of information. I think at the root of this perfectionism, are loads of damaged individuals, whos whole identity and self-worth is defined via their work, their code, their child of mind. There are so many of these, that they can become a culture majority and bring whole projects to a stop. When i encounter these, i tend to isolate them, link up with other reasonable people (who usually also work around them. If they have grown to powerful, you build two versions, one with their "architecture" (which they will inevitable grab and sink years of time into) and one that will be actually shipped, as a emergency solution. If discussion is not possible, double the project estimate, cause there are two now.
- commandlinefan 6y ago> developers forget that the goal is to ship software and instead focus on doing everything the most correct I'm far, far more frustrated by developers who focus only on shipping software and making dates by cutting corners wherever they can and leave everybody else to deal with their gigantic mess later.
- watwut 6y agoThat is squarely and fully leadership issues. I means this 100%. The way to avoid this are fully in management and leadership hands.
- justin_oaks 6y agoAgreed. I think many of us realize the futility of getting our leadership to change, and instead hope that our coworkers will change.
- Tade0 6y agoI see this as a false dichotomy - the real most correct way is less expensive, it's just that quite often people who think they're aiming at perfection are instead actually experimenting with different approaches at random with no clear benefit. You don't need to cut corners to achieve cost effectiveness and tech debt is just that - debt, which always has to be paid eventually - either through expensive bugfixing, a rewrite or bad user experience. The project's I've been in that went over budget usually had one or more of the following: -Too large of a scope vs budget. -Bad or no architecture whatsoever. -Increasing personnel instead of reducing scope. On the other hand projects with an architecture, a set of clear conventions and flexible scope fared much better.