How does knowing makefiles help you understand your build system if you're using VS? You do realize that it doesn't use Makefiles (at least, not by default).
With that said, I know people who the old VC project system inside and out. And I know tons of people who know MSBuild as well as the most build engineers I know in the Unix world know make.
Makefiles are an artifact of a particular build system. It is not foundational to all build systems. Understanding Makefiles is useful for the world in which you use make, but I fail to see why it would be useful in a world where they don't use make.
A VS project is, more or less, a makefile with a little information around the edges.
It holds, within its structure, information enough for VS to build its targets. Who cares if it's not called "Makefile" and you don't invoke it with "make"?
The reference to makefiles is that, if most VS users did understand what goes on after they invoke "Build", they would be able to write a makefile. Since so few of them do, few of them could, conceivably, write one.
Or tell, exactly, what happens when they hit... What was it? F9?
Whoa, it is most definitely not a makefile. Unless by a makefile you simply mean any file that has dependency information. If that's your claim, then I'd argue that every VS build engineer I've ever met understands "makefiles".
And I think most developers do understand what happens in their build files. Especially since most of them are now msbuild files. We actually handcraft our own, because of the way we have our integration server set up. It's not rocket science, but its not a makefile either. But yes, it does capture dependency information.
Either you just know really poor devs, or you know a lot less than you think you do about what people know in this space.
With that said, I know people who the old VC project system inside and out. And I know tons of people who know MSBuild as well as the most build engineers I know in the Unix world know make.
Makefiles are an artifact of a particular build system. It is not foundational to all build systems. Understanding Makefiles is useful for the world in which you use make, but I fail to see why it would be useful in a world where they don't use make.