It's dated, but it is still one of the best expositions that I, in my limited experience, have seen.
I'm not certain about it as an introductory text to someone entirely new to programming. But it concisely and deeply explains a "philosophy" that is essential to good UNIX work and, I think, to programming in general.
Be careful in your resource selection. There is so much out there. A small fraction of those resources are the real gems. They convey the heart of the matter, and often in fewer pages than other resources that "beat around the bushes", becoming muddled or focusing on detail more than concepts.
Accumulating knowledge through reading and study can provide some sense of the lay of the land. When you encounter a topic, you may recognize it as fitting in "roughly over there". But it is practical work that is really going to motivate and solidify your knowledge. Find some things that interest you, and dig in. Rather than costing you time, they will turn concepts into the experience that brings real comprehension.
Comments
Regarding 1), I'd recommend "The Unix Programming Environment".
http://en.wikipedia.org/wiki/The_Unix_Programming_Environmen...
It's dated, but it is still one of the best expositions that I, in my limited experience, have seen.
I'm not certain about it as an introductory text to someone entirely new to programming. But it concisely and deeply explains a "philosophy" that is essential to good UNIX work and, I think, to programming in general.
Be careful in your resource selection. There is so much out there. A small fraction of those resources are the real gems. They convey the heart of the matter, and often in fewer pages than other resources that "beat around the bushes", becoming muddled or focusing on detail more than concepts.
Accumulating knowledge through reading and study can provide some sense of the lay of the land. When you encounter a topic, you may recognize it as fitting in "roughly over there". But it is practical work that is really going to motivate and solidify your knowledge. Find some things that interest you, and dig in. Rather than costing you time, they will turn concepts into the experience that brings real comprehension.