
Ask HN: Starting Small - hundredwatt
I am a college student studying engineering. I have taught myself how to code over breaks and during my spare time (school rarely challenges me) and am becoming skilled in several languages. I have found that programming comes very fast to me. I have dabbled with small projects in Perl, Python, C++, and even tried Lisp. I am currently working on two websites in addition to my coursework. One is just an HTML/CSS design job. The other is a full web-application I wrote in PHP.<p>Anyway, when I finish these projects in the next couple weeks, I will have made a around $1000 in spare cash. I am looking for advice about what to do to further my experience with programming. Designing websites is great, but I am looking for something more challenging and complex than simple scripts and MVC websites. I am not sure if that amount of money could make a difference in this, but it is available to me.
======
triplefox
If learning game programming interests you, you may want to try coding a 2d
rectangle collision system. Not just intersection tests(that is the easy part)
but also a collision response that can either cleanly separate intersections
or prevent them from occurring, the kind of thing you want for actor-
environment collision.

It's actually a really hard problem to solve in both an accurate and fast
manner without making major design assumptions. How wrong have people gotten
it?

<http://www.youtube.com/watch?v=Hgd3YcmIvYE>
<http://tasvideos.org/RockmanTricks.html>

Mega Man's collision was above-average for its time, and holds up to normal
play, yet it is full of exploitable bugs. If you can make a system that works
well enough, you are most of the way to having a game, and the next most
helpful thing to learn would be finite state machines and variants.

------
patio11
1\. Make a program that solves a problem.

2\. Charge money for it.

3\. Get a headstart on learning all the stuff that takes place outside of the
IDE.

($1,000 is way past what is needed for this these days, if you do your own
coding and fill in gaps in your skills with open source. Open source web
design, etc...)

------
aneesh
It's a shameless plug, but come check out our site <http://clusterify.com>. We
organize meetups for small coding projects, and you might find an interesting
project, or someone interesting to work with.

------
suhail
Learn Hadoop/MapReduce, write something that requires data-scale.

------
nostrademons
Try a BitTorrent client. Transmission seems to be the main option on Linux,
and I bet you could do better than that...

~~~
anatoli
Uhhh... I can't tell if you're serious or not. Transmission's been actively
developed for so many years now. To suggest that someone (especially with
little experience) could just magically create something better is absurd.
Come on...

~~~
nostrademons
It'd be fun (and educational) to try, though.

