I’ve seen many intelligent people who are just not practical. They get lost pursuing some academic goal that is totally useless. Being practical is important to good programming. You must be able to guess accurately how long it will take to complete a project, have the ability to calculate what can and cannot be done in that time, and then do it, resisting the temptation to go off and do other things. Practicality is important when you’re trying to make every piece of work the best because you always have a limited amount of time to work on it. It’s easy to triple the time to complete a project when you’re consumed with making it the ultimate in elegance.