If you know the phrase “Fake it till you make it”, odds are you’ve had that as a mantra at some point in your life. Usually, yeah, it’s meant as a joke, but for some (read: me) it rings is a little more true than it should.
See, my first real office job was centered around doing stuff in SQL, which at the time I knew nothing about. I sat down on my first day at the job, pretending to know what I was doing and, eventually, had it mostly figured out. I mean, I still really don’t feel like I have any idea what’s going on when I look at some SQL statements and/or databases, but I digress.
For me, and I imagine more than a few others, diving headfirst into something you’re unfamiliar with as made up a decent chunk of the professional side of our lives.
Zachtronics’ Shenzhen I/O is a game that not only perfectly encapsulates the feeling of “Oh god what am I doing, oh hey I understand this maybe” by making you learn a programming language from scratch while structuring its puzzles in a way that makes the entire experience as rewarding as it is involved. And confusing. It’s very confusing.
In Shenzhen I/O, you take on the role of a newly-hired engineer at a company that produces all small chips used in all manner of electronics. Using a mix of proprietary and sourced chips, along with an assembly-like coding language, you program things to spec for your clients.
The entire presentation of Shenzhen I/O, down to the company you work for and the way you have to learn “on the job”, make playing this game an experience that brings back memories. Like I said before, my earliest software job was in a language I had very little experience with. Then here, in Shenzhen I/O, I’m put right back into that position and I’m getting to experience all the emotions involved with starting from scratch.
I experience confusion about the specifications set by the clients, “how the hell am I even going to start on this?”
I feel the frustration of something not working when it damn well should...at least...I think so?
And, most importantly, I get the endorphin-pumping “ah-hah!” moments of fulfillment where I finally land a solution to whatever problem I’m stuck on.
What adds to this is that developing solutions for each puzzle is fairly open-ended, and the process tends to follow pretty standard “best practices” for development, like building functions additively instead of going for it all at once.
Here’s what’s really cool about Shenzhen I/O- none of the coding stuff is explained in-game. Instead, there’s a PDF that comes with it that has all the info you’ll need to make progress. It’s filled with details of the coding language and some of the parts you’ll use. There are some tutorials for simple devices, and even an ad for one of the products you have to make.
You can easily just have this open on your computer, printing it out and shoving the pages into a binder adds a surprising amount of immersion to the experience. It’s so awesome to be able to flip through the manual physically while you have the game opened up on your screen. Plus, alt-tabbing between the game and the PDF is a bit of a pain, so hey you get to avoid that business.
If you have experience with programming, or learning new systems, your experience with Shenzhen I/O is probably gonna be pretty similar to mine- one of nostalgia and nightmarish flashbacks (in a good way, probably). If you’re entirely new to programming, or looking for an introduction to the kind of logic you have to follow within most programming languages, this might make a good, or at least interesting, starting point.
Shenzhen I/O is a wonder of a game. It scratches a part of the brain different than most other puzzlers will, mainly because it’s all programming all the time. It demands equal parts creativity, logic, and cleverness. You have to think “outside the box” while staying within the strict rules of logic commands, and it’s in this way that learning the systems within perfectly emulates the experience of learning a programming language at a new job.