Единственной сложностью является то, что все эти люди имеют разное образование, интересы и привычки, влияющие на производство хорошего программного обеспечения. От этих людей зависит качество нашей жизни — иногда даже сама жизнь. Ни один человек не может играть все роли, упомянутые выше; да и, вообще, ни один разумный человек к этому не стремится. Мы перечислили их, чтобы показать, что вы имеете намного более широкий выбор возможностей, чем можете себе представить. Можете перебирать разные области занятий, выбирая то, что лучше всего соответствует вашим умениям, талантам и интересам.
Мы все время говорим о программистах и программировании, но совершенно очевидно, что программирование — это только часть общей картины. Люди, разрабатывающие корабли или мобильные телефоны, не считают себя программистами. Кроме того, хотя программирование — важная часть разработки программного обеспечения, разработка программного обеспечения — это не только программирование. Аналогично, для большинства товаров разработка программного обеспечения — это важная часть производства, но не все производство.
Итак, в чем заключается наша точка зрения? Программирование — это набор навыков, требующих интеллектуальных усилий и образующих часть многих важных и интересных технических дисциплин. Кроме того, программирование — это существенная часть окружающего нас мира, поэтому не знать основы программирования — это то же самое, что не знать основ физики, истории, биологии или литературы. Если человек полностью игнорирует программирование, значит, он верит в чудеса и опасен на технической должности. Если вы читали Дилберта (Dilbert), то вспомните образ начальника с волосатыми пальцами и поймете, какой тип менеджера никогда не хотелось бы встретить в своей жизни и (что было бы еще ужаснее) каким руководителем вам никогда не хотелось бы стать. Кроме того, программирование часто бывает веселым занятием.
Так для чего же вам может понадобиться программирование? Может быть, вы будете использовать его как основной инструмент своих исследований, не став профессиональным программистом. Возможно, вы будете профессионально общаться с другими людьми, работая в областях, в которых знание программирования может дать существенное преимущество, например, став конструктором, писателем, менеджером или ученым. Может быть, освоив программирование на профессиональном уровне, вы сможете сделать его частью своей работы. Даже если вы станете профессиональным программистом, маловероятно, что вы не будете знать ничего, кроме программирования.
Вы можете стать инженером, занимающимся конструированием компьютеров, или специалистом по компьютерным наукам, но и в этом случае вы не будете все время программировать. Программирование — это способ выражения своих идей в виде программ. Это помогает решать задачи. Программирование становится совершенно бесполезной тратой времени, если у вас нет идей, которые вы хотели бы выразить, и нет задач, которые стоило бы решить.