Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Programming Doesn’t Require Talent or Even Passion (medium.com/wordcorpglobal)
46 points by pw on Feb 10, 2017 | hide | past | favorite | 53 comments


After having interviewed, code-tested and hired quite a number of developers I can say the premise of this story is complete hogwash. You may be able to program to some level without talent or passion, but the talented, passionate ones will always outperform the untalented ones.

Citing Kaplan-Moss, Thornton, Lerdoff and DHH does not make it true. That these programmers don't consider themselves talented doesn't mean they aren't talented. They actually are very talented and passionate. They just don't see themselves in that light. You can't believe what they say, you have to look at their work.

A lot of these comments they make is actually a form of virtue signalling. It's a way of bringing themselves down a notch so you feel they are more relatable.


To be fair, the premise of the story is that "Programming Doesn’t Require Talent or Even Passion", and I can confirm that I've met plenty of untalented and unpassionate programmers.

Obviously the talented ones will outperform the untalented ones (pretty much by definition), but not everyone has to be great. There is a strange pressure in this industry, almost that if you aren't great, then you are failing. It's taken me 10 years to get comfortable with the fact that I'm never going to be a 'name' (ironically, despite my name).

There's plenty of room for mediocre people in this industry (not that I want to work with them, but there is plenty of work elsewhere for them to do).


If for some reason the goal is to stretch the term of "programming" then yes, there is plenty of room. I even remember a joke about programming being regarded as (plain) writing and the need for people that write faster. One could succeed with down-valuing the "programmer" title (for leverage on salary negotiation, perhaps?), but then we end up with this kind of problem: https://news.ycombinator.com/item?id=13612992 (on HN's 1st page at the time of this writing).


I on the other hand agree with the article and disagree with your assertions.

Talent is a natural aptitude. Passion is a strong feeling or belief.

What's that got to do with being competent at programming?

In the book "Facts and Fallacies of Software Engineering" there's a quote I really liked that seems appropriate:

"If your life depended on a particular piece of software, what would you want to know about it?” Bollinger responded, “More than anything else, I would want to know that the person who wrote the software was both highly intelligent, and possessed by an extremely rigorous, almost fanatical desire to make their program work the way it should. Everything else to me is secondary. . ."

Note that said fanatical desire is not a passion for programming, though it can perhaps be considered a passion for quality.

I'd have to go with intelligence, expertise, ethical behavior and rigor. Couldn't care less if someone had a natural inclination or passion for programming. This is stuff one might need if they want to convince someone to work at their startup for low pay.


That's not virtue signalling it's countersignalling. They're so obviously great that no one is going to doubt that no matter what they say. If someone who's mediocre says they're not talented it's easy to believe. If they actually suck even more so. When you get to DHH levels whether they have natural talent or are "just" extremely hard working with an average amount of talent becomes academic.

http://slatestarcodex.com/2014/04/23/friendship-is-countersi...

http://slatestarcodex.com/2014/08/09/friendship-is-still-cou...


I don't think they're obviously great and I believe them when they say they don't consider themselves so.

They're not Donald Knuths, you know? Making somewhat novel web frameworks takes a bit of inspiration and knowledge, but it's not like it makes you a hero.


I agree that talented programmers are better than non-talented programmers (in the same way I'd prefer to hire a "talented" plumber to fix my broken toilet than a non-talented one...)

But I think that the article is spot-on with regards to "passion" setting a really high-bar that is totally needless.

I dont really care if the plumber I get in to fix my toilet is "passionate" about getting shoulder-deep in the bowl to fix it - I only care that he has the skills to do a good job that sorts out the immediate problem and wont cause more problems later.

Why do we think that programming is so different from plumbing that we not only need pure skill but "passion" too?


> Why do we think that programming is so different from plumbing that we not only need pure skill but "passion" too?

I know little of plumbing but I was under the impression that programming projects last quite a bit longer than plumbing ones.

Even the maintenance phase also seems to be much more proactive in programming than in plumbing.

In my opinion passion is important when we're talking months to years per project.


I kind of agree with you. If the job just requires putting something together or fixing something that has been done before then you only need a programmer with talent. Like your plumber example.

But if the project is something different that requires creativity then I'd prefer someone talented and passionate who cares about the quality of his work above and beyond.

An non programming example would be someone who's designing, building and interior decorating your dream home. Do you want someone with talent or someone with talent and passion?

The person with talent would give you a house that you've probably seen elsewhere. Everything is up to building code but doesn't surpass it. The floor hear and there migt develop a squeak down the road or maybe the layout is not as convenient after livin there for a while. The interior while nice is nothing exceptional. You're not going to wow your friends witht it.

Now the guy with talent and passion. The home will be a unique design. It will be built solid with many future problems already taken into account. The layout is perfect and the interior is amazing.

So in my opinion, passion is important when you're trying to do something new and/or unique regardless of the timeline.


I'm curious - is /signaling the virtue/ of modesty different from /being/ modest?


One can seek status by "signaling the virtue of modesty" too much, I would consider that not to be actual modesty.


The term is "false modesty"


I have no doubt that programming is a skill that you can improve on through practice. You don't have to be talented or passionate, but you should probably be one or the other. Otherwise, what's the point? Why are you a programmer?

I like Django and Jacob Kaplan-Moss's work, but the sentiment of On his Twitter profile, he describes himself as “not a real programmer” to show that he’s had enough of these kinds of misconceptions is false humility. He's not a blowhard but it's clear he's talented. There's no point in acting like he's not. Same with the Bootstrap dev. It may have taken work to get there but to cite authors of work like that and then use them as an example of mediocrity is contradictory. If mediocrity doesn't matter, why not cite mediocre programmers? Because nobody is using their code.

Similarly, DHH is clearly passionate. There's no point in acting like he's not.

I’m not a real programmer. I throw together things until it works then I move on. The real programmers will say “Yeah it works but you’re leaking memory everywhere. Perhaps we should fix that.” I’ll just restart Apache every 10 requests.

This mindset is acceptable, but someone else has to go back and fix your mistakes. That's a disservice to yourself and others.

A lack of care and/or mediocrity shines through in finished products. Have some pride in your work. Care about your users.


> I have no doubt that programming is a skill that you can improve on through practice. You don't have to be talented or passionate, but you should probably be one or the other. Otherwise, what's the point? Why are you a programmer?

Many people cannot find jobs in fields that they are talented in or passionate about that pay well and have decent working conditions. They have to take jobs in other areas.

An ideal job for this would be one that pays well, has decent working conditions, has consistent working hours with little or no overtime, and that does not leave you mentally or physically tired after work. With such a job you have plenty of time and energy outside of working hours to pursue those things you are passionate about.

Programming could be such an ideal job. It generally pays well. It generally has decent working conditions. Plenty of programming jobs (especially those that don't need talent) have consistent hours, take little mental energy, and no physical energy.


I don't think such mindset is acceptable. It's like saying "I built this house, it holds together and can be lived in, but in winter it loses heat like crazy, owner's heating bills are huge. Also, every other week, handles fall off random doors and have to be repaired."


Good programmers might not have a passion for programming, but they have a passion for something connected. Solving problems, delivering a quality product, the rush of seeing things work, the trance-like quality of "flow", whatever. There's something, though.

Programming something simple is easy, like assembling a shed in your backyard is easy. You don't need to be a great programmer/builder to do it, just an OK one. There's no shame in that. But other programs are the equivalent of a Formula One racecar, a skyscraper, a nuclear reactor, or an automated factory...

I think the claim of the post is true at some level; you can be a programmer without being good, and there's nothing inherently wrong with that. There's nothing inherently wrong with being good and wanting to be better either, though. And the good programmers get to work on the cool stuff...


I'm thinking about this, since I'm one of these people who roll their eyes when employers seek "passionate programmers."

What got me into programming must've been passion, but perhaps not passion for programming. Passion for learning new things. Passion for learning to solve problems (quite different from "solving" the same boring nonproblems over and over again!). Passion for the liberating feeling of being able to help oneself, build things for oneself, to create for oneself. Passion to be good at it, whatever it is that one does. Passion to figure out how to build that garden shed, then a motorcycle, then a F1 car, a nuclear reactor... There's probably more.

So there is a lot of passion in me. But it isn't passion for programming per se. That is to say, it would be very difficult for me to pretend to be passionate about assembling garden sheds or cars for somebody else all day long, every day. I could do it, and no doubt I could be very good at it. But, no passion for it.

Just like cooking. Yeah, I love to learn new recipes and try new stuff -- you could even say I'm passionate about it. And just like in programming, the reward is there at the end: something for oneself. But that doesn't mean I have a passion for flipping burgers every day, just as I probably don't have any passion for the average software company's crud product. (I have nothing against burgers, by the way.)

This is an anecdote, but it looks like a lot of the so-called passion w.r.t. software or programming is just, well, being excited about something new and exciting. For something to be new for you, you have to be inexperienced with it. That is to say, being passionate about some software (that you didn't make and aren't a part of) is a sign of inexperience. A bit like buying into some hype, or fad, and thinking it's the coolest thing ever, well, at least until you get bored of it, or the novelty just wears off.

As a concrete example, yesterday I saw the blog of someone I've been chatting with. On the blog, he tells a bit about himself: he's passionate about Linux. He's not a Linux kernel developer or anything like that, so I asked what he meant by that. Response? "Oh, that was two years ago. I didn't know about any other open source OS back then."

You could replace Linux with some programming language or framework or whatever, and you see a lot of comparatively inexperienced developers who seem to be passionate about it. But once you've seen a few dozen programming languages and about as many frameworks over the coures of 20 years, there probably isn't so much new and exciting in them. So have these more experienced devs simply lost their passion? No, it just really wasn't passion for the language/framework/whatever to begin with.

(And yes I'm aware this isn't always the case; I know there are people who have real, lasting passion for some concrete thing. For example, if the blogger I mentioned above were a long time Linux kernel developer, I wouldn't question his passion for Linux at all.)

What all this means is that if you'd asked me when I was 17, I probably would've said yes, I'm passionate about programming. Because I was inexperienced and there was so much new and exciting to discover.

But now, I can't claim to be passionate about programming. And a lot of people would seem to think that makes me a bad programmer, or "mediocre" at best. I wonder if I were a better coder at 17?

The other thing that bothers me is people who think you won't do your job well unless you're passionate about it. That's just bullshit. I would say a large proportion of people take pride in doing their best, even if they hate what they do.


From what I can tell, my drives are understanding how things work, exploring the properties of problems, having a tool that acts as a kind of creative outlet to make things that are functional and beautiful, and having something to tinker with and fix. None of those are necessarily limited to programming, but programming's a decent fit for all four.


This resonates well with me. Had I not learned Haskell, I probably would've left the industry 5 years ago.

The novelty has yet to wear off, there's really so much to learn.

However, I agree with the general sentiment of the responses here: if there's no passion, one can not really be good (at whatever, not only programming.)


You don't need to be particularly talented or passionate to write in a programming language, just like to you don't need to be particularly talented or passionate to write in a natural language, or speak for that matter. But you do need something to say, and what you have to say usually has a lot to do with talent and passion.

(In darker moments I sometimes wish it wasn't so though: Wouldn't it be great if people with nothing meaningful to say simply weren't capable of speech or writing? ;P)


That would deprive almost any person of the chance to learn how to say something meaningful!


Nether does writing, carpentry, art or accounting.

Programming is medium of expression. There is huge demand for bean counting jobs and that's fine.


I think the general point the article is trying to make is valid, which is that you should not stress yourself out trying to be a rockstar coder. Being good enough to achieve what you want to achieve is sufficient.


Yes, but I think it walks dangerously close to suggesting you can be a good programmer without talent or passion. Which is obviously not true.

You'll never be really good at anything you don't care about.


> You'll never be really good at anything you don't care about.

Depends on your definition of "care."

If by care you mean find interesting or enjoyable, then I have to disagree with you. I'd say most people are very good at at least one thing they don't care about simply because they need to do it for some reason. I have neither talent nor passion for mental math, for example, but I'm quite good at it (relative to the average person, at least) simply because I need to do it every day for my job/hobbies.

If by care you mean find it worth doing, then you're right, but then it's just circular reasoning--no one does anything without, on some level, finding it worth doing, so clearly you can't be good at something without doing it. You could say I care about mental math in the sense that otherwise I'd just refuse to do it, but that goes without saying.

I'm pretty sure the OP is about the first definition here, not the second. It shouldn't be controversial that human beings are capable of learning things (and learning them well) that they're not naturally inclined to do nor are they particularly interested in.


I don't think the concept of a genius programmer is detrimental attitude. Some people have competitive attitudes, and will only push them self further if there is someone which they could potentially compare themselves to. What this article really is is an attempt to deal with the impostor symptom by using the example of a genius programmer. A good read nevertheless.


By this definition what does require talent? Sports? Singing?

I can play Basketball. I don't have a talent for it though and I sure as heck am not going to do it professionally. And if I did, I'd quit after a while because I don't have the passion.

However, the author does make a point in that having a passion or talent for problem solving is better. Programming is after all just the tool to do that.

I do take a little offense at some of the other posters saying "programming isn't hard"

I know many people who have tried to learn it and say differently. And saying it isn't hard just makes those people feel like shit. There must be something wrong with you if you can't learn it. I've been told that playing piano is easy. Yet I've spent many hours trying to learn it and I am still terrible at piano and every time someone says it is easy I want to smack them. I imagine people who are told programming is easy feel the same way.

Also, it is weird that I've spent 20 years mastering something that is so easy.


Mediocre [blank] Doesn't Require Talent or Even Passion


Actually not mediocre most taks do not require exceptional talent or passion regardless of the profession.

If you want to define it as mediocre fine but then 90% of things in life are.

I never understood the notion that developers are somehow special and need to be better than the average worker in another field.


> If you want to define it as mediocre fine but then 90% of things in life are.

Honestly, that seems fair. Sturgeon's law would suggest it's even optimistic.


That is what makes corporate jobs so interesting, where mediocrity and politics rule over quality and skills.


Politics is a skill in a large group being political is more important than individual capability since you need to be able to work with others.

This isn't about corporations this is about cooperation at large scales.


Talent is a word I try to avoid. It makes it sound like someone was born with the aptitude to be a programmer. I think most people could do the job, if they wanted to. Let's be honest: it's not incredibly difficult and it's completely teachable. The words I care about are more like skillful, knowledgeable, and adaptable.

I do think it's a tough gig for a person that isn't passionate, whether about programming itself or its outcomes. The part of the profession I'm in is a never-ending treadmill of fads and innovations. It's like the I Love Lucy candy packing episode. I personally love it, but I can imagine it not suiting everyone.

But if the goal of the post is to say that you don't have to be done kind of super genius to be an accomplished developer, I'm on board with that.


Talent is a perfect word for it. I do consider myself talented at programming and yes I do feel I was born with it. I taught myself how to program.

Now several things make up that talent. Logical thinking, good at math, problem solving, attention to detail, knowing how to break down a problem into smaller pieces, troubleshooting, etc. Not all are required for some types of programming. The levels of proficiency required in those things also varies.

BUT, if someone doesn't possess any of those skills then they're not going to be able to program much at all. Even if they wanted to they're not going to go far and trying to teach them will be futile and frustrating.

Many people can be taught to program but their brains have to be wired at least a little bit to be able to do some/all of those mental skills. There has to be something already there to build on even if it's still just a tiny seed. That's talent.


The title's claim and that in the linked article differ enough that the argument is meaningless. The quote being debated is "You not only need to have talent, you also need to be passionate to be able to become a good programmer", but the counterargument is that programming per se doesn't require those things. By requiring an unambiguous meaning for "good programmer," this ends up being an example of the "No True Scotsman" logical fallacy.


Programming is a skill that takes time to be developed. I do not get why there people are against the idea of a 'rockstar' or 'ninja' programmer?

In most professions excellence is recognized. Like in basketball there is Michael Jordan, or in investing there is Warrent Buffet. You would not say that basketball and investing do not require talent or passion. Unfortunately some programmers think so badly of themselves they could reach the conclusion that they do not have skills.


Your examples are competitive sports and buying up the right stocks, areas with specific rules and no net output to society. If the top player never existed in a second reality, the 2nd player would be called the top player and no social scientist could identify the harm to the 2nd reality.

If you look at fields where it matters what people produce and the product requires sophisticated and diverse differences, then attempting to rank them too often is catastrophic. For example Microsoft damaged themselves with stack ranking, not just because of immediate social harm, but because everyone had to rank well by showing off skills that were known to be valuable, top, classy, aka the best fads of today. That puts the company on a walk to a local Maxima and unable to compete with a company with engineers who can invest in random skills that just seem interesting without risking a nervous breakdown from the combined costs of signal investment and actual investment.


Fair point about producing something. But why is wrong to say somebody is a great programmer?

Seems most of these articles about programming is a no skill profession are usually coming from somebody promoting a 3-month boot camp.


There are plenty of studies on telling children they are naturally talented, etc and getting them to stop doing the activity for fear of losing evidence of this trait. Many of the "best programmers" I worked with were unproductive and got lost on things that were irrelevant. Engineers I would pick from my old groups tend not to be recognized as great and complemented on how well and timely they put everything together, with an undertone that the greatest programmer could have also done it if only he had time.

As far as submarines stories, I have no idea..


A good carpenter might have no talent and acquires her skills through experience. She uses the skills to build something (a tree-house, a shed) and she is driven by the passion to build something, to look at her finished work and see it is useful. I wouldn't imagine her driven by the passion to use a table saw or wood glue.

Programming is a tool, a means to an end. One writes code to create something, and it helps to be talented if one has little experience. Passion helps to reach your target (e.g. create a new OS kernel, a new programming language). I may enjoy programming, but passion for programming without a target wouldn't drive me far.

[EDIT just realized khedoros1 made the same point, even using the same metaphor...]


I disagree. A good carpenter is certainly born with good fine motor skills and a good eye for correctness. It can't be taught.


Fine motor skills and eye for correctness can certainly be taught.


Perhaps there ought to be two axes: competence and interest. You may not need a very high level of competence but you sure do need a high level of interest to stay in this field (I wrote my first program 30+ years ago and still write code every day).


Congratulations, I find it requires almost a daily fight to avoid being pushed into management positions and being able to keep doing technical stuff.


Exactly so :-) It takes real effort to remain technical.


But you don't need a high level of interest in programming. Personally I find programming in itself only moderately interesting. It is however the best tool for tackling the problems I find really interesting.


This resonates with me to an extent. I get easily bored with the mundane day to day tasks in the language i'm forced to use. There is an occasional spark of passion when i come across something of interest. Other than that i day dream of other programming languages, solving problems that have an impact on my fellow humans.

The passion was driven out of me by the need to pay the bills. I'd like to think that i'm a gun for hire, unfortunately i'm more like the tap. When there's a need it's used, nothing more, nothing less.

I wish i could do something more exciting with my skills.


This sounds more like the (all too common) opposite problem: an excess of talent (in relation to the job). :P


> I get easily bored with the mundane day to day tasks in the <job> i'm forced to <do>.

This can be said about 99% of all the jobs ever. You don't get paid to have fun. There's this weird expectation in software development community that you can find a job that is fun/interesting/intellectually engaging AND well paid. Guess what - big part of your compensation is specifically because the job is BORING and nobody is willing to do it.



Programming requires skill and diligence. Talent is nice to have but in no way necessary, and passion is totally orthogonal - I can only assume the word in this context is a misnomer for enjoyment, but enjoyment is no substitute for discipline, because if you stop doing it when it's no longer fun, you probably won't ever build anything that's both useful and reliable. (jwz calls this the CADT model, and I've yet to see a better formulation of the concept.)

I do not like the "talented and passionate" rhetoric for two reasons more than its basic inaccuracy.

One is that it can be unnecessarily discouraging to people who are "merely" smart and good at what they do, but not yet experienced enough to question popular mythoi in the field - something I've seen in practice, and had to help people overcome.

The other reason arises from my own experience as a programmer who is talented, enthusiastic - I won't say "passionate" - and also entirely self-taught in the field since the age of six years. When I was in my late teens, the web became a thing, and I used it to further satisfy my eager interest in what other programmers had to say about the profession which I'd long since decided to make my own. Much of that was very similar to what you hear today - that you need talent and passion, and the rest is more or less negligible. Imagine my surprise when I discovered this was not the case! Imagine the crisis of confidence resulting from the discovery that the majority of being a professional programmer has nothing at all to do with your native inclination toward the field or the degree to which you can find enjoyment in writing code, but instead resolves around clearly understanding the problem that needs to be solved, and doing the hard, often dull work of solving it - not just the fun parts, but all of it - which oftentimes doesn't involve writing code at all.

In the end I got through it, and came out with the foundations of a solid professionalism which has served me extremely well since. But I could as easily have come to believe that I didn't have what it takes after all, and in any case that was a bad couple of years that really didn't need to have happened, and wouldn't have happened were the prevailing programmer culture, then and now, not so up itself that it casually throws around advice that's wrong enough to endanger the inexperienced, as a means to satisfy what I have latterly come to regard an infantile "look how cool I am, look what I can do" egotism.

I didn't need that. The junior devs I've helped with similar situations didn't need that. The devs I've worked with who are older and vastly more knowledgeable and capable than I am, but who are with good cause afraid that no one will ever hire them into another engineering role because they have wrinkles and lives and don't spend all their off hours dinking around with the latest frontend fad, really don't need that. And our field doesn't need that, either.


An untalented programmer won't know they are doing things wrong. A dispassionate one won't care.


Of course not. It was hard for me 25 years ago when all I had as a child was a GWBasic book and a computer and I had to figure out everything myself without any help. Nowdays everything is on the internet in easy to digest form. It was a huge advancement.

Still, to get to the top is harder as it's shrinking relatively to the number of programmers...but it's not needed, especially for a well balanced life.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: