
I don't know who it was, it might have been one of the guys my dad worked with, be they said "You won't be able to write a game with a book like that, but you might be able to write a phone directory." Didn't phase me.
I remember someone asking me later on if I was going to write a game. I just looked at them blankly and said: "I'm going to write a phone directory".
I just learned today that "Sams Teach Yourself C++ in 24 Hours" was co-written by Jessee Liberty, one of my all-time favorite technical book writers. "Programming C#, 2nd Edition" was a great book.
I loved tech stores too. I still have all of the Apple pamphlets that CompUSA had sitting next to the display units.
That's honestly a mentality that I never completely got over.
When I was first learning to program when I was ~13-15, Python was already a fairly typical "beginners language", and my dad actually already had a book on learning Python.
Wanna know why I started with C++ instead? Because one of my classmates told me that it was too hard and that I wasn't smart enough to do it and only professional software engineers can.
I wasn't about to let some kid tell me I wasn't smart enough to do something that I knew I was capable of, so that afternoon I begged my parents to take me to a nearby used-books store and buy me a "Learn to Program in C++" book, and started on that. Eventually I also found a copy of the Sams "Teach Yourself C in 24 Hours" book that I read through online.
I still kind of have that mentality; I learned how to use Isabelle because I felt that that's what the "grown up" computer scientists use. I learned how to write Haskell because that's what the "smart" software engineers use. I learned how to use Vim as a teenager because that's what the "good" coders used.
It's probably not the best way to motivate yourself, but it seems to have worked out ok for me.
When I was in third grade, there was a scholastic book fair that was selling the book "Make Your Own Web Page! A Guide for Kids"[1]. The internet for nine year old me was this mysterious, opaque thing; I had no idea that you could just "make" a web page. I'm not sure I know what I thought it was, but I guess I assumed it was reserved for businesses or something, and I didn't realize it was something that a kid could do if they wanted to. It wasn't terribly expensive so I asked my mom and she bought it for me.
I read through it and was immediately hooked. I know HTML isn't a "programming language", but in my nine year old mind I felt like some uber-hacker writing code and seeing it render on the screen made me feel so cool. It didn't hurt that the internet was still novel enough (~1999-2000) that my third grade teacher was extremely impressed that I did this by myself after I presented it to class for show and tell, and she actually called my parents to tell them how impressed she was.
Later I got into proper programming with a bootleg copy of "Sams Teach Yourself C in 24 Hours" [2], a book on ActionScript I had found at Goodwill to use with a pirated copy of Flash MX 2004, and a C++ book that I got for my birthday one year. I eventually became reasonably ok at software stuff and I've built a decent career out of it.
I actually tracked down a copy of that original "Make Your Own Web Page!" on eBay and read through it again about two years ago, and while the HTML in there is dated and it's not terribly useful anymore, reading through it I couldn't stop smiling.
[1] https://www.amazon.com/Make-Your-Page-Guide-Kids/dp/04391340...
[2] I'm actually not sure if it was bootleg. I didn't just download a PDF, it was a website that seemed to just host the entirety of the content of the Sams book I think.
It seems clear the understanding of the game idea stems from experience with Pokemon, which introduces children to numbers and the concept of hits, damage, health. Thus it is natural he would have such a game idea as an entry point.
Abstract thinking usually develops around the age of 12. My question was how he was able to make symbolic representations of abstract entities (functions) at that age. I think this is where AI shines, as it bridges the gaps in understanding, thus lifting the burden of solving those gaps instantly and instead allowing for the fun explorative process of engaging with the problem at the current level of understanding -- keeping you at the "almost there" feeling, thus continuing is engaging if not irresistible.
In pedagogy, the zone of proximal development "is a concept in educational psychology that represents the space between what a learner is capable of doing unsupported and what the learner cannot do even with support." (Wikipedia) 20 years ago, this would probably be too difficult even with support from a parent. The parent would have had to do much more of the heavy lifting to allow the child to not be too distracted by syntax and implicit conceptual relationships. For example, in setTimeout(function..., it is not intuitive, even for many adults, to declare a function within a call, let alone to grasp the concept of callbacks and an event-driven environment.
In a way, the AI allows him to "build with blocks", maybe similar to how VisualBasic abstracted away many complexities. He is able to have a creative interaction with AI that is very keen to abstract away complexities that would significantly decrease the motivation to continue. My own experience with AI is interactive, and I feel I learn things much faster, which is in stark contrast to the idea that the AI just writes it for you. You still have to learn and understand in order to formulate intent for the AI and to evaluate and connect the result.
This opened my memory of my own first game I wrote at 12. I had an Amiga 500, lots of games on floppies and among them "Workbench". I found the Amiga Basic interpreter in Workbench on a rainy day while clicking on everything to find something interesting. I figured out the English manual "Amiga Basic" on my shelf, probably related to it.
Not very familiar with the English language at the time, I later managed to make a 100 rows text-adventure consisting of only variables, print, if, then, else. I wasn't able to grasp the other concepts as I did not know what to look for. The idea of a function didn't exist to me. Merely understanding the outline of the reference manual was hard enough. The game spanned three rooms and I got stuck trying to make the inventory. This is how far I came with no guidance at all, no parental involvement, and not even knowing at beforehand what a programming/scripting language was. It would take 4 more years before I picked up programming, then with "Borland Turbo C" shared with me at school on a floppy. I remember my first for-loop deeply impressed me as I realized I could build more complicated things. Later, every time I learned a new concept in the book "Sams Teach Yourself C in 24 Hours" I would have a new game idea.
When I was 16 I was looking at programming books at Borders and a guy handed me a copy of "The C Programming Language"; changed my life.
So much of my career has been shaped by running into developers or just people interested in programming out in the world.
Thanks.
Some of those books were laughably bad. But thing I miss from back then, was the feeling that the book was going to be the key to getting you started writing whatever crazy idea you had for a program in your head.
I think the last time I had that feeling was walking out of Microcenter with a new MacBook and an iPod Touch, ready to make the next Angry Birds...