Yes, understanding Windows internals has helped me become a better programmer. He also taught many bad practices, bad ideas, and bad design concepts.
I highly recommend exploring alternatives to OS X or Linux. It will take less time, make more sense and be much more productive.
Read the code. Read a lot of code. Read a lot of good code. jQuery, Django, AIR source, Linux kernel, compilers.
Try learning programming languages that introduce you to new approaches such as Lisp, Ruby, Python, or Javascript. OOP is good, but .net and Java seem to take a brainwashing approach and take it to some religious level, rather than just being a good tool in your tool.
If you do not understand the code you are reading, this probably means that you are on the right track and are learning new methods.
I would suggest getting mac just because you want to make your user interfaces simpler and easier. It is very important to have a good environment if you want to become a great programmer. Surpass yourself as engineers better than yourself (if you can), work with frameworks and languages that use the engineer approach to the experimenter approach and ... use an operating system that contains code better than yours.
I would also recommend Coders at Work .
Nathanael jones
source share