Hacker News .hnnew | past | comments | ask | show | jobs | submitlogin

As a web developer, I'm kinda jealous of how someone can just say "I'm gonna make this device this specific nostalgic game I love" and then just do it.

How do people do that?



By starting small, honestly.

When you take small consistent steps, you can go very long distances at relatively short time.


And what are those steps? OpenGL Programming and Objective C?

Asking seriously. Those kind of feats are amazing :)


This is a step by step process. The author has some prior experience, probably, but let me try to outline something from my own journey.

As you take small steps, you need to start with small targets.

In my second internship, my mentor shown me a PC, and said "This is yours". Then produced a Nokia 7110 and a serial cable for said phone. He continued: "We need this phone to send SMS messages, via an application on this PC". Catch: The PC had no OS, and the software he wanted was nonexistent.

I said OK, and he asked: You know Linux, right? I truthfully said "Installed a couple of times, spent time with it." He produced a Debian 3.0 CD from a drawer, and said "Let's see whether you can install this" (Debian was hard, then).

My first target was to get Debian run on that system, then make it connect to the network.

Then, I learnt how to install and manage packages on it via "dselect".

Next, I managed to found the user manual of the phone to find out that it has a serial modem on it. I also found the AT reference guide for the phone the same day IIRC.

Next day I managed to connect it via minicom, talk with it and send a couple of SMS messages to myself.

With the knowledge I had, I found how to talk with that phone over C (Thanks Beej, and his guides). In 6th day, I was sending messages. In 8th day, the tool was a daemon waiting for messages via a specified port in a specified format.

The IT department written file watching daemons and embedded to their systems, allowing them to create many many "wire traps" inside system to detect when something went wrong. That system worked for 6 years and saved enormous effort by notifying from the right place, at the right time.

This experience allowed me to discover Debian from top to bottom. I still use Debian, still do the research same way, and move step by step, because I built the confidence over that week.

The key is proverbially "not looking down", and just "thinking the current mile", like a marathon runner. You're a web developer? I don't care. If you start from the edge of your knowledge and just walk, you can go great distances. The target is incidental here. A Quake port, an SMS daemon, something bigger/smaller... Doesn't matter.

What matters is going somewhere new, learning something you don't know. Then you can build upon this. One day, you may find yourself beyond the people who inspired you, which happened to me without noticing, but it's a story for another time.

If you want to talk on this further, you can also reach me via my webpage (see my profile), or we can continue via here.

P.S.: I still have the AT Reference Guide, both digital and in printed and bounded form. :)


I just had a rush of happiness by reading your comment. Thanks for sharing your experience!


Hey, thanks. I'm glad it made you happy and inspired you. Hope you have more of these kind of stories yourself, take a look back and feel delighted about them, too.


As a web developer who is increasingly getting into tinkering with embedded systems for fun:

The first step of displaying a test pattern, sending test bytes between devices, etc. is the biggest one, and in my case usually involves finding an open-source program that is capable of doing the thing and butchering it until it only does the thing. Every step after that is incremental, just like any other development.


One of the reason I chose Quake (apart from it being awesome game and well written code) is also that it has software renderer, these things have their flaws, but are highly portable. Porting original GLQuake to Metal would be far more taxing.


By not being a web developer.




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

Search: