Don't get too frustrated if you find that it's really hard to get TinyOS up and running. Nearly everyone without hacking/extensive coding experience and who is trying to do something non-trivial in TinyOS find that they are spending a lot of time debugging code, trying to make software interact properly, and learning new languages. My best advice is to sit close to others who have had more experience and continue to nag them when you run into problems... until they run away from you ;). But seriously, here's a list of the tools I have personally dealt with when using TinyOS... and I was only somewhat proficient in a subset of these before starting: NesC uisp, ncc, gcc, and other tools for compiling and installing NesC mig, ncg (message interface generator, part of TinyOS) Java C Matlab Perl Bash Shell scripting UNIX utilities and environment variables (ex. diff, locate, find, grep) PostgreSQL gdb/gjdb CVS (concurrent version systems) Makefile installing RPMs Unison (for file synchronization across multiple machines without CVS) Cygwin Setup RXVT Setup (terminals) emacs configurations (for font highlighting) OrCad (drawing circuits) I'm not super proficient at any of these now either. Note that it's not necessary to really learn every one of those tools (some were to make my life easier, like using Unison to synchronize between my Linux machine and my laptop, and RXVT so I could page up in Cygwin using Shift-PgUp since I have RSI and like minimizing the usage of my mouse). But in any case, if you find the going frustrating, just remember that you're learning a lot along the way!