
Ask HN: Admitting this is beyond what I can understand in this lifetime - codepunker
Hi,<p>I sometimes feel overwhelmed by the amount of new things I need to learn. Today it happened again when I tried to understand what happens here (https:&#x2F;&#x2F;github.com&#x2F;levskaya&#x2F;jslinux-deobfuscated&#x2F;blob&#x2F;master&#x2F;cpux86-ta.js): http:&#x2F;&#x2F;bellard.org&#x2F;jslinux&#x2F;.<p>I sometimes feel that so much knowledge is something that I will never be able to grasp no matter how much I study.
I think I&#x27;m a good developer... but this is certainly not something I can do and it makes me feel minuscule.<p>How do I stay on track ?
======
greenyoda
cpux86-ta.js is an emulator for an x86 CPU. If you learn x86 assembly language
and read the x86 reference manual from Intel (which tells you what effect each
instruction has on the CPU's state), you too could write one. A basic overview
of computer architecture would also be helpful (the author provides some
references at the top of the file). It could take a few years to get that
knowledge (depending on how much you already know), but not a lifetime. It
looks like a lot of code, but that's because the x86 architecture has a lot of
machine instructions. But it requires no cutting-edge knowledge of computer
science to write or understand, just a lot of patience.

 _" I sometimes feel overwhelmed by the amount of new things I need to learn.
... How do I stay on track ?"_

You can't possibly learn everything there is to know. To "stay on track", you
need to first define what you want to achieve. It's pretty likely that knowing
the x86 instruction set inside out is unnecessary for what you want to
achieve. (Which doesn't mean that you shouldn't learn about it, but you need
to set your priorities based on what your goals are.)

~~~
codepunker
Yeah... goals first... thanks for this @greenyoda!

