Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.
It turns out that, after 60 or so years of using computers, we've discovered that developing software is hard. Learning how to develop software correctly, efficiently, and beautifully is also hard. You're not born knowing how to do it, and most people, even those who take programming courses and work in the industry for years, don't do it particularly well. It's a skill you need to pick up and practice – a lot. You don't learn programming and development by reading books – not even this one. You learn it by doing it. That, of course, is the attraction; working on interesting and difficult problems. The challenge is to work on something you've never done before, something you might not even know if you can solve. That's what has you coming ....