Hmmm. After a decade of running, swimming and circuits I still detest them every day just as much as when I started.
The key might be that one can only enjoy activities that are done purely for whimsical reasons.
I dunno, I enjoyed all three from the get-go. Ballroom dance I suspected I would enjoy, but it took me a while to get to the point where it wasn't just work to do it (even though I enjoyed watching it.)
I know plenty of people for whom those things are flipped. I don't think "what you can enjoy from the get-go" and "what takes more time to learn you can enjoy" is constant from person to person.
Only recently have computer proofs become somewhat accepted. The holy grail is still to find simple proofs to interesting problems to enlighten people.
My early education in programming followed a similar pattern, actually. I'd actively pick the brains of any teacher in high school who gave off even a hint of understanding programming or anything related. Once I'd learned everything about digital logic and did all I could on the broken Heathkit boards, my electronics teacher bought a computer for the electronics shop and let me take over his office just to get me to stop bothering him. I also resurrected a 2400 baud modem and hooked it into his local phone line. Actually, I didn't tell him about that, or the fact that I was hacking into the local university to have a poke around gopher space :P. I got some Motorola manuals, and wrote a book on assembly language programming, which I handed in at the end of the year instead of doing the regular assignments & exams.
There are many things to be passionate about. It's just a matter of identifying which ones resonate with you, and making the time.
This is 100% spot on. I came to programming in middle school with not much more than average knowledge of using a computer. I could fix the family's wifi, but had never touched a command line. So I had to learn all the underpinnings of a computer at the same time. I enjoyed both immensely, but at times it was tedious, and I had to push through that to get to the parts that I now really enjoy.
I know a lot of people that have quit, deciding coding wasn't for them, when they hit those tedious bits of understanding a file system and command line.
It's just like getting through the phase of learning an instrument where you have to struggle to remember chords and where notes are and build muscle memory. I don't think most musicians enjoy that part, they enjoy the creativity that comes after it.
I have had such a realisation few years back, which I neither was able to put into concrete words, nor did I take it seriously, until I have read yours.
Growing up, I used to love drawing as a child, but later I started to become indifferent towards it and my skill started waning leading me to wonder if I simply disliked it or was just not so good at it. Unbeknownst to me I started practicing in hopes of becoming good enough at it to be able to do better programmer art work for my games. I became reasonably good at it and only then was I able to reason out that my indifference was because programming interested and intrigued me far more than drawing ever had.
that was me when I picked up my first K&R book in elementary school. It was interesting and fun.
Yet I do it for a living, because building things is incredibly satisfying. Ya about 90% of the time I'm kind of bored, but actually finishing things (useful things!) makes it all worth it.
Interestingly I found that I have the same feeling in other endeavors. When I remodeled my house I found construction to be just incredibly dull. But man, the result was absolutely worth it. I don't know if I've ever felt more satisfied with anything.
It's a personal crisis...
personally, if I find something dull for a longer amount of time, there is no way I could push through it; luckily, in programming, if something is dull, you either don't have the creative freedom you need, or you have chosen the wrong abstractions (which leads to the fun task of looking for better ones :-))
A typical month, for me, has probably 5% exciting programming work. The rest is just tedious churn that you inevitably have to do to support the exciting bit.
At my last job, I was brought on into a role of leadership and immediately had all of it usurped by my boss (formerly doing my responsibilities) upon my first couple of this-is-unexplored-territory-so-I-stepped-on-a-rake mistakes. Looking back, I was checked out by April (and I started in February).
"Checking out" for me is hard to see until I'm not checked-out anymore. I can't even feel it in the moment, because I still like to argue and I still want to do capital-R Right, but my brain stopped really working for a while. My mental health followed. What few good projects I did and was proud of felt more like the work of other people (even though in retrospect I more than carried my weight) or were things I built out of spite to prove that, no, I really did know what I was talking about, jerks.
Of course, they're not jerks, and I'm friends or friendly with even the folks in my management chain now that I no longer work there. (Getting a 50% raise to leave didn't hurt.) But I can't be a meat puppet, it's not in my nature, and I feel like that's the case for most of the really really good programmers I know.
I found myself wondering what a person might have to change to be able to up the exciting work to 10, 20 or 30% of the work-month.
However, I think the only reason I was able to enjoy learning programming was because of how adept I already was with computers as a "power user", because it gave me the physical skills and conceptual underpinnings required to appreciate the field.
To me, this raises an important question.
If you lack the physical skills or are a novice in a field, it can be frustrating or intimidating to learn even if you would otherwise enjoy being competent. For example, learning to draw: should one accept their dislike of basic beginning drawing practice to imply that drawing is not an appropriate vocation for them? Difficult question; probably depends on the person. The only way to know if you love drawing at a competent level is to reach that level. In a sense it begs the question: how can you tell if you will enjoy doing something until you have the ability to actually do it?
I don't think there is an easy way to solve this problem; you simply have to put the effort into practicing new things even if you don't enjoy the practice. That's where you get into willpower, commitment, etc. My experience of the world is that you simply cannot expect to be successful by only doing things that don't feel like work; sometimes, you have to actually do the work.