2 ms·
I think my definition of understanding would be: I have understood this well enough to write a non-trivial program that solved a problem at my day job. This pro
by paloaltokid 10y ago
I think my definition of understanding would be: I have understood this well enough to write a non-trivial program that solved a problem at my day job. This program should provably (and hopefully obviously) be the most correct, maintainable, and performant solution for the job.
I make the day job part a requirement because for me to feel that I've invested my time well, I need to be able to apply my knowledge in service of some other task. Mind you, it only has to work and solve a problem once. If I never use it again in my career, that's fine.
But it's that ability to say "well, I never thought I needed to learn compilers until this one time..."
- zenogais 10y agoYou kind of get a chicken and egg problem here. If you don't sufficiently understand something, how can you hope to identify situations in which you could apply it? I think the more pragmatic approach is to sample from a lot of different topics. The more I read CS papers on random topics, the more I find opportunities to improve my day-to-day work by applying them. There's no way to get this payoff without expending some effort, unfortunately. Requiring that the payout be obvious before the work is put in is, IMO liable to lead to not learning and improving as fast as you otherwise could.