

3 Weeks of Hacking - GermTheGeek

I recently quit my job to dedicate time to learning before I leave to go to university (Computer Engineering). As it stands I have 3 weeks of free time that I am looking to put toward a project.<p>Here's my problem: I have no idea what to focus on.<p>I have a decent ability to program in C/C++(More so C) and am familiar with Linux/Unix systems. My aim is to become a contributing member to FOSS and collaborate in a multi-developer project or to learn as much as possible about in the given time frame.<p>I have never worked on any kind of project like this and hope to treat the entire thing as a learning experience.<p>So here is what I'm asking you HN readers: Do you know of a project that needs a little love? Or have any other ideas as to what I should do in this time?<p>I would prefer to work fairly close to the hardware and maybe even pick up on some skills lost to newer developers (optimized inline assembly, oh my!).<p>Any/all feedback would be amazing.
======
osivertsson
My advanced algorithms teacher always told us to spend as little time as
possible in front of the computer. Before you spend three weeks in front of
yours, here are some things you may or may not want to consider.

Devoting an hour each day to algebra and calculus will make your life
considerably easier once courses begin. Not having up to date mathematics
skills can, in my experience, be a big hurdle for someone that has worked a
while before attending university.

Exercise. Doesn't matter how, long walks or intense gym sessions, whatever.
Exercise is always a great way to get clear thoughts in your head. Perhaps you
will realize what you want to build?

Finally, three weeks is not that long. Don't put too much pressure on yourself
to perform now. Why not spend a little extra time with family and friends? You
wan't to start your time at university relaxed but eager to jump in.

------
robfitz
For web programming, I like to start by writing a simple blog and add rss,
tags, search, etc as I need to learn more.

For open source web work, I know Khan Academy needs help and I believe Resig
has recently re-vamped their exercise framework, which is the main place for
new contributors.

For closer-to-hardware hacking, I learned by making little games for Game Boy
Advance and Atari 2600. The Nintendo DS also works similarly, although the
hardware is a little more abstracted.

I really feel the GBA is ideal. It has a good combination of bitmap, sprite,
and tile drawing modes, fairly good development tools, and lots of interesting
bit twiddling to achieve what you want: <http://www.gbadev.org/> You can also
pick up transfer cables and a flash cartridge to put it on real hardware,
which makes it a fun demo piece.

Atari is all assembly, GBA is mostly C with pieces of assembly inlined here
and there.

~~~
GermTheGeek
I've been looking at GB Development fairly closely, might put together some
kind of little project in that. Extremely close to the hardware which is
always nice and I just need a little flash cart to let it run on my old GBC to
show it off. Thanks!

------
gexla
Being a good hacker is more of a marathon than a sprint. Three weeks in a
coding cave is good, but even better is devoting an hour or more every day to
hone your craft every day.

What to focus on? That depends on what you would like to build. I can't tell
you what you will enjoy building.

~~~
GermTheGeek
I've always tried to devote as much time to my work as possible, whenever
possible. However my job drained the energy out of me and made any effort I
put in become spread out over multiple little projects. The main reason I'm
asking this here is because I have a nice amount of time to sit down and work
on one little project until completion.

Honestly if I can hold it in my hands and it works in a unconventional way,
it's brilliant.

Another poster mentioned GB development, I honestly think controlling external
devices (AVR, Arduino, etc) in a standard way using something like a GameBoy
would be a worthwhile project.

------
ricardobeat
<http://www.weekendhacker.net/> is where you want to go :)

