Hacker News new | ask | show | jobs
by exikyut 2884 days ago
Two things;

1. For bit hacks, consult (but be careful not to drown in) https://graphics.stanford.edu/~seander/bithacks.html and http://www.catonmat.net/blog/low-level-bit-hacks-you-absolut...

2. From the perspective of writer's block, your 7 years are an elongated period of the kind of absolute/perfect refreshment we sometimes long for: you literally cannot remember how to ride the bicycle. This is awesome! If you make the effort to relearn some things "from scratch", as in putting the effort in without trying to tickle your memories to kick in, you'll fold the last 7 years of managerial knowledge and experience into your new mental models. Everything has a flip side.

You've probably already had a look at the Arduino model. Dropping the Java IDE (and API) in the nearest bin in favor of C and your own preferred text editor is probably not the worst decision - but the clones are cheap, the bootloader makes it that much harder to knock completely over, so there's that.

POSIX is, for what it's worth, slowly fading in popularity. Enterprise/business still favors it a lot, and maybe you'll find somewhere that will find it relevant for the next 10 years, but I have (at 27) some hesitancy. Learning how Linux specifically does things may pay off more, for better or worse; I don't consider Linux to be the best-of-the-best, but it's what most people reach for the most nowadays. So learning other systems (the BSDs, etc) may also be useful and come in handy for environments that prefer alternatives.

If you're interested in the IC level, picking up Lua, Python and JavaScript may come in handy.

The cheapness of >100MHz and >8MB RAM means that what was done with assembly language years ago is often either

a) done on a 250MHz-500MHz chip running Linux with an interpreted language doing the "not-so-heavy" parts of the lifting

b) done with Lua or a lightweight Python or JavaScript implementation

At the end of the day this does make maintenance viable for a wider range of developers, and decrease iteration time on top of that.

For reference, this was written from the perspective of universality/relevance to the widest range of opportunities. It's not exhaustive, just an overview.