Many books teach a programming language. However, knowing a specific language is not the same as knowning application or GUI design nor project layout. So, attempting to make an average application fails after learning a language. It is clear that knowing a language is not enough to make an application.
If you agree with what I have said, why doesn't anyone mention this instead of teaching pure language syntax and features? Why books don't mention how to make a better application ?