This is a high level question.
One area of computer science that I'm working on getting better at is encoding and decoding data. My background is that of a self-taught web engineer who is trying to shore up weak areas of knowledge.
One type of question you get asked during interviews or that comes up in certain types of application development is that of data decoding. You'll get a chunk of data and need to unlock it like a Chinese puzzle box to find out what's inside.
Gist here: https://gist.github.com/geuis/6086349
Another one I randomly found tonight is clearly hex encoded. It doesn't directly decode into anything legible. I've looked at it from many angles such as reversing the hex string, reversing the bits in the decoded string, grouping by bits from 2 to 8, grouping by bits and shifting left/right, etc. Basically I've tried a variety of things to try and get some sensible data out but I haven't actually gotten anywhere.
So that's the high level question. What kinds of approaches should a person take to decoding a piece of unknown data? Clearly recognizing the character set is probably the first thing. But after that, is there a general rule of thumb(s) that you should take to breaking down the problem?
Thanks for tips and advice!