
Ask HN: How can I tell if I have programming aptitude? - canicode
aptitude: a natural ability to do something.<p>What&#x27;s the fastest way to tell if I&#x27;m cut out for, and should pursue programming?<p>I know a tiny bit of Java, and I can do FizzBuzz, basic recursion, logic exercises, etc. Can anyone suggest a few problems with max completion times for each that will let me know for sure?<p>Thanks!
======
weland
Here's a little story that I tell to anyone who asks me this question. It's
how I got it answered for me a long time ago.

> How can I tell if I have programming aptitude?

I have a friend who's a painter. She's a visual artist with a fair deal of
success; she can actually live out of her art (and by that I mean she actually
sells her paintings for a living, she doesn't just design logos to buy her a
little time for her _real_ occupation on Friday evenings).

We were gathered at her house for a gig and waiting for the guitarist to show
up (as usual), and while we were each rehearsing various bits and pieces, she
sat on an armchair across from me and casually picked up a piece she had
almost finished, and began applying some finishing touches. I'd never seen her
painting before, so after I picked up my jaw from the floor, I passingly
remarked that I'm a little envious on anyone who has a talent for drawing.

(Background: my depth perception is basically shit because of a limp eye. The
only reasonable drawings I ever made where in Geometry classes).

Her reply was along the lines of dude, look, the ones who have a _talent_ for
this are the likes of Picasso and el Greco. Everyone else, even those of us
who paint a lot better than anyone else you can find on the street, just
practiced a lot.

She then proceeded to show me a couple of things she had drawn when she was a
kid, long before she decided she wanted to do that for a living. Surely
enough, they looked much like any other kid's drawings. They were a little
less "hurried", as she obviously loved doing it and spent more time on a
drawing, but were otherwise indistinguishable from other childrens' drawings.
Even later ones, from around the time when she had decided she _really_ liked
this, weren't exactly breathtaking.

tl;dr: You have the "programmer aptitude" if:

a) You're a frickin' genius who can talk to computers as if they were kindred
spirits, but then I guess you wouldn't be asking this if you were, or b) You
like programming enough that you can do a lot of it, and can tolerate spending
that time looking at your programs with a critical eye and seeing where you
failed and what you can improve.

The pitfall in b) is that it will consistently make you feel like a failure,
but hey, that's life man.

~~~
jrapdx3
> ...I'm a little envious on anyone who has a talent for drawing.

Among the artists I know, some have taught drawing at art schools. They've all
said drawing and art talent are altogether separate matters. Drawing is about
reproducing _measurements_ , a skill anyone able to hold a pencil can learn.
Geometry class might be a good start.

> ... the ones whojust practiced a lot. have a _talent_ for this are the likes
> of Picasso ... Everyone else ... just practiced a lot.

Actually even the geniuses had to practice. For example, Van Gogh started
painting when he was ~23, and the first couple of years he was quite bad at
drawing. With practice he improved, and went on to produce 900 paintings in
his short lifetime. Manet, the first French impressionist, was so bad starting
off he had to cut out the good portions of paintings and sell those
separately.

Your a. and b. programmers aren't really distinct, many of the geniuses of the
field speak about dismal "failures" from which they learned. It probably
requires genius to see the truly important mistakes and how to do things
better.

~~~
weland
The point I was trying to make is that there is no widespread innate aptitude
that makes you magically produce amazing programs when you touch a keyboard
for the first time, and anyone who does not have that innate aptitude is bound
to write shitty web apps for the rest of his life. You look at people doing
something that they're very good at and it seems _easy_ , it looks almost like
_they have an instinct for it_. It seems like they're born with it, but most
of them aren't.

~~~
TeMPOraL
It seems that a lot of "talent" can be attributed to somewhat random
preferences, especially in childhood.

You described your friend's childhood drawings as "a little less "hurried", as
she obviously loved doing it and spent more time on a drawing", and I think
this is the key. She _liked_ drawing as a kid, which made her draw more than
her peers, she got better at it and because people generally like doing things
the more the better they're at them, a positive feedback loop started.

It also suggests a practical approach to get good at something: sit down,
practice, and _ignore the discomfort you 'll be feeling at the beginning_.
Many people considered talented simply didn't have that initial discomfort, so
they drifted into a skill early, whereas for non-talented it is a barrier to
entry.

~~~
weland
I've seen the opposite end of the spectrum, too, though, which is why I don't
think talent is only a lot of practice, I just think that you can be very good
at something without being one of those "really talented" people.

I have another acquaintance who's a musician (an actual musician, unlike me --
I'm just a programmer who likes playing the drums). The guy obviously had a
lot of practice, especially as he graduated a famous music academy so he _had_
to play the violin a lot.

That being said, he started taking violin lessons when he was 6, but by that
time he could play it pretty well. Having realized that he can't remember the
songs he was inventing, he even developed his own rudimentary notation system
(when he was about four), with horizontal lines whose length indicated
direction and a combination of dots and relative heights to indicate pitch
relative to the first note of the song, so that he only had to remember where
to start from. His violin technique was also remarkably good. When he started
giving violin lessons himself, he struggled with understanding the first
gripes of beginners a lot more than he'd expected. For instance, he never
realized it takes so long to learn how to properly angle the bow when playing
the second and third string of the violin (they're at almost equal height with
respect to the base of the resonance box, so most beginners will
unintentionally stroke both at the same time). Not only did he not remember
having that problem, he literally never really imagined that someone could
have that problem.

He's one of those people who _does_ have an innate talent; there are a lot of
techniques that he never learned, nor really "discovered" through an iterative
process, he just figured out it would sound good if he did <something>, and it
did. His brain was wired in a manner that's favourable to playing the violin
and to music in general.

Needless to say, he still had to practice a lot -- he had to learn "proper"
notation, he's constantly refining his rhythm and coordination, he had to
learn how to play in an orchestra, and it's not like he could play _any_
piece, no matter how difficult, from the very beginning. But there were things
which his mind and his body could do without being taught, or which, at least,
they discovered a lot more quickly than others did. They weren't enough to
make him an orchestra-level musician from the moment he set his tiny three
year-old hand on a violin, but they are certainly enough to set him apart from
a lot of musicians of his age and experience.

------
alexcason
Do you enjoy programming?

If so, you will be good at programming. If not, you most likely won't.

~~~
teekert
Exactly, this is THE question!

Even if you were somehow very good at programming but you hatted it, would you
choose it as a job? I'd drop it immediately, don't waste your precious time on
it.

This leaves one other option: If you loved it more than any other job but you
sucked at it, what would you do? I'd say: Do yourself a favor and find a job
where you do what you love. If you prove my advice to be bad, you'd be the
first human who made it through childhood without the ability to get better by
practice, so don't worry. (And certainly don't think you have be on the
Linus/RMS level to do meaningful things.)

(The options for sucking and hating and for loving and excelling are obvious
;))

~~~
hauget
"Even if you were somehow very good at programming but you hated it, would you
choose it as a job? I'd drop it immediately, don't waste your precious time on
it."

Not everyone has that choice, as making a living and doing what you love are
sometimes mutually exclusive. Casey Neistat washed dishes before he got into
making viral videos. Einstein worked as a patent clerk. Dreamtheater's Mike
Mangini worked in IT to pay the bills before finding a way to make a living
doing what he loved.

TL;DR: find a way to pay the bills to make time to do what really matters to
you

~~~
TeMPOraL
For some it's even worse; for me, "doing what I love" is not "programming",
but "programming as long as it isn't my job". Weird and not 100% capturing the
complexity (I increasingly believe I may have an attention deficit disorder
_on top_ of diagnosed depression I'm dealing with), but in my case it's: I
program for money, often hating it, because I'm relatively competent at it,
and then I program for fun because I love it. I would consider getting a job
that doesn't trigger my mental weak spots but the value proposition for most
things not related to software is pretty bad these days.

TL;DR: It may be worth programming even if you don't like it, because it pays
well. Also, life sometimes deals shitty cards.

~~~
hauget
_I program for money, often hating it, because I 'm relatively competent at
it, and then I program for fun because I love it_

I'm in the same boat!

 _I increasingly believe I may have an attention deficit disorder on top of
diagnosed depression I 'm dealing with_

Have you tried exercising, getting enough sleep, eating healthier, doing more
"outside" or social activities and/or testing out nootropics like
citicoline/noopept? All of these have helped me greatly! BTW, highly recommend
checking out The Healthy Programmer book:
[https://pragprog.com/book/jkthp/the-healthy-
programmer](https://pragprog.com/book/jkthp/the-healthy-programmer)

 _life sometimes deals shitty cards_

Virtual manly hug mate!

~~~
TeMPOraL
> _Have you tried exercising, getting enough sleep, eating healthier, doing
> more "outside" or social activities and/or testing out nootropics like
> citicoline/noopept?_

Oh, the usual stuff ;). Tried all of these at various points; haven't noticed
much difference, but I think I might not have tried enough. Going item-by-
item:

\- Exercising: probably not enough; the amounts I did didn't really affect
much (except weight), but I'm going to try again, at a gym this time.

\- I have problems going to sleeping due to depression and anxiety (I
constantly feel I haven't done enough yet, so I can't go to sleep yet),
combined with being generally a night person (after day spent with people I
really appreciate the late hours without any face-to-face distractions). But
when I finally fall asleep, no force on Earth or in Heaven can wake me before
I get my 7-8 hours. Which annoys my employers.

\- I _try_ , but I just don't like green food :(. Cutting out sugar from diet
did wonders to my weight and dental health, but didn't improve mood issues.

\- I'm a very social person, people call bullshit on me when they hear me
describing myself as an introvert (I usually send them this classic then:
[0]). I frequent various events, both as an attendee and speaker, help run a
local Hackerspace and have uncanny ability to serve as a translator between
technical and untechnical people.

\- Piractem & noopept - little to no noticeable effects. Nicotine (pure, in
gums, I'm not a smoker) - helps stay up a little longer and improves my
alcohol tolerance. Adrafinil - does wonders when I need to skip a night's
sleep or feel the stress-induced tiredness during the day. I didn't try
anything else.

> _BTW, highly recommend checking out The Healthy Programmer book_

Thanks, I'll check it out! I highly respect the Pragmatic Bookshelf for
_Pragmatic Programmer_ and _Pragmatic Thinking and Learning_. The book you
linked is one hell of an expense, but if it could help, then I guess it may be
worth it.

> _Virtual manly hug mate!_

* hug *

#HNTherapy

[0] - [http://imgur.com/76HUN](http://imgur.com/76HUN)

~~~
sharemywin
I read a trick about writing everything down you need to get done so you don't
get that feeling at night your going to forget to do something in the morning.
helps sometimes.

~~~
TeMPOraL
It works.

The feeling I have is more of a "I've done so little today and there's still
so much to do, I can't go to sleep yet".

------
jeffmould
I don't think there is a test that is going to tell you that you should
"pursue programming". It comes down to whether you enjoy programming or not,
and if you can see yourself personally doing it as a career. I have seen
people who are excellent coders and analytical thinkers, yet have no interest
in programming as a career. They are much happier in project management and
other roles. On the flip side, I have seen people that have a strong desire to
be programmers, yet have little "aptitude" (as you define it above). However,
they have found niches where they excel at programming by working hard and
overcoming their own obstacles.

With that said, there are many coding sites out there where you can compete
against others. TopCoder and HackerRank are two that come to mind off the top
of my head.

------
unimpressive
Lots of people have said that you need to like programming.

You don't necessarily need to enjoy programming. But if you're also not
particularly interested in the _results_ of programming, or the ways that you
might get better results, it's probably not for you.

I don't know of any particularly good tests for aptitude, I suspect general
intelligence is probably more predictive than anything else.

------
boothead
You will almost certainly feel like you're not cut out for programming when
you start. Failing is a necessary part of the process, which will make you
feel inadequate.

My advice would be: don't compare yourself to external measures or compare
your skill with other people. Focus on and enjoy the process of learning
(because there's always more to learn).

------
bradcomp
I think aptitude is overrated compared to overall drive / obsession. You
should pursue programming if it's something you want to pursue.

Do you like solving problems? How stoked are you when you figure out the cause
of your bug? Would you pursue it even if it wasn't lucrative?

Project Euler has some good puzzles, they are somewhat math related but cover
a lot of interesting concepts and can be fun to work through.

~~~
ksml
Project Euler does have a lot of good puzzles, but as parent comment says,
they're more math related. If you don't like them (FWIW I never managed to get
into them) you shouldn't necessarily think that programming isn't for you, as
it can also be about building neat software that people use. As others have
said here, you should try to get a feel for if you enjoy programming and what
sorts of things you enjoy programming, because there is a lot you can do with
it. If you don't like the math side, try building a simple app or web page and
see if that interests you

------
msravi
Algebra.

[http://codeup.com/can-a-simple-algebra-test-predict-
programm...](http://codeup.com/can-a-simple-algebra-test-predict-programming-
aptitude/)

Previous hn discussion:
[https://news.ycombinator.com/item?id=8741868](https://news.ycombinator.com/item?id=8741868)

------
nulagrithom
Go build a simple web app. Right now. Pick a programming language out of a
hat, set up a database, wire up a few buttons, add some logic, and shove it
all up in some cloud.

If you haven't given up in a month, you're cut out for it. Persistence and a
willingness to constantly learn are more important than your ability to do
mental gymnastics.

~~~
mrits
Web apps are boring. Build tetris.

------
Jach
The quickest way: get your IQ tested. If you're north of 115 and have the
desire for programming, you'll be fine, though your 130+ peers will probably
do better. If south, but you still have desire, you can still produce value,
maybe even become a very rich person or internet-famous, but you're unlikely
to be a top tier programming god. If you don't have the desire in either case,
what are you going to do instead? Consider doing that, but note programming is
a pretty good gig even if you're just ok at it or don't like it that much.

There are problem sets out there with time limits. You might even get some if
you interview for jobs. But if they give a time limit of 2 hours and you solve
it in 1, does that show aptitude? Maybe the average is 10 minutes! But then
aptitude is more than just lines of code per hour, especially as the problems
being solved become open ended and more complex. Maybe you too got the initial
thing mostly working in ~10 minutes but spent the other 50 testing it and
uncovering edge cases that would break your peers' quick solutions. So if you
have a distribution of results you need to take them with a grain of salt,
especially since experience can dominate aptitude so often.
([http://ridiculousfish.com/blog/posts/old-age-and-
treachery.h...](http://ridiculousfish.com/blog/posts/old-age-and-
treachery.html)) I don't care what your IQ is or how fast you can type, if you
start writing a parser from scratch to solve some problem that is trivially
solved with regular expressions, the regex user will beat you.

So if you're going to compare yourself to others, you need to try factoring
out things like experience by comparing yourself to those with similar levels
of experience. Programming competition prep at school is a great way to do it,
since presumably you've all had about the same classes, are around the same
age, and with many trial problems you can determine who is consistently doing
well (aptitude) and who might have had good/bad runs simply due to having or
not having a piece of knowledge. Another thing to try is a friendly
'competition' like Ludum Dare a few times. Your goal is to make the best game
you can make in 48 hours.
[http://ludumdare.com/compo/](http://ludumdare.com/compo/) When it's done, you
can compare with your peers, especially ones that look to have a similar level
of experience and made similar decisions as you (language, libs, etc.).

~~~
giaour
I don't believe an IQ would be a worthwhile investment for anyone trying to
decide if a career path is for them. I'm sure many of the "top tier
programming gods" you're thinking of are of slightly above average
intelligence and just have exceptional communication skills.

~~~
Jach
Why not? The military has successfully done aptitude testing for decades, it's
a quick way to see whether further investment in a direction is worthwhile.
(Edited to add this, similarly if you have a budding interest in basketball
but you're not going to get tall, you should probably not shoot for the NBA.
Keep dabbling if you like it, but have realistic expectations, statistically
you won't be another Webb, who was still 5'7". It's irresponsible for people
to say keep pushing hard and as long as you're having fun you'll eventually
get to the NBA.) Official tests are best but there are a few ok online ones
that can at least quickly set approximate expectations. If the OP has already
done ACT/SAT tests, it's even quicker to fetch the highly correlated IQ value.

I would be very surprised if people on the level of Carmack or Torvalds or Woz
or Knuth or the many others I know of, famous or not, were under 2 standard
deviations above average. It's absurd to think they're under one, which is
just 'slightly above average'.

~~~
giaour
IIRC, the military uses aptitude tests as a negative filter -- the ASVAB will
be able to determine if you are obviously unsuited for a given profession, but
it's not designed to single out exceptional individuals. I and a few others
who took it with me got perfect scores, but that doesn't mean we'd be equally
suited to any career path.

Unless the OP is asking if he has the mental capacity to be a minimally
competent programmer, his raw IQ score won't tell him much.

------
kansface
I read a study a while ago that addressed this exact problem - a CS professor
gave an intro class a test on CS. The students who had a consistent view of
how a computer works (no matter if it was wrong or not) turned into
programmers. Everyone else failed. There was essentially no movement between
the groups.

~~~
cmadan
Interesting. Link to the study please?

~~~
kansface
I just found it:
[http://www.eis.mdx.ac.uk/research/PhDArea/saeed/paper1.pdf](http://www.eis.mdx.ac.uk/research/PhDArea/saeed/paper1.pdf)

~~~
smt88
This study is biased toward students who already knew CS before taking the
class, which is a substantial number. If someone can explain how this
methodology makes sense, I'll start to buy the argument.

People used to say women were less likely to have a "natural ability" at CS,
despite the huge amounts of seminal CS work that women did in the 50s, 60s,
and 70s.

That changed when the Apple II came out, and it was marketed at boys. Boys
practiced CS before college and basically drowned out the true newbies in
their 101 classes.

After schools realized this, they offered pre-101 catchup classes, and that
has totally eliminated the gap that we saw before.

I've still never seen anything to indicate that aptitude to program (as a job,
not as a researcher or theorist) exists.

~~~
DanBC
The study was retracted by the author. He has said that he was wrong and that
the paper was wrong.

------
greenyoda
_" Can anyone suggest a few problems with max completion times for each that
will let me know for sure?"_

I'm not sure if timed problems are a good way to assess yourself. Being able
to solve programming problems quickly comes from (1) experience from having
solved lots of problems before and (2) experience with your languages and
environments. If you have a lot of aptitude but little experience, you may not
be able to solve problems quickly.

 _" What's the fastest way to tell if I'm cut out for, and should pursue
programming?"_

I don't know if there's a fast way that can give you a meaningful answer. I'd
suggest spending some time (at least several months) learning more about
programming, working on some problems you're interested in, and seeing whether
you become a better programmer over time.

------
audleman
Something to look for: what gives you that feeling of total bliss?

I know I am a good programmer because when I finally solve the problem it
feels good! My brain just releases all these bliss feelings and I go "oh my
God, I nailed it!"

That feeling only comes once every several hundred hours of programming. I am
routinely faced with technical problems to solve that are completely
overwhelming, and that means I have to slog through confusion for weeks on
end. If I didn't have that desire to get to the end goal I would probably give
up.

I think you should look for what has given you that feeling in the past. If
it's building something that works, lining up all the numbers (to 5 decimal
places), or cracking a tough problem programming might be very fulfilling to
you.

~~~
crazypyro
Exactly this. Whenever an interview asks about why I choose this career, I
jump straight to talking about that feeling of success when something works
after working at it for hours, days, etc.

------
sleepychu
Forget trying to work out if you have any 'natural' ability (though since
programming is a man made invention you can work out if you have any natural
ability in the field by testing your problem solving abilities).

Get going with it. Find an open source project that interests you and
contribute. There are a few things that are bad about github but as a platform
it really allows you to find issues in software you're interested in, fix it
and then submit that fix.

If you work for someone that's ideally the situation you're in, you're working
on a software problem that interests you implementing new features or fixing
bugs and submitting them.

HTH

------
marak830
Well a lot of these answers helped me feel better thanks guys.

To op: for me i find sheer stubborness is how i code. Im not sure if that
makes me a good programmer (i have only released one piece of software, took
me 4 months to get to where i am, and a long way to go).

I started out loving the results: in my softwares case, the computer
understanding what i said and doing that action, then i began to really enjoy
how i did it: i just finished expanding it internally to be able to listen to
multiple things and perform those actions at the same time.

For me, once i figured out what i wanted todo, not just exercises, that really
drove me. I think ive learnt more in the last 4 months, than the previous 8
years of tinkering.

I know your not asking how to code, but this is what is convincing me that i
should be programming. Alas i an English teacher, but it pays the bills, and
lets me program after work.

------
jrapdx3
I agree with all the comments saying there's no short cut to finding out if
you have "aptitude" for programming (or anything else). The only way to know
is to try it, assessing its suitability is very much an internal matter,
really a judgement call.

To cut through the noise, here's a suggestion: pick up a copy of "The Little
Schemer", perhaps you'll find it at a library, or possibly on-line. It's a
very easy and fun book to get into. Start answering the questions, if you're
still at it past page 60 or so, you just might _be_ a programmer. Get all the
way through the book, then you definitely have the interest and ability.

As a bonus, if you do pursue programming you will have learned some very
useful things, and if you decide to do something else, you saved yourself a
fair bit of anguish.

------
segmondy
Do you like puzzles?

Do you like putting things together and taking them apart?

Are you disciplined enough to organize lots of tiny little things into
something big over a long period of time without getting bored and giving up?

Can you see the forest and the leaves all at the same time?

If you answered yes to all of this, then you have what it takes. I say this to
anyone else that answered yes, I don't care if you know 0 programming, but if
you can do the above, you have what it takes to become a very good programmer.
Programming is about putting little things together, organizing them, and at
the same time seeing the big picture (forest) while seeing the small pictures
(leaf on a tree). It's not magic or difficult.

------
rayalez
Just ignore this question and don't worry about it.

If you like it, and are ready to put in the effort - just keep learning and
you will become a good programmer.

There's no magical mysterious "talent", there's just intelligence, work
ethics, and skill.

------
dmichulke
There's not really a way of measuring it but I used some different proxies
such as

1\. [https://projecteuler.net/](https://projecteuler.net/)

Math-heavy but interesting

2\. Clojure koans ([http://www.4clojure.com/](http://www.4clojure.com/))

Here you're good if your solutions are close to the best solution - which is
often short and readable (= elegant?)

There are probably similar koans for other languages and I'd also strongly
recommend a functional language (because it frees yourself from the shackles
of imperative and OO thinking, but YMMV)

------
gregjwild
I think it's probably something that's hard to assess like that. I've been
learning to program on-and-off for about 2 years. It's only through sheer
bloody-minded persistence that it is starting to see the pieces fall into
place.

There's plenty of different types of software development too; some require a
stronger programming ability than others. If you enjoy solving problems, and
making life easier for other people, then it's something you'll get to
eventually with enough persistence.

------
hauget
"Can anyone suggest a few problems with max completion times for each that
will let me know for sure?"

I think how "good" you are at something is a very subjective thing... That
said, have you tried programming competitions and projects like HackerRank,
TopCoder, the ACM-ICPC, and Google's Code Jam?

PS: if money is not your main motivation, I'd worry more about finding
interesting questions/problems that you enjoy solving rather than questioning
your aptitude for it.

------
omarish
Aptitude is very overrated. I think if you're curious enough to wonder if
you're good enough / have natural "aptitude", you more than likely have enough
"aptitude" to go with it and can pursue programming.

I think pg has a quote online somewhere to the weight of "if you're spending
time thinking about whether you're smart enough, you're most likely smart
enough."

------
readme
There are a lot of sites out there that offer programming challenges you can
try, but actually developing software and programming are two different
things. If you can do all of what you said, then it doesn't matter how well
you can solve a programming puzzle. You've got what it takes and what you need
is time developing real software and mentors to help you grow.

------
mkorfmann
Do you check the stove 3,4 times when leaving the house? Are you sometimes
anxious, that you didn't properly shut the door after haveng left the house?

I have this theory where people who do these things are good programmers,
since they will check their commit a lot of times until it is perfect to push.
But maybe this is more about mastery than having an aptitude for it. :)

~~~
unimpressive
> Do you check the stove 3,4 times when leaving the house? Are you sometimes
> anxious, that you didn't properly shut the door after haveng left the house?

You might have OCD.

------
Delmania
You're asking on HN. That tells me that you have the interest. The question
becomes if you're willing to do the work. Are you willing to put in daily
practice to learn coding? Even when the "passion" is gone? If so, you're cut
out to be a programmer. Aptitude does not apply.

------
wrp
Among psychologists studying the development of expertise, it is considered
well established that outside of some rare and obvious cases, there is no such
thing as aptitude. Skill is just a function of practice. It all depends on
your willingness to put in the time.

------
galfarragem
As an architect (houses) and an hobbyist programmer I see a lot of
similarities between these activities: they are theoretically creative work
but normally is not your creative aptitude that will land you a job. There are
far less creative roles than boring ones..

------
ljk
Pretty good reading on this topic - [https://terrytao.wordpress.com/career-
advice/does-one-have-t...](https://terrytao.wordpress.com/career-advice/does-
one-have-to-be-a-genius-to-do-maths/)

------
bjourne
Do you think it is fun? If yes, you have it. If no, you don't.

------
aepearson
I had never heard of FizzBuzz before this exact moment. What a weird "test"...

------
sharemywin
Liked computer science in college because most of the grade was code not
tests.

------
mazeway
If you believe you have it, you'll be much likely to have it.

------
tmaly
programming like anything takes practice. You also have to enjoy problem
solving. That's my short take on it.

------
fleitz
The longer you can exceed the max completion time the more aptitude you have
for programming.

It's a bit like zen... "If I work very hard and diligent how long will it take
for me to find Zen." The Master thought about this, then replied, "Ten years."
The student then said, "But what if I work very, very hard and really apply
myself to learn fast -- How long then ?" Replied the Master, "Well, twenty
years." "But, if I really, really work at it. How long then ?" asked the
student. "Thirty years," replied the Master. "But, I do not understand," said
the disappointed student. "At each time that I say I will work harder, you say
it will take me longer. Why do you say that ?" Replied the Master," When you
have one eye on the goal, you only have one eye on the path."

------
venomsnake
If you can grasp pointers, recursion, asynchronous programming/callbacks in
less than a week (as a concepts, not apply-able skills) you have it.

~~~
dmichulke
Pro tip: In order to understand recursion, you have to either just know it or
know someone who understands it.

~~~
venomsnake
Not at all. This is just basic mathematical induction in reverse. I think we
learned it in 7th or 8th grade.

~~~
unimpressive
I think he was making a meta-joke about recursion.

