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