Я хочу помочь программистам, которые только начали делать первые шаги в профессиональной карьере, а также студентам, которые хотят выйти за рамки учебных дисциплин.
Если вам хочется узнать как строить карьеру в IT, я написал об этом в статье по ссылке http://blog.byndyu.ru/2011/04/it.html
Критерии качественного кода
Модульные тесты
Разработчики должны тестировать свой код. Наибольшую отдачу от тестов можно получить при использовании разработки с помощью тестов.
Литература
Базовой книжкой для изучения TDD является Test Driven Development: By Example Кента Бека.

В этой книге Кент Бек показывает этапы написания тестов до кода, раскрывает ход мыслей разработчика. Шаг за шагом показано создание платежной системы с помощью тестов.
Отсутствие дублирования
У профессиональных разработчиков должна быть аллергия на дублирование в коде. В свою очередь, для новичков не очевидно, что дублирование ведет к захламлению кода. Поэтому необходимо развивать «чутье» на некачественный код и изучать приемы, которые позволяют улучшать структуру кода. Улучшение структуры кода без изменения его функциональность - это рефакторинг.
Литература
Отличное описание приемов рефакторинга можно найти в книге Refactoring: Improving the Design of Existing Code Мартина Фаулера.

Фаулер собрал большое количество приемов улучшения кода и раскрыл каждый из них в отдельной главе.
Вписывание в общую архитектуру системы
Программисты, которые только начали заниматься программирование, должны понять, что существует множество приемов для решения типичных задач. Эти приемы называются шаблонами проектирования. Знание шаблон избавляет от бесконечного изобретения собственных велосипедов с квадратными колесами.
Литература
Для начала я посоветую две книжки. Сам факт их прочтения не сделает вас архитекторами. Чтобы в полной мере понять, где и как использовать шаблоны проектирования и как применять принципы проектирования, нужна постоянная практика.
Первая книга Patterns of Enterprise Application Architecture Мартина Фаулера.

Эта книга наполнена практическими примерами применения шаблонов проектирования. Каждый шаблон описан с дотошностью (в хорошем смысле) присущей Фаулеру.
Вторая книга уже для более матерых Agile Principles, Patterns, and Practices in C# Роберта Мартина.

Сила этой книги в том, что в ней раскрыты принципы проектирования.
Вливаемся в профессию
В завершение хочу посоветовать несколько книг, которые помогут «понять» профессию разработчика.
Базовой книгой в этом списке я считаю The Pragmatic Programmer: From Journeyman to Master Эндрю Ханта и Дэвида Томаса.

В свое время эта книга настроила меня на нужную волну мышления.
Наконец, книга Пете Гудлифа (Pete Goodliffe), которая охватывает все аспекты разработки ПО — Code Craft: The Practice of Writing Excellent Code.

Книга для тех, кто хочет взглянуть на профессию программиста с высоты птичьего полета.
Результат
Надо понимать, что просто прочитав всю эту литературу вы не станете асом, но получите отличную теоретическую базу, от которой можно будет отталкиваться. К тому же полученные знания помогут вам выглядеть достойно на собеседовании и в дальнейшем стать продуктивными работниками.