Story time!<p>I grew up in eastern Europe in the communist era, in a country where entire factories were run using Commodore 64 computers that were smuggled in, bypassing export controls and sanctions.<p>The programmer at one such factory was a friend of my father, and we'd go over to his place for dinner semi-regularly. He didn't have kids, and I was six, so I was bored to tears. No toys and nobody my age to play with!<p>He did have a C64, which was the <i>only other one</i> in town apart from the one at the factory. He was using it to practice programming after-hours at home. There were no games on it, but he did have a book of games.<p>As in: a literal printed book of the source code for several simple games. That you were supposed to <i>type in</i> to be able to play!<p>So I did. I had nothing else to do, so I whiled away the hours while the adults chatted poking away at the keyboard, typing in the BASIC code of the shortest, simplest game first.<p>It didn't work at first. There were some errors. With help, I fixed the typos, and hey presto, the game worked! I still remember the elation, the feeling of accomplishment after all that work. I didn't even play the game for more than a minute or so, I <i>immediately</i> got to work on entering the next, longer game's code. I was hooked.<p>Eventually I tried all three or four of the games in the book, and got bored. However, I was allowed to borrow the BASIC introductory problem set book, which I took back home with me to study. I solved the problems one at a time on grid paper (to match the fixed-width screen layout). I "ran" the programs in my head, debugged them by working out the variable values step by step on paper, and then tested my solutions on the real C64 computer whenever my parents went over for a social dinner. Most of my programs worked, and ran at <i>ludicrous</i> speed compared to the glacial pen & paper solutions I had worked out. I instantly understood that Computers were <i>levers for the mind</i>. Learning to control that raw power was intoxicating.<p>We fled across the iron curtain as political refugees, and I took that textbook with me. I had no access to computers for nearly a year, but when we finally got settled permanently in the West my dad bought a used C64 at a garage sale for a few dollars. This was a computer that back in my homeland would be the carefully guarded control hub of a <i>factory</i>. Here it was a discarded plaything. Even at that age, that blew my mind.<p>I learned more programming languages in quick succession. Pascal at the age of 11, C and Assembly at 12, C++ at 13. I had written 3D engines by the time I went to University.<p>Statistically, if you know programming, you probably learned it in a tertiary education setting, most likely in your late teens or early twenties. Just like learning a foreign language at that age, you'll never be perfectly fluent. <i>You'll always have an accent</i>, no matter what you do.<p>To me, programming is my <i>mother tongue</i>. I'm perfectly fluent and <i>unaccented</i>. You probably can't even tell, you can't <i>hear the difference</i>.<p>Programming for you is something you do at work.<p><i>I've had dreams in C++</i>