7 ms·
Why no one is looking for ‘rockstar programmers’
- kubaf 13y agobeing "egoless" is a good advice for different professions, not programmers only
- piotr_b 13y agoYep! :)
- filozynka 13y agothanks to code reviews & pair-programming, dev are usually much more used to receiving immediate feedback and applying 'you are not your code' rule. Would be great if people from outside web dev could community do the same!
- lazyjones 13y agoWhy am I thinking of the fabulous career of Steve Jobs now?
- jackmaney 13y agoFrom the slides: "Which technology that is relevant today was relevant 5 years ago? Which technology that was relevant 5 years ago is relevant today?" Ruby, Python, Java, C, C++, Windows, Linux, OSX, relational databases, HTML, CSS, JavaScript, HTTP...and that's just a very short list off the top of my groggy, pre-coffee-in-the-morning head.
- iktorn 13y agofair enough but I'm fairly sure that if you traveled in time from 5y ago with a decent developer from that time he would have hard time landing a job today
- vladimirralev 13y agoThat's very hard to believe. Why do you think so?
- nikster 13y agoIn my experience the opposite is true. Some people have an easy time programming, and the specifics - libraries, languages, etc - don't matter at all. They'll pick up that new stuff in their sleep. I recently hired a Java guy after talking to him - he had all the right hallmarks so I was pretty sure he would be good. I gave him a task with a piece of software I am intimately familiar with. A good developer would have had to get up to gear for a week (40 hours), then code, test, work around the little kinks (there are many). All in all an optimistic assumption of mine would be that this task would take a brand new guy a month. The dev I hired did it in less than a week! These people are rare. They are the rockstar programmers. And if you find one, you want to hold on to them no matter what. Team players? What if the guy can do twice as much in a week than a "team" of 5 mediocre guys? To get back to your assertion, he then proceeded to learn Android and put a functioning app in the Google play store in less than a week. Granted that's still Java, but the libraries are all different and developing for mobile is also different. If I had an iOS job right now, this guy would get it, despite never having done iOS. He'd learn this in his spare time and then proceed to run circles around people who've been at it for years. That's a rockstar programmer for you.
- deleted 13y ago[deleted]
- yogo 13y agoThe notion of a rockstar is silly. I think it's somewhat common to find developers that can pickup languages in a short space of time. Once you understand the concepts of OO/procedural and functional paradigms something would be wrong if you couldn't pick up a new language in a day (plus some more time for best practices, patterns, etc.). Greenfield development is always easier than having to work with 200K LOC codebase that is crappy for all intents and purposes. Let's see how quickly a developer can jump on, wrap his/her around everything, then make significant changes and maybe I'll believe in that nonsense. Personally I think if a job ad includes the word rockstar, I would expect hot groupies and coke on the job (2 or 3 times a week to allow some time for actual work :)).
- terabytest 13y agoThe whole idea of a rockstar programmer is a weird one in my opinion. People who call themselves a "rockstar" give off a very arrogant vibe (at least to me). Even if they might be very humble when you get to know them (or open to feedback or what have you), I think the way they describe themselves still utterly trashes first impressions. This goes to say that I don't really see a point in acting like you're the best in class, if anything it puts you into more trouble when some people falsely assume they can expect big things from you. If you know your craft, just let your work speak for itself.
- dbecker 13y agoI've never heard anyone describe themself as a rockstar programmer. I just see a lot of ads for them.
- floor_ 13y agoTerrible advice from a "web programmer".
- dschiptsov 13y agoJust one word - nginx.
- v0lta 13y agoWhy? Just curious.
- dschiptsov 13y agoBecause the whole thing was made by one rock star programmer (and then polished by community). All the talk about collectivism and social responsibility in a creative process is naive nonsense. Imagine pg with rtm instead of doing whatever they think is the right thing to do with viaweb, would rather ask how other windows developers around feel about it or trying to not hurt anyone by being superior.) I don't know, it is so obvious. Van Gogh or Gaudi doesn't not care how others feel or what they think. There is just a tiny nuance - you must be above average in what you do in the first place. Mediocre who is sure he is a Steve Jobs is a very common and ridiculous situation. No works of arts were created by a crowd. Only massive construction projects. Meetings are ruining the novel views and designs. Using ones own mind, ignoring what slogans others are changing is essential. Otherwise you will end up with Java, Windows, PHP and other popular crap.
- deleted 13y ago[deleted]
- robotic 13y agoThankfully I have never heard someone call themselves a rockstar programmer.
- coldcode 13y agoWhat if you wrote code for an actual rockstar?
- tomgruner 13y agosit down, behave, program, you are a cog. I thought HN was about the desire DO something different. Create something new. Maybe this is good advice before you take that corporate job - but doesn't have much to do with hacking. T-shaped person? That term is just as nauseating as the rest of the corporate jargon that flies around in most offices.
- minimax 13y agoThe T-shaped person thing is from Valve's hiring guidelines. http://www.valvesoftware.com/company/Valve_Handbook_LowRes.pdf http://www.valvesoftware.com/company/Valve_Handbook_LowRes.p...
- codesuela 13y agotitle is not correct, just a few days ago I saw an ad for rockstar programmers: https://bitcointalk.org/index.php?topic=262775.0;topicseen https://bitcointalk.org/index.php?topic=262775.0;topicseen
- jt2190 13y agoQuite frequently, what someone says does not exactly match what they mean. When presented with with a "fact" that is very easy to contradict, like this one is, it's an indication that the author has made a poor choice of words, not that their point is without merit. In that case -- in all cases actually -- it's best to read for intent. (edit: In this case, Schmidt is arguing that although the ad might say "rockstar programmer" that that's not what they're really looking for.)
- static_typed 13y agoAvoid Brogrammers, rock stars, and anyone who advocates rails as the solution to the business problem at hand. The good programmer asks questions first. The bad one runs off and builds stuff at a whim. The good programmer gets stuff done. The bad programmer wastes time on the latest and greatest, bikesheds on whether they should rewrite everything in ruby today and go tomorrow. Avoid the bad programmers.
- theorique 13y agoWhy are brogrammers, rock stars, and rails users automatically "bad programmers"? It's possible to drink like a fratboy on the weekend and crush code from M-F.
- michaelochurch 13y agoIt's possible to drink like a fratboy on the weekend and crush code from M-F. You know what this is? This is my new fuckin' REPL. You know what that means? I'm writin' some fuckin' code tonight.
- theorique 13y agoFUCK YEAH BRO!
- heidar 13y agostatic_typed has a thing for bashing Ruby and Rails. I'm sure he/she is rewriting stuff in Python meanwhile. ;)
- beagle3 13y agoWell, I would never hire a programmer who introduces themselves as a "rockstar", but I personally know two who refer to themselves as "stunt programmers" who I'd hire in an instant if they were available (or I did something interesting enough to them that they would consider switching).
- chewxy 13y agoThe fundamentals change very little, and very slowly (barring a revolution in the theory side of things). I recently decided that my surface-skimming knowledge of lambda calculus was severely lacking, and so I picked up a few books. One of the better written books was written in 1981. That was 33 years ago. What changed 5 years ago to now, is essentially "sugar" on top of the fundamentals. One thing I did notice, especially with the node.js crowd (essentially where the "rockstar" programmer meme gained its popularity), is that a lot of old things are being re-discovered. While there may be very good arguments for re-implementing things, and re-learning things (and I do that quite a lot too), I personally do not think that re-solving the problem in the old way in a new language/framework/whatever is really worthy to be considered an achievement. And I think that is essentially what is wrong with the whole "rockstar" programmer meme. Want to be a rockstar or ninja or guru? Go dust up some old book on algorithms, and reimplement it in the trendy language of the day.
- jt2190 13y ago> ... especially with the node.js crowd (essentially where > the "rockstar" programmer meme gained its popularity)... The rockstar programmer meme is far, far older than node.js. It crops up any time the labor market for programmers becomes tight. It's a lazy way to (a) try to draw attention to your job ad, and (b) a cheap play to the reader's ego. > I personally do not think that re-solving the problem in > the old way in a new language/framework/whatever is > really worthy to be considered an achievement. Not an achievement for the world at large, perhaps, but for the individual, it is certainly an achievement.
- yareally 13y ago> Not an achievement for the world at large, perhaps, but for the individual, it is certainly an achievement. It's also a good method to learn a new language in a somewhat predictable way. One of the first things I do when learning a new language is port or use something I am already familiar with to it. That way I can concentrate on the language itself and not so much the problem the code solves.
- duncanwilcox 13y agoA single good programmer does the job of 5, and you can pay her 2x. That's not magic, it's just a very refined skill set, focus and no communication barrier of multiple people. So depending on the project, small team can be replaced by a single good programmer, or the project is just too large and you need many many people and communication infrastructure. The "rockstar" connotation is just SEO.
- sounds 13y ago"No one is looking for" ... sorry, I beg to differ. I just got the following in my inbox a few days ago. --- Hello ____, I stumbled across your profile on LinkedIn and was impressed by your background with (company) as their (tech title). I would love to chat with you about what we are building here at (startup). I am the CTO and one of the co-founders of (startup) - we are a startup with an office in (location) and we are very successful in changing the way companies do business with each other. Our customers are companies like (big companies) and many more. We are looking for help from people like you to scale our product while we grow in terms of data, processing, customers and users. Our infrastructure runs on AWS using Cassandra, MySQL, ActiveMQ, Tomcat and other technologies/services. Most of our code is in Groovy and Java leveraging Jersey, Grails, Spring, Hibernate, .... On the front-end, JQuery, Mootools and other libs and frameworks. In short: We are a fast growing startup that solves real-world business problems for huge companies with an awesome, committed and agile engineering team. If that sounds like something worth talking about I would love to get a few minutes of your time when it fits you best. Hope to hear from you. Cheers, (somebody I've never met) --- He doesn't say "rockstar programmer" in there but he should have. It would have at least brought a smile to my face. Companies _are_ still trying to sucker young kids into this kind of stuff with words like "rockstar," "ninja," "awesome," ... I know how hard it is to find talented people. I suppose an email like that has been finely honed to net the most applicants possible. But if you want _those_ kind of applicants, you're already behind.
- lnanek2 13y agoI'm constantly asked for that sort of thing. A lot of friends are at the place in life where they are higher people to work on their own personal projects, but 75% of the contractors they hire manage to make more work then they actually accomplish and somehow never finish or get anything working good. There's just huge frustration in the run of the mill programmer and people just learn to hire as good as they can. Article title doesn't make much sense.
- JamesCRR 13y agoMy experience of working with rockstar programmers tends to be woeful, they spend far too much time dousing themselves in cocaine and hooking up with groupies, their code is shambolic and occasionally they smash a computer for the hell of it. However my experience of programmer rockstars is just as bad, their stage presence is pitiful. Instead of cutting it with wild guitar solos they tend to spend to much time StackOverflowin', when we're wailing out a tune they often grimace and put on their sound cancelling headphones. Please, everyone stick to your profession.
- sanxiyn 13y agoWhy is "it was like this before my changes" a thing you should never say?
- v0land 13y agoIn case of sysadmins, those five points can be boiled down to just two: ability to learn and ethics.
- Dakuan 13y agoI dislike 'ninja programmers' even more. If you hire one, you can't complain that you never see them in the office.
- ArekDymalski 13y agoThe advice is nice, but in case of a truly constructive, non--judgemental feedback it's really hard to implement due to our communication habits. The OP himself illustrated it perfectly on the slide #8. We see a great suggestion to critique the code not the person. But in prev line we see something exactly opposite. Instead of saying "there's always someone writing code worse than yours" we see a clear judgement of the person. Yeah, feedback is hard :)
- edw519 13y agoNice post, but just a little too much corporatespeak for me. My take: 1. Be an egoless programmer. I've heard this a million times and always hated it. I lost count of the number of projects I've witnessed that were saved when someone who knew what they were doing put their ego on hold. You know what you're talking about: you have a moral responsibility to speak up and do the right thing, ego or not. I prefer, "Don't be bashful but be nice." 2. Be a team player. Oy, this sounds like something my PHB would say. I prefer, "Just do your fucking job." 3. Be a learner. Absolutely! But don't restrict your learning to technology. Learn about your customers' and users' domains. Suffer with them and their problems. You'll probably get far more milage out of that than more technology. 4. Be a T-shaped person. I like this, but again, I would add my customers' domain. Being the go-to person with deep understanding of the technology who knows how to apply it to the problem at hand is a deadly combination. 5. Be relentlessly resourceful. What does this even mean? I prefer, "The answer is always 'yes'. Sometimes, 'yes but', but always 'yes'".
- kubaf 13y ago"what does this even mean?" great explanation here: http://www.paulgraham.com/relres.html http://www.paulgraham.com/relres.html
- Shorel 13y agoAnd that's the reason these two words in the article are treated just like another buzzword, taking away all value from them, and by extension, from the article itself. By definition, someone who fits the 'relentlessly resourceful' mold, is a rockstar programmer.
- zxcvb 13y agoJesus this is a crappy comment. YOu think he used too much corporate speak? I think you used too much non professional / amateur / brogrammer speak.
- hga 13y agoThe concept of the egoless programmer, which this article is using correctly, is an old one, introduced by Jerry Weinberg in his 1971 The Psychology of Computer Programming (read it if you haven't, it's still very relevant even if we're not using punched cards anymore). Wikipedia describes it pretty well, and also notes it was in opposition to the then trendy "chief programmer" model (which I'll note was in part a response to computer time being very very expensive back then): http://en.wikipedia.org/wiki/Egoless_programming http://en.wikipedia.org/wiki/Egoless_programming I think you might be misreading it, it's all about both speaking up and accepting criticism; let me just repeat what the article says: "Remember that you are not your code. The only way to improve is to be open to feedback from others and give honest, non-judgemental feedback to others." What's bad about any of that? And while I haven't followed the "rockstar" programmer concept, the connotations of "rockstar" certainly would seem to include an unproductive amount of ego.
- RutZap 13y agoI would say that ego is something that every good programmer should have. It's not about being a rockstar or not. It's all about the code. This is what mainly defines programmers/coders/developers/makers. It is always about the code and it's never not about the code. Having the ego to believe that your code is the best makes you a good programmer; because, inevitably, somebody will come and point out that there's a bug, a flaw in your beloved creation. That's when you get annoyed, your ego is crushed... you accept it and the next time you won't mess up again. That's how you improve your skills and that's how you get to be a better developer. You shouldn't care if you're called a rockstar or not, and most certainly you shouldn't call yourself one; saying that you're a programmer should be enough! We should live in the shadows and let our code to do the talking. PS: I have the feeling that "rockstar" programmer is starting to replace the beloved "guru" as the word that makes up for one's lack of coding skills
- Cakez0r 13y agoYou don't have to have your pride crushed to learn. Just accept that there are other smart(er) people around you and seek advice rather than incite it.
- hga 13y agoThey don't even have to be smarter, they just happen to notice errors you make. Often that comes from you being too close to the code, akin to the "obvious" errors others find when you ask them to double check some prose you just wrote. I handle this by accepting that I'm a fallible human being and that the artifacts that we're constructing are way too complicated to always get right the first time. So errors in my work, as long as they're reasonably small in number, are just a reflection of that fallibility and complexity (if the number is too big that's a signal something is seriously wrong).
- swalkergibson 13y ago> Having the ego to believe that your code is the best makes you a good programmer I disagree. Whenever I am asked by somebody what the worst code they have seen lately is, I always point to my own hall of shame. Ego builds a wall around you and makes being a teammate more difficult. You essentially become unapproachable by management, and worse, by junior devs looking for guidance.
- izietto 13y agoOn HN job offerings expressions like "rockstar", "ninja", "guru", and other pompous expressions are used very often. I find it childish; I would never attempt to consider an offer expressed in this way. Being italian, I always considered my disgust due to a cultural difference: United States people tend to use a more "sensationalist" language. What do you think about it?
- michaelochurch 13y agoEgoless "team players" are pretty easy to manage, and they do a lot of the junk work without asking for much in return, but they're pretty poor strategic thinkers and they don't age well. I might not use the word "ego", but it takes a certain self-preservation instinct to keep growing a skill base in a world that doesn't give jack about your career or future. You have to take responsibility for that, and "team players" often get loaded with grunt work they don't learn much from. Obviously, there's a middle ground that's optimal. People who can't work with others at all aren't good hires, but neither are the Clueless "team player" types who top out at middle management (because people with strategic talent avoid getting stuck doing someone else's grunt work).
- hga 13y agoAh, but it's clear the author knows his stuff and is using the term "egoless programmer" as defined by Jerry Weinberg in his 1971 The Psychology of Computer Programming (http://en.wikipedia.org/wiki/Egoless_programming http://en.wikipedia.org/wiki/Egoless_programming). It has nothing to do with being "easy to mange", it means exactly what he said, and is the opposite of at least the connotations of "rockstar". Similarly, the iffiness of "rockstars" in working well in teams is legendary. I really doubt the OP has a hidden agenda of making things easier for managers.
- asloobq 13y agoI think the title is a misnomer. When I think of 'rockstar programmer' it automatically brings to mind the qualities 2-5 mentioned by the author. 2.Be a team player. 3.Be a learner. 4.Be a T-shaped person. 5.Be relentlessly resourceful.
- MetaCosm 13y agoWow, the author mixes good points with absolute crap... which make him seem less reliable and less worth listening to and sucks the wind out of his good points. I think the fundamental implication was that rockstars are primadonnas. - Why no one is looking for ‘rockstar programmers’ ... they are looking, lots of shops are looking for the 'rockstar' or carry or lead developers. These developers while being very talented can be humble, kind, and great to work with. - Egoless isn't what you want, you want separation. Ego (pride) is good, it drives you to improve. Separation is what lets you pitch an idea then allow it to be mercilessly ripped apart by your fellow developers (and even yourself). + Team Player ... yes, you want team players. + (then -) Always Be Learning ... great idea... and then he goes and backs it up with one of the stupidest points I have seen recently, the 5 year argument. Any develop worth his salt would have a long list of answers to both points. + T-shaped ... it is a generally accepted good thing ... you know some T-shaped developers might be gasp rockstars + Relentlessly Resourceful ... sure, absolutely...
- pushkargaikwad 13y agoFrom my personal experience, You don't need rockstar programmers to build great software. I also believes you need to hire people with character over skills, as skills can be build in 6 months, character can not.