That's true of a software developer in the narrow sense. In the broader sense there are skills around collaborating with others, working sync/async, delivering with quality, communicating status, mentoring junior people, educating others about what is going on, and maintaining the systems over time.
Well, of course. But primarily, you have to be able to write code. And to do that, reading books is the primary resource (and for a lot of the other things you mention).