7 ms·
Ask HN: Advice for a young, self-taught programmer
[TL;DR I’m a 15 year old self taught programmer unsure of what to learn and how to learn it].
Hello, I’m a 15 year old self-taught programmer and I need some help. About a year ago, I made $21,000 making apps for webOS through their Hot Apps promotion. However, that was a onetime thing, and I’ve concluded that the size of their user base makes it a bad platform to sell apps on. But now I’m unsure of what to do.
As a self-taught programmer, it is difficult for me to pick up new technologies. Right now, I know Python, C/C++, Objective C, and some HTML/CSS/JS, and my most complex app was about a 1,500 line C++/OpenGL piano app. I know the syntax of these languages, but I feel like I don’t know how to apply them to make things. When trying to learn frameworks, two things generally happen: One: I find a tutorial, follow it halfway through religiously, and then quit because I’m not making anything useful. Then, I transition to the “just build something” phase, in which case I will spend hours googling relatively trivial issues that I run into. I eventually give up because it takes a ridiculous amount of time to do something that seems so easy. I then move onto the next technology and repeat.
One option is to continue doing phone apps, except for iOS and Android. I have never programmed for Android, but I have been learning cocos2d for iOS and also about normal iOS apps. However, I don’t feel that I can make an app that’s good enough to compete with what’s already out there. Resulting from this is a constant belief that my ideas suck, I would never be able to code my idea, the idea wouldn’t be good enough to be sold, etc.
Another option would be for me to learn about data structures and algorithms. I’ve been studying them a little and know some of the basics, big O, sorting, etc., and I’ve done the first 55 or so Project Euler problems without much trouble. This seems like it would help me the most in the future, but I find it hard to see the benefit in it now, and wonder if I should just wait until college to learn it. Everything else just feels like gluing together libraries that won’t help me at all in the future, while this feels as if it would actually be worth something. Additionally, I also want to get into Stanford, and knowing things like this would help me be ahead.
Another thing I could learn is web programming, which I now know next to nothing about. I mean sure, I know HTML, CSS, JS, Python, but I don’t know how that’s glued together to make a flashy web app. I mean with my skills now I could design something, but it would probably look like crap. The idea of doing a web start-up right now is very appealing to be, but I just don’t know where to begin. I feel like most material is way too basic (“this is a variable…”) or talks about stuff that I have no idea in what context its being used.
Anyways, thanks for reading, and any help that anyone can give would be much appreciated. Thanks!
- mfn 15y agoOne of the things you could do is try and intern at a tech company during the summer. The main benefit is that you'll be able to see how different technologies are usually put together to make a product, and will also learn some useful professional software development practices along the way which may become handy in the future in case you ever decide to do a startup. Since you're not in college yet this may be slightly difficult, but as long as you have put together a portfolio of interesting things you've worked on (which you clearly have), it shouldn't be a problem.
- 46Bit 15y agoI'd argue the intern part may not be necessary. If he has skills like he says, he could probably just about land a front-end web developer job for a few months with decent pay.
- phamilton 15y agoI'll second this. Seeing how an establish company does software ( revision control, testing, rolling out updates, etc.) taught me a lot about programming that I don't think I would have learned anywhere else.
- 46Bit 15y agoI can definitely associate with you on the learning side of things. The way I've come up with to do things is to, when I get an idea, sketch down a plan for an app/piece of code/whatever on some paper, draw up a basic design if it'll be needed, and file it away for when I next learn an applicable language. For instance I've got notes and a basic UI for a smallish app called For A Bigger Screen ready for when I dive back in ROR. The advantage of something like this is that I actually feel I'm learning something, and get the same kind of impetus to continue out of it.
- josephmosby 15y agoYou mentioned you know HTML, CSS, JS and Python. Have you looked into Django? That's a great tie-in of those skills in a single web programming framework. Seeing how Django brings them all together might inspire you toward some app programming.