Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

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.




> 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.


I 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.


Whenever 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.


great words


A 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.


> 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.)


The 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.


I'm a teaching assistant for an intro to programming class, and I do feel that solving an endless train of toy problems is problematic for students. From my experience, the best way to learn is to understand a real problem, determine it's requirements, then design a solution. However the professor and I struggle to find real problems that are approachable for novices with varied backgrounds.

I saw an open source class called nand to tetris where students had a semester to create a machine that could play tetris, starting with only nand gates. I thought that seemed like a much more fun progression for computer hardware than the undergrad courses I took. I would love to discover something similar for programming but so far I haven't found it.


Some things I'd have loved to be told to build:

    Simple 2d game
    To do app
    Timesheet app
    Implement a clone of x with something extra of your choosing
    Top Twitter celebrity app using its API
    Building a search engine
    Creating a programming language
An issue with the programming courses at my uni was that none of them used a database. The programs were toy apps by design. Instruct students to use sqlite or MongoDB, and encourage them to use PostgreSQL/MySQL.

Our database class did use databases, but we had no integration of the two subjects.


To do app has always seemed an optimal one to me, since it should be relatively accessible, no matter your prior experience, but infinitely customizable. I remember a YC founder telling me that both pg and sama didn't think there was a broadly available to do app that met their needs, so they both rolled their own (and continue to update it as their needs change). That seems like a pretty optimal intro project to me


I thought that the Java Robocode stuff was interesting and could help inject some fun or 'gamification' into development. Would that not be a useful challenge for CS students? https://robocode.sourceforge.io/


Thank you for sharing. This is similar to what we were looking for, something that gamifies the assignments to get students more engaged. Part of the problem is that there are so many free coding resources out there that it's tricky to find a mature one that people have gone through and found rewarding.


Game development is the poster child of this goal; many a programmer (myself included) started this way, on their own. It offers a highly desirable goal (fun and a creative outlet) while forcing you to pick up many of the important programming concepts as the complexity of your code increases.


I've almost finished with my cooperative work/university CS degree, and I always disliked programming "games" there.

Creating the 10000th Conways Game of Life? Developing some crappy game on my own? No, thanks.

Developing something for an existing game? That would have been great! I'm all with you.


Tell Matt S. I say hi!


I 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.


It'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.


Hosting 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.


I 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.


I was a high school math teacher (California, US). Best thing that ever happened to me was leaving that to work in software.

As a teacher, I was working 70 hr weeks to get lesson plans in place and to grade work. Summers were booked for summer school. Every minor "vacation/break" was filled with catching up on everything. I worked with socio-economically challenged inner city kids whose families (generally) saw no benefit to an education. The pay was terrible. After 5+ years and if I were not the sole income for our household, we might have been able to eek by. As it was, we were in a debt cycle that we could not have escaped. I would never have been a home owner.

After becoming a software developer, in my first year, I made as much as a teacher with 20 years experience and a doctorate. Fast forward several years, and I out earn superintendents. I can actually have a mortgage and plan vacations with the family and help my kids with expenses.


I guess this makes it pretty clear why we don't have a glut of competent math teachers: Anyone who could do the job would recognize it isn't worth it.


It 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.


It'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)


That'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.


I'm not sure if I understand what you mean, other than quants and insurance companies I'd consider all of these "tech jobs". Or does "tech" now mean "webdev"?


I would have thought that in this context "tech" meant "software".


Eh, I don't live in the US and I'm not up to date on the slang, but honestly a sentence like "some people work in technology while others design equipment for IC manufacturing" sounds quite silly to me. I'll try to remember now.


Apologies for being obtuse. It was me, not you, that failed at communication. :)

The type of work, though, and skills required are quite different, regardless of that they technically both develop and involve 'technology'. Semiconductor lithography requires a pretty exciting mix of skills starting with plain physics (classical and by now a bit of quantum optics), materials science, mechanical engineering, data analysis/science, software engineering (both for simulation and analysis of production of lensing systems), and I'm sure I'm missing half. It is quite different from "writes software for a software company", which is the framing I had interpreted from the comment I originally responded to.


I don't think your interpretation is wrong, just the context of a HN thread makes it more likely "tech" is software related.


That's the gross oversimplification I went for, indeed!


Building spy satellites could be argued to be electrical engineering, space/flight engineering, physics, data science, etc. In the interpretation of tech industry == software, these are career options that are open to physicists (and similar grads) that aren't in the-HN-type-of-tech.


While I am sure there are local variances, a high school teacher in my neck of the woods will easily out earn the typical web developer by a sizeable margin. I cannot begrudge someone for doing well in their career, but there is a sentiment found in this thread, and I am under the impression that you are alluding to the same, that higher paid teachers will produce better outcomes for the students. I am not sure there is in any indication of that being the case.


Purely anecdotal, but I was a tutor for two years out of college and planned to be a teacher (originally college, then high school). I went into a different field for 3 reasons:

1. Pay

2. Professionalism - all of the teachers I saw and talked to under 65 were treated like dirt, and were micromanaged instead of being treated like professionals

3. Barriers to entry. By the time I got my Master's and decided I'd rather teach high school than spend several more years getting a PhD, it was financially impractical for me to go back for more years to get a teaching degree. It was also very difficult to find internships and open positions. One guy I know who did a straight teaching degree interviewed almost a HUNDRED TIMES despite doing incredibly well in his program and student teaching at a prestigious high school.

I'm sure the kids are doing fine without me, but I had stellar reviews from every kid and parent I ever worked with, and from professors I TA'd for. People have told me my whole life I should be a teacher (came up again just the other day with the guy I was pair programming with). I'd happily take less money to be a teacher, but when you add in factors 3 and especially 2, it just isn't worth it to me. I'm not going to suffer a bunch of professional abuse and take a financial hit to boot to do something that my society doesn't seem to genuinely value.


I don't know where you're located, but in the U.S. if you already have a masters, you don't really need a teaching degree (a certificate is all that is needed in most states). My wife, an eighth grade science teacher, has a masters in neuroscience - no formal teaching degree - and is on the same payband as any other teacher with a masters.


Could be wrong but I believe it depends on the state.


I see your second and third points being issues locally as well – if you work for the government.

However, you might be interested to know that the most successful business in my neighbourhood actually operates an online high school. A friend of mine in another city also operates an online high school and seems to be doing quite well for himself. There appears to be a large market for such services.

Especially if you also have web development skills, the internet provides a platform to be a teacher independently, resolving the second and third points. The first point probably depends on your business skills. However, seeing how well that aforementioned business in my neighbourhood is doing, the potential upside is huge.


I think that is pretty common in the west. A social job does not pay as well, you should be doing it for the greater good. Today's society does not value the future


A person taking a job in teaching benefits society as a whole but disadvantages them individually. We should transfer some of that benefit to them to make it an attractive option by increasing taxes and salary.


Or, you know, you could send them some of your own money before you volunteer other people's.


What did he say that made you think he was volunteering other people's money rather than his own...? He would presumably also be paying the increased taxes he recommended. Also, why such an abrasive/defensive response when he simply recommended paying teachers a more attractive salary?


I think it's the other way around. People who gravitate towards these jobs are willing to put up with more, which while a useful skill in some contexts means that the entire profession has reduced bargaining power.


You might get a different perspective if this were a discussion board for maths teachers.


I'd consider it if I didn't need a four-year degree.


Hear 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!


I 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.


My start into real programming was through EventScripts for source servers. Used to love that stuff. Taught me Python too.


Similar 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.


I 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.


I'm going to try and remember this tip for when my kid gets older!


I 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.


50k/yr is a low dollar figure for popular gameservers, not really an outlier.


You can't run your Roblox server can you?

You can make some mini games with their game creation IDE but no servers




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: