You get a similar feeling with Javascript by reading the source code of libraries like prototype.js or jQuery. Lots of "Wait, you can do that in Javascript?!?" moments.
My Aha moment was the first time I saw one program produce output which was the source code of a new program. Today we call that "code generation". Back then, I called it "the day everything changed". To this day, whenever I write something, I ask myself, "What could have generated that?"
Python:
- the first time I concisely solved a seemingly complex problem with a few list comprehensions and a well thought out structure of maps and lists
C:
- Using an include file as a simple database and redefining a macro to form a primitive code generator (first saw this in a CPU simulator)
Haskell:
- SPJ's books on implementing functional languages -- the simple beginning pieces seemed to generate more Aha moments (pretty printing and parsing)
While none of these are specific to the given language, they represent points-of-no-return for a change in the way I think about solving (or even representing) problems.
3 comments
[ 2.3 ms ] story [ 16.4 ms ] threadWorks well in any language.
C: - Using an include file as a simple database and redefining a macro to form a primitive code generator (first saw this in a CPU simulator)
Haskell: - SPJ's books on implementing functional languages -- the simple beginning pieces seemed to generate more Aha moments (pretty printing and parsing)
While none of these are specific to the given language, they represent points-of-no-return for a change in the way I think about solving (or even representing) problems.