8 ms·
Steve Jobs on Average vs Best Software Developers
- heifetz 14y agothat's true for any task that is mostly bound by intellect rather than something else. The cab driver can only drive so much faster / better than everyone else because he is constrained by the traffic and the car. In the case of pure intellectual pursuits like writing a novel, or painting, there is a vast difference between the masters and the average person. Same thing for programming, it's part art, part science, mostly constrained by intellect.
- danso 14y agoI'd say it applies even more to great developers. Good programming greatly multiplies a single person's work. When great developers get together and all understand a set of best practices along with bringing in unique individual talents, then their creative output will be exponentially better than a group of lesser programmers.
- heifetz 14y agowouldn't that be the case with any sort of group project? i.e. hard sciences
- WiseWeasel 14y agoThe bureaucracy in the institutions doing hard sciences eventually wears down even the sharpest mind.
- mahyarm 14y agoI'd say programming is most constrained by politics, management & technical debt.
- prezjordan 14y agoOff-topic, this is one of the most readable sites I've ever visited. What is it, exactly, that makes that typesetting so pleasing to the eye?
- alexpenny 14y agoFive reasons: 1. Proper line height 2. #404040 for text color instead of #000 3. webkit-font-smoothing: antialiased; 4. text-rendering: optimizeLegibility; 5. Steve Jobs quote Wow is this guy a designer?
- tjsnyder 14y agoA designer would probably be a bit more consistent with the vertical grid. For instance, the margins are inconsistent with the line height etc.
- Danieru 14y agoIt's a standard open source wordpress theme, one of the popular ones: https://wordpress.org/extend/themes/responsive https://wordpress.org/extend/themes/responsive
- keiferski 14y agoMy guess is that the color: is set to #404040, not black. Most people aren't aware that pure black is hard on the eyes; a slightly grey black is much more readable.
- pessimist 14y agoI think this 100x rule is not unique to software. Consider athletes for example. The best athletes are much much better than the merely very good. For example, the top tennis player would defeat the 500th best every single time barely losing a single game. And the world no. 500 would defeat a good amateur 6-0 6-0 (as David Foster Wallace found out).
- AngryParsley 14y agoI think you're right about the disparity applying elsewhere, but I disagree with your example of athletes. Beating an opponent consistently is not the same as beating an opponent by a factor of 50. For example: I'm no sprinter, but Usain Bolt runs less than 2x faster than me. And there are thousands of athletes who are a few percent slower than the best. They don't even get to the Olympic qualifiers. On the other hand, I've seen productivity vary drastically among knowledge workers. It would be interesting to see studies involving actual numbers, since I think 10x between average and best is an exaggeration. Worst and best, maybe. But a lot of that is because the worst programmers can cause more problems than they solve.
- daeken 14y agoI'd argue that in the case of something like sprinting, looking at it in a linear way isn't going to get you much. I don't know much about it, but it seems to me that every time you cut X seconds off your time, it's that much harder to get down to X2. If you looked at it from some sort of a logarithmic basis, I find it really unlikely that Usain Bolt is just* 2x faster than you.
- AngryParsley 14y ago(I'm not really sure why I felt the need to write this rant. It was an itch I had to scratch.) It may surprise you, but healthy adults don't differ much in terms of physical ability. If you measure watts output or steps per second or anything quantifiable, it's going to be less than an order of magnitude difference, never mind a 100x difference. I can run 100 meters in 15 seconds. That's 6.7 meters per second. Usain Bolt can run 100 meters in 9 seconds. That's 11 meters per second. 11.11/6.67 = 1.67 times faster. If Usain could somehow cut 5 seconds off his time and do a 4-second 100 meter dash, he'd be moving along at 25 meters per second. That isn't quite 4x faster than me. Such a feat would certainly be much more than 4 times as impressive as me running, but it wouldn't be more than 4 times as fast. If you used some other yardstick, you could come up with some other number. Usain Bolt is the fastest sprinter alive. That makes him one in 7 billion. There are likely millions of faster runners than me. I'm maybe one in 100. 7 billion divided by 100 is 70 million, therefore Usain Bolt is 70 million times better at sprinting than me. Sound silly? I think so too. When measuring programming ability, we don't grade on a curve. It doesn't matter how much (or little) effort you had to expend. All that matters is the result and how long it took.
- rodp 14y agoI believe there are many A players who perform on B or C level because they are managed by B or C players. Steve Jobs was an A-level CEO, who knew how to inspire his employees and ignite their potential to be 50 or 100 better. Not many CEOs are like that. If an A-level developer can perform 50x or 100x better than average, I'd guess that an A-level CEO can perform 500x or 1000x better.
- saddino 14y agoIMO truly great developers are not just developers. They are also software architects, UX and UI designers, network engineers, etc. "A" developers knock down learning curves and assimilate everything about software creation innately.
- taligent 14y agoThis is absolutely the right answer. I would add that the BEST developers are those that have some business or project management background. That way they can put what they are doing in the greater context of the organisation. As well as add a lot more weighting to maintainability and future flexibility over the "latest cool thing".
- philwelch 14y agoAt this point you're getting a little overgeneral, I think. One of Steve Jobs' A players was undoubtedly Bill Atkinson, but what he lacked in business knowledge, he more than made up for in technical skills. If you're an A player working in one of Intel or Microsoft's compilers teams, you win based on deep technical knowledge, not understanding the "greater context of the organisation".
- ksolanki 14y agoI think there is a lot of talk about hiring an "A" developer, but almost nothing on what makes an A developer an A developer. More likely than not, it a continuum, and that a lot of engineers have the potential to be an A, but don't end up getting there due to one reason or another. It would be great to see some discussion on what environment could one provide that would enable A players to thrive and reach their potential.
- sliverstorm 14y agoIt would be great to see some discussion on what environment could one provide that would enable A players to thrive and reach their potential. Pay them enough, give them an interesting problem, and lock them in a room with a bunch of other A players
- benlakey 14y agoPay is actually quite low on the list of things that a great developer will value when choosing where to work. And I think it's dangerous to just lock the A players in a room amongst themselves; they need to communicate closely with others in the organization, otherwise the value they try and add might be missing the target.
- sliverstorm 14y agoThat's why I said "enough", not "a lot". Everybody has to eat food, have a place to sleep, etc. I know, I was being somewhat facetious. More what I mean is, put them in a tight-knit group, and you are right- it is very important they interact with the rest of the organization too.
- sigkill 14y agoMost important don't drown them in office politics or unnecessary paperwork.
- codeonfire 14y agoit is someone who is working nights and weekends unbeknownst to whoever is grading developers. It's easy to create the rockstar illusion over a short time. Other times it is money bias. If a dev makes a lot of money for someone they are considered an A developer without regard to ability.
- zwieback 14y agoWe hear this a lot and somehow feel it's true but there are no reliable metrics and little verifiable data so ultimately it's just talk.
- omgsean 14y agoAgreed, I'm getting kind of sick of these articles. It's like if the developer community here started posting fluff pieces about how you need to use the best programming languages and the most optimized frameworks. Maybe I'm out of step with the recruiting community but are there people who are sitting around going "let's round up some really mediocre candidates?"
- yen223 14y ago[Maybe I'm out of step with the recruiting community but are there people who are sitting around going "let's round up some really mediocre candidates?"] There are a lot of people going "let's round up the cheapest candidates we can find". Said cheap developers will eventually wind up costing the company more than they make back.
- PakG1 14y agoWhen you just need some CRUD stuff made in various spots of your big company, mediocre will be just fine. Yes, there are people who are sitting around doing this.
- ShirtlessRod 14y agoHire the best programmers? Why didn't I think of that?
- fooooobar 14y agoBecause you obviously aren't an A programmer. :P
- state 14y agoI agree. The more that this sentiment gets institutionalized the less value it has. Statements without a clear counterargument are always bothersome. Would someone like to make the argument for hiring B developers to build a great product? Jobs is great, but this is exactly the kind of quoting that I find really boring and annoying. As a side note, it looks like that video is also available on YouTube: http://www.youtube.com/watch?v=2nMD6sjAe8I http://www.youtube.com/watch?v=2nMD6sjAe8I
- oacgnol 14y agoA bit of a meta question: As someone who feels like a 'B' or even 'C' at times, what would it take to become an 'A' player? Is it predicated on pure talent alone, hard work, or experience? Even though I know I'm still a junior developer (~1 yr exp), I feel hopeless at times that I'll never approach being 'A' status especially knowing that I have many peers my age that are already far and away better than me. How would I overcome that?
- asto 14y agoI'm where oacgnol is at too. Just as an addendum to what he said, are there any pro programmers here who went from C to A? How much time did this take you? I feel like I struggled way too much to much to get basic computing concepts - netmasks, bitshifts, c pointers... Don't even get me started on how much javascript confounds me! :-D
- michaelpinto 14y agoKey question: Are your peers better than you due to experience or talent? In other words have they also been doing this for a year or several years? If they've been doing it for several years even though they're the same age as you they aren't your peers. By the way I suggest you check out the 10,000 hour rule: http://www.gladwell.com/outliers/outliers_excerpt1.html http://www.gladwell.com/outliers/outliers_excerpt1.html
- alwold 14y agoMy experience is somewhat limited to places that probably don't have the best developers in the world, but I think one of the major things I've noticed in people that I would consider to be mediocre programmers is a lack of desire to understand how something works. They just want to get the thing they need to work, and often times this lack of desire to understand how something works extends to their own code. If you strive to understand how your own code works, you will be much more likely to notice the bugs as you think through the flow. Early on when I was learning to program, I had a very strong curiosity that made me want to understand how everything works. I think if you have that natural curiosity, it is the easiest way to become a better programmer. As I've gotten older, though, that has waned. In response, I've tried to build habits of investigating things and trying to learn about them when I don't understand them. It is tempting to just use google to find the answer, or "shotgun" it by trying all kinds of random things before you get it to work, but learning how it works is always the best, and it will pay off later. So, I guess my main point here is to just keep tinkering and reading and getting your head wrapped around all these things so that you understand them well. Then things will eventually become "easy" and intuitive.
- stillmotion 14y agoHis response reminds me a lot of what I have read in Valve's employee handbook (http://newcdn.flamehaus.com/Valve_Handbook_LowRes.pdf http://newcdn.flamehaus.com/Valve_Handbook_LowRes.pdf) in regards to their developer culture. By what I understand, Valve has established a self policing system in which every employee has complete autonomy over what they decide to work on or contribute to. Gabe Newell is emphatic about the flat hierarchy of Valve and its peer-review system that replaces the need for managers. I've struggled to understand why this has been successful for them as an influential video game company, but it appears Jobs' insight underlines a similar truth. Good developers are not only great problem solvers, but managers in themselves that comprehend the work needed to be done and are willing to work with those smarter than themselves to see it done.
- InclinedPlane 14y agoLook at the story that was kicked around recently about the fired apple developer who snuck back in to complete his work. That's the way the best developers are. They are intensely passionate about their work, and very self-driven. You can't get them to stop working on projects they care about.
- benlakey 14y agoThis is also how GitHub operates, but it's only viable if you have 100% 'A' players.
- deleted 14y ago[deleted]
- 6ren 14y ago> it used to be the case in hardware I think it's fair to say that Woz was a 50:1 or 100:1 guy. Jobs isn't saying A players are as common as straight-A students (it comes across that they are extraordinarily rare; it takes "incredible work" to find them), it's just that (as he plainly states), unlike in most other fields, instead of performing 30% better or twice as well, they can do x50 or x100 times as well. Perhaps better examples are fields where output scales easily: e.g. one novelist can sell many more books than another. This performance is not related to not how quickly they type, but what they type. It reflects the old idea of "I'm sorry to write you such a long letter, I didn't have time to write a shorter one". The hard bit is in asking the right question, seeing the problem in the right way, redefining the problem - then, solving it is (comparatively) easy. It's about understanding what the problem actually is. Then, things can become radically simpler. Any sufficiently advanced understanding, if implemented as a technology, is indistinguishable from magic. Programming dramatically rewards such understanding, because understanding can be realized so easily implemented in a working technology (i.e. a program).
- chrischen 14y agoSo what do B and C developers do? Not everyone can be in the A tier. Wouldn't a better strategy for society be to focus on extracting maximum value and output from people of all capabilities? Just pay less capable people less, and give them smaller responsibilities.
- jmsduran 14y ago> "So what do B and C developers do?" Strive to be A developers. Sorry if it sounds too harsh, I personally classify myself as a B developer.
- chrischen 14y agoSure but the reality is that there will always be B and C people, and sorry if it sounds harsh, but some people will never achieve A status. Someone's going to have to give them something productive to do.
- tjmc 14y agoSo what do B and C developers do? I suspect the ones at Apple develop iTunes for Windows
- sjwright 14y agoIt's funny because it's true.
- synotic 14y agoI think it depends on what you're trying to achieve. For example if you're trying to pull off the iPhone in one year with 5 guys, it makes sense to spend time finding the best guys. You can also try to find 15-20 decent guys, but there are benefits to smaller teams — lower communication cost, a potential compounding effect when smart people work together, etc…
- benlakey 14y agoYou're implying that what's being discussed is a zero sum problem. We're simply saying that 'A' players work best with 'A' players, and if you fight for that in your organization then you'll do great things. 'B' and 'C' players will still exist, absolutely, but you'd do well to avoid them when possible.
- kamaal 14y agoOne of my mentors(Who also happens to be my Uncle) is a great guy. He is great Start upper, who has done some amazing things in Embedded electronics space. While making tons of money. A while back, I saw him fixing some bugs in the code. I saw he had an editor open(Notepad basically). And I was like 'You still code?'. And he replied yeah, I like to do this work sometimes, sometimes not always. He told me he was not a very great programmer, but he had the quality 'To convert time into something which is useful and sell-able'. You will need to be good at programming to do that, but you don't have to be too great. I think his advice and what I could take from him was, Never go fancy and too much into the tool religion. Begin with the end in mind, and execute. Do what it takes to achieve something. Be productive, plan and work on focused goals. Track and review your course. Getting a time table helps. Provided you are productive you can learn and do anything. Focus on the big picture and try to solve problems that matter. What will it take to be a great programmers. Its just the same thing that would take to be with any other profession. You have to just execute like crazy until you win. Shipping and problems solved count. Everything else(Blogs, tweets, whining etc noise) is pointless.
- andrewljohnson 14y agoIs the meta-leaning here that you should not hire programmers in the Bay Area, until you can pay $120-200K + stock for experienced guys, and 80-90K for top college grads? Maybe that sets a hard target when you know to grow your start-up to the third developer, when bootstrapping. Can you pay someone 100-200k per year? Time to grow.
- pbreit 14y agoNo. For one, that was said 10 or 15 years ago and things change. Second, talented engineers (like everyone) value a variety of things other than money. Finally, other competencies are becoming as important or more so than raw engineering for a lot of companies.
- benlakey 14y agoAgree. Financial compensation is actually often much lower on the list of things software developers value at a company, particularly when they are 'A' players. Solving problems, working with other 'A' players, and stretching ones abilities become more important. You do have to pay competitively though.
- nandemo 14y agoI think "you have to pay competitively" is true and pretty much negates the claim that financial compensation is low priority.
- nothacker 14y agoApple has shown through the software and APIs I've used that they aren't all 'A's. This is just Jobs having spewed his normal visionary talk. It makes for great conversation and something that is nice to consider, and having a goal of hiring someone great is awesome. There is nothing wrong with continuing to utilize his vision to promote good of some sort. But, I have enough experience to know that there are no 'A' developers that stay that way. People burn out, lose drive, get kids, get sleep apnea, go though a mid-life crisis, and get tired. So, unless you are firing the old 'A's, they will be 'B's then 'C's, etc. Also, hiring 'A's is incredibly difficult. If you don't have an 'A' company, 'A' benefits, an 'A' location or offer full-time telecommuting, 'A' tools, and 'A' staff working on 'A' products/projects, then if you think you got an 'A', you probably didn't. And you can be 'C' and hire an 'A' and that 'A', if he or she stays, will atrophy and become a 'B', 'C', or worse. 'A's need to be motivated by their work just like anyone else. Jony Ives said recently that what he is working on now is what he is most proud of. He didn't say that because he is an 'A', and because he is inherently motivated on his own and could do that for a 'C' company. For a 'C' company, his work might have been shit and he might have been likely to piss on his designs, because of the bureaucracy and other crap he would've had to have put up with daily. The point I'm getting at is that you need to hire someone that is a good fit for the work, the hours, the environment, who genuinely likes it and loves what they do and doesn't just have a crush on some ideal in their head about your company. This person can rise the the job you give them, they don't have to be an 'A'. And hire what you need. Don't hire young because they are cheap and expendable if you need experienced and well-networked people, and don't hire someone with loads of experience if you can get an entry/junior/mid-level to do the same job and be more motivated, even if they make more mistakes. The best thing that you can do is to spend a lot of time coming up with a good process to hire. Also, do NOT and I really mean do NOT just get some basic programming test off the net and then use that as the interview, and do NOT totally make the candidate feel like an idiot. Both will make people remember your company as "those idiots/bastards who...", which you don't want. Case in point is Google- their interviews were so hard, people didn't even attempt to interview there after hearing about them. That is not good.
- aik 14y agoThe most important thing when trying to become an 'A' player in anything is to always ensure you're engaging in deliberate practice. The simple truth is that a very large majority of people switch to auto-pilot or stay within their comfort zone as soon as they become proficient at something. It's easy to think that the existing 'A' players were just born that way, when in fact they probably spent thousands of hours in deliberate practice. It's very hard to find an exception to this. So if you do want to become an 'A' player: - Figure out a way to always be deliberately practicing. - Always be aware of whether you're doing something because you've always done it, or whether because it actually is the best way. - Be around other 'A' players and learn from them. - Continually stretch beyond your comfort/"knowledge" zone. - Continually learn new things. ----- Some reading material on the topic: Bounce by Matthew Syed Talent is Overrated by Geoff Colvin
- xiaoma 14y agoYou can see the Lost Interviews on Youku: http://v.youku.com/v_show/id_XMzU4OTExMjY0.html http://v.youku.com/v_show/id_XMzU4OTExMjY0.html http://v.youku.com/v_show/id_XMzU4OTExNjEy.html http://v.youku.com/v_show/id_XMzU4OTExNjEy.html http://v.youku.com/v_show/id_XMzU4OTExMzk2.html http://v.youku.com/v_show/id_XMzU4OTExMzk2.html http://v.youku.com/v_show/id_XMzU4OTExMjIw.html http://v.youku.com/v_show/id_XMzU4OTExMjIw.html http://v.youku.com/v_show/id_XMzU4OTEwOTcy.html http://v.youku.com/v_show/id_XMzU4OTEwOTcy.html ...
- benlakey 14y agoYou can also see them here: http://www.amazon.com/gp/product/B008GJVAW4/ref=as_li_ss_tl?ie=UTF8&tag=benlakeycom-20&linkCode=as2&camp=1789&creative=390957&creativeASIN=B008GJVAW4 http://www.amazon.com/gp/product/B008GJVAW4/ref=as_li_ss_tl?...
- rizzom5000 14y agoAs much as I enjoy the hilarity of psuedoscience and anecdotal evidence - this oft-repeated plug has become tiring. Will someone (other than Steve McConnell) who parrots these numbers ad nauseum please provide some evidence for your claims? Really, the best car is only 20% better than the average car? In what way? Define the best? Please, go on, explain your methodology. Do the people who continue to spew forth this gibberish actually claim to have education and credentials of a scientific persuasion? Do they actually consider themselves professionals in a field that requires logical and critical thinking skills? Barf!
- mkramlich 14y agoConsidering this is a man who's built one of the world's most successful computer software and hardware companies, I think it's safe to say he knows whereof he speaks. And we can put this question to rest. And I think the exact number or ratio is not important, and probably not measureable. But I bet anyone who's been around long enough, exposed to wide enough variety of programmers, will agree that there is a wide range of skill & talent. But of course when it comes to pay, salary-wise, working for somebody else, there really isn't. And that's a shame. Or at least an inefficiency.
- rizzom5000 14y agoI admire and respect Steve Jobs as a businessman. I don't admire and respect him as an engineer, and certainly don't admire and respect him as a scientist. The differences are subtle and staggering all at once. I disagree that the question can be put to rest. Your logic follows from a fallacy known as 'Argument from Authority' or 'argumentum ad verecundiam'. I understand that the comments on this board are derived from a wide variety of individuals, where there is a wide range of skill and talent. I completely agree with your 2nd paragraph.
- mkramlich 14y agoDon't think in terms of "the rules of debate". Think in terms of evidence, experience and analysis. What I'm saying, and I think the place that Steve Jobs was speaking from, and I think others are speaking from, is from actual direct experience with lots of folks in the real world. Forget proper "data". Forget authority, personally. What I was saying was, look, for the folks that do need an appeal to authority (because they have no experience themselves, or can't do the analysis themselves) the Jobs quote should be money for them. And it doesn't matter whether Jobs was an engineer or not. He worked closely with and led, and hired/fired hundreds of engineers over the years, starting with the Woz himself, and so he's seen firsthand the variety out there in terms of talent, knowledge, skill, attitude, work ethic, etc. It's irrelevant whether he's an engineer or scientist. By being an entrepreneurial business guy in the computer field over the course of 30+ years, at the helm of a company that "kicked ass and took names" in at least two distinct periods under his watch, there's a reasonable case to be made that he knows whereof he speaks. Could he be wrong? Could he be stupid? That's not the smart way to bet. Also, related: one doesn't need to cite data or academic papers or construct airtight debate-worthy logical arguments to reach conclusions like, gosh, pizza comes in a wide variety of topping mixes, flavors and quality levels. Just experience a bunch of different pizza over the years! Done. :)
- greggman 14y agoVideo Game artists are 50 to 1, best to average. I've worked with 4-5 of best and 50-100 of the average. The best are prolific, get stuff done on or ahead of time and follow every technical detail required. They are technical enough to know what's needed to accomplish a given goal without needing to be hand held. Whether it's thinking through all the tiles need for a tile based 3/4 perspective game for making something beautiful with a limited polygon and/or texture budget. They really do get way more done than the average artist. Unfortunately there just aren't enough of them so we do the best we can to help the average ones be as productive as possible and keep hoping to find more of the amazing ones.
- DaniFong 14y agoI think it's not the right metaphor. In class, the difference between an A and a B is 10%. In, say, Chess, the difference between a master and a grandmaster is that a grandmaster will win almost every time. I think that's a better scale.
- thomasjoulin 14y agoI've been a developer for more than five years now, and I met a lot of brillant people that are more than a 100 times better than me. I also saw code and people that are so bad that I would qualify as a A player... Compared to them. I'm probably more than a 100 times better than them. So in my opinion, in software development, there is a much wider range than 100:1, and if you feel like you're an 'A' player, you're probably overestimating yourself. Likewise, if you feel you're a 'C' player and are worried about it, don't worry too much, go on StackOverflow, answer question, learn to get better, and be confident that maybe you're not an 'A' player, but you're pretty good and will be a 100 times better by next year.
- lollancf37 14y agoWhat amazed in those kind of post, is that people who actually work in the industry are not bother by the actual lack of evidence in those kind of claim. I respect the opinion of Ben Lakey and Steve Jobs but they are opinions not laws. I mean seriously, regardless of the job or the level of awesomness of someone, who likes to work with incompetent collegues ????? They are thousands of bad developpers out there ? Seriously ? How do you judge ?? How do you know ?? Personally I know tons of developpers who works on awesome things at home but do shit at work 365 days a year. Simply because that is what is required of them. Careful here, I am not saying that, this is the case for everyone and that I have explained everything. I'm just saying that it will be nice if in our industry we stopped putting so much ego in everything we are doing. If you are a A, A+, A++, S++X37 developper good for you, truly. From my little experience ( ~= 5 years ) there is not much state of the art project going on in the industry. Most project sucks from a technical point of view. Also from my little experience, recruitment is fucking hard. Ask Google.
- lollancf37 14y agoYou'll notice that I didn't talk about managment and the value that companies put (or don't put) in IT ...
- diminium 14y agoPlus A players have a tendency to care a lot more about their own knowledge that it allowed Steve Jobs to yell at them to improve their efficiency. If Jobs yelled at a typical B player or corporate drone, they would just take it and go on and maybe sit at the bar wallowing in their sorrows. With A players, Jobs would tap into their insecurity that they might not be smart enough causing them to want to learn more to close that insecurity which then allows then to produce a better product. Their fear that they may not be smart enough would cause them to become even smarter. Jobs needed A players otherwise his "motivational techniques" would fall flat.
- sjwright 14y agoAnyone who aspires to do their job better, wants to learn, hangs out in places like Hacker News and Stack Exchange, takes an interest in at least reading about new ideas, loves what they do, and has an upbeat attitude... ...anyone who ticks all these boxes is at least a B+ player in my book.
- jasonkolb 14y agoI normally don't participate in these threads, but I watched the interview yesterday and I think Steve Jobs did a masterful job of explaining this phenomenon and it is getting lost in this conversation. Fundamentally, and he talks about this, computer programming is a way of encapsulating _your thinking_ in code. You are transferring your thought processes into computer code. A computer program is, quite logically, an encapsulated and packaged thought process. I don't think anyone can or should try to argue that everyone thinks the same. Hence, not everyone's code is the same. And it follows that some people's thought processes are more efficient or better structured than others. These are the 50x'ers and 100x'ers. The A players. And I feel that just understanding that what you are doing is packaging your thought processes helps immensely in becoming more efficient, just because of the way you approach the problem. People who are the 50x'ers, or 100x'ers, just solve problems very efficiently and are very good at packaging that problem solving logic in code. They are probably not as good as the 1x'ers in other areas of life--perhaps they are not as good at loving people, or raising children, or writing, whatever. They can be (and in my experience often are) not as good at a million other areas of life, many of which are far more important than programming. But they are very good at problem solving and transferring that problem solving logic into computer code. I agree with Steve.
- nahname 14y agoThe hard problems in software are not adding features or coming up with crafty efficient solutions. That is actually quite easy and I am constantly surprised how mediocre to poor developers can consistently come up with workable solutions. The hard problem in software is writing code others can use. Everyone can write a solution that makes sense to themselves. Few can write one that makes sense to other developers. People who write code professionally will know what I mean. When you get someone else's work and realize it is better than anything you could have come up with. Not because it is extremely complex, but because it is perfectly simple. I completely agree that people do not think the same. Where you went wrong is in believing an individuals thought process takes precedence over a teams. That is exactly the opposite of what is required and what software development spends a lot of time battling against.
- 14y ago