8 ms·
Put Yourself Out There: The Myth of the Genius Programmer
- alexandere 12y agooff topic: I missed this kind of talk at the last two google io's
- warcode 12y agoBut to get hired in the first place you have to show overconfidence in your knowledge and abilities. Slightly annoying how that works.
- davis 12y agoI disagree. I could concede and agree that a bit of confidence is needed, but certainly not overconfidence.
- dspillett 12y agoAye: good experience breads opportunities to gain good experience. Though depending where you are starting from and trying to head to, there are ways that you can try to short-circuit this. If trying to move sideways into a technical role from another (or something else entirely) for instance then taking professional certifications in your own time can be useful for proving to a potential new employer that you really know+understand the skill that you believe you might have. The trick is finding something that actually means something to your target, which can be a black art (in the Microsoft ecosystem for instance the MCSA and MCSE qualifications can mean a lot to some, but little to others, and sometimes nothing without some commercial experience to back it up). > overconfidence I don't think this is about promoting overconfidence, more avoiding the underconfidence that comes from misjudging how capable other people are relative to yourself.
- deleted 12y ago[deleted]
- opendais 12y ago> But to get hired in the first place you have to show overconfidence in your knowledge and abilities. I've had interviewers literally tell me that "Ya, that was a trick question to see if you thought you were god's gift to programming. The fact you didn't rate yourself a 9 or 10 proves that you are sensible." So I'm not sure that is true. I think it is a question of being confident enough that you don't second guess yourself yet humble enough that people don't think you have an ego that will cause workplace drama.
- lostcolony 12y agoI've asked that. "On a scale of 1 to 10, how fluent do you feel in X?" And the questions asked get partially tailored to that. Anyone answering 9 or 10 is in for it.
- opendais 12y agoI'm sure it is different between interviewers. I was just providing an anecdote where it could be a bad idea. I'm pretty sure the reason I elicited that reaction was I have a statement on my resume about a project I work on at my current job that handles as many transactions [in terms of $$] as that entire company does. That is just a guess on my part tho.
- icambron 12y agoI'm genuinely curious what you're testing with that. Is the idea to see how their scale of fluency matches up with yours, or to see if--assuming they use a reasonably similar scale as you--their self-evaluation if is accurate? If it's the latter, I agree overconfidence is a shortcoming, but it seems odd to structure the interview around sussing that out, especially given that the candidate may be only artificially overconfident because they think that's good for interviews. It feels more like a "gotcha!" than a genuine attempt to determine the candidate's quality. If it's the former (finding out what the candidate thinks "really good at X" means), that sounds interesting, but I don't quite get it.
- lostcolony 12y ago
- lostcolony 12y agoI've noticed that isn't always true. I've sat on the other side of the interview desk, as it were, and one of the things that was always, ALWAYS a red flag, was someone speaking with too much confidence about themselves. Obviously, yes, an interviewer prefers someone who knows the answers to every question asked. But an honest "I don't know/am not sure, but I think..." is a much, MUCH better answer than trying to bluff. If you're right after prefacing it with that, it's nearly as good as having bluffed correctly (the interviewer knows you didn't know or were not sure, but your knowledge of the tech is sufficiently good for you to deduce what unfamiliar constructs do), and if you're wrong, it counts nowhere nearly as badly against you as if you bluffed incorrectly (as you at least are showing you know and admit to what you don't know). Now, obviously this is also partly dependent on the level of knowledge needed to answer the question. If you are, say, applying for a Java job and don't know what private means, you're probably not getting the job. But if you're applying for a Java job, and are asked for the difference between soft, weak, and phantom references, and respond "I'm not sure...I know the first two have to do with keeping references to objects that should not prevent garbage collection, like when adding items to a cache or something, but I don't remember the difference between them, I'd need to look that up. And I've never heard of a phantom reference", and then asking about them if there are no follow up questions, is still pretty damn good. And "I don't know; I'd imagine from the name they have to do with referencing an object in a way opaque to the garbage collector?" is also very good. "I don't know" is okay, it just might mean we'd not be willing to hire you on as a senior dev, but if you nail everything else maybe one level below that.
- Swizec 12y ago> "I don't know/am not sure, but I think..." Coincidentally, this answer takes more confidence than bluffing. Bluffing is actually a signal of low confidence in a person. Too afraid to be wrong.
- icambron 12y agoA bit off-topic, but I've always avoided language-familiarity questions. If a candidate has coded a lot of, say, Java, then I do expect them to know the details and their importance, mostly because I expect people to care about the tools they use. But to begin with, I don't at all mind hiring people who have literally never once coded in the programming language my team uses. They'll learn, and that investment is worth it. Moreover, I suspect that trying to connect "how well do they understand Java's reference system?" directly to "what seniority of engineer should this person be?" is not very wise. The things to optimize for in a senior engineer are problem solving skills, organization, experience and comfort with technical tradeoffs, architectural wisdom, and so on. Over the course of the next, say, two years, you'll get a lot more mileage out of that; having deep familiarity with your language of choice is just a bonus.
- josephschmoe 12y agoThe two are not mutually exclusive. You can be overconfident and ask for help. I mean - I'm an expert on what I know, not what I don't know, ya know?
- laichzeit0 12y agoFabrice Bellard seems to me an outlier to the author's premise. He's like the very definition of a hermit genius-programmer.
- davis 12y agoWell of course there will always be outliers =]. I prefer the Satoshi Nakamoto outlier myself.
- smrtinsert 12y agoI can think of a ton of programmers that have single handled changed our profession, Linus, ESR, DHH, Doug Cutting, Brendan Eich, James Gosling.. I dunno, I don't think it's really that rare at all.
- drhayes9 12y agoOut of how many programmers in the world, ever? They're basically statistical noise against the backdrop of all coders everywhere. As a sidenote, I'd put Grace Hopper up there instead of DHH, and Dennis Ritchie and Ken Thomopson seem to be missing. ; )
- balls187 12y agoJohn Carmack. He's not a hermit, but definitely a genius programmer who has built things by himself without putting himself "out there."
- bambax 12y agoI started a blog some years ago and here's what happened: nothing.
- wuliwong 12y agohahah, that's pretty funny. I've done some blogging myself and had no traction. The main reason i did it was to document progress of the startup I was building. Would be investors could check out the blog and get a high level view of my thinking and my output. I guess it isn't a terrible idea, if my startup had interest from investors, I think it would have been useful. It was just a wordpress blog, so it didn't take tons of time to maintain. But, I feel like the heart of the matter is, my startup didn't have much traction. And if it did, I don't believe this blog would have been a make or break factor in an investor deciding to invest. In my current venture, I just tweet and send emails when a new feature is released. It basically serves the same purpose and takes mere minutes to produce.
- brickcap 12y agoI have started to enjoy nothing happening to my blog. Since I am sure that nobody actually reads my blog I write fearlessly. Some times the posts are so silly that I would have been embarrassed if some one actually read it. Any way I go back to my old posts from time to time and have a good laugh about them. Nothing is the best thing that has happened to my blog.
- nsxwolf 12y agoSame. I always think someone is going to see it and laugh... "Oh, that's so cute! You tried."
- adolgert 12y agoMy recent favorite reminder of why I need others in order to program well is the list of things I am unqualified to say about my own work, including, but not limited to - Is the user interface intuitive? - Will this library be efficient for its most common uses? - Have I given the simplest explanation for what this thing I wrote does? It helps to be able to say, "I can't know that yet, not until I ask someone." That might happen in use cases, watching over someone's shoulder, showing a conference poster, or getting complaints on a message board two years later, but it's always collaborative, even when I have my act together.
- danielweber 12y agoI have a lot of ideas, many of them good, some great, but quite a few are horrible. Just one person to bounce them off of (and who isn't afraid to say "no") is incredibly valuable.
- mattgreenrocks 12y agoThis meme of "do things and blog about it" presumes a certain amount of extroversion. I'm rather fed up with it altogether. Would you rather be thought of as the best developer, or actually be the best developer? The two aren't mutually exclusive, but I find it entirely suspicious that the rise in needing to "put yourself out there" has correlated so strongly with social media becoming pervasive. If I have a finite amount of time available for hacking, why do I want to spend a not-insignificant amount of it signaling? Hacker culture has been corrupted by this 'need' for influence. Perhaps it isn't the same as the neckbeard culture I looked forward to joining in my youth.
- danielweber 12y agoCan't I just spend an evening decoding a binary format? When I'm done, can't I just put it on a wikia without sitting around to make sure my name stays attached to it?
- mattgreenrocks 12y agoIf you did that, how would people know to follow you on Twitter?
- Swizec 12y agoThe meme used to be "do things and publish in journals about it" now it's blogging because that's easier. But it's always been important to put yourself out there if you wanted others to use your work.
- sfk 12y agoI share your sentiment, and this quote (attributed to Margaret Thatcher) may be relevant: "Being powerful is like being a lady. If you have to tell people you are, you aren't."
- j45 12y agoHave you considered blogging to be not about extroversion but instead just being a personal journal that is public? I think the type of blog you are referring to desires to engage others, while a blog that is indexable simply there to add value for other who might be trying to figure their way through the same random things that you have been.
- Thiz 12y agoThose who can't code, blog.
- TacticalCoder 12y agoWhy do people who mention Linus Torvalds, Theo de Raadt, Rich Hickey, Fabrice Bellard, Simon Peyton Jones, Satoshi Nakamoto (ok, that may be several people) etc. get downvoted to oblivion? This seems especially weird seen most people here are using Git and many of the things we have wouldn't exist without these people. If I'm not mistaken Rich Hickey took one or two years off, pulled the plug and went on to create Clojure. Saying "But that's only one in ten million" ain't an argument: there are genius programmers out there and we're all using daily piece of code from these genius programmers. Watching videos from Linus Torvalds (the talk about Git he gave at Google is amazing), Theo de Raadt (anything about security), Rich Hickey, Simon Peyton Jones, etc. is one of the thing I prefer to do. I've also personally met several genius programmers: including one who had been working on at Adobe and who (while not at Adobe anymore) then single-handedly wrote a Java bytecode to Objective-C source code converter. I know for a fact that this converter allowed to write an app which reached top 3 in the appstore. I've also competed ten years ago or so versus plain geniuses in the TopCoder algorithmic competition. Some of the best ranked coder there had incredible achievements, like for one of them having won the mathematics olympiad several times. That's the thing: even "one in ten million" means that there are quite a few genius programmers out there among us. And we owe a lot to them: not only have we many great tools and projects which would never have existed without them, but they also let us get a glimpse inside their beautiful minds through the messages / blog they post and through the video they make. Why downvote?
- ProAm 12y agoThe down vote comes from the idea that this is not the only way to create good, useful, widely used and appreciated code. Of course there are geniuses that have enough raw talent, dedication and focus to do amazing things with ease. But there are plenty of others that while not considered a 'genius', will have to use pure grit to accomplish feats of greatness.
- coldnebo 12y agoOver the past few years, I've put myself out there as well, not because I'm extroverted but because there is no better laboratory test of your ideas/convictions. I'd only add one thing to this approach: make sure that you are at least solving one of your own problems and that the solution is real -- i.e. it really benefits you in some measurable way. I did this a few years ago with a relatively obscure gem that solved a real problem I actually had with refactoring business logic. I put it out there to get feedback on it and was rather disappointed with the initial reactions ("You don't understand MVC!" "You've done it all wrong!"). But I put myself aside and tried to understand the feedback from their point of view. One thing that became obvious is that most people didn't see the solution as valid because they had completely different context and approach. Fair enough. There were also several that simply 'cargo-culted' mvc responses without realizing that my gem was a thin wrapper around methods that DHH had already put in Rails (so if I didn't understand MVC, neither did he! ;) And no one commented on the biggest problems I legitimately saw with my approach: thread-safety and closures on controller instances in a prod env. But none of that stopped this gem from being incredibly useful as I tried to break apart a giant monolithic legacy app that challenged traditional refactoring approaches. Maybe it's not perfect, but at least it's a way forward. So the moral of the story is: put your idea out there, expect feedback and criticism (maybe only criticism since the people who like things tend to keep quiet (e.g. the rvm story last year)) -- but so long as this thing is useful to one person (only you?), use it to make your life easier! If it's useful to others, that's a bonus learning opportunity, but that shouldn't be your sole motivation.
- jleyank 12y agoThere's two ways of being known as a hot-shit programmer. The first has been described by Joel ("Smart. Gets things done.") and Rands ("Be productive, be fantastically clever when necessary, speak truth to power, hit your dates, and don’t ship crap."). These are people who deliver the goods. Deliver them often enough and folks will know your name. The second way is harder, particularly for the introverted. This involves self-marketing, being obviously and repeatedly correct. It also requires a bit of political adeptness and a bit of visionary helps as well. Both Joel and Rands have done very well here and there's a number of others who have made a name for themselves via the web. If you have a choice, choose this method as it yields better visibility. Although it also means that screw ups are magnified if and when they occur. Am I the best programmer going? No. If you're reading this, I suspect you're not either... But I work hard at delivering the goods, and I'm good at what I do. People like this get remembered when new projects start. No matter how big or small your niche is or how many you fill, impress others. And don't needlessly piss them off - people remember assholes far longer than good 'uns.