Video Games: Gateway To a Programming Career?
Nerval's Lobster writes: Want more people to program? Encourage them to play more video games, at least according to Facebook CEO Mark Zuckerberg. In an online Q&A, Zuckerberg suggested that a lifetime spent playing video games could prep kids and young adults for careers as programmers. "I actually think giving people the opportunity to play around with different stuff is one of the best things you can do," he told the audience. "I definitely would not have gotten into programming if I hadn't played games as a kid." A handful of games, most notably Minecraft, already have a reputation for encouraging kids to not only think analytically, but also modify the gaming environment — the first steps toward actually wrestling with code.
Those of you who have done programming work in your career: did video games influence your path?
When I started with computers, I had to bust my ass to get any time with any machine at all and there was nobody around with information or guidance or knowledge.
The first thing I did wasn't play video games. I learned about BBSes. I learned telephony, phreaking, networking. I learned BBS software. I learned people. I built a BBS. I built a multi-node BBS. Then I moved on to writing engines for websites to do things I needed (like financial transactions, databases, etc).
I started with computers around the age of twelve and didn't really get into video games a bit until my twenties and a lot until my thirties.
Meanwhile, I have seen kids in the last fifteen years primarily use the computer for porn, video games, and social networking... and that's all they do. Not once do they give two shits worth of thought about how things work or why they work or to start taking things apart and looking under the hood. Kids are raised as consumers of content; not creators. In fact, they are punished for being creators. Inventors. Discoverers. Hackers.
...gateway to an acting career?
So it was 1993. My friends and I all loved video games, consoles, etc. In '92 we had all gotten hooked on Wolfenstien, and most of us already had computers cobbled together from things begged, borrowed and stolen. We spent days tweaking our config.sys and autoexec.bats to get the most of what little ram we had. (himem.sys, load TSR high) Then Doom came out.
We started doing dial up games almost immediately. Then one day one of our friends tells us about LANNING a game. We all bought into it, getting 3c509c's? Ahh those days, magelink for transferring maps, loading ipxodi, lots of fun. "WHO UNPLUGGED THE TERMINATOR?"
From there a lot of us went to tech support for the then blossoming ISP industry, and from that we went on to desktop support, and bigger and greater things. I owe my career to video games.
All my early DOS knowledge came from learning how to configure my PC to play video games.
Being able to fully explain how to do things like mem /a off the top of my head not only landed me my first good IT job, but got me hired at a higher position than I was interviewing for at the time...
"There are people who do not love their fellow human being, and I _hate_ people like that!" - Tom Lehrer
It's been a running gag for years that every single Computer Science major I knew going through college got into the field because they wanted to make games (though some deny it later on). Somewhere along the way, 98% of them realized that the games industry is a soul-sucking space with horrible deadlines, poor pay, and high rates of failure, so they decided to go for something else, but everyone I knew got into the field because they wanted to know how to make games.
And the reason they wanted to know how to make games? Because they played games and thought they had something to contribute, or else wanted to play the game they had in their head that no one else had made yet, or else they wanted to experience the joy of having someone else play their game. But all of that starts with having played games first.
Breathing also a gateway to a programming career! Yes I also started fiddling with computers and playing video games at an early age, but so did all the other boys my age. We all had C64s, Amigas and later on PCs. But most didn't end up in IT, let alone software development or programming.
I'm sure today you'll have a harder time finding a 12 yr old kid without a game console, tablet or computer than with.
Mark Zuckerberg knows more than me, but personally "young nerdy kid who loves playing video games and thinks it's a first step towards programming" is one of those types I just can't stand. Playing video games doesn't help any more than using instagram or dicking around on your cell phone.
Slashdot: providing anti-social weirdos a soapbox, since 1997.
I'm only 27 but I started playing computer games when I was really, really little and the games came on 5.25" floppy disks. I never had a console, only computers.
I never wanted to actually be a video game programmer, but computer games are what made me so interested in computers in general. I definitely did my fair share of video game hacking and modification and reverse engineering as well as making helper tools and scripts for myself and my friends.
I went into a Software Engineering program in college because of this interest and have been a software developer for 5 years now and it's been great.
I mostly got started in programming from using LOGO on the old Apple IIg computers starting in 3rd grade. I played video games a little but I'm pretty sure that is correlation, not causality. I also learned a lot by using an HP-48 in my math classes instead of the "required" TI-82 starting in high school... math teachers all insisted that this was a bad idea because I would need to create my own programs instead of using the ones provided with the teaching materials... but I think I actually learned a lot more BECAUSE I wrote my own programs that were much better than the junk everyone else just copied from the book without even understanding what it was doing. What did video games teach me? Not much. I suppose I learned a bit about geography from carmen sandiego.
Not to be a downer, but when I was a Teaching Assistant for a Computer Science class, the students that told me they wanted to do computer science because they loved computers games were usually the first ones to drop out.
Not that Computer Science equals programming. It certainly does not. Computer Science is generally more focused on the science part anyway, not on the programming itself. So I'm not saying that people who love computer games don't become great game programmers themselves. I'm just saying that based on my own biased and subjective experience, I've come to find that gamers didn't make great Computer Science students at all.
I had an Atari 2600 with 30 cartridges as a preteen and did BASIC programming on the Commodore 64. Many years later, I got a testing job at a video game company called Accolade, which got bought out by Infrogrames, which bought Hasbro Interactive, which owned the IP rights for Atari. After the company relocated from San Jose to Sunnyvale and renamed itself Atari, I was a tester for three years and became a lead tester responsible for 10 titles for the next three years.
I also went back to school to earn my IT certifications and learn computer programming because testing video games was a dead end job financially. Made the president's honor list for graduating with a 4.0 GPA in my major while two taking two classes per semester, working 80 hours per week and occasionally teaching Sunday school. Somehow I spent the next 10 years in help desk support without doing any professional programming, making more money than I did as a tester while only working 40 hours per week.
I'm doing computer security and learning Powershell scripting in my current job. I use Python and the LAMP stack for websites at home. I'm more of a script monkey than a programmer these days. Maybe that will change as I get my security certifications and do more programming on the job.
I grew up very close to an amusement arcade and my mind was blown when a Space Invaders showed up one day in 1979. I couldn't afford to play it as often as I wanted (i.e. 24x7) and there was always a queue to play it, so a version of Space Invaders was also my first attempt at an even slightly complex program from scratch too.
I didn't have anything as stylish/expensive as a TRS-80, mine was a Compukit UK101:
http://en.wikipedia.org/wiki/C....
I even had the same performance issues as you, so had to directly poke everything into video ram. Later on I got an Atari 400, and then wrote my own Pacman for it for much the same reasons.
People over 45 (like myself) tend to think that learning to operate a computer is an educational experience. It isn't. It was at least mildly educational when we were kids... because the first thing you saw when you hit the "on" switch was a shell for a BASIC interpreter, or something similar. Now the first thing you see are *pictures*, which you point at, like a three-year-old at a candy store.
Even as late as the mid-90s, you would hear a lot of talk about "computer literacy"-- the idea that operating a computer was a core skill, like reading and writing. You don't hear that phrase much any more, "computer literacy". You might as well speak of "microwave literacy" or "Netflix literacy". Yes, there is technically some "learning" involved when you fire up a microwave or Netflix-- you do need to learn which buttons to push-- but it's a tiny area of knowledge which doesn't lead to anything else. And the same is true, I think, of video games.
At the moment, I work with a lot of inner-city teenagers (most of them from seriously dysfunctional homes and communities, most of them "educated" by Chicago Public Schools). ALL of them have computers, tablets, phones. ALL of them can operate their devices like a champion (and most of them love video games). Not one of them, so far, has become a computer programmer.
As a lead video game tester for three years, I had to teach the next generation of video game testers fresh out of high school. They like the idea of being paid to play video games, and then they learn that testing video games is not the same as playing games. Writing bug reports, going to meetings, and testing the same broken piece of shee-it game for weeks at a time is just the beginning. Most don't survive the mind-numbing crunch times of working 80 hours a week for months.
My early experiences were the old Atari VCS (2600) and VCS stood for video computer system. I was fascinated by the pixels and the idea of a TV being interactive.
I wanted control of the pixels.
Later, in school, I got to work on Apple ][ computers, and those just begged to be programmed. Gaming can initiate the desire, but so can a lot of other computer driven things these days.
It is not prep directly.
Indirectly, games can be prep. For a few friends and I, cracking copy protection got us into 6502 machine and later on, Assembly language. We would use the monitor to see what was going on. Reading the ROM listing told us a lot more.
BASIC is slow, and that too drove learning more. To get the real magic out of the old machines, one has to know stuff. We made games, played them and learned. Utility type programming was good too. One such program generated book reports with just a few picks and keyboard input.
Just playing, unless the game incorporates programming concepts, is not meaningful. The ability of games and other interactive things can spark the desire to build and control.
The latter leads to activities that do serve as prep.
Blogging because I can...
Those of you who have done programming work in your career: did video games influence your path?
Not really. My dad was the one who set me on this career track the day he came home with a Amstrad CPC 646 when I was 6. It came with one game on casette (my dad bought that extra), a book on BASIC in English (which was not my native language), and an insatiable curiousity (although that might have been there at the time). I was lost in the book at the point where it explained how to draw a circle on the screen, but I pounded in the code and started playing with the variables in and before those weird sin() and cos() functions.
And yes, I played videogames. I saved up months worth of allowance (money to buy candy, hey, I was 6) for that dinky little joystick, but I spent more time playing around with it than actually playing videogames on it.
When I was 12 I saved up for a "real" computer. An 8086 with 640KB of memory, and after I got used to working with DOS, floppies and a hard drive with a giant 20MB of space, I bought books on programming for the PC. Yes, I also played videogames, but it was the programming that fascinated me. Making that computer do things for me, albeit very useless but that wasn't the issue, it was doing things I had told it to do. I learned how the machine worked, what memory addresses were special, what interrupts were, ... It was a fantastic journey.
By the time I was 17 a friend of mine introduced me to Linux, and it didn't take long for me to make the switch. A program crashing wouldn't take down the whole operating system anymore, and best of all, it was free (gratis), came with a compiler (again free), and it came with everything you ever wanted in documentation, and if that failed, there was the source code. I played games... I had to dual boot for it, but I played games and even organized a small LAN party with friends in the basement and learned the basics of networking as I went along. When the internet became a thing in my country I could e-mail people around half the globe about a bug in a program, send a patch file, download the source code to something I wanted to try, and learned something new every day.
I'm sad for a lot of the programmers graduating today. The fact that the phone in my pocket has thousands of times the resources of that old 8086 of mine means that inefficient code comes at a smaller cost for small programs. And sure, it doesn't matter in small programs, but when they start writing real code it shows and often in painful ways. Instead of learning how to program, they've learned how to play games. Aside from the graphics card, there's no real need for adding something to a desktop machine anymore, and even if it were it's all pretty much (actually working) plug and play these days. There's no incentive for people who play games anymore to tinker with a machine and learn how it works.
As time has progressed I've seen less and less interns passionate about computing, and more and more people who say "I went in IT because I'm good with the Internet, like chatting and playing games.". Oh, there's a big buzz around the usual hot topics, like "social", "big data", "cloud", "internet of things" and whatnot, and I'm not claiming that's a bad thing, after all times have changed and everyone adapts new models and technology, but still... There's few who are interested in the machine, and how to really make it do things. When a kid tells you a database with 2GB of data in it is "big data" and we should be putting that shit in "the cloud" I start wondering about the future. There are exceptions, but far and few in between.
And yes, as the gray hairs on my head have started to become quite numerous, I still play videogames. But I still spend most of my time with the machine doing other fun things.
Games could be prep for programming, but not for most of the very few who realize "Games are programs... I could write them, too".
Most of them will still lack logic, critical thinking, and math skills necessary for even most basic programming, let alone the often complex tasks required in modern games. Let's face it, we're not talking about simple games, we're talking about FPS games. Say "rendering engine", "frame buffer", "shader", or "vector" to them, and their eyes glaze over in sudden confusion and disinterest. The games they'd want to make don't give an accurate impression of what it takes to produce them, and the video card specs they obsess over are just numbers to them. Aside from that, there are many distinct roles involved with producing a game, which they could realize if they ever bothered to look at the game's credits.
Sure, there are "game programming" degrees available, but to me they sound pretty crap, with more focus on visuals than code. I know someone who got that degree from DeVry, and they didn't cover threading or networking. He came out as more of a digital artist than a programmer.
Wanting to crack copy protection and write trainers is what led to me learn x86 assesmbly, specifically 80386 assembly.
That understanding of assembly gave me a solid foundation for the rest of my career. Once you understand interupts and memory registers, you can grasp the basics of everything from applications, to networking to storage systems. Fundamentally they are all doing the same thing.... reading something from one memory register, modifying it with the contents of another memory register, and pushing the results to somewhere else.
Most people leave the video game industry for good after they realize that they want a personal life that includes a significant other and having a family. Very few testers work their way up to become producers or programmers. I went into help desk support for ten years and I'm now doing computer security, making twice as much money for half the hours that I did as a video game tester.
When I was a kid playing games on a PC was hard. You had to learn DOS, keep enough memory free, install sound card drivers after properly setting the DIP switches and avoiding COM port conflicts that made your mouse play music when you used it. Sometimes you had to tweak BAT files to get a game to install, others required manually using pkzip.
Then you learned how to make boot disks with a bare minimum system or crafted your own multiboot setup. JUST TO PLAY. We were motivated, we had to be. Now kids just tap an icon and punch in their password, done. There's no learning required. Sure they're comfortable with web pages but they don't just pick up HTML and JavaScript unless already inclined. Games no longer LEAD to understanding nor require it, they're simply diversions. As soon as they get bored it's back on Pinterest or Netflix.
I'm glad I got into computers when I did because at that time playing games truly lead to learning.
Cwm, fjord-bank glyphs vext quiz
And I bet they have vending machines full of broccoli that tastes like Snickers bars, give you plenty of time to spend your lunch hour petting the unicorn in the lobby, and have weekly employee poker games with Santa.
Lucky bastard.
And I have never felt content to just play a game. Games always fall short in some way. I found it rewarding to try and splice out code for unnecessary features when they wouldn't run in 128K on our home PC in the 80's, I thought I'd struck gold when I found out Chuck Yeager's AFT stored its planes in flat text and simple experimentation could reveal what the numbers were, and before I was coding Nethack and MUDs, I was hex-editing X-Wing. That was way more interesting than any game alone, though the adults in my life thought I was "just playing games".
Yeah, well, I didn't listen to them, and that's why I'm not mowing lawns to get by.