I was writing/learning HTML with FrontPage 2003 and Flash 5 (6? 7? I thankfully don't remember anymore) when I was 14 - while knowing almost no English (thus, not understanding even what the menu items and controls mean!) and without a manual or teacher and just clicking around and seeing what happens to the code :-( Hard, hard times it was. But I enjoyed it nevertheless.
But still, I'm jealous of you.
If you were to seek my advice, I'd tell you to watch some OCW (OpenCourse Ware).
http://cs50.tv <-- great for starting out. I am ready to bet $50,000 that you'll learn soooo much (while not being overwhelmed) that you can't believe it
http://cs75.tv <- great for starting web development (php, mysql, javascript, css, ...)
http://see.stanford.edu/see/courses.aspx (CS106A is good for now or a little later, CS106B and CS107 are way more advanced but you might find them very educating in a year or two)
All in all, I'd suggest you start watching cs50.tv right now (if it's not a whim and you're really interested in programming as a career, or if you at least enjoy programming right now).
Your book was the first I ever bought about programming. I don't think I ever wrote a line of code from the book but it illustrated basic programming concepts that inspired me to continue development. Very impressed to read that you were only 14 when you wrote it, as I was probably only 14 when I bought it.
I had no idea the author was 14 when he wrote it. I was reading it when I was only three years younger as my first programming book. Unfortunately it wasn't exactly what I was looking for, but it definitely helped me get started in the world of programming.
When I was 14, the only easily available microcomputer was the TRS-80. You couldn't save your programs (unless you owned a tape-player that saved files), it got 40 rods to the hogshead and that was the way we liked it!
When I was 14, I had to push the electrons around by hand. It was painful getting clobbered by those massive protons and neutrons. I eventually got around the problem by converting the particles to waves, so that they only tickled.
When I was 14, you couldn't just go buy a "personal computer", as the minicomputer revolution was underway. So, I had to build my own computer... and I did. (I think I started at 13, and finished at 15).
When I say, I built my computer, I mean I designed a PCB, laid it out, etched it, assembled it, then needed to build a display board to output to a TV, which was another several months of design, etc. And when I had all that... then I had to start writing some sort of software for it! (EG: I had to write software, build an EPROM programmer (because they were expensive) burn EPROMS ..... all to get to the point where I could start working on making an implementation of BASIC!
So, when people complain that "kids can't hack on iPhones" ... well, I think its silly. You buy a Mac and you get a fantastic IDE and development platform for free, etc.
To the OP: Congrats on making your game! It looks very professional. Keep at it!
Oh the day I made spectrum joystick interface all on my own as a kid! I enjoyed that more than playing games subsequently. OP enjoy being a kid, the more you learn, the less your thinking is unbounded! Never forget that.
Having to build a computer (with your definition of building, of course) as a young kid... God, that's the only Heaven I want. After those two years you can send me to Hell.
Why, when I was a young programmer we had to write the code in the
snow with our pee, and a compiler was just a word for the pilot of the
hovering dirigible that read the instructions and passed them to the
ALU, which was another fellow with an abacus. They would wrap the results around a rock, and drop it on my house when the program would
exit. We had to walk uphill...
Or you use Visual Studio Express C# which is free.
Visual Studio (payed) combines all tools, all languages together and works with git, sourcesafe and many, many things more.
Or if you're a startup, you can receive all Windows stuff for free ;) (so you don't have to pay)
Of course, there's always the birth lottery for most people reminiscing here.
For people coming from the third world, this kind of a feat would be very rare to come by and won't be appreciated even if they do, as they are still tackling lower level problems. Heck, my parents don't even know I do on the computer. From where I come from, good grades are the best thing a kid could show to their parents.
I can feel what you say suhastech. But I don't think that is particular to developing countries. I am from Ecuador, and when I was maybe 9 or 10, was given my first Commodore 64. My dad taught me some BASIC and there I was making my first crappy programs. Of course they cared a lot about grades, like any parent.
Being born in a developing country screwed you up because technology took ages to get to you. Man, they still have 128K connections there...
Congrats to the OP by the way!
well, change that for your kid. Every society builds on the work of previous generations. We in India, are late to the party so yeah, one generation will disappear without enjoying all this, but we can ensure that the next generation won't.
BTW it's never too late. I may not be 14, but I am going to have just about as much fun with my brand new arduino ;-)
When I was 14, I lived in Fiji which many consider a third world country. I know what you mean when you say parents consider good grades above all. I've witnessed that firsthand. It's sad how many of my peers were chastised for attempting personal projects outside their school curriculum.
At 14, I was programming in assembler (well, machine code since I didn't have an assembler) on the Altair 8800 my older brother built from parts. 1st program: a game called Fly! where you hit the spacebar to make an 'X' flitting around the screen turn right 45 degrees. When it hit the edge of the screen you lost. Futile - you always ended up losing! But fun to write, in under 128 bytes too.
when i was 11, i taught myself html,css and js and then moved on to batch scripting and later taught myself php and later c#. Now i am 18 and code (Mostly) in Vala, building apps for elementary OS.
Why are so many HNers being dismissive of this young fella? He has done something cool and he is really proud of that. He learnt something that is considered very hard for the majority of population and put his work out there on app store for real test (by real users). Lets applaud him (like some of the posters).
EDIT: Don't forget to contact your users. They will give you feedback and it will help you improve your game and write newer games/apps.
> Why are so many HNers being dismissive of this young fella?
I feel like I should explain my reasons:
He acts as if his age is very important in his accomplishment. Why is it in the title? Why does it matter so much that he is 14? Maybe he has been programming for much longer than the 30 year old who released a website yesterday. Nowdays, anybody over the age of 12 can take online university classes, publish apps (especially when they get the art from sites like MakeGamesWithUs) and learn programming much more easily than 10 or even 2 years ago. 14 year old programmers aren't that uncommon anymore.
I've posted some of my projects to HN a few times. I only got to the frontpage once. I never mentioned my young age, because it's not relevant. I've probably sat in front of a computer many more hours than the Average Joe. If anything, I'm under accomplished. The success/experience ratio matters more than the success/age ratio in my opinion.
But the game is cool indeed, and it's always nice to see somebody complete their first project.
> I only got to the frontpage once. I never mentioned my young age, because it's not relevant.
You didn't get to the front page. This person did. Why do you think the problem is with the way that he describes his project, and not with the way that you describe your project? Your marketing needs work.
> Why do you think the problem is with the way that he describes his project, and not with the way that you describe your project?
Because successful marketing isn't everything, and because he is not describing his project. The title doesn't say anything about the game. The developer's age doesn't describe a game. I think a community like HN should value the quality of the product over the age/gender/awesomeness of the developer. But obviously I'm in the minority, and I'm just stating my opinion.
If people are going to use something I make, I want it to be because they enjoy it, not because of the number of years I've lived on this planet.
Man to be your age and feel what you're feeling right now! I had grandiose plans as an 11 year old to write games on the Amiga. But without the Internet and relying only on books learning was a slow process. It ultimately never happened. I hope your parents support and recognize your achievement. 90% of success is just showing up and actually doing something. It's important to do things like this because you just never know where it will lead, who you will meet, what you will learn. Keep it up!
Amazing work! I remember when I was about 15 I started selling my first software (a billing web app for shared hosting companies). I developed it in maybe one or two months during the summer, set up a website and started getting payments through Paypal. My English was so-so at that time and there were no Hacker News or StackOverflow. I remember one day suddenly realizing that "if"/"for"/"while" were actually English words.
Sales quickly averaged ~150$/day and despite that, my parents still wanted me to get a summer job (at McDonald's maybe) like "the other kids". I also had a computer usage quota and was often going over at my friend's house just to cheat the quota :). Looking back at those days, I think they just wanted me to spend more time with my peers. Anyways, I turned out fine!
To conclude, I truly hope your parents are supportive and if they are not, feel free to get in touch with me for advice (can't help with game development though, you are way more advanced than me).
Sometimes I'm a bit skeptical about these kinds of posts "I'm X age, I made this". I feel like, why would a 14 year old want to make sure his age is on the post title?. It's not that extraordinary I think, I mean it's great that his doing this, but it's not that un-ordinary, sometimes it seems like someone else is driving this for promo.
It's not like there's an overwhelming number of 14 year olds making games right now and posting that they did on Hacker News. It's okay, every once in awhile, for our HN community to join together and simply applaud a young teenager who's going after it.
It's kind of like he's asking for early admission to our special club. We can parse his message if we so choose, but the overwhelming feeling I have for any 14 year old that launches his first game is simply to say congrats.
With that said, Jonah is my cousin and my cup runneth over.
Because he's 14 and super stoked about accomplishing something that many people twice his age couldn't do, so he's showing off a bit.
Sometimes I'm baffled by how hard it is for seemingly intelligent people to grasp very simple human behavior. Spend an afternoon with a kid once. I promise you they'll let you know when they think they've done something cool.
Your first paragraph explains it perfectly, but the tone in your second one is too harsh. Being polite and remaining calm is more appealing than attacking someone like that.
> Because he's 14 and super stoked about accomplishing something that many people twice his age couldn't do
So what? Why does age matter so much? A 28 year old may have less programming experience and help from sites like MakeGamesWithUs and still complete similar projects. Why is it so important that he's 14? He obviously isn't the only 14 year old coding and completing a project, it's not even that rare anymore. Probably not as rare as a woman making iPhone app, at least. With today's technology, everybody over the age of 12 can learn programming, build apps and complete university classes.
I post my projects to HN too, I have only once reached the front page. I never mention my young age, and I won't do it here, because it doesn't matter and it's not relevant.
What's even funnier is everyone in the comments "casually" mentioning that when they were 14 they were doing X or Y or Z. Even in congratulating a kid, people here must brag and not feel left out.
No matter how smart, humans stay humans. It's cute.
I did what you mentioned (saying what I was doing when I was 14), and I can assure you I wasn't bragging(!) in the slightest bit (it didn't even occur to me) and I'm certain others are on the same boat. Most are reminiscing... How times have changed, our old, beloved tools, etc.
You're just being a little bit pessimistic, I think! ;-)
It's hard not to feel a bit bitter when I read things like this. I had a one day introduction to programming in 6th grade (was 10 or 11), and I absolutely loved it. I was ridiculously driven to learn programming for a span of time, starting with basic (which was what we had used). I bought one of those terrible "Learn X in 30 Days!" books, dragged my dad off to get a copy of VB (based on what little research I did/understood), and got to work.
The whole thing was crap. The book was slow, boring, and made little sense. The IDE was completely unfamiliar and strange; I couldn't grasp how things connected together. I showed my uncle the book and proudly told him I was going to learn to program, and what he thought of it (he's a lifelong programmer); he said it was probably better as a reference and left it at that.
I lost interest soon, as I couldn't figure out much of anything useful from the book. I came back to it a few months later, and a few months after that to try again, each time making less progress and losing interest faster.
Some years later, in my last year of high school, I took an intro programming course at the local community college and rediscovered my love of it. I did well, often helping other students, only to have my interest utterly burned out of me when I took the "culling" compsci course at my university a few years later. I busted my ass and failed miserably, and ended up thinking that I just wasn't cut out to be a programmer.
It's been a few years since then, and I'm slowly starting to get back on the horse and learn on my own; reading HN has been a great help with this, as I doubt I would have found quality resources like Eloquent Javascript otherwise. But I feel like there were multiple opportunities in my life to learn and enjoy programming from a young age, and seeing other people have the same thing but succeed is a painful reminder of my own lost chances and failures.
Like you, I hit wrong turns learning programming as a kid. Perhaps I got a bit farther than you, but I spent years writing in crippled languages like QuickBasic and Visual Basic, and bought poorly written, unhelpful programming books I couldn't get through. Everything I tried to write until my late teens was unfinished or a stupid toy.
What I lacked in my younger years, and it sounds like you did too, was resourcefulness. We weren't like this: http://www.paulgraham.com/relres.html The proper response to getting stuck with a dead-end IDE or book would've been to try like hell to find a different approach that works.
It would've been nice to have relentless resourcefulness as a teenager, but there's no changing the past. I'm trying to teach myself that quality now, and I'd suggest you practice it as well. In the end what you did when you were 15 just gets you some bragging rights, at best. You have the rest of your life to accomplish things that actually matter. And that's a much more important thing to know than JavaScript.
Yup. I got a "C++ In 30 Days" book when I was 12 or so. Don't think I got much further than Hello World. Didn't try programming again until halfway through college. I wonder what would have happened if I got a Python book instead.
> why would a 14 year old want to make sure his age is on the post title?
Because they know that they'll be praised for it and probably manage to sell a couple of copies. It also makes sense as something to put on a higher-ed application or CV ("I can already write commercially successful pieces of software, I got X comment from Y developer and sold N units").
That said, you're probably right in suspecting that this is partially driven by someone other than OP. The landing page of MakeGamesWith.Us has Cheese Miners on the front page along with the text: "It's so easy we got high school students to do it".
However, regardless of OP's motivation, it is well worthwhile applauding them on a job well done at such a young age. There are nowhere near enough teenagers taking up programming[0], and I hope that success stories like this will encourage more young people to at least get their feet wet with this financially and mentally rewarding craft.
[0]: This is especially troubling given the ubiquity of free development environments and online instructional material.
I agree. If you've made a good app, its merit will stand on its own. The fact that people believe their age to be the most remarkable aspect of the development of their product raises flags. If any things, it just seems like an attempt to artificially lower standards.
I'm not discouraging them. I'm saying that age doesn't matter. Completing an app is a laudable accomplishment for anyone. Emphasizing their age, if anything, makes light of this accomplishment because it can come off as patronizing. I think that it's great that they made an app, but their age isn't important.
I think age is relevant for this post. Otherwise nobody would be really interested in reading a post about a new release, everytime a programmer in this website comes up with their new app. So I think the most important thing is that he is just 14 years old provided that the quality of his work is decently acceptable.
PS: don't be like that to your own kids, cuz you will be hated as a father, I can guarantee you that.
The initial rush of being X years old and a programmer soon wears off. For those young people who are serious about programming, age becomes more of an impediment, rather than a badge of honor.
If you broadcast that you are X years old, sometimes people will not take your work seriously. Sometimes they won't hire you. Sometimes people will take advantage of you. This is why, at some point, it's important to abstract away age from your work.
I'm pretty sure your age matters if it drastically deviates from the norm. What were most of us doing at 14? Playing videogames, trying to survive high school and puberty...
This kid publishes a freakin' iPhone game— a good one, at that!— and people are shitting on him for it? C'mon.
> I'm pretty sure your age matters if it drastically deviates from the norm.
No, it doesn't. Most people deviate from the norm on something. Age, gender, disabilities. So what?
As a teenage programmer, I can say that teenage programmers aren't that uncommon any more. It's not remarkable, age really doesn't matter. Anyone over the age of 10 can learn programming by taking programming courses from world-renown universities nowdays. I'm 16 and I've been programming for years. That's only because I had a chance to learn programming and I took it, not because I'm more intelligent than a someone who's 20 years older than me and only got a computer when he was 18. Other people at my age didn't have such chances, and I'm thankful.
I meant older people didn't have that chance when they were my age. 15 years ago computers weren't that common. Nowdays, almost every child in the western world has access to a computer from a very young age.
Even if you're right, even if it's something rare, we're missing the point. It's not about how rare it is, or how wonderful he is. It's about the product/game. Or at least it should be, in my opinion.
If you aren't, the nicest gift you can give yourself in 10 years is a blog, even if it's private and you write all the crazy stuff you're learning and doing and how scary it felt at first and how great it felt after.
Some things I had someone said to me and I hope you'll say to someone at 14 one day:
As you get older you'll meet so many subtle doubt worshippers that spread their doubts because they can't get over their own self-doubt.
Be a man of action and launching. Haters and doubters are busy doing nothing.
Don't ever let anyone poison this ability to build, and launch.
Don't ever let anyone tell you you can't figure out anything and build something.
Do laugh, while you launch and ship often while everyones busy optimizing their stack.
A very heartfelt congratulations, I would give up a lot to trade with you at the moment, you must be feeling on top of the world.
Games are a great area to work in, you get to learn a lot more about systems level programming from building a game than you'd get from building a web-app. Games are never finished either, you can always improve on them, add levels and so on so they're a great way to grow your skills in managing progressively larger codebases.
Once again, congratulations! And I hope to see much more of what you've made here.
Hey! Really cool stuff.
I'm 15, and have been programming since I was 9, but I'm more focused in stuff like Systems Programming and Machine Learning, thus I have not really released anything interesting.
I'm currently working in a Revision Control software in Go (While learning the language), I'll push it to Github when I have a somewhat working prototype.
I'm curious too. Semantic diffs maybe? (This change affects control flow, this one doesn't; this change adds complexity, this one removes it.) Something like that would be useful for getting an overview of a project's evolution, instead of highlighting major commits only in terms of lines changed (often just a meaningless refactor.)
Now that you've started writing some code, you can start talking to users!
Here's some quick feedback I've got:
-It's a little hard to tell where on the screen I can touch to move the miner vs. where I can shoot. Perhaps but a line on the bottom demarcating where touches will move instead of shoot?
-Perhaps the game would be more fun if the movement was faster? If you sped it up, it would make it easier to grab 2 pieces of cheese on the same row. It's up to you to decide how to balance control responsiveness vs. difficulty, but it's worth testing it out.
Great stuff. How did you find MakeGamesWithUs? I know a few people your age who want to learn Objective-C etc. would you recommend this route for them?
Hey, thanks. I was referred to MakeGamesWithUs by my cousin. I certainly would recommend this route; It's great to not have to worry about art and promotion while you learn, and to have someone to fix your horrible mistakes.
Hi everyone, thanks for all of the great feedback. Honestly, I feel lucky to have the tools, technology, and support to build games like Cheese Miners. Sorry that I haven't responded to all of your comments yet, I will get caught-up later this weekend. My school has a camping trip and I have been prepping for the trip most of day and walking out the door now and will have no internet access while camping (no phones allowed, and I agree!). Such is the life of a 14 year old at boarding school. When I get back I would love to continue this discussion. Your comments have been very inspiring and there are some really good suggestions I need to follow-up on. Thanks for the great discussion. HN rocks!
As a fellow teenager who is also programming, this is great! I'm glad that there are sites like MakeGamesWithUs that are encouraging our generation to do this sort of thing. Really, great job!
(now then again anyone who's done 68k asm would know this is extremely easy to code and understand, more than objective-c in fact. But then again, I had Codewarrior [which I won at metrowerks] and powerplant, and those, are hell.)
Don't stop now. I remember, when I was 11 I was also really nerdy and in many ways much smarter then now. My mistake was that I at some point dropped all this, because I couldn't find stuff that interested and excited me. It's really a flaw. As long as you are a teenager, you are able to find what excites you.
It's really hard to describe, but it is extremely bad to come out of practice and it happens so quickly. If you must find some kind of job or something that will make you practice every day.
P.S: Stuff that looks boring at the beginning usually isn't when you really get into it.
Great job! Parlay those skills into some lucrative consulting gigs. Earn early, and earn often. Compound interest, especially at your age, is the most powerful force in the universe.
Every now and then here on HN someone is claiming that he's a teenager building an iPhone game. Is just a coincidence that the platform is always the same? MakeSpamWithUs :P
Congrats on your first game. This is awesome work for an 14 year old. I have downloaded and played this game for some time. I feel movement needs to be little faster.
Anyone that's had to submit an app will be impressed that you went through that process successfully, let alone made a cool little game for the iphone. Good job.
I started using Internet when I was 10 and started to dabble in HTML and then PHP3 and later 4. Earned a decent amount of money (for a kid), but then I just stopped because of workload in highschool and college.
Man, my skills got rusty I can barely write something these days. So, dont you ever stop doing that because returning to programming can be hard - your brain wont function at this ultraspeed it is functioning now.
The folks on #mcdevs on Freenode had done the hard work for me, they had reverse-engineered and documented the Minecraft Classic protocol. It's a very simple binary TCP protocol with only 16 packet types.
And why as a project? Well, I saw the protocol was simple enough, and it seemed like a fun thing to do since I liked playing Minecraft Classic. There were already loads of other Classic servers, but I wanted to make my own so I could do things my way and add silly features. Yes, there's plugins, but sometimes I like reinventing the wheel.
I added some features, for example, "Zombies", imitating those in Minecraft Survival/Indev/Infdev/Alpha/Beta/Release. I sent packets as if another player had spawned, and I set up a minecraft account with the right skin, so that when a player with the same name as that account was spawned, they would look like a zombie. The AI was very, very stupid. It would always turn at right-angles, making them easy to trap. Still, it was fun. Also, at the time I did not understand recursion, so the "physics" for things like spreading water didn't work properly.
The code I ended up writing, in C using WinSock and zlib was... horrible. Ridiculous levels of nesting, and almost everything was in the main function. This was a result of getting it working before getting it right. However, I never really refactored it much, and it became an unmaintainable mess. At various times I have refactored it a bit, as recently as a year ago, and it's the refactoring-in-progress version you can find on my GitHub page.
When I was 14 I was crying for a computer, but I had to wait until I was 17... I never had a commodore, although I wanted so much... I don't have stories about those days, like some talk about commodore disks and etc... were poor days... still luckily I am Software Engineer ...
Congratulations! A nice slap in the face too for those people who constantly rant about kids/young people being distracted too much and unable to learn much nowdays (by the Web/new technologies/gadgets). It's the adults who get distracted and become unproductive, kids' brains adapt more easily.
I was busy with homework and tests when I was 14. Kids in China are not as lucky :-(
I did play a bit with Visual Basic 6.0 at 11. It was a lot of fun for me. I also got a VC 6.0 on my family computer but never managed more than running an MFC window that does nothing. But it turns out not to be important anyway.
Congrats... my first iPad game is about 14 years old now and still not released yet... sigh. Enjoy the piles of free time while it lasts, and be sure to take some time to explore different areas to find out what you're really interested in.
legos from the beginning .in elementary school they had a cool program in my neighborhood run by motorola engineers where you could take courses on logic design and build simple cricuits (combination locks, tic tac toe...). when i was 12 i built and electric go kart, 13/14 - a minibike. 15/16/17 - a solar powered car (from scratch http://www.sphssolarknights.org/). Moved into more CE/CS type projects now but once you start building you will never stop! Keep it up. :)
At 14, I was busy playing soccer. I didn't get to computers and coding till I was 17-18, when my brother bought a PC. So jealous of you guys who build such awesome stuff at this age ! Way to go..!
I'm going to echo the more pleasant half of HN and say don't let anybody dismiss your accomplishment. Shipping is all that really matters and shipping is hard.
thanks for sharing . I really didn't even thought about copying unix. Anyhow,i think if you're learning domain specific language then it is not good to implement unix . Consider php,it came up for web . so it would be nice if we solve challenges or do stuff which matters.
I use to check stackoverflow question and try to learn it .
Anyway i will mind your advise .
thanks
But still, I'm jealous of you.
If you were to seek my advice, I'd tell you to watch some OCW (OpenCourse Ware).
http://cs50.tv <-- great for starting out. I am ready to bet $50,000 that you'll learn soooo much (while not being overwhelmed) that you can't believe it
http://cs75.tv <- great for starting web development (php, mysql, javascript, css, ...)
http://see.stanford.edu/see/courses.aspx (CS106A is good for now or a little later, CS106B and CS107 are way more advanced but you might find them very educating in a year or two)
http://ocw.mit.edu/courses/audio-video-courses/#electrical-e... (I've heard good things about 6.00SC)
All in all, I'd suggest you start watching cs50.tv right now (if it's not a whim and you're really interested in programming as a career, or if you at least enjoy programming right now).
Best of luck.