I know only 3 of them:
1) How to read the fine manual.
2) The Windows API
3) A programming language
If it's a Microsoft Windows programmer that you are talking about, which is probably the case since most people are helpless to know anything else. Than the one thing that you should not know is the implementation of the operating system.
The first....most important thing is the language that the programmer wishes to use.....
A windows programmer wont get far without a strong foundation in the language he/she wishes to use....knowing a little isnt enough....and getting better at a language is a hard thing to do.....everyone is constantly learning no matter what stage you are at....
I haven't done C for a while, so I will give my explaination in perl.
my $foo = "Windows sucks";
my $i = 1;
print "The top ten things a Windows programmer should know:\n";
while($i < 11)
print $i . ". " . $foo . "\n";
First slove the problem on paper or something then, and only then, start coding.
>>What are the top 10 things a windows programmer should know
1 - ... location of his/her PC
2 - ... who's cooking dinner
3 - ... when the beer fridge is getting empty
4 - ... where the next lot of cash is coming from
oh, I can't be bothered with anymore... :D
... and the number one answer is ... (sound of rimshot)
OK, so I was shooting fish in a barrel with that one. :D
1. C++. The language is probably the best to learn Windows API with.
2. x86 assembly. Any PC programmer should know it really. If you can use assembly, you can use anything.
3. Windows API of course. Learn it and learn it well.
4. Every windows programmer should know that MSDN is your best friend
5. ... to not use MFC.
6. When to use dialogs, and when to use windows.
7. How to design efficient application interface (the GUI), unless someone else does it for them..
8. How to use OOP efficiently/when to use it (unless its in assembly of course)..
9. More than one way to accomplish various common tasks, and choosing the best way (i.e. TrackMouseEvent vs. SetCapture..)
10. To always clean up your gdi objects!!!