| "How to Learn complex Things Quickly by realizing they are not that complex at all." This is such a good observation. When I was first getting into my field, I looked around at the smart senior people around me and thought there was no way I could ever do what they did. Total case of imposter syndrome. Things like compilers, operating systems, etc. all seemed like magic, and I thought I was too dumb to do that kind of stuff. But once I started working, I didn't really have a choice... it was either learn or get fired. And digging down into the code made me realize just how... simple? ... some things are. Being able to pull back the curtain and realize there's no magic there. Want to talk to this piece of hardware? Just write this bit pattern to this particular address, then put your data over here, and then send it this command and it works. Not to say I immediately figured everything I read out. Sometimes it took me hours or days to work through something, especially if it was heavily templated C++ code. One of the things that really surprised me was looking into build systems for large projects. When I thought about how I'd do it, I could only imagine a disgusting, hacky series of scripts and code generators and things that any sensible developer would scoff at. But when I actually looked at how some projects are put together... they're a disgusting, hacky series of scripts and code generators. Learning that there's nothing magical about any of this was life changing. I still deal with imposter syndrome, but I feel much more confident that I can learn if I just make myself dive in, even if it seems scary at first. |
And I still look up at some people and wonder how the hell I could ever get to that level. People who seem both wide and deep in knowledge. Even people who cross outside different domains and seem well versed across all sorts of fields. I recall being among some reverse engineers quoting seemingly from memory undocumented behavior of random Windows API calls.