I've known several smart people whose only programming experience came from doing CS course assignments who said that they really didn't enjoy doing programming.
Programming is building gadgets -- no, more than building gadgets -- when it's done right, programming is building gadgets and connecting them to other gadgets then using those conglomerated gadgets to build larger, more magnificent gadgets! Programming is a series of puzzles to be solved, of aesthetic design decisions, of creating spaces, of tradeoffs and balances, of pursuasive conversation, of architecture and re-architecture, of thousands of tiny discoveries. Every useful program gives its author a chance to pursue greatness, and to inflict some miniscule but absolutely perfect order on the decaying universe.