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.<p>> How can I tell if I have programming aptitude?<p>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 <i>real</i> occupation on Friday evenings).<p>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.<p>(Background: my depth perception is basically shit because of a limp eye. The only reasonable drawings I ever made where in Geometry classes).<p>Her reply was along the lines of dude, look, the ones who have a <i>talent</i> 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.<p>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 <i>really</i> liked this, weren't exactly breathtaking.<p>tl;dr: You have the "programmer aptitude" if:<p>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.<p>The pitfall in b) is that it will consistently make you feel like a failure, but hey, that's life man.