
Programming Doesn’t Require Talent or Even Passion - pw
https://medium.com/@WordcorpGlobal/programming-doesnt-require-talent-or-even-passion-11422270e1e4#.424wl8hgw
======
retrogradeorbit
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.

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

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

------
aaron-lebo
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.

~~~
tzs
> 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.

------
khedoros1
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...

~~~
clarry
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.

~~~
khedoros1
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.

------
bjornsing
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)

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

------
Nokinside
Nether does writing, carpentry, art or accounting.

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

------
carlmungz
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.

~~~
jay_kyburz
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.

~~~
somestag
> 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.

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

------
throwaway2016a
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.

------
rijoja
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.

------
lngnmn
_Mediocre_ [blank] Doesn't Require Talent or Even Passion

~~~
dogma1138
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.

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

~~~
dogma1138
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.

------
acjohnson55
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.

~~~
Avernar
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.

------
lutusp
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.

------
rampage101
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.

~~~
languagewars
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.

~~~
rampage101
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.

~~~
languagewars
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..

------
merraksh
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...]

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

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

------
2sk21
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).

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

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

------
steedsofwar
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.

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

------
gagabity
Passionate!
[https://www.youtube.com/watch?v=Bz2-49q6DOI](https://www.youtube.com/watch?v=Bz2-49q6DOI)

------
xiphias
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.

------
throwanem
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.

