If you have some benchmark results, it'd be great to see how it compares to traditional data structures in practice, for different datasets and varying k-mer lengths
Although not part of the language proper, C++'s STL has vector<bool> that packs boolean flags into a bitvector (a now regrettable optimisation, since it doesn't function the way a container should - a story for another time). There is also bitset, which is similar but static.
I use them whenever I need to. Often I don't need to, since a compiler should be able to optimise the very basic things. Optimising prematurely is a good way to stuff something up (see question 5 here: http://ridiculousfish.com/blog/posts/will-it-optimize.html)
And it hurts readability.
I would expect most good programmers to know at least some basic "tricks" though (and would hope they have the sense to not over use them).
For background: I'm 23, starting my PhD. Have had about a year of industry work (including a game company - actual interesting work). I have a few startup ideas (trying hard to execute), and I'm interviewing with Google (although I failed last year, and I might just wanna do my PhD). I wasn't passionate about programming until last year actually, after I started reading more.
People say that the smartest people are uncertain of their own abilities, because they see the bigger picture. They are the ones that can see just how deep this rabbit hole goes. Infinity can be a daunting thing. I guess it can either make you give up, or push harder.
I'd hazard a guess to say you are on track (although who am I to say) :) never become a senior developer, just move along the spectrum of a curious, 'young' programmer mind.
Thanks for reading the post, and Michael for posting it. I enjoyed all the comments. I only recognized Zed Shaw, Batman and a few others, so I've got some reading to do :)
If you have some benchmark results, it'd be great to see how it compares to traditional data structures in practice, for different datasets and varying k-mer lengths