You are talking about a very important topic. But being smart to get things done needs vision. That vision appears when you can see, digest and categorize different things in the industry. In an ever-changing industry like software, the knowledge is scattered all around. You cannot see the big picture easily. At least you must be capable of speaking English to follow the issues. There's no such book that can tell you each and every aspect of J2EE, its evolutions and predictions. What sounds unteachable is finding, validating, evaluating and categorizing the data that we face everyday. I believe that desire and company standards are so important in between. The problems in the unstable industry have left no place for desire and long term strategies. Unfortunately this restriction has led our society to be technical oriented. I believe that we cannot solve this problem cause we are working inside the problem but at least we can be aware of it.