20 ms·
1x Programming
- hello_popppet 5y ago
- krossitalk 5y agoDon't. Hijack. The. Back. Button.
- ChrisMarshallNY 5y agoYup. That was gonna be my post.
- dang 5y ago"Please don't complain about tangential annoyances—things like article or website formats, name collisions, or back-button breakage. They're too common to be interesting." https://news.ycombinator.com/newsguidelines.html https://news.ycombinator.com/newsguidelines.html
- outside1234 5y agoThanks for writing this - as you get more senior one of the things you realize is that the people involved in software are more important than the software itself. Optimize for the people: The users, the community (either your team or the open source project community), and the stakeholders in your software's success. The code is a tool that you can use to make those people happier and more successful.
- henning 5y agoThere is plenty of room for excellence in the humble day-to-day glue programming this post talks about. There are arguably better and worse glue programmers. I have gotten better at doing the kind of work the post describes. I also think macho bullshit posted by VCs talking about "losers", "10x engineers", and "shape manipulators" who haven't written production code in decades if they ever did and have never written the kind of code I write is bullshit.
- kbenson 5y agoI'm not sure I've ever heard of a "shape manipulator" before, and I'm at such a loss as to what it could be that Google isn't super useful without additional context to lean on. The only thing I saw that might fit would be NumPy arrary shape manipulation. Anyone care to expand on what a shape manipulator is and where that came from?
- joliu 5y agoShape Rotator. That is the meme.
- Firmwarrior 5y agoIt's a meme that says some people are better at visualizing and mentally manipulating 3D images in their heads, and it implies that those people can use the same brain hardware to accomplish amazing feats of engineering I dunno if there's any truth to it at all.. I think most of programming is less of an inspired act of genius and more of a tradeskill like plumbing or roofing. I'm pretty sure there are tasks out there that I could get done in a month even though they'd take a team of 10 people 10 months to do, but if I trained those same people they could probably come close to my performance.
- marginalia_nu 5y ago> I'm pretty sure there are tasks out there that I could get done in a month even though they'd take a team of 10 people 10 months to do, but if I trained those same people they could probably come close to my performance. Part of this may just be how we work in teams, versus in isolation. Like I built an Internet search engine alone, as a hobby, in less than a year. If I was a member of a team of 10 people tasked with building a search engine in a year, I'm not sure we'd be able to complete on time following standard software engineering practices. So much time is lost iterating on designs and pair programming and having daily standups and looking at burndown charts and coming up with goals and debating the definition-of-done for each task and having meetings with stakeholders and preparing/having demos and drinking coffee and iterating on API interfaces and discussing code standards and so on. While sure, that makes me 10x more effective than that team, but that is a hypothetical team including myself. In reality, I have a modicum of talent that is magnified with an extremely effective way of producing code quickly. To be very clear: I'm not saying all these things aren't there for a reason, it is only when myopically focusing on shipping code that I appear like a miracle that is 10x faster than myself.
- temp8964 5y ago
- lcnPylGDnU4H9OF 5y agoI imagine the point would be that pg writes many controversial things - with some of which the author explicitly disagrees - but this is one thing on which they do not disagree. Let's suppose, for the sake of argument, that Newton once wrote, "The sky would be most accurately described as applesauce." (The absurdity is there to suggest that you would not agree. Take something more mild but still controversial and I don't see how it's different.) > I don't agree with everything that Newton said but F=ma.
- Lamad123 5y ago10X bullshitters are a rare breed!
- unwind 5y agoHas anyone published some kind of quantified, "hard" comparison/survey about the relative productivity of programmers? It would be very interesting with a clean "we asked n programmers to solve this"-type problem, and then being able to compare the solutions. Uh, did I just sound like I wanted to work in recruiting? #fail
- flakiness 5y agoYou might like this site https://neverworkintheory.org/date/ https://neverworkintheory.org/date/ It reviews academic papers in that kind (empirical software engineering).
- crispyambulance 5y agoNo one has figured this out-- not for programmers and not for any other profession. It's certainly possible for individuals to develop good or bad reputations, but to be able to accurately evaluate how anyone will do in a job in the absence of other data is very much hit-or-miss. The most elite orgs might LOOK LIKE they figured it out, but how much of that is really their process vs just being able to attract talent because of compensation or reputation? How much of it is more a matter of being able to churn through people and replace people that get hired but can't hack it once they're in? How much of it is skillful use of professional referrals? > It would be very interesting with a clean "we asked n programmers to solve this"-type problem [...] It's been done, right? There's all those whiteboard interviews that highly resourced orgs study endlessly. There's a whole industry around preparing for these things. What do we have to show for it as an industry? Not much. If the stories are to be believed, folks are still flunking "fizz-buzz" at alarming rates.
- theamk 5y agoThere is a link to this right in the post. In fact, it is the first link in the post. Here it is: https://href.li/?https://third-bit.com/talks/greatest-hits/?utm_campaign=CLICKWORTHY&utm_medium=email&utm_source=Revue%20newsletter#28 https://href.li/?https://third-bit.com/talks/greatest-hits/?...
- Izkata 5y agoAbout a decade ago my company had a thing set up where were could complete coding challenges and other devs would rate them anonymously (so you couldn't rate a specific person highly unless you recognized their style). Once you completed a challenge you could see others' submissions and a ranking of how much someone's solutions were liked. Ordering was fairly consistent, with a few people recognizably always being in the top third or so (out of around 15-25 people who bothered to try the challenges, IIRC). The original purpose of these challenges were to help people learn python, as we'd just officially moved to it not long before I joined, so to give an idea of the complexity involved, the only one I can remember was "implement a brainfuck interpreter". It was really interesting to see the different ways people organized code that did the same thing.
- duxup 5y agoWay back when I first saw the 10x engineer proclamations I actually thought they were … a joke. Like a meme or something. They described a lot of anti social and strait up toxic behavior and seemed to glorify it. It was absurd. It seemed like the kind of behavior that would all but ensure someone thinks they’re so much more productive than everyone else, and would prevent them from ever seeing that they aren’t. I was a bit dismayed when I realized they were serious…
- Msw242 5y agoWe have a small team (8 devs) and we've focused a ton of energy on developer experience and ergonomics to reduce the cost of contribution and code reviews, and facilitate interaction with other stakeholders. I'm confident at this point that we've doubled productivity, which would make our "Head of" a 10x engineer :)
- jt2190 5y ago> Doubled productivity… 10x… Since we’re putting numbers on things, how did we go from 2x to 10x?
- Macha 5y agoThat 2x is being assumed to apply to all 8 devs, so if you 2x the performance of 8 devs you get 8 extra devs worth of productivity. I assume the logic is that if that took 1 person worth of effort, then that person had 8x output.
- Msw242 5y agoYeah, exactly! I think 8x is basically 10x (less than one magnitude difference). You got my math
- deleted 5y ago[deleted]
- mtc010170 5y ago
- abhaynayar 5y ago> However, I want you to know that you’re not a lessor person... "Lessor" is a person who leases a property. The author probably confused it with "lesser". Unless there's a correlation between leasing and programming... hmmmm.
- no_wizard 5y agoI think this is one of those things where its a question of what you're optimizing for. I don't like boxing solutions into `10x` or `1x` or whatever. I think this misses the entire point. It also assumes that single software engineers can make or break a project or company, and this is rarely the real case, even if it feels like it is. I think an often missed piece in the formula is systematic incentives. At a company, this really means culture and process. If you have a culture and process of incentivizing novel solutions and so called `10x` behaviors, you'll have lots of `10x` developers, systems tend to produce the outputs that you foster. If you have proper incentives for high throughput, you will get it. No one engineer is "born" better than the other, like stated in the article, but a culture that fosters making good choices as a whole will see results align. This is how you can 10x your teams, regardless of individuals. I think another way to look at is this: you're likely not the Yankees, you're the Oakland A's. Don't optimize for knockouts, optimize for runs[0]. [0]: https://en.wikipedia.org/wiki/Moneyball https://en.wikipedia.org/wiki/Moneyball
- BlargMcLarg 5y agoPretty much. There are various ways to optimize, but the far majority of them depend on circumstances almost fully controllable by the company, rather than a lucky shot getting more and more whizkids. Foresight, support and tutoring are three ways I can think of that would generate a "10x". Foresight in making better decisions which won't boggle down development later down the line. Support in the form of automating busy work, developing tools, removing impediments and making people more eager to develop (notice how some of these are not dependent on developers). Tutoring through making other people more efficient and raising new ICs. All three of these are highly dependent on circumstances set by management. You're not getting the time to automate if management continuously pushes you to fix issues and work on the next non-workflow-related issue. You're not getting a lot of time to think about the best solution if the first working prototype is what's expanded on despite there being obvious flaws requiring exploration. No quality teaching if individuals aren't given time to prepare teaching materials and others aren't given time to listen. The list goes on. In all likelihood you'll still need someone eager enough to go grab the knowledge and then distribute it in some form (how else are things going to change?), but it takes away the need to fill every position with a whizkid.
- jchw 5y agoI’m beginning to feel as though there simply isn’t that much novel code to write anyways. I very very much agree that programming is not inherently valuable, and is merely just a tool; I say this even as someone who got into programming at a young age and enjoys it for the sake of it. I think in some narrow domains I can write interesting, and perhaps even mildly novel code. But a huge majority of the time, working for smaller startups, or Google, or myself, the majority of code I’m writing is something that has already been done in another form but I can’t use it for some reason. Maybe it does similar things, but it explicitly doesn’t try to solve my particular version of a problem. Maybe the license doesn’t work. Maybe it’s almost perfect, but it’s buggy or slow. Or hell, maybe I’m being a meme programmer and rewriting perfectly good code in Go or Rust just because I want to have the same thing but integrated with my favorite languages and tools. The world of open source also changes things. You most likely should not hire someone to write a TLS stack. It’s not worth it. Chances are, a good TLS stack is not a feature that will set you apart, if it differentiates you at all in any positive ways. If you want to do things that existing TLS stacks don’t, it can still make sense to hire an expert, if that’s your thing. But, most of the time, even then, it would probably make the most sense to soft fork or upstream changes to an existing robust TLS library. Because of open source, it makes exceedingly little sense to actually have one entity maintain their own novel bits unless they’re unique and related to how the product differentiates itself. And even then, in some cases, it makes more strategic sense to just open source your bits anyways, and make yourself the standard. Google releasing Kubernetes is a great example; you can probably find many projects in the open source world, like Cockroach, which are basically clones of Google things they only released in a limited form, so the rest of the world went and standardized on non-Google implementations, and the Google versions didn’t benefit from cross-collaboration and the generalization of internal hacks. This also rings true for Facebook and React. I think most programmers, given enough time and initiative and effort, could build cool and novel software, but the fact is, we don’t need novel software most of the time. We need better boring software. More general, less buggy, faster. If that’s depressing, well, I guess so be it. But there’s also a lot of toilets to clean out there, and someone has to do that, too. I can’t complain if it doesn’t feel like my work is exactly writing my name into history.
- bool3max 5y ago
- phendrenad2 5y agoI've never met a 10x engineer. (Does that make me the 10x engineer? I doubt it). Personally I believe that the myth of the 10x engineer comes from the very real and very visible fact that often times, one engineer will be 10x as productive as someone sitting in the next desk over. Why is this? There are numerous factors, and certainly innate skill and programming practice come into play. But I think that only gets you to, at maximum, 2x the average. To get to the perceived "10x" you need luck, the right mindset, and a the buy-in from management to push others aside and take on the most juicy projects (which is self-reinforcing once management sees you as a "10x engineer"). "Stealing the Corner Office" is a good book on such tactics (although it ostensibly applies to middle-managers).
- deleted 5y ago[deleted]
- latenightcoding 5y agoI have and I'm sure others here have too. It's usually people who are not only skilled coders but are capable of staying ultra focused for longer hours. Go check you favorite team project on github and open the list of contributors, notice anything?
- nescioquid 5y agoNor have I, but I did work with someone who was regarded as such at a company I worked for. He got the reputation for shipping features fast, but everything he did was quick and dirty. This lead to some resentment with other developers tasked with extending the new features he shipped - invariably the simple extension to the feature would take longer than the original feature. Instead of indicating that everything this guy ships is a nightmare to work with, it further cemented the notion that this guy was a 10xer.
- ratww 5y agoThat's not really a 10x if they're doing a crappy job. I can close hundreds of bug tickets saying "not reproducible" without really trying, but that doesn't mean I was productive.
- davidatbu 5y ago> Synthesis is essence of software engineering, whereas abstraction is the essence of computer science. Your job as a software developer will be to synthesise something new from composable pieces. What you create should be simple to understand and extend. Loved this.
- auggierose 5y agoThis is definitely a 1x rule. ;-)
- Floegipoky 5y agoIt's a nice quote, but I really disagree with this section. Yes, software development is more concrete than computer science, but abstraction is so, so important. The author acknowledges the value of simplicity, but simple code is only produced by choosing the right abstractions. Getting even 1 key abstraction wrong can create enough "friction" to eventually kill a product if the tech debt isn't managed well. 99.5% of a car mechanic's job is assembling/disassembling pre-made components, but they still need to understand how a car works.
- yCombLinks 5y agoI didn't read it as "never use abstraction". Consistently the most difficult code for me to work with (enterprise development, business use cases etc...) has come from excess abstraction and having the business context hidden behind layers of terminology used in academic settings and not the current business context. Mental mapping required for every class and method name to why the business would be interested in this code being ran.
- davidatbu 5y agoAgreed that the quote, in isolation, undersells the importance of abstraction in software dev.
- angarg12 5y agoI praise 1x programmers, but for reasons that might go against the grain in HN. I'm from Spain so our working ethic is different from the Anglo-Saxon world. "Work to live, don't live to work" as the saying goes. My principles for a 1x programmer: * Work is a means to an end. A job should support the lifestyle you want to achieve, not be an end on itself. * 9-to-5 is a perfectly reasonable schedule. Fiercely protects personal and time off. * Prefers to spend time with their family or hobbies (e.g. train for that marathon) rather than working on a side project in Github. * Strives to do a "good enough" job rather than absolute excellence. * Keeps their skills at a reasonable level to do the job, but doesn't necessarily work on continuously improving. * Most companies don't really need 10x engineers, and would do just fine with 1x ones. Some people might cringe at this list. Some will argue that one could never be a good developer following those principles. I'm ok with that. I think we should acknowledge for many people programming is just a paycheck and they don't share the passion of the HN crowd. We should broaden our horizon of what success looks like in the development job. Me, for one, feel like some of my friends that fit the description are winning at life more than I do.
- cracrecry 5y agoThe principle behind being a 10x programmer is not working more, but working less and using tools that multiply you. The 10x dominates the tools ( and techniques and people and capital) that multiply her. If you have a car you can easily and consistently go 10x faster that walking pace. The same applies for your job. Working on a given company, with access to capital and people and tools can multiply you.
- deleted 5y ago[deleted]
- mjburgess 5y ago10x is about the meta, and meta can be the tools (or frameworks, metaprogramming, etc.).
- erikerikson 5y ago
- dsr_ 5y agoIn Peopleware, DeMarco and Lister write: Count on the best people outperforming the worst by about 10:1. Count on the best performer being about 2.5 times better than the median performer. Count on the half that are better-than-median performers outdoing the other half by more than 2:1. What nearly everyone who has read that remembers is the following: The best people outperform the average by 10x. Spot a difference?
- parentheses 5y agoBased on this a median programmer is a 4x engineer
- deleted 5y ago[deleted]
- mirceal 5y agothis aligns with the hypothesis that some people have that a handful of people do most of the work (and the others are the "worst" performers"). What this misses, is that in any highly functioning teams everyone is important and in order for the "rockstar" to be the "rockstar" they need people to help keep the machines running and to support them. This is usually why a team that has a mix of both veterans and newbies works so well. Everyone can operate at their own level while learning and growing. Is the veteran a 10x when compared to a newbie? If you make up some metrics, maybe, but the veteran cannot do meaningful work without the newbs (think rock concert without all the supporting crew. could any band do their own concerts without all the supporting crew?)
- theamk 5y agoIf a "veteran" cannot do meaningful work without the newbs, either that "veteran" is not very good or your processes are too manual. The best programmers I worked with were not "rockstars", but "icebreakers" -- they would solve the hardest problems and leave the clear path for others. For example, they might solve a sporadic memory leak in a few hours, and thus save a less experienced team member at least a week of effort. They were "10x" in the sense that any team they were on would get 10x better because everyone does more.
- bragr 5y ago>Even if you’re coding for yourself, you’re still coding for a team. Your future self will not have the same cognitive context that you do currently. This. I've definitely cursed the author of some code only to realize it was me 5 years ago and I have absolutely no memory of the code or the problem.
- bee_rider 5y agoShould we read this as an implicit comparison to what a 10x programmer is? It seems like this is mostly just having a sane work-life balance and actually targeting deliverables. I guess I'd expect a 10x programmer to have a bad work-life balance, but also still target deliverables... just somehow, better (I'm not sure I understand what a 10x programmer is supposed to be). > Users care about themselves. To them, they need to be the primary priority. This rift causes a problem when open source maintainers decide that their users are indeed secondary. But that might be the theme of a future post. That came from out of left field. I enjoy using open source programs, but understand that open source software is released to the universe as a favor, and the author has no obligation toward users like me. The ideal form of open source is just that you solved your own problem, and were kind enough to share the solution with the rest of us. If I wanted my needs to be a priority, I'd look for a relationship where I was the customer. The only issue I can see with letting user needs become secondary is that this is far too high of a priority, it leads to confusion and might infest the project with an unhealthy customer-service mindset.
- gernb 5y agoSomething that came up recenty for me. I took a job at FAANG company and my productivity from my POV sucks! I doubt I've written more than 2k lines of code in 9 months! I'm debugging hardware/driver issues in a giant code base (~250k files) that I don't know and APIs I've not used before. Conversely, in my own hobby code I wrote ~2k lines in the last 10 days. It makes me wonder how often 10x is about circumstance vs programmer skill
- mirceal 5y agothe number of lines you write is almost irrelevant. People need to put the equal sign between lines of code written and productivity. Some of the most awesome and productive people I've worked with actually removed more code than they wrote. Code is a liability. There is no code like no code. Focus on the problem not the number of lines of code
- gernb 5y agoI suppose it was my bad for using lines-of-code as a metric. What meant to convey is I feel like I've done the same amount of work in 10 days on hobby projects as 9 months on work projects. The difference to me is the hobby project is 100% my code and relatively small (25k lines total, 2k lines in last 10 days). Vs the work project which is 1000+ developers, no idea how many lines but at least 250k files. So, my point is, is it possible that often (not always) 10x programmers are preceived to be 10x because they are in a situation that allows them to be productive (maybe a smaller code base, maybe a code base they are super familiar with, maybe a new project so new code meaning it's their code, no someone else's) etc...
- mirceal 5y agoyup. coding in a group setting is harder than coding on your own. Also productivity is whatever you want to make of it. Some people may feel really productive by tweaking a system to squeeze that extra 2% perf, some people may feel productive by writing code, some people may feel productive by enabling others. there is no silver bullet and putting things in perspective always helps :)
- latenightcoding 5y agoI agree with almost everything here, but the essay is all over the place: it starts by trying to convince the reader that it's ok to be a 1x programmer and then proceeds to give pointers on how to write simpler code and how to work better on teams (which are different topics and skills that many 10xers possess)
- deleted 5y ago[deleted]
- markus_zhang 5y agoI agree with the gist but in my dream I'd like to find a system programming niche that I can drill down and be really good at it, maybe even top 100 in the world.
- erikerikson 5y agoTo me this seems like an alternate description of how one trends towards increased effectiveness in programming. I've known 10x programmers that will put the entire team in a position of reacting to that one person's work so that rather than scaling it actually reduces to total productivity. This person was unfortunately trying to build a business.
- parentheses 5y agoI feel articles like this make not working hard seem like hard work. The sacrifices made to achieve in one’s career are mostly intentional ones. The flaw of thinking there is more often about the unrealistic expectations of the outcomes. Saying “it’s ok to not achieve big” is akin to staying “it’s ok to be normal” which is the definition of normal as far as humans are concerned.
- raz32dust 5y agoIf by 10x, you mean engineers that add 10x more value compared to an average engineer in the team, then from working 10+ years in the industry, it is abundantly clear to me that 10x programmers exist, and a good team is likely to have 5-10% of those. However, these engineers are rare, and when you do find them, they are not perfect. They might have flaws in other areas - communication and teamwork is a common one. Most of these anti-10x engineer posts either assume a different meaning of 10x engineer or are unable to accept that engineering is a skill just like every other skill, there are masters and not every one can be a master. Every person cannot be a great engineer. Every engineer in your company/team does not need to be a master. But you need a few of them to be successful if software engineering is critical for your product.
- deleted 5y ago[deleted]
- tester756 5y agoI don't really like to write it, but it also works both ways - there are also "-10x" programmers, they peak in a opposite way It's a mix of chaotic tech skills, approach to technology, terrible communication and ego.
- ratww 5y agoI find these stereotypes very reductive, and having a bit of prejudice. Being unproductive is not a guarantee of having good communication skills, and likewise being being highly-productive is not a guarantee of being bad at communication. If communication is part of the job, in the case of seniors mentoring juniors, for example, then lack of communication skills would definitely prevent someone from being a "10x".
- raz32dust 5y agoDidn't mean to discount communication issues. They are definitely a blocker for growth and impact. The best engineers I worked with had these issues, but worked on them and improved over time to increase their impact.
- 5y ago
- bugmen0t 5y agoHeard of https://1x.engineer/ https://1x.engineer/ ?
- jollybean 5y agoMost programmers are -X programmers. Anything above +0.5 is fine. 2 is amazing. Above that it's in spurts, luck, or some kind of specific focus or area of focus and it's usually necessary and you risk actually having failure, in which the >2x is mitigated by failure back to something normalized lower.
- emodendroket 5y agoUndoubtedly there are many skills other than programming that go into making a successful project. But if I hire an accountant I don't necessarily want career advice from him. Similarly, I'll give my opinions from a technical standpoint, but I don't tell my boss what product he wants to sell.
- johnqian 5y agoThe term "10x engineer" always leads to incongruous conversation. Everyone has a different impression of what a 10x engineer is, depending on who they've met and how much they enjoy coding. There's those who think 10x = not team player, and there's those who've met an engineer who's both extremely productive and likable. There's those who think 10x = no life inevitable burnout, and those who realize there are people who genuinely enjoy programming more than "normal" hobbies, along with people who are unusually productive but otherwise normal. This author believes that "10x programmers care about the code. Everything else is secondary." That seems even more arbitrary than other definitions. I say we let the term become a joke meme and nothing more.
- overgard 5y agoTo me, a big part of multiplying your programming efficiency isn't about a crazy investment of time or ruining your other priorities in life, it's more about objectively looking at how you work and removing or minimizing the things that are a waste of time. It's really about self reflection. Are you spending a lot of time hunting and pecking through menus? Why not learn the keyboard shortcuts? Are you confused about part of your tech stack, maybe the build system? It might be worth a couple hours to get a solid foundation rather than leaving it as a mystery box. There are huge improvements in time saved from cleaning up a lot of little things. The other thing, I think, comes down to losing your religion. For instance, people tend to treat SOLID religiously. I won't claim whether those principles are right or wrong, but what I don't see a lot of programmers do is consider why they believe those things (a blog told them to do it?), and whether those concepts fit into what they're currently doing. Is dependency injection actually simplifying your life? I'm not saying it's a bad idea, I just think a lot of programmers cargo cult things without considering the context they were invented in. The most efficient coders I know rarely over-architect things.
- saila 5y agoI made another comment about this elsewhere in this thread, but many programmers don't seem motivated to learn these productivity multipliers. There's a huge difference between "it's just a job" and "it's a job but I (at least usually) enjoy it." I've never quite understood this because learning skills and techniques as described above makes the job easier and more enjoyable IMO, but I also can't fault people for not caring too much because in the end it is just a job.
- sgadimbayli 5y agoI really don't mind 1x programmer/programming, hell, probably am myself. Most companies don't as well. Issue lies with people who create work for others on every task they are assinged to work on. Hence, -1, negative net developers, and there are plenty of them everywhere.
- windows2020 5y agoPerhaps the lowered barrier to entry has resulted in a surplus of 0.1x engineers, and 10x engineers are merely 1x.
- karmakaze 5y agoYou don't get to be an Nx programmer by working N times harder or longer. You probably have a diverse background of experience and well versed in applying knowledge from one area in another, and general creative problem solving. I certainly don't work 2x more than other devs on my team and perhaps less than 1x on many days. I do try to stay sharp in terms of what I'm doing, why it's being done, and on the lookout for alternative means of achieving the same or related ends. I'm sure that there's many times I've worked 2x harder, longer and produced 0.5x results in a complex and contrived process that I thought was more interesting, better in some vague way, or had great potential, only to find it should be trashed and done the 1x way. Sometimes though that informal R&D pays off in other circumstances. I do this because the 8 hours I spend working goes by much easier and I don't feel tired at the end of the day doing something I feel is ineffective. I haven't even done this for advancement in my career although it's a major factor that's considered when praising 1x. To each their own.
- AlchemistCamp 5y agoThis is interesting to see, having been slowly going through Tim's book Rust in Action when I get the time. I think he did a great job with the book, but I still lean a bit more towards enjoying not just programming but the CS-side of the work. It feels great to make an ergonomic, dev-friendly API. It also feels great to leverage mathematics to do something faster or better with software than otherwise possible.
- buffington 5y agoWhen you disable the default behavior of the browser's back button, are you being a 1x programmer, or just rude?
- deleted 5y ago[deleted]
- strken 5y agoThe link for "nobody is born a better programmer" sets off my bullshit radar. > The most powerful evidence for this comes from Patitsas et al ... They examined grade distributions in introductory computing courses at a large university and found that only 5.8% were actually multimodal.[0] So people may or may not be born better programmers, the link doesn't tell us whether they are, and the most evidence they can find to support their position is that grades in 5.8% of introductory classes are multimodal, which has nothing to do with whether people are born better or worse programmers. [0] https://journals.plos.org/ploscompbiol/article?id=10.1371%2Fjournal.pcbi.1006023&utm_campaign=CLICKWORTHY&utm_medium=email&utm_source=Revue%20newsletter#sec002 https://journals.plos.org/ploscompbiol/article?id=10.1371%2F...
- hzhou321 5y agoIf we only can have one 20x programmer on the team and the rest, let's say 100 or so, have to be 1x programmer, then absolutely the emphasize should be on 1x programmers. But if it is one 20x programmer on a team of 10, that doesn't make sense to emphasize the 1x programmers, right? Unless the math is missing something, such as, 20x programmer get to be 20x due to the 10 1x support; or the 20x programmer is not covering the part those 1x programmer is covering and it may end up way less than 1x if the 20x programmer is forced to cover the part that those 10 1x programmers are covering. There is very little points talk about 20x or 1x without discussing the context. What if, there is no reason that we only can have 1 20x programmer on the team? What if, we simply over-hired programmers and majority of the programmers shouldn't be hired as programmers and they made the 1x to be the norm and the software architecture has evolved to cater to these majority 1x programmer that we end up working with 1x teams, 1x management, 1x languages, 1x frameworks? And they made 20x unicorns? The mere acknowledge of 20x programmer exists is intriguing... I am not saying one or the other, just what if.
- zmmmmm 5y agoThe problem with glorifying so called 10x programmers is that it acts as a rationale for all kinds of dysfunctional / toxic behavior, both from managers and employees. Non-technical managers will accept mysteriously outweighed contributions from a staff member because they now believe it's entirely plausible that this person really is 10x as productive. When in fact they are creating piles of tech debt, grossly violating the archtictural norms, processes or other team-based aspects that everyone else is doing. Engineers will see it as permission to cast aside solid, careful, thoughtful and consultative engineering process and just ram out code at a velocity nobody else can keep pace with. They may even use it to rationalize why they don't have to comply with processes the rest of the team is doing that slow them down. Put together the managers and engineers both become enablers of unsustainable situation that, even if it works for a short while, is unhealthy and leads to lots of issues, whether they are technical, organizational or personal issues with staff (envy, exceptionalism, passive aggressive behavior etc etc).
- newaccount74 5y agoTwo things: - consistency is more important than speed. If you can keep at a project for 10 years you can achieve pretty amazing things even without being arockstar developer - don't get complacent. Some people think they've seen it all and stop learning new things at a point. You don't need to learn every new framework, but you do need to put in some effort to stay on top of current best practices and technologies
- isaachawley 5y agoNice article. I wouldn't call this approach "1x Programming." This is more about how to be a net-positive member of a dev team. As a longtime dev and recent dev manager, I hate most self-described 10x coders. I want people who are net-positive. Team players, focused on adding value, doing unsexy work, keeping the build and tests green. Being nice to each other. Even if they're barely productive, as long as they're net-positive I'm perfectly happy having them on the team.
- cutler 5y ago"Programming is a tool, little more". Sounds like someone who's been sitting in a cubicle hammering out Java/C# for too long. Try programming in Clojure or Ruby for a while and you might change your mind.