As a tech trainer who teaches a number of coding workshops, I encounter numerous K-12 teachers who are enthusiastic AND successful at teaching coding to their students. Some are using the “Drag-and-Drop” “Scratch-style” environments others are using real coding with languages like Python, Java or C# to name a few. And this is cool… really cool. However, something that never, or rarely, comes up at the coding teacher meet-and-greets are Databases.
I can understand this. Who wants to ruin the party with digitally stored data that we, as humans get to see in the forms of tables that are linked together by common fields. No spaceships, no bad guys, and when you’re done with your project, you don’t get to package your game and share it with your classmate so that he or she can joyously shoot stuff while at the same time being completely in awe of your computer skills.
Databases are as Unsexy as You Can Get
Teaching databases to a group of students who are eager to code even the simplest game goes over like a veggie stir-fry concession stand at a monster truck rally. Until your students start asking you questions like This:
“How do I permanently log players scores so that I can track the player with the highest score?”
“How can I make a game open with specific user settings?”
“How can I make my program keep track of where I left off?”
“How can I make a very large game run more smoothly and use the least amount of data?”
“How does my system know when my username and password are correct when I log in.”
While all of these are rather complex to execute at basic levels or tie into existing projects, these questions can serve as teachable moments to introduce the concept of the database. Now … that veggie stir-fry is looking pretty good.
Any data that is stored permanently outside of an application is stored in a database-like file, even if it is a comma separated text file. It is important for students who want to pursue careers in tech to understand this. Plus databases in today’s world are what the aqueducts were to the Romans, the backbone of the civilization. Well maybe it was the roads or perhaps the wine but the Romans had some kind of backbone to their civilization and it was the equivalent of a Database.
Today we hardly do anything that is not using a database. From logging into a website to checking our email to skimming Facebook or Twitter to reading this blog… (oh yes…. this content is being retrieved from a MySQL database)… to playing our Spotify playlists to checking our bank accounts to logging into Google Classroom and the list goes on.
So you want to do this for a living?
Being a game programmer is the dream of so many young people, perhaps the modern-day equal of what wanting to be the next Eddie Van Halen was in the 80s. The job market for programmers only offers a percentage of those jobs. Just for fun… well, I thought it was fun… I Googled … (whoever thought that would be a verb?) … “Computer programmer jobs NJ”, of course, I was able to see a solid listing of want-ads.
After viewing the first 10 job descriptions I saw that nine of them included SQL(database query language) as a required skill. The only one that did not was for an internship and I guarantee some kind of database query language would come up in the interview. PLUS query language will be a requirement for any gaming gig. AND if that’s not enough, if a student ever ends up working for a company whose product is a web-based application (and that’s a very good chance), they will need to know databases as well. All interactive web apps are backed by databases.
So the moral of the story is:
Learning databases and query language to be a gaming programmer is the equivalent of practicing your scales if you want to be a rockstar. It might not be fun (although I think it is) but it will get you the gig.
My advice, (which isn’t really that valuable) is:
You can’t go wrong teaching SQL. It is a universal query language that is easy to learn and can be applied to thousands of places. Plus, the concepts you learn from practicing it can be transferred to other similar languages. While the ultimate goal would be a server you can access with SQL Server or mySQL installed, you may be more interested in some of the sites below that include free tutorials and interactive practice apps. Plus there are a number of simulators that can be downloaded to desktop machines in developer mode, but those are sometimes complicated to install and activate.
Not sure what databases and SQL are? Here are a couple of links to explain.
How to Describe Databases to Kids
What is SQL (a little complicated but it’s the best I can do)
Here are some places to get started if you would like to add Databases and SQL to your curriculum.
A quick and easy and interactive introduction to SQL
W3Schools.com Great SQL Tutorial
A full-fledged SQL course (probably better for you than your students)
Learn SQL from Code Academy