9 ms·
I 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. "Wo
by angarg12 5y ago
I 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 agoOr good judgement and focus.
- mjburgess 5y agoSure, by meta I meant to include any system whose target is programming -- whereas programming has as its target the problem domain. 10x is systems for the system, including good judgment
- lawn 5y agoBut to become a 10x programmer I think you need to put in more effort than if you "only" do your job.
- ratww 5y agoSure, but putting more effort doesn't necessarily means working more hours. "Work smarter not harder" also applies to improving and applying yourself.
- wvenable 5y agoTo be more than a 1x programmer, you have to work on things that are not the most immediate goal all the time. This isn't necessarily more effort, it's just different effort, and will not have immediate positive outcome for your company. All the biggest and most important productivity and outcome enhancing things I've done at work have been done without management knowledge or approval.
- mbrodersen 5y agoNot at all. To be a 10x programmer you need to be lazy. Automate everything, brutally eliminate complexity, and focus 100% on what makes sense from a business point of view.
- Aperocky 5y ago10x is a really bad term, it tries to quantify a difference without a baseline. The difference isn't in quantity, but imo rather in mentality. Relentlessly automating repeatable tasks can net 100x or 2x or 0.5x depending on context, but something that don't happen often enough.
- ratww 5y ago> 10x is a really bad term, it tries to quantify a difference without a baseline. I believe this is incorrect. The baseline (or 1x) is the lowest-performing member of the team. At least that's how I learned the term.
- sokoloff 5y agoThe lowest performing member of your team could be negative. Or they could be twice as good as the lowest performing person on some other team, or they could be above the industry average, meaning a 10x programmer becomes a 5x or 20x when the team changes. I’ve always internalized as a “typical, competent programmer” rather than team-specific anything (Peopleware’s definition notwithstanding).
- astrange 5y ago10x implies there should be an opposite of a 10x, but it's unclear if that'd be a negative number or a 0.1x.
- imron 5y ago> but it's unclear if that'd be a negative number or a 0.1x A negative number. A 0.1x programmer gets work done acceptably but is slow. A negative programmer on the other hand creates more work for other people to fix, and you’d be better off not having them touch the code at all.
- drBonkers 5y agoWhat are the tools to multiply yourself in a software development setting?
- sokoloff 5y agoManaged services. S3 instead of building a process to store and replicate files on a file system that you manage. DynamoDB or RDS instead of managing your own DB. Libraries instead of cutting your own code for everything. Effective searching for projects who have already done the thing you’re about to do. Sometimes: it’s as simple as taking a day or few days to think the problem through to ensure you really understand it. Finding a way to deliver the needed functionality in Excel/Sheets instead of a custom application.
- jensvdh 5y agoCI/CD and more broadly building abstraction layers and automation.
- mediascreen 5y agoI often find that developers with an interest in product development and the business side can make huge contribution by suggesting alternative solutions to writing more code. With some gentle pushback on requirements they can help clarify what the real issue is. Of course, this has to be done carefully or it will quickly get very annoying. Another useful skill is to have a feeling for when problems get too hard and it's time to backtrack. At least in my work, most of it is basic CRUD of different varieties. If I find myself inventing new things or not finding any answers Googling my problem, it's likely that I'm on the wrong track and there is a simpler path I missed.
- mbrodersen 5y agoRemoving complexity and making the solution super simple can easily make you 10x or 100x more productive.
- imron 5y agoDon’t check hn, reddit, facebook, twitter or any other socials during work hours.
- torginus 5y ago10x can come from many different places, a few examples: - Person A gets assigned a bug, that there is a memory leak in the library, they are familiar with the code, they open up the profiler, see that there's an excess of Object X, they look for all the allocations, and see that it's not freed in one of 3 places. Whereas Person B does not really have a really good grasp on how either a library or the profiling tools work and mulls around, perhaps has to ask for help, and takes a lot more time. - A is confronted with an algorithmic challenge, they figure out an elegant solution in 1 hour, they think it through really well, the solution is flawless the first time. B takes more time, say 2x, and still are not sure in the solution. They implement it nevertheless, and pass it onto QA, who finds bugs, and the issue needs to be reconstructed, the code rewritten and retested. These things compound and add up. - Writing tools instead of doing things manually as others have pointed out - Using a library meant to solve a problem instead of rolling your own All these things are based on concrete experiences that happened to people around me.
- JimBlackwood 5y agoI mostly agree with this list, I’d just like to add a caveat that working on a side-project can be a hobby! I have some DnD-related campaign ideas that won’t work in DnD, so I’m trying my hand at making them a pixelart game. Definitely a hobby and creative outlet! OTOH, I’m also trying to write a database implementation in modern C++. While fun, it also mostly serves as a “look me smart” for future job applications because I’d love for my job to be a bit more in depth. I think it’s important to acknowledge the differences!
- BlargMcLarg 5y agoI think GP points more towards working on side projects for the sole sake of showing off over anything else, which is a particularly insidious part of "hustle culture" being normalized by a lot of "top tech advice". Especially among the younger crowd, where the market is far harsher on jobseekers and almost everyone is met with skepticism unless what they worked on almost perfectly matches what the company is already doing.
- andrewf 5y agoIn a similar vein: > > * Prefers to spend time with their family or hobbies (e.g. train for that marathon) rather than working on a side project in Github. Ha! I've encountered people whose lives revolved around running. They often fly to marathons on weekends. They'd spend mornings or evenings getting treatments from physical therapists, or cross-training with personal trainers. They spent lots of money and were in pain a lot of the time. Nobody was forcing them to do this. They weren't ever going to run fast enough to become rich or famous. They did want to beat their previous times and/or run more marathons than last year. They enjoyed a sense of community with fellow runners. Should these people receive corresponding advice about 1x marathoning? Maybe...
- qsort 5y agoI'm from Italy, very similar country, very similar work ethic. I agree that, if anything, it's people like me who are weirdly obsessive about their jobs to be the odd ones out. I have a couple drifts about that, though: - I spend 40+ hours a week in front of a terminal. That is a lot of time. Trying to do a good job and finding interest in what I do is at least in part a self-defense mechanism: if I'm invested in what I do, I'm more likely to be happy at work and have positive relations with coworkers. - It mustn't become a way to fend off productive change. Refusing new good practices "because we don't want to learn" or "because it's good enough as it is" is incredibly stupid and self-destructive. Unfortunately, there's overlap between "it's just a job" and "different = bad" attitudes. It's certainly okay if one is just in for the money, it's none of my business to investigate people's motivations. But if you want to do this job for the rest of your life, 35 years times 48 weeks a year times 40 hours a week is a lot of time, so it's not an attitude I'd necessarily encourage.
- mmarq 5y ago> I spend 40+ hours a week in front of a terminal. Italians work way more than Northern Europeans, but their salaries are significantly lower because of low productivity. This is true for any occupation, including software development.
- goldorak 5y agoI need to see those "Low productivity" numbers. I worked with ppl all around the work and I'd never seen that, what I see is companies offering lower salaries because the can in some countries, period. Anecdata: My previous team mate was Italian, a guy in his 50, former co-founder of an small Italian ISP super productive, bast amount of knowledge and working for 55k€ so.. please cut that "you get what you deserve".
- mmarq 5y agoProductivity doesn’t only depend on hard work, but also on many other factors, such as capital intensity and institutions. One example that comes to mind is that in the UK I get a new laptop every other year and whatever software licence or training I may need. My brother in Italy was given a 5 year old laptop that would crash every other hour and his budget for software and training was 0. The result is that he used to work twice as hard as me, while being half productive. EDIT: if you want data, compare the GDP for hour worked in Italy with Germany or the US: https://en.m.wikipedia.org/wiki/List_of_countries_by_labour_productivity https://en.m.wikipedia.org/wiki/List_of_countries_by_labour_...
- ratww 5y agoI agree that this work ethic is indeed healthier and with most of the list, but I want to make one caveat: a programmer working secretly after hours to deliver more is not really a 10x programmer, he's just someone doing unpaid overtime (and risking burnout). Truly 10x developers also only work 9-to-5, the same as 1x. I also disagree that continuously improving is unnecessary. It absolutely should IMO. But it should happen between 9-to-5, in the workplace.
- manmal 5y agoIs that really a thing, secretly working more to give the appearance of higher output, while not even getting paid for it? Given the little time we have on this planet, this sounds like a suboptimal use of it.
- ratww 5y agoIt definitely is. It happens with over-achievers but it also happens very frequently with under-achievers. In jobs where people have quotas it is very visible, seeing people scrambling to finish it all by the end of the month, to the detriment of their free time. But this is also the "secret" of some over-achievers. It's absolutely unhealthy.
- deleted 5y ago[deleted]
- manmal 5y agoI think I'd rather invest the extra time into OSS or a hobby project, which, even if you only do it for vanity, might even look more impressive to others.
- mywittyname 5y agoCrunch times are a thing in a lot of jobs.
- manmal 5y ago
- gamerDude 5y agoI think your first principle is applicable to all. * Work is a means to an end. A job should support the lifestyle you want to achieve, not be an end on itself. Whether a 10x programmer, a 1x programmer, a startup founder. We all have different views on what a well lived life is. Which could include being the best or prioritizing things outside work.
- _moof 5y agoI once had a boss who espoused all these principles while simultaneously telling us we needed to work nights and weekends to hit completely arbitrary deadlines. (American aerospace company.) I honestly couldn't believe what I was hearing. I stuck around just long enough to hit my cliff, buy a little stock, and then run for the hills.
- systemvoltage 5y agoYou can always raise a question (especially in a meeting where your entire team is present): “What’s driving the deadline?” And then let your boss fumble if they are making things up, aka arbitrary deadlines.
- throwaway98797 5y ago“because I say so” and now you are never getting promoted
- chii 5y agowhich is just fine, it simply means you now have a very solid reason to look for a different place with a better boss that understands what it means to plan a project and deliver value.
- systemvoltage 5y agoI think it is entirely a fair question to ask. What's driving the dealine gives team a perspective of the stake holders and what needs to be accomplished. The team collectively ought to be questioning it. Not one individual.
- emodendroket 5y agoI don't want to do excessive overtime (or overtime at all if I can help it, but I'll make an occasional allowance). But I also don't really want to be sitting around during the workday without things to do. That's its own kind of unpleasant experience, to me.
- ratww 5y ago> But I also don't really want to be sitting around during the workday without things to do. Funnily enough, that was my experience working for a FAANG and a couple startups that had just recently gotten a lot of investment money. They need 300 developers, and only the best, but they're a bit disorganised and don't have enough work for all devs. Lots of sprints finished three days earlier, lots of digging holes and filling them back. And you're 100% right that it sucks.
- waynesonfire 5y agoyou're describing an engineer that isn't taken advantage of. In my view, a 1x programming == average IQ.
- jjav 5y ago> Some will argue that one could never be a good developer following those principles. I'll argue those people need a reality check based on how things work in every other profession. My dentist is a great dentist but she works 8am-3pm and most decidedly does not spend an additional 8 hours slogging through leettooth exercises on topics barely realated to the practice of dentistry. My friend is a respected surgeon, but when he clocks out of the hospital he goes cycling and to the beach. Same goes for pretty much every professional career outside of software development. Many of those have continuous education requirements, but they are done as part of the job. For example my dentist is out several weeks a year on that, not available for appointments. So I agree with the above list, but there's nothing to apologize for in it. Working 9-5 and then completely disconnecting is the mark of a professional.
- shaftoe444 5y agoleettooth lol
- zimpenfish 5y ago> I'll argue those people need a reality check based on how things work in every other profession. Unfortunately, at least in my recent London experience, those people tend to be the ones having the yay/nay in hiring decisions.
- klipt 5y ago> My friend is a respected surgeon, but when he clocks out of the hospital he goes cycling and to the beach. But to become a surgeon, he probably had to put in ridiculous hours for years as a med student and then resident. Going through that gauntlet is what earned him the reasonable hours and good pay, by reducing his competition. Similarly the people doing leetcode are doing it to stand above the competition and make big bucks in silicon valley. The people working reasonable hours in Spain are making much less extravagant salaries. Basically the general rule is if you desire above average money, you have to put in above average effort at some point in your career. If you want to put in average effort, you have to be happy with average salary. Which is fine for many people. But you won't get FAANG/surgeon pay if you never put in above average effort.
- epolanski 5y agoIf yours is the definition of a 1x programmer then most are 0.5 ones.
- weinzierl 5y agoI fully agree with you, that it is important to keep your day job separate from the rest of your life and be able to detach yourself from work. However, I believe strongly that you can only have a happy life if you love what you do in your day job too. 9-to-5 are too many hours to be miserable and wait for end of your work day[*]. Also you spend a lot of time with your colleagues. Life is short, don't waste that time. I'm German, by the way, and I'm not sure how well my attitude fits the cliche;-) [*] Don't you have a nicer word for the end of your work day in English? In German it is called "Feierabend", where "Feier" comes from fire but means celebration and "abend" is evening. So we have a party evening every day. What an apt word.*
- BlargMcLarg 5y agoThis falls apart when there are less jobs than individuals who would be happy in that job (extrapolated to all fields and interests), or conflicting interests appear. Realism doesn't always mesh with that ideal.
- rtlfe 5y ago> I believe strongly that you can only have a happy life if you love what you do in your day job This is bad news for the huge amount of people with jobs like trash collector or grocery bagger.
- munificent 5y agoI think you're making an assumption here that menial or dirty jobs are always unrewarding, but that's not my experience. I've met many people doing the kind of jobs you describe who find it satisfying. They may love using their hands, making the world a little cleaner, helping others, or just like their coworkers. Some say they like the simplicity of a job where it's easy to tell when you did it well and you never need to take your work home with you. Some find it ennobling because of what they pay lets them do. At the same time, I've met just as many people in theoretically "good" jobs like well-paying software engineering that are utterly miserable. It's not the job, it's what the job means to you.
- systemvoltage 5y agoI’m the complete opposite as far as it can be. Work is life. I don’t want to spend a third of my life on something that’s just a “means to an end”. It is me. It is mine. It is my expression. It’s the result of everything I’ve got to give to this world. So, to each, their own. This game is better played when you have skin in the game (equity, control, recognition).
- axxto 5y ago> This game is better played when you have skin in the game I think framing a life as a "game", which implies that there is a specific goal upon which one can either "win" or "lose" is the core of your disagreement with that particular way of thinking. Some people see things as more of an open-ended, "freestyle" exercise, rather than a win-or-lose plan
- linspace 5y ago> I'm from Spain so our working ethic is different from the Anglo-Saxon world. People adapt to their environment. I don't think there is anything ethical involved. Most people have found that their best trade off is not caring too much about their careers, a byproduct of decades of incredibly low mobility inside the job market, because of high unemployment and the legal framework. This is not longer true for software, companies are hiring like crazy, salaries are going up and people are jumping ships.
- enneff 5y agoI’m Australian and I agree with your general perspective. However I disagree with this: > Strives to do a "good enough" job rather than absolute excellence. For me, one of my biggest sources of personal satisfaction is striving for excellence. Of course I have realistic expectations, there are many pressures that may ultimately prevent me from achieving excellence, but having the goal of being the best at my craft is one of the main things that gives meaning to my work.
- AA-BA-94-2A-56 5y agoI'm also Australian and let me just say; careful, this is the path to burn out. I spent much of the Easter weekend learning Go, and to me that was a solid investment of my time. I do not make a habit of coding extracurricularly though. If I want to hone my skills or work on a personal project, I'll do this in dead time during my fulltime work. As an exercise, it is better to improve your ability to get things done within the 9-5 window than to allow that to balloon into your personal time. You can still strive for excellence without running yourself fullsteam into burnoutland.
- enneff 5y agoI’ve experienced burnout. (Probably while producing a lot of the docs you consumed learning go, btw ;) Like I said, I agreed with my parent post’s points on just working 9-5 (on average I probably work less than that), but I just think it’s important to try to do things really, really well, but within the constraints of having a balanced life.
- deleted 5y ago[deleted]
- vlunkr 5y agoI've been developing professionally for about 10 years in the US, and I feel like just in that time frame, the culture is shifting more in this relaxed direction. The really intense work ethic was pushed by the startup culture. People thought they could be the next Zuckerberg. In recent times, we've seen countless startups either fail, succeed and become evil Big Tech, or fail and become evil anyways like Theranos. On top of that, when startups finally get their big payday, the developers often get screwed over, so what was all the sacrifice for? Working normal hours is just much healthier unless you really have some realistic goal that you're sprinting for.
- faangiq 5y agoVery true. 1x or 0.5x is plenty for most. Some need 100x or 1000x though.
- SergeAx 5y agoBut my side projects ARE my hobby!