14 ms·
Games with strong user-hosted server ecosystems seem to be a great way for kids to start gaining serious coding experience. I went a similar path with Minecraft
by rococode 7y ago
Games with strong user-hosted server ecosystems seem to be a great way for kids to start gaining serious coding experience. I went a similar path with Minecraft servers (and also first started with Runescape, both are in Java) - making a server in highschool and grossing ~$150k in a year and a half.
Before making a server, I thought coding was cool, but had never done much beyond running some basic programs. Making a server gave me clear goals that helped me learn coding much faster. "I need to figure out how to add custom bosses so my server will be more fun!" is much more fun and interesting to a teenager than "I need to figure out how to remove a Car object from this list of Car objects". There's also the very important social aspect - seeing other real people enjoy code you wrote is extremely satisfying.
And you can do really cool stuff with servers that teaches you real things, moreso than any class could. My own experience writing a ton of custom code for my Minecraft server taught me things like Unix, Redis, MySQL, web dev, reading obfuscated code, networking (like running 8 servers and writing code to pass players from one to another), deployment, basic security, pathfinding algorithms, writing scripting engines, etc. etc. all of which I had no experience with before, and would not have learned for several years otherwise. I'm graduating with my master's in CS now and still haven't been taught in class many of the things I had to figure out to make what I wanted to make. The few other devs of big servers that I knew had similar experiences - started off as beginner programmers, and gained a huge amount of experience from building out a passion project.
- mattsfrey 7y agoHear hear. I got into coding as a young teen from running a counter-strike server and wanting to make my own adminmod plugins to do more cool stuff on the server, had to learn Small C. Then I wanted to go further than the restricted API adminmod had for plugins so I learned how to build and modify actual adminmod, then metamod, eventually was working in C++ building actual mods for half-life, was all fun and games at the time but gave me a platform for a lucrative career later in life, sweet!
- ErrantX 7y agoMy start into real programming was through EventScripts for source servers. Used to love that stuff. Taught me Python too.
- jlis 7y agoI can relate to that. I've got into programming when I joined Blank-TV (which offered free HLTV servers at the time, similar to hltv.org). They've had a system that, nowadays you'd call it autoscaling, automatically booked new relay servers onto the master server based on the viewer count. It doesn't even have to be programming. One of my best friends started doing little gigs for clans/teams and designed their websites. Each game had its own little eco system back in the days where you could offer/buy anything from scripts, to websites and skins.
- PostOnce 7y agoIt's sad how few games let you host your own now. Pay for XBL/PSN/whatever, or the PC game co runs all the servers, or Google wants to sell you Stadia. Fortunately, "moddable" is a genre and people want it, so it can't be killed completely. Kind of like how adding IAP "makes more money", but "doesn't have IAP" is a genre people want, too.
- connor4312 7y agoA similar story here. I was into the game and started running a Minecraft server hosting company in high school (selling VPS'es with a Minecraft control panel, effectively). I ended up learning and doing the operations, maintenance, support, marketing, taxes--the usual jack-of-all trades of being a startup. My connections and experience there led directly to me joining another company, which has subsequently been acquired and landed me at Microsoft. I wish more CS/programming classes, particularly pre-college, were game-oriented. A Java course I took in school had us writing a 'database' command line app that held fake enrollment information. Had that kind of thing been the only exposure to programming that I was given, I almost certainly would not have entered the field. But show someone like me a way to automate or expand something like Runescape or Minecraft? That, I'm interested in.
- TeMPOraL 7y ago> A Java course I took in school had us writing a 'database' command line app that held fake enrollment information. Had that kind of thing been the only exposure to programming that I was given, I almost certainly would not have entered the field. Me neither. That said, in retrospect, I believe university is more similar to real jobs that people give it credit for - the tedium only gets worse in a typical dayjob. As much as I hate "fake enrollment DB" exercises, they're pretty accurate description of how the work looks like. (I used to want to go into gamedev professionally; due to various life events I went a different way. Judging by stories from both HN and IRL people I know from the industry, I may have dodged a bullet here.)
- cgriswald 7y agoThe thing that always bothered me is that the “fake enrollment DB” doesn’t solve a problem anyone has. It’s play-acting at solving a problem. So you get the tedium of work instead of the fun of play, but the productivity of play instead of work. Yeah, you can get there that way but it’s a slog, and the reward is a long way off. That’s not like work. At work you get a regular paycheck even if enrollment DB isn’t thrilling.
- 7y ago
- wilsonrocks 7y agoHosting a long term game of freeciv was essentially the catalyst for me transitioning from math teacher/trade union official to web developer, via making some web apps For the players involved.
- sitkack 7y agoI wish people were transition _to_ math teachers. I understand things change, income is different between jobs. I am not passing judgement on the fact that you transitioned away. It would be awesome if teachers were paid as well as a web dev.
- isoskeles 7y agoI'd consider it if I didn't need a four-year degree.
- imtringued 7y agoIt pisses me of that basically everyone who ended up with bad career prospects from their physics or similarly difficult degree switched to tech. It makes it look like there are 0 career prospects in other industries.
- PopeDotNinja 7y agoIt's not that there are no career prospects in other industries. It's simply that certain careers can be bootstrapped on your own, and others you need to help/training/licensing/whatever to get into. You can't become a doctor or civil engineer by just hacking on your own & applying to jobs. This comment sums it up => "I'd consider it if I didn't need a four-year degree.", (https://news.ycombinator.com/item?id=20101794 https://news.ycombinator.com/item?id=20101794)
- smueller1234 7y agoThat's not true. My physicist friends from university ended up in various different places. Many of them with a technical or analytical twist, yes, but certainly not all in the 'tech industry': several data scientist, a quant, various opportunities at insurance companies, one who builds spy satellites, somebody who builds lensing systems for lithography, and of course a few who became software/system engineers. None of my acquaintances from uni struggled to find good employment in various industries.
- conjectures 7y agoI'm going to try and remember this tip for when my kid gets older!
- jgsimmerman 7y agoI have three stepkids ages 12 to 15 who are all interested in STEM, and we've been looking for a summer coding/compsci project for them. They're into games like Minecraft and Roblox. This might be a good avenue to take. Back in the day, I actually talked to somebody in one of my C++ classes who made (IIRC) around $50k in a year running some kind of gaming server. I looked into it at the time, but it didn't seem like my cup of tea. I might revisit the idea. I suspect that these high-dollar figures are outliers, but it could be a good way to get the kids some valuable real-world experience and maybe they can make a few bucks so they have a little bit of spending money.
- phito 7y agoI learned programming at 13 for similars reasons. First I got an action replay for my Gameboy Adavance, and this opened a whole way of thinking about videos games to me: I could override the restrictions of the game and do the impossible things I always fantasized about (for example walking into the grass in the Pokemon day care). Althrough I had no idea of how it worked at the time, it really sparked something into me. Soon after, I got into a French MMORPG called Dofus and I absolutely loved it (maybe even a bit too much?). But since this was an online game, there was no cheat codes for it. After days of searching on the internet, I joined a few small communities of other kids that were learning programming in order to write bots for that game. It was so much fun, and got me to learn about so many aspects of programming: reverse engineering, network communication, "AI", pathfinding, complex user interfaces, RSA authentication, security (the game had a lot of anti-bot technology), making a lexer/parser in order to have my own scripting system for users and so much more. It was messy and I kept rewriting all my code as I learned better ways to do things, but it was so rewarding having hundreds of users and a community around it. I am now a professional programmer thanks to this, even through what I was doing wasn't particularly ethical or fair towards other players and the devs of the game. But I was too young and was having too much fun to understand that. I stopped once a friend got sued by the game company for making and hosting a server emulator.
- varrock 7y agoI hope you mention this in interviews. I'd imagine it fits your brand very well, as it says a lot about how you approach things. I wish I was this motivated at that age.
- wayfarer2s 7y ago> I'm graduating with my master's in CS now and still haven't been taught in class many of the things I had to figure out to make what I wanted to make. Maybe the fact that you figured it out is an indication that it doesn't have to be taught in a CS curriculum. Most of the things that you mentioned have great documentation and tutorials outside of the classroom. The fact that so many people use them without them being taught in schools should be proof enough. I think the current situation makes sense -- Computer Science education should focus on teaching the fundamentals of algorithms, data structures, discrete math and how to think conceptually about problems without regard to implementation. By learning about data structures and the like, you indirectly learn how best to use memory, redis, MySQL, write servers and whatever else.
- Bekwnn 7y agoI often receive flak for expressing a similar opinion when people express disappointment at CS not teaching them "how to code". Your tuition is best spent on conceptually difficult material, not stuff you can easily pick up on your own.
- tastygreenapple 7y agoWhenever I talk to people about data science I repeat the old adage: A data scientist is a statistician who can program or a programmer who understands statistics at a high level. It's amazing how few CS people become data scientists, I think physics and economics degrees are the most common degrees among elite DSs I know. but it actually makes a lot of sense - it's relatively easy to pick up coding. In fact, it could be the best-taught skill on the internet, there's no shortage of material for a person who wants to learn to code. I think that most CS people don't learn enough statistics to really pursue DS and a ton of people with advanced stats knowledge can pickup coding relatively easily. Now when I talk to kids, I tell them that if they want to go to college, they should try to learn something they can't learn on their own.
- javabird 7y agogreat words
- tehbeard 7y agoSimilar story on a smaller scale for me. I wrote a plugin to fix an issue we had on our server, then got asked to do some work on the server's website to show news and in game stats. Wound up on the admin team helping to run it. Built a number of plugins for it. Learnt a lot of Linux/ server ops through it, and the importance of backups. And it helped me get a job. I showed off an Angular based editor I wrote for one an achievements plugin. The plugin exported data on available triggers and rewards ("is person in this area", "do they have this item equipped", "give them this item", "spawn this mob near them"), and the editor turned this into a GUI anyone could use to quickly make/edit achievements.