Look into teachyourselfcs.com. They have a good list of areas every good programmer should be comfortable with and a recommendation for books/lectures that teaches that well. They explain why each area is important to learn and why the book is an apt choice.
They recommend Kurose and Ross for networking too, though I disagree. I feel like High Performance Browser Networking (free at hpbn.co) is superior.
They recommend Kurose and Ross for networking too, though I disagree. I feel like High Performance Browser Networking (free at hpbn.co) is superior.