Not always... I first coded assembly on a Commodore 64... If you start with that and master it, you pretty much can code anything after that.
I still have lots of the "eureka moments" though...

The keyword tracker for example... I did everything as difficult as possible (so I could learn and have ultimate control). For example:
Instead of using a SOAP client to communicate with Google, I figured out how SOAP actually works (at the network level) and wrote my own SOAP client from the ground-up... Which BTW, mine works better than Google's own supplied SOAP clients.

I can query for Chinese, Japanese or Korean keywords to Google and get valid results... where Google's supplied ones in their own API kit come with a note saying it doesn't work.
I learned all about unicode (querying to Google, displaying/manipulating in PHP, and storing in a database that normally can't store unicode characters).
I'm also an efficiency freak (
check #17).
For charting, I decided to not use existing charting libraries, and instead do it from scratch. Also a fun little learning experience...
- Shawn