My son, Dylan, has been asking me for quite some time now how to “program”.
I knew what he was actually asking … he wanted to know how to write some LUA code for his roblox world he was creating. He knew I was a programmer, and expected he could come to me with a request and I could scribble down some magical code that would make his world do everything and anything he wanted.
It may seem like programming is like that, sometimes … but the reality is there’s a lot more to it. He’s seen samples of code that make his character suddenly fly, or spew out random characters, or shoot another character. He doesn’t understand the one-liner code he sees is actually tying into mountains of code in the backend, to say nothing of what that is actually doing in the game.
I don’t know Lua. Yet. But I wanted to take this opportunity to take my son on a bit of a journey with me to learn Lua himself, while getting a grasp for why I say it is simultaneously easy to make xyz happen, and yet hugely difficult.
He’s watched me put together an 8-bit CPU out of breadboard, from 74 series TTL chips. He’s watched me dump code on my screen that makes a GUI. He’s watched me spend hours writing code only to jump for joy when I get the one final printf debug statement, completely underwhelmed at the apparent reward-to-work ratio he sees.
I’m going to try to take what I’ve learned and am going to learn about software engineering, from fleeting electrons on a breadboard, all the way up to how various languages make various electrical components do magic, including web guis, graphics, and maybe make his Roblox character do a flip in the air.
Maybe, just maybe, along the way … he’ll learn a thing or two. I know I will.