Я должен не согласиться с Конрадом Рудольфом. Есть одна часть компьютерной науки, которую вы должны знать, чтобы сделать вас лучшим «программистом в реальном мире». Если вы больше ничего не забираете из ответов, которые вы получаете здесь, по крайней мере, подумайте об этом - удовлетворение требований - это не то же самое, что удовлетворение клиента! Конечные пользователи ВСЕГДА будут пытаться использовать вашу программу так, как вы никогда не думали и не программировали. ВСЕГДА, ВСЕГДА, ВСЕГДА.
Поэтому, чтобы быть лучшим программистом, вы должны сначала СЛУШАТЬ. Слушай клиента. Слушай их нужды. Слушай их желания. И особенно, прислушайтесь к их уровню «технаря». Я не могу сказать вам, сколько раз я видел построенный проект, который был именно тем, о чем просили, но совсем не то, что на самом деле требовалось клиенту. Все потому, что программист, собирающий запрос, на самом деле не слушал.
Что-то еще, что вы можете убрать, если у вас нет опыта в разработке пользовательского интерфейса, попросите кого-нибудь спроектировать пользовательский интерфейс. Я ВСЕГДА могу определить приложение, в котором пользовательский интерфейс был разработан программистом, а не экспертом. То, что логично и имеет смысл для вас, не будет иметь смысла для клиента. И, если ваши клиенты не технологичны (и кто такие?), Тогда ваше «функционально правильное, но эстетически уродливое» решение будет встречено с теплотой скунса на званом обеде.