January 12, 2010

Posted by John

Tagged thoughts

Older: Live From Harmony

Newer: Multiple Domain Page Caching

I Have No Talent

The other day someone sent me an IM and thanked me for my open source contributions. They then said something about wishing they had my gem/code creation talents. I didn’t miss a beat and informed them that I have no talent.

It is true. I have no talent. What I do have is a lot of practice. And I am not talking about occasionally dabbling in Ruby on the weekends. I am talking about the kind of practice where I beat code that isn’t working into submission (though often times the code wins).

The kind of practice where all of a sudden I realize that it is 2am and I’m exhausted physically so I should go to bed, but mentally I feel on fire so I let the code have me for another hour or two (I imagine this state to be like a marathon runner or ironman near the end of their race).

The kind of practice that leads to a GitHub profile stuffed with code I regret (and am embarrassed about, but don’t delete to remind me of where I once was) and code I am proud of (not near as much as I am embarrassed about though).


I am also not very smart. I have a good memory (though my wife will tell you it has some missing pieces) and I work really hard. Really hard. I get that from my dad. He is also not very smart (his words, not mine), with a good memory and works really hard. :)

I am sick of hearing people say, “Oh, I love your code, I wish I could do that.” You can. The only reason you can’t is because you don’t practice enough. I used to think that I wasn’t smart enough. I was jealous of those that did crazy code stuff that I couldn’t even comprehend. Then, one day, I ran into something I did not understand and instead of giving up, I pushed through. I sat there in front of my computer for hours and wrestled with class and class instance variables.

That day was a turning point for me. It was the last time I thought that whether or not I was successful depended on my talent or intelligence. It really comes down to hard work people. Ever since then, I have attacked each thing that I do not understand until I understand it.

I will close with this. I still suck. There are still so many people out there who are far better than I am, but that does not stop me anymore. I do not measure myself against the programming greats, but against those projects on my Github profile from years ago.


  1. Great article. I feels like this a lot. I still consider myself pretty wet behind the ears with ruby and rails in general but everyday I learn something new and get a little better.

  2. I was told by a lot of people that I was “smart” growing up. But that doesn’t matter, and certainly don’t tell kids that (it destroys their motivation). I’ve spent years finding that thing that drives me to push just a little more.

    You’ve clearly laid out here exactly what it takes to be considered “successful” by your peers, and you’re absolutely right.

    It doesn’t matter how smart you are, or how talented you are, all you need to do is be willing to work hard and to keep trying until you figure it out.

    Its not about “what you have”, its about “what you bring” and “how you do it” that counts!

    Thanks for posting this… I think the community needs it :)

  3. Well said! I hit the same walls and finally figured out I could get past them just a couple of years ago. Its a great feeling to know you you can tackle anything if you have the drive and patience!

    One other note. Sometimes I have to let something go, work on something else, and then come back to it later before a solution presents itself.

  4. Great post. I’m not a programmer, but I can see how this approach can apply to a person’s field, whatever it is.

  5. @Jon Hoyt: Totally. Often times I do this at night. If I run into an issue, I go to bed. In the morning it usually only takes me a few minutes to figure it out. Sleeping on a problem always helps.

    @Josh: Very true. Hard work helps in any profession.

  6. Good post. I can relate completely, but without the “you’re so smart” complements :-)

    Back in the beginning of Rails I remember putting off learning how to write a plugin, because I thought that was beyond my knowledge. There’s nothing different about a plugin, really, except it has init.rb and install.rb. And like your turning point was the class/instance variables, mine was my first Rails plugin.

    From that point on I never put off things because I thought it was over my head. I started diving in head first. Also, I started studying. I studied so much code and libraries written by other people until it seemed second-nature. And now, with GitHub it’s even easier to peruse (and contribute) other people’s code.

    It’s never easy to dive into something completely foreign, but learning is the fun part of the challenge. When a day-long problem finally gets solved, there’s no better feeling. And before you know it, it’s no longer a matter of solving the problem, it’s how to solve the problem.

  7. Amen. That is so well put. I hate my hobby code, I rewrite it over and over, and it gets better. I get better through that. But I still think it’s ugly.

    Thanks for writing this, it’s nice to see my sentiments in others, we are not alone. I too love the programming high :-)

  8. Pretty good article. I must admit I did wonder a little while ago if I was becoming less intelligent recently though. Anyway, while I think that some people are naturally better at somethings than others your point that you really have to work at things is certainly a much more important factor.

    I actually think I personally need to work harder at giving more back though and I think that is where the real ‘talent’ lies and often why people praise those who create gems and the like. Taking the time out to actually share what you have done with the rest of the community.

  9. @cloudjunky @cloudjunky

    Jan 12, 2010

    Refreshing post! Honest and real.

  10. I’m also not a programmer but this pretty much universally applies to anything and is pretty motivating. Thanks for the post.

  11. Great article. I have a theory that “aptitude” has more to do with loving something enough to be willing to pound your head against the wall on it until you gain some level of competency. There are some people who are naturally gifted, but those are the exceptions, not the rule. For most of us, the difference between the apprentice and the master is about 10, 000 hours of hard work.

  12. @Matt Briggs: Good point. Love is all you need. Umm…yes I just said that. Sounds like you’ve read Outliers?

  13. Absolutely — practice is much, much more important than anything else. I decided to build a small project to force myself to learn Ruby on Rails early last year and, thanks to some hard work and sheer luck, it was acquired just a few months ago.

    I’m now starting on this new side project (http://www.snailpad.com) to force myself to get even better with RoR.

    If nothing else, I’d encourage you to just start coding — there’s tons of resources out there that can help you when you get stuck and there’s nothing better than building something to solve your own problem. :)

  14. Great post. Proper home truths there.

    I’m reminded me of the old adage about great craftsmanship being 99% perspiration and 1% inspiration…


  15. Wait, I’m pretty sure there is a rails helper for hard work… :P

    I really agree that practice makes it all happen. It also makes for truly enjoyable “ah-ha” moments and allows one to take pride in results which are the culmination of hard work.

  16. @Adam Anderson: Don’t forget to escape that helper or you’ll end up with XSS vulnerabilities.

  17. I agree wholeheartedly. It’s all about effort.

    And, as an aside, the missing comma in “it’s all about hard work people” makes it so much better. Someone should start a Hard Work People club.

  18. @Kevin Lawver: Haha! I shall leave the comma out then.

  19. Rich Sturim Rich Sturim

    Jan 12, 2010

    I believe Kent Beck said it best … “I’m not a great programmer; I’m just a good programmer with great habits.” (Refactoring, Beck Fowler, 1999).

  20. Surprised noone has mentioned Malcolm Gladwell’s “Outliers” and his 10,000 hours theory… basically he argues that to be truly great at anything, you need to put in about 10,000 hours (and have the opportunity to be able to put in 10,000 hours, which many people don’t have.)

    Gladwell makes us think that even “geniuses” were just people with the right opportunity and lots and lots of dedication…

    (read the book, it’s good and you can finish it off in a few hours… if you’re smart ;-) cough

  21. For a more detailed exploration of John as a phenomenon – that what he has is skill as a result of practice and not talent – read The Talent Code.

  22. Great post.

  23. Working hard to produce what appears as the work of a great coder assumes you have time and that you started early enough in life to learn to code.

    What do you think about starting now?

  24. You’re awesome!

    This post is awesome is so awesome I had to tweet, tumblr, and facebook this for all my friends to see.

  25. Great Article, I think it comes back to the idea that there are no geniuses. It just comes down to the work you put in.

    I feel the same way when people have told me the same. I play piano and work as a programmer. People on occasion are impressed by both, and both are result of hard work and years of practice.

  26. Wow, speak for yourself buddy! I am awesome!

  27. I love this post.

    Thanks for this…it is very timely for me now.

  28. Awesome article. I can relate especially to all of it. Work ethic, motivation (make that obsession) for beating the problem and a quest to prove to yourself you can do it are a wicked combination.

  29. Great article! You’re really an humble and down to earth hacker. You just got me motivated for months. thx

  30. Well spoken. I appreciate your response because I felt the same way.. not that I’m great, but I’ve really worked hard to know what I know, and as you have seen, it pays off! Now I just need to learn how to do tests ;)

  31. Thanks for the post, man. I’m from a different field (development, but no ruby so far) and I never stumbled upon your name ‘til today. Anyway – your GitHub profile is impressive and the post is even better.
    If you ever end up in the western part of Germany (I’m in Cologne) I’d like to share a beer with you and talk about this kind of mentality.
    Thumbs up – this post made my evening.

  32. This is a very, very good post.

    I wish I could write blog posts like this!

  33. The real issue is to not confuse intelligence with experience. I had a professor who I idolized while getting my degree in Physics and Mathematics years ago as being the most brilliant person I knew. I remember trying to solve a problem and sought his help. He knew I was trying to reduce a hyper-geomtric elliptic integral of the third kind. I was blown away and asked him how he knew that. His reply: “If you had been doing things since before the civil ware, you would know this reduction as well”.

    Likewise in graduate school I had a misguided professor intimate to me that I really wasn’t that smart because I had the lowest grade in his Atomic Theory class. The reality was I a 22yo kid with 1 year of Quantum Mechanics. Compare that to the other 8 students in the class who were all had a MS degree from their respective foreign university and in some cases even taught the course their out of the same book! Were they smarter than me? I think not because at the end of the year I scored the highest on the final exam.

    So who would you rather have? The smart guy or the experienced one?

    I’ll take the experienced, humble one!

  34. Jon, you’re absolutely correct. I’ve felt this way for many years. It motivated me to learn rails and objected oriented programming in 4 months. It wasn’t until I read “the outliers” that I finally found a source that confirmed what I had discovered.

    Intelligence is purely hard work as long as you are smart enough, which 90% of us are.

  35. Thanks man! Everything I read on the web makes me feel like, “there’s so much to keep up with”. This article validates the fact that EVERYONE has to work at it, not just me.

  36. This really resonated with me, because I often find myself saying some of the same things. It really is about the hard work and the results that come from that hard work.

    One of my favorite quotes that i have always used as ammunition to fuel the fire. (it doesn’t quite match up exactly, but had to share none-the-less)

    It is not the critic who counts; not the man who points out how the strong man stumbles, or where the doer of deeds could have done them better. The credit belongs to the man who is actually in the arena, whose face is marred by dust and sweat and blood; who strives valiantly; who errs, who comes short again and again, because there is no effort without error and shortcoming; but who does actually strive to do the deeds; who knows great enthusiasms, the great devotions; who spends himself in a worthy cause; who at the best knows in the end the triumph of high achievement, and who at the worst, if he fails, at least fails while daring greatly, so that his place shall never be with those cold and timid souls who neither know victory nor defeat.

    Theodore Roosevelt (April 23, 1910 // “The Man In The Arena” Speech at the Sorbonne Paris, France)

  37. I have the same feeling, when you sat down and hacked deep into something you thought you would never understand, and finally came up with it, that is a life changing moment.

  38. @Rich Sturim: Great quote! Thanks for sharing.

    @Brendan: Loved Outliers. Great book.

    @Allan: Um, no. I coded for the first time in 2001 in college and didn’t really start programming a lot until like 2005.

    @Ben: Will do!

    @Doug: Holy crap yes! I love that quote. Good old Teddy!

  39. Mark Wilden Mark Wilden

    Jan 12, 2010

    Intelligence is a talent. But what people don’t realize is that diligence and the ability to work hard is just as much of a talent. In both cases, they are formed by your genetic makeup and the effect of your environment. There are no other inputs! Not unless you believe in a “soul” or “free will” or some such metaphysical phenomenon.

  40. I’ll second the recommendation of The Talent Code — much better than Outliers for explaining the “phenomenon” of hard work, passion and practice.

  41. Very true. For me if you are not learning then somethings wrong, or should be lol.

    I too stay up way too late… a lot… worth every head bang.

  42. Phenomenal post. At the end of the day, showing up and doing the work is where it’s at.

    @Dave Woodward I don’t necessarily agree with you that telling kids they’re smart destroys their motivation. While it may lead them to slack off, it doesn’t have to work that way. I was told I was smart and given the impression that because I was smart, if I failed, it meant I hadn’t worked hard enough. In my case the result was perfectionist workaholic, not slacker. I don’t know if that’s necessarily a better result, but it’s certainly a more productive one. It all depends on how you frame the discussion, and on the particular kid.

  43. David Sommers David Sommers

    Jan 12, 2010

    In the book “Outliers: The Story of Success”, Malcolm Gladwell calls it the “10,000-Hour Rule” of practice. If you look at the ‘great minds’ of the past century – you’ll find a great chance of being more than the average joe with timing, circumstances, some smarts, and 10k hours of practice. Even Bill Gates and Bill Joy couldn’t have been how we know them today without all those hours of practice, learning, tuning, and honing of skills.

    If you give any of us a basic set of smarts (which all good programmers have right?) and 10k hours of practice in our field (doesn’t have to be Ruby), then you’ll find some ‘smart people’ capable of tackling some really ‘good problems’ with ‘good solutions’.

  44. Very well said. The concept of talent tends give a mystical quality when working your ass off is what it’s all about. It’s something I still need to remind myself as I’ve had a lifetime of being told that I’m ‘smart’ and not seeing any worthwhile results until I put in effort instead of trying to be effortless.

  45. That is the way I am with my music. I’m releasing my eleventh collection this next month for pure love! I produce, mix and master myself just cause I can learn and do great, as anyone else out there! Practice! Practice!

  46. Rod Logic Rod Logic

    Jan 13, 2010

    I agree, but will warn that one should not try to apply this mentality to all other aspects of life. For example, girls don’t like guys who “try too hard”.

  47. Agree with you. I was decided to do research & development every day in the morning and evening. Day by day, every time I’m trying to be on the edge and it’s pretty good adventure and way to success!

  48. This is promising given Santa brought me the Ruby on Rails book. I am opting to start with Python as my first dabble into programming (I don’t think Qbasic back in High School counts).

    Elbow grease is usually where it’s at for any endeavor. Thank you for this. Oh and well Confucius said find a job you love and you will never work a day in your life! Thomas Edison’s 10,000 experiments getting the light bulb to work says something about practice and intelligence also. Good luck!

  49. Awesome post…so true - whenever someone has that attitude towards me I feel the same way. I am not a natural musician by any means…I’ve spent hours and years studying and jammin and performing to become at all competent at what I do. keep up the good words and codes!

  50. @Rod Logic: You are not meant to try hard to get girls. There are thousands of girls out there just waiting for you to use them. Just act like a real man. Acting like a real man often requires many hours of practice though.

  51. As sshingler mentioned earlier here in the comments. Genious is 1% inspiration and 99% transpiration. Think it is said to be an Edison quote but I’m not sure.

  52. I applaud your humility and candor.

  53. Solid post, thanks for this.

  54. Great post! A straight words like these can really help “newcomers” to apply and study more confidently Ruby (or something else).

  55. Can’t gree more, no pain no gain – and Ruby made the pain fun as well. =) I know loads of people with high IQ that never made it, aka used it for their advantage by excercising. But to learn you have to have interest or inspiration of some sort (say, a open-source hall-of-famer), it’s a quite fundamental brain rule, brain learns stuff much better that is interesting – noone can learn anything without attention (that is another brain rule I learned when studyign cognitive psycholoy, even though it’s quite obvious). B)

  56. Michele Michele

    Jan 13, 2010

    Talent does not exist and higer IQ statistically proves to be effective only at the beginning of a new activity but not in the long run.
    So in fact you are “talented” in the only possible way: you are the sum of your worked hours on your passion over the years.

    Check out the book “talent is overrated”, it has pointers to studies and research confirming the theories.

  57. Thanks, nice article. Nice AJAX comment box, too.

  58. John, very nice article! As always! But I think you really have a talent: time management. You drive your own company, you have a family (a wife usually is a time-consuming resource :-) ), you speak in conferences, you maintain at least two excellent blogs with nice regularity… Maybe you could please us with some time management tips!!!

  59. Well said. You don’t suck.

  60. A really inspiring post. Bookmarked for my down moments. Thank you.

  61. Inspiring and 100% correct post.
    Reminds me of Teach Yourself Programming in Ten Years (http://norvig.com/21-days.html)

  62. You are definitely right, ‘smartness’ is 99% dedication and passion.( 1% ADN stuff).

  63. tunesmith tunesmith

    Jan 12, 2010

    This might be true for the author, but I don’t agree with it as something that is generally true for everyone. Like it or not, intelligence and talent are necessary for a great many successes in life. The key is, they aren’t sufficient. Hard work is also often necessary, and it is very often not sufficient either.

    Kudos to the author for finding a field where hard work is often good enough. Although he probably sells himself short in order to spread some happy thoughts.

  64. George Hamseile George Hamseile

    Jan 13, 2010

    I’d like to ask how long you’ve been actively coding, considering the obvious that hardwork is greater than raw talent, I’d like to hope to someday incorporate your ideas into my own lifestyle, how long (per-day) do you practice? what helps with keeping you interested in things? i.e after hours of coding or reading.


  65. Very Good Post, certainly i have no talent at all.

  66. Brilliant article! I’ve just come to realize in the last 6 months just how little I know about software development and programming in general. It’s reassuring to know that successful coders have gone through the same thing I am currently!

  67. Thank you for this, it was beautiful.

  68. @failed hope: I first got into coding in 2004 and started a job in it in 2005. Not that long. I don’t schedule my practice. It is more inspiration and pure curiosity. I’m constantly reading both articles and code and anytime I have an itch for something I build it.

  69. Sambhav Sambhav

    Jan 13, 2010

    This video is very appropriate: “Is Talent all it takes?”

  70. Great post! I couldn’t agree more. Hard work and persistence trumps talent and intelligence in my experience.

  71. Excellent article – I’m currently having similar doubts at the moment, and it’s nice to see some positive encouragement. I find I often spend days looking at code where I think “Damn, I simply couldn’t have come up with that!”.

  72. Good article. Thanks. I having same thoughts about few years. I have no talent. And there is persons around me that more talented in programming. I’ve even considered leaving programming because of that. thinking: “Maybe there is something, I have talent for”. But the truth is – I love what I do, nothing else delivering me such enjoy as programming.

  73. Great post! I love the idea of only measuring yourself against your own past achievements — comparing the YOU of today to the YOU of yesterday.

    It’s great to get motivation from those who are “so much better than us”, but comparing ourselves to them is not a fair comparison; they took a different path to get to where they are.

  74. You’re exactly right. While I suspect I do have some talent backing me up, any substantial achievement IS just plain hard work. That QuickBooks gem wasn’t made out of clever ideas – it consists of simply a few MONTHS of sweat and persistence every day that no one else would buckle down to do. Learning to program? I laugh at the trivial things I wrestled so much with when I practiced for hours when I wasn’t supposed to on my parents’ computer!

  75. Shh!! You’re going to give away the secret to being a developer! ;)

  76. Oh, I wish I could write something like this one day…


    nice article, thank you!

  77. Good and honest post…I agree with basically everything said (in regards to myself, that is) :)

  78. Well said. Whether or not one can write good code is really up to how much effort they have put.

    If you think you can and you keep your curiosity and momentum up, things changed, miracles happen.

  79. Wow… as many comments mention hard work and motivation are really important and can surmount many obstacles. But I find the rest of the comments sickening – intelligence and an aptitude (aptitudes are often/usually learned/earned) are nothing to be ashamed of. Intelligence is badge that should be worn with pride, not shame. I have no idea what code you’ve written; but clearly it is compliment-able; accept the compliment — don’t make excuses. To all those that think of this as motivational — shame on yourselves, grow a spine and take give credit to your brain where it is due. Everyone writes shitty code (every now and then) – the difference is knowing it; hard work and experience give you that.

  80. Thanks for that! I totally agree, only had forgotten recently. Been at an all time low morale-wise this week but this has kicked my ass out of feeling sorry for myself. Much appreciated!

  81. Great post and I couldn’t agree more with it. I’ve never really thought of myself as a very smart guy even if my friends never agree with that. In fact I think I’m quite average.

    It’s the not giving up and hard work that keeps one going. And once you’ve solved a hard problem you feel good (and usually want to keep going, even if it’s already 3am), and you’ve become that much better. Next time you won’t even think that long about a similar problem and just do it.

    As cliche as it may sound one only needs to give it 110% and it will work out. Eventually.

  82. Well done that man for being honest and putting it all out there. I too am paranoid about “being crap”.

    One problem with being as insecure as I am is that other people’s code really threatens me and I get all anxious “imagine if they could see mine! It’s truly dreadful!”.

    None of this matters. As you imply, it doesn’t matter where you’re at now, it’s where you’re headed that matters. The only thing that’s important is to be constantly improving. If you’re better than you were this time last year, you’re making progress and it’s a good thing.

    And despite me thinking everything I’m writing right now being crap, thinking back a year ago I wasn’t even able to write code. So that’s a pretty big improvement.

    And you’re right – keeping old code is really encouraging.

    Thanks so much for an insightful and very honest post.

  83. Great post! All you need is experience, that’s it!

  84. Great post – very inspiring!

  85. Hello there !
    I am a CS student feeling a bit down in the dumps right now. This article is indeed motivating.

    However, I do consider myself as hard working but I often have the feeling that the way I am practising is highly inefficient.

    Do you have any ideas general tips for a smart approach ?
    Let’s say I have to do an exercise for my programming class. In case I don’t know how to start, I’d read the textbook. That might be fine so far but let’s assume that reading the pages didn’t help. I am still confused about the exercise. So what now … reading the text again ? I often do this but this is exactly the point where I thing my approach just sucks. I’ve probably already memorised what’s in the book. However, there is a seemingly unbridgeable gap between understanding the concepts and solving the actual problem.

  86. That’s brilliant. I wish I could write an article like that one. You have real writing talent.

  87. Great article. You inspired me to fight a php problem. Hopefully I’ll solve it tonight. :)

  88. I totally agree and relate. It’s all about effort. Being smart is also nice though. The best thing about what you’re saying too is that its a sneaky way of being boastful. Which is great. If you attribute all of your success to being more hard-working you still get to talk about how much better you are than other people and how much they admire you but you’re not doing it in a way that conventionally inspires resentment or admonishment. Brilliant.

  89. Daniel Araneda Daniel Araneda

    Jan 14, 2010

    I started studying for the CISSP exam but I lost my motivation after looking the amount of material I had to study. After reading this post I think it helped my motivation to come back. If you want to get anything in this life there is always the easy way or the hard way. For most of us the hard way is the only way. This is how I apply your experience to mine. Thank You

  90. Great inspirational post John. First I’ve read in a long time that accurately and honestly reflects my life as an entrepreneur and software developer.

    Your post reminds me of an oft quoted conversation I had with an older friend nearly 20 years ago. As others derided my friend by attributing his tremendous business success to luck, he replied, “It’s true! And the harder I work, the luckier I get.”

  91. Agree with what you are saying – all of life is like this; we could all be healthy – thou many of us will not appear on the cover of sports mags. And we could all get involved in government – except we are beat down by the banks and having to work to produce a living that deters from many people’s lives – thou I’m not concerned because eventually – with diligent people like yourself working hard and consistently towards better ends and consistent self-improvement, we will achieve the rational age before too long. Thanks for post – please check out http://www.theorionproject.org/en/index.html

  92. I was pointed to this post by a friend. Really good stuff. I’m not a programmer, but your outlook here is inspiring enough to make me believe that if I wanted to be, I could. I hope to remember this gem and carry it with me so I can utilize it the next time I feel overwhelmed by something new.

  93. I wish I had read something like this years ago. I’ve spent a scant 6 months of my 32 years writing code and I’m absolutely in love with it. Am I great at it? No, but I know I will be because I enjoy it, so I spend a lot of time doing it. The reason I never started earlier: I didn’t think I had the “talent”. Unfortunately, I believed the prevalent drivel spouted by coders and designers alike that “not anybody can just DO this web stuff”. Um, sorry. Yeah. Anybody who works at it can. It’s nice to see somebody telling it like it is.

  94. Nicolás Miyasato Nicolás Miyasato

    Jan 14, 2010

    Cool article. Thanks a lot for you inspiring words. I, for sure, am one of those kind of guys who feel that are not smart enough.

    Let’s give your advise a shout :-)


  95. Dan Simpson Dan Simpson

    Jan 14, 2010

    In summary, you are an empiricist. http://en.wikipedia.org/wiki/Empiricist

  96. Your advice is actually scientifically accurate, based on recent research on how the mind works.

    These two articles below should be required reading for EVERYONE, especially parents.



  97. Congratulations you missed the boat… whatever it is that PUSHES you to drive like a marathon through insane code sessions – THAT is what they wish they had… they’re giving you a compliment. Be good enough to accept it. Not everyone has this drive that you have.

  98. Anonymous Anonymous

    Jan 15, 2010

    Nice article. Though I have been a developer too, I think this applies quite in general. I have been often told that I can grok math very easily, and ppl wish they had my ‘talent’ - the fact of the matter, however is, at some point in my life when I was growing up I had got interested in math, and practiced day in and day out because I found it interesting. Beyond those teething days I have only kept in touch – these are my only ‘talents’.

  99. Anonymous Anonymous

    Jan 15, 2010

    You make a great mistake in envying me any of my qualities. Very often what you take for some special quality of mind is merely facility arising from constant practice, and you could do as well or better with like practice.
    - Wilbur Wright

  100. My talent is programming, but I’ve never been any good at art.

    Recently, I realized that with enough practice and dedication, I can draw, even though I don’t have any innate drawing talent. It was quite a realization!

  101. Hey,
    I am speechless after reading this. I was feeling very low about my career since I have failed in many things at the moment. This post from you has come at the moment when I was totally let down and wanted to give up everything since nothing is working. It has increased my motivation level. Thanks for a wonderful post. I have no talent! But I will work hard to get dirty with what I don’t understand well! Thank you again. I cannot express it in words.

  102. Wow, a Rails developer that isn’t an egomaniac?! I’m hitting the subscribe button. ;)

    Great post, and good advice for new programmers. It takes work to get the skill you want…put in the time and ye shall be rewarded.

  103. Genial!

  104. @@JaretManuel:

    “Oh and well Confucius said find a job you love and you will never work a day in your life!”

    That my friend, is very true!!

    Great post!… And great comment!

  105. @@JaretManuel:

    “Oh and well Confucius said find a job you love and you will never work a day in your life!”

    That my friend, is very true!!

    Great post!… And great comment!

  106. I think one skill we all should strengthen is to actually finish and complete things. Practice is important but doesn’t count much if you don’t put it online somewhere for others.

    You shouldn’t be ashamed of any code except the one no one ever reads.

  107. Wise words. Humility == credibility.

    “The only real wisdom is knowing you know nothing”
    -paraphrased Socrates

  108. Christian Christian

    Jan 15, 2010

    I felt the same way some time ago: at that point I developed the same attitude as you describe in your article and I’m so grateful that I did, since my skills are improved rapidly.

  109. I’ve been told that I’m smart. That really helped with the frustration when I produced nothing and therefore was a failure. So I was. I am a hard working person but somehow I didn’t have the habbits, I didn’t know where to start, didn’t have who to ask. I needed something like projecteuler.net to start back then but none was available. In a very non-systematic manner did I pass sleep at night over and over until the things started to make sense.

    I still can’t tell that I’m good at this. But programming really changed my way of thinking. Flushed are “you’re smart, you have great potential, I’m not going to ask because I wouldn’t look smart, would I?” and so forth.

    I post stupid questions on blogs, answer where I think I can help (humbly if unsure), use netbeans and other tools (I was a do anything in vim for happiness guy), read programming books and seek satisfaction in problem solving, thanks to projecteuler.net.

    It is certainly easier now than it was back then if looking from where I am now, but it’s hard none the less. I didn’t have a tutor, I try to be one to anybody asking.

    And the story would be glamorous if there was only programming. But practice shows you have to be a good programmer, a good accountant, a good marketing person and so much more in order to succeed. Satisfaction is hard to achieve, but is achievable with hard work. Talent is just a stone on the endless pavement

  110. I enjoy your blog posts very much :)

  111. John, thank you. Excellent excellent article. So many of the people who come to me asking for help would be surprised what they could find out on their own if they would just spend 5 minutes in the help file.

    I had a similar breakthrough moment, but with a different language. I took a job on a Lotus Notes support desk and was always baffled by LotusScript. That is one messed up language. I dissected countless database and always ended up hitting a wall and banging my head on the desk trying to make sense of it all. Persistence was the answer. I just decided to figure it out no matter what it took. Spent days on end studying examples, trying different things. Finally it all clicked. I went on to develop several databases employing LotusScript functions. I was the ‘Notes Guy’ from then on.

    Like you say, all the hard work was worth it. Putting in the time is the only way to get where you want to be, or what you want to know. It’s good to hear such sound advice. This I will subscribe to.


  112. I relate to your testimonial here, as I do believe it’s the most accurate description of how to achieve proficiency at something.

    Another fellow programmer gave his opinion on the matter, and I would like to reproduce one piece of my comment on his post here:

    Einstein would be hardly a physics genius without being able to idle at the patent office (a quiet place, you know) thinking about eletromagnets all day and reading Mach and Poincaré with his friends that shared common interests. Similarly, I doubt Picasso would achieve what he did without his father influence, also an artist, motivating him at learning art since the age of 10, ignoring even the traditional education at the time.

    The fun fact is that our society tends to ignore that, for each achievement, much frustration and learning had to be overcome. We like to think geniuses were born and then achieved wonders overnight – ideas still reminiscent from ancient Greek semi-god mythologies.

    It’s interesting how cultural the “myth of talent” can be, as in oriental cultures, the common sense is quite inverse: that any individual can master anything given enough time, perseverance, and humbleness to learn from his master and understand there’s always more to improve.

  113. I completely agree with your thoughts, I too work my ass off. Any spare time I have I play with code, trying to build little sites and figure stuff out. By day Im a front-end developer and by night Im all things considered. I really enjoy coding, and you are only as good as you practice to be. Some people expect to only get that far in their 9-5 jobs and dont ever think about practicing outside of work, but its a necessity that you live and breathe work if you are wishing to be great at it.

  114. Ryan Leavengood Ryan Leavengood

    Jan 16, 2010

    This is certainly an excellent and inspiring post, but I think you do have a few talents, namely perserverence and good time management. Now of course both of those can be “learned” in a sense, so maybe they too cannot be called talents. But don’t belittle your ability to continue on despite obstacles. If great men achieved their greatness not simply from genius, the other big important factor was perserverence.

    Not everyone will keep banging their head against the wall until they solve a problem. You will, and I will as well. My problem is not practicing enough and in that sense I do appreciate this post.

  115. uirusan uirusan

    Jan 16, 2010

    Great post. Instantly inspired !

  116. Here is another very enlightening and related article by Bryan Woods:
    Poor, Poor Child. You have no idea.

    It’s worth a read.

  117. Great thoughts John. I have exactly the same opinion. If you want to be good you must practice.
    I really like the part about “being almost there, tired, but really wanting to solve the problem, even if it’s dawn” :)

  118. Mista Mark Mista Mark

    Jan 17, 2010

    Without doubt, this is the best post I’ve read on the interwebs within the last 12 months at least.
    Thank you for putting it into words.

  119. I relate to your testimonial here, as I do believe it’s the most accurate description of how to achieve proficiency at something.

    Another fellow programmer gave his opinion on the matter, and I would like to reproduce my comment on his post here:

    This discussion about “Inate Talent” vs. “Learning” is a recurring topic in the field of psychology. There’s no definitive answer, but some believe that what we call “talent” is the result of different influences, both internal and external, acting on the individual. Factors of influence would range from environment pressure, intrapersonal experiences, education, practice, and of course, “gift”, be it explained by genetic or some other unknown mechanism, which would develop as talent or not, depending on chance.

    Personally, I believe all this developmental theory is bullshit.

    If you started training basketball at roughly the same age as M. Jordan, and in the same intensity, I wouldn’t doubt you could achieve similar results – in this particular case, considering also that you had favorable genes and health for the practice of the sport, of course.

    The main point is: would you be motivated to train, play and learn in the same intensity and quality as M. Jordan? People’s interest on different activites and topics vary greatly, and I believe this is the main influence behind being “talented” or not. Such, I believe there is no thing as “gift”, just training and creativity channeled efficiently to one activity, resulting in above-the-mean outcomes.

    Einstein would be hardly a physics genius without being able to idle at the patent office (a quiet place, you know) thinking about eletromagnets all day and reading Mach and Poincaré with his friends that shared common interests. Similarly, I doubt Picasso would achieve what he did without his father influence, also an artist, motivating him at learning art since the age of 10, ignoring even the traditional education at the time.

    The fun fact is that our society tends to ignore that, for each achievement, much frustration and learning had to be overcome. We like to think geniuses were born and then achieved wonders overnight – ideas still reminiscent from ancient Greek semi-god mythologies.

    It’s interesting how cultural the “myth of talent” can be, as in oriental cultures, the common sense is quite inverse: that any individual can master anything given enough time, perseverance, and humbleness to learn from his master and understand there’s always more to improve.

    My hint for you: research about “multiple intelligence” theory by Howard Gardner, and also about the “Tao” philosophy. Great to expand the mind and not get caught on the “I’m more intelligent/talented than others” mud pit. From the wisest characters in human history, none reasoned like this.

  120. I had been feeling recently that I was not as good a programmer as I used to be. This article made things clear to me: it is because I have not been practicing. I had become complacent, thinking that I am a “natural” at this. Of course, with this attitude, I became duller over time.

    Thank you for opening my eyes! Since I read this article about 3 days ago, I am a different person. I am feeling a passion for my art that I hadn’t felt in years. I am taking a keen interest in becoming an expert in my particular niche of programming. I am “beating code into submission”, making good progress in my project, and feeling proud of my work again.

  121. You need to have a humble heart to make that point :)

  122. Good post! This applies for all walks of life. It’s good to hear down to earth post. Thanks!

  123. Wow, still amazed at the response to this article.

  124. Nice post John,

    you really touched on the most sensitive question all humans ask when they’re facing an incomprehensible situation:
    “maybe we’re just not smart enough? Or I wish I can one day write something as good as this guy did. He’s a genius!”

    And I must say this happens a lot when looking at some genius piece of code, when we right away try to imagine the size of the author’s brain.

    Just finished reading “Think Smart” by Richard Restak and it is amazing how our brains work!
    Brains don’t get FULL of information, the more you put in the more they want.

    By spending those extra hours at 2 AM and sleeping on this new information, you are actually using your brain to its best!
    Sleeping on information, as it turns out, actually stores it in the long-term memory how cool is that.

    You will be amazed how much practice all known geniuses has put to reach those levels. From Chess players to mathematicians, scientists and so on… Some studies/experiments made, resulted in a person being able to memorize up to 80 digits numbers!!! All with practice!

    To better visualize it try to memorize this

    Which raises the debate are we intelligent by birth! Turns out not!

    Thanks John for sharing these personal thoughts!

  125. Very good post! Many people don’t realise that hard work will surpass any innate intelligence

  126. Liked it !! Everyday I feel am not good as others. May be I should stop worrying about it and start training on needed things !!

  127. Buy Endress & Hauser models at up to 20% discount from list price

    Endress+Hauser is a leading supplier of measuring instruments and automation solutions for the industrial process engineering industry.

    Endress+Hauser is recognized as a leading supplier of industrial measurement and automation equipment, providing services and solutions for industrial processes all over the world. Endress+Hauser offer comprehensive process solutions for flow, level, pressure, analysis, temperature, recording and digital communications across a wide range of industries, optimizing processes in regards to economic efficiency, safety and environmental protection.

    As major stockists of many Endress and Hauser level instruments, We official distributor Endress+Hauser in Ukraine, can offer a range of Endress & Hauser models at up to 20% discount from list price – prices usually only available when buying in bulk.

    Feel free to contact us.

  128. bandsxbands bandsxbands

    Feb 05, 2010

    I truly believe that we have reached the point where technology has become one with our world, and I am 99% certain that we have passed the point of no return in our relationship with technology.

    I don’t mean this in a bad way, of course! Ethical concerns aside… I just hope that as technology further innovates, the possibility of transferring our memories onto a digital medium becomes a true reality. It’s one of the things I really wish I could experience in my lifetime.

    (Posted on Nintendo DS running R4i Card DS scPost)

  129. This is a great article. I have always had a hunch that talent seems a bit too magical, if anything deserves to be labelled talent it should be persistence.
    Anyone interested should read “The Talent Code” by Daniel Coyle who demistifies the fluff around talent.

  130. Robert Dober Robert Dober

    Feb 17, 2010

    You know what John? If your wife tells you that your memory leaks, that indeed indicates that you do not have a good memory, but …
    … an excellent one ;)
    A married reader.

  131. I’d like to add that it’s commonly thought that an indicator of “smart” is (Joel Spolsky has an article on this) how passionate a person is – a smart person will tend to be passionate about many things, because this passion (willfulness) allows him to work hard at many different things and find solutions. After all, someone who is not passionate will not work hard, hence not become proffient.

  132. Peterthinks Peterthinks

    Feb 28, 2010

    I would like to compliment you on your candour.
    I’ve been saddled with “smart” and “creative” as well, the truth is that nine times out of ten it’s just brute force attacks on a problem. Sometimes it isn’t even all me, if I really hit a wall I break out the crayons, big paper, beer and marijuana.
    It may seem counter productive but write your biggest problem at the top of a huge sheet of paper and give it a try sometime.
    Your preferred combination of drugs, alcohol and writing utensils may vary.


  133. awesome article.


  134. Iain Wood Iain Wood

    Apr 18, 2010

    Love it :-)
    When I was a kid I used to make ships in bottles and people were always telling me they wished they had my patience. I would get quite annoyed. I have no patience. Just determination. The job gets done because I can’t let it go till I have cracked it. If anyone had actually seen it happen they would have been able to tell by the tourette’s attacks that patience was not part of the process :-)

  135. Bullshit, don’t kid yourself.

    Hard work won’t get you anywhere, and you need to have talent.

    Just stop and be realistic people.

  136. TatiCarvalho TatiCarvalho

    May 14, 2010

    Quoting the Dalai Lama ""There isn’t anything that isn’t made easier through constant familiarity and training.
    Through training we can change; we can transform ourselves."" :) Great Article!!! Thanks :)

  137. Beethovan said, “I don’t have a gift. Anyone can have my ability – you just need to practice 8 hours a day for forty years.”

  138. Reading “Outliers” (book), it is interesting to read how many hours a person has to put in practicing to succeed.

  139. Matthew Riley Matthew Riley

    May 28, 2010

    True, that. When I started OOP I remember thinking: Design Patterns? SCARY!

    Now they fascinate. Its all a puzzle to be solved. Mice and Monkeys solve puzzles so why can’t I. I’m vaguely smarter than some monkeys and I have a computer.

    Its all about interest and obsession. You’re interested in the process and obsessed with understanding. Thats what passion is, really. If you’re not passionate about something then go find something else!

  140. great point! thanks for sharing! we definitely have to work hard and keep practicing what we love to do to be good at it. instead of seeing people who are better than you as your competition, consider them as your motivation to work harder and enhance your skills even more.

  141. I define talent as a person’s ability to be good at task at hand. And, if task at hand, is something you’re passionate about, talent’s throughput increases!

  142. Really inspirational post! Great read, thanks for the motivation!

  143. Reminds me of Malcolm Gladwel talent = 10,000 hours of work. Seems you put in your 10,000 hours :)

Sorry, comments are closed for this article to ease the burden of pruning spam.


Authored by John Nunemaker (Noo-neh-maker), a programmer who has fallen deeply in love with Ruby. Learn More.


Release your software more often with fewer problems.
Flip your features.