Вам будут хорошо платить.

На должности программиста начального уровня можно платить 50 000 долларов в год, а на руководящих должностях, таких как архитекторы, можно заработать в среднем шестизначном диапазоне. Если у вас есть образование в области искусственного интеллекта или безопасности, вы можете зарабатывать более двухсот тысяч долларов в год.

Работа проста.

Подростки могут научиться программировать (писать программы) за выходные. Однажды я солгал о своей способности программировать на определенном языке, прекрасно зная, что за три или четыре недели, которые потребуются, прежде чем мне дадут значительную работу, я смогу выучить язык и добиться удовлетворительных результатов.

Книги об изучении языка X за семь дней довольно точны. Эти «учебные лагеря по программированию» занимают так много времени, потому что они проходят с минимальным общим знаменателем уровня способностей.

Что, конечно, сложнее, так это вся «надстройка», окружающая простую программу. Фреймворки и библиотеки кода, редакторы кода и среды разработки, а также компьютеризированные инструменты управления проектами; все потребуется время, чтобы освоить.

Фактические усилия по программированию займут от двадцати до тридцати процентов вашего рабочего дня. Еще двадцать-тридцать процентов будут потрачены на собрания, а остальное ваше время будет потрачено на работу со всем «вспомогательным» программным обеспечением и инструментами.

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

Вас редко привлекают к ответственности за свою работу, если вообще когда-либо.

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

Но компании просто принимают это «как есть». Итак, если вы и ваша команда или весь ваш отдел не справитесь с поставленными задачами, потраченные деньги просто списываются, и компания переходит к повторной попытке через некоторое время.

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

Участие в неудачных попытках не имеет клейма и не влечет за собой последствий. Каждый, каждый из сотрудников участвовал в большем количестве неудачных проектов, чем успешных.

Если вы среднего уровня - руководитель группы, мастер схватки, владелец продукта, руководитель проекта - скорее всего, у вас будет достаточно опыта, чтобы предсказать, когда ваша попытка потерпит неудачу, и вы перейдете на другую работу за несколько недель до этого.

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

Еще одна причина заниженных ожиданий: предпосылки, лежащие в основе «Программной инженерии». Еще в 1968 году случился «программный кризис» - слишком мало программистов / разработчиков, чтобы удовлетворить спрос. Так появилась новая академическая дисциплина и профессия - программная инженерия.

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

Но человеческие недостатки можно компенсировать с помощью «метода»; по крайней мере, так считалось. Но точно так же, как планы никогда не переживают пыла битвы на войне; метод не выдержал требований повседневной практики.

Настоящая ответственность требует определенной ответственности. И вся профессия не несет никакой ответственности. Вы могли бы - и другие уже сделали - написать код, который напрямую убил кого-то без какой-либо возможности привлечения к ответственности.

Инженер-строитель, подписавший план строительства здания, которое рушится и убивает жителей, может попасть в тюрьму. Инженер-программист, который пишет код, приводящий к крушению двух авиалайнеров и гибели многих сотен людей, неуязвим. Они не будут расследоваться, а их ошибки не будут подвергаться какой-либо проверке.

В общем, неплохая работа.

Возможно, вы стремитесь к чему-то большему, чем просто работа; вам нужна профессия.

Профессия разработки программного обеспечения имеет два аспекта и, следовательно, два типа профессионалов: профессионалы первого типа занимаются разработкой инструментов, включая новые языки, фреймворки, методы и комплексные подходы (например, Six Sigma, CMM, TQM и т. Д.); в то время как профессионалы второго типа сосредотачиваются на использовании результатов тех, кто занимается разработкой первого типа, для предоставления программного обеспечения платежеспособным клиентам.

Хорошие стороны профессионала первого типа (я включаю в эту категорию университетских ученых) включают хорошую зарплату, возможность разбогатеть, продавая свои инструменты, множество консультационных услуг и приглашения выступить на конференциях (включая расходы и гонорары).

Плохая сторона профессионала Первого Типа: большая часть вашей работы неактуальна и недолговечна. Немногие профессии так же склонны к ежегодным «модам» и «лучшим вещам», как программное обеспечение.

Продукты от профессионалов Type One основаны на убеждении: «Вот как вы должны разрабатывать программное обеспечение». Специалисты второго типа правильно отмечают, что теория - это не практика, и большая часть того, что предлагают профессионалы первого типа, непрактична и / или непригодна для использования.

Кажется, существует парадокс в том, что большинство компаний приобретут (за большие деньги) множество инструментов и фреймворков для внутреннего использования, чтобы они могли сказать, что мы делаем «X», в то же время менее 5% их штатные сотрудники фактически используют инструменты с любой частотой. Это делает производство Type One неактуальным.

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

Отсутствие какой-либо «профессии». В отличие от медицинских и инженерных профессий, здесь нет стандартов и критериев, по которым можно было бы судить, являетесь ли вы или кто-либо другой в любом смысле этого слова профессионалом.

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

Некоторое количество профессионалов второго типа - практики - задумаются над тем, что они делают, и откроют для себя новую идею - часто отличную. Они обдумывают эту идею, развивают и развивают ее, а затем озвучивают своим коллегам. Часто эти идеи вдохновляют значительный сегмент профессионального сообщества второго типа, который принимает эту идею.

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

Возможно, худший аспект профессиональной деятельности второго типа - это характер работы. Вы, ваша команда, вся группа разработки программного обеспечения участвуете в написании программ, которые удовлетворяют набору спецификаций или требований - и это ВСЕ.

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

Это не имеет значения, потому что просто предполагается, что удобство использования, ценность для бизнеса, стратегические преимущества и т. Д. Были определены другими и включены в требования, которым вы должны соответствовать.

Существует глубокая пропасть, отделяющая бизнес-клиента и его профессионалов от компании, занимающейся разработкой информации и программного обеспечения, и ее профессионалов.

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

Грехи и беззакония отцов программной инженерии по-прежнему посещают профессиональных детей второго типа.

Существует альтернатива "Работа" и "Профессия".

Разработка программного обеспечения должна быть «звонком».

Термин призвание определяется как «сильное побуждение к определенному образу жизни или призванию». Чаще всего вы слышите это в связи с присоединением к религиозному ордену. Вы также услышите, как врачи и преподаватели описывают свою работу как призвание.

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

Названные люди тратят много времени на приобретение знаний, опыта и мудрости; но только с целью использования этих внутренних ресурсов на благо других.

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

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

Невозможно представить себе медицинскую практику без пациентов. Немногие учителя получают истинное удовлетворение от преподавания, которое не предполагает полноценного взаимодействия с учениками.

Почему же тогда тем, кто призван к разработке программного обеспечения, должно быть отказано в таком же взаимодействии с теми людьми, чья трудовая жизнь будет сильно зависеть от того, что вы, как разработчик, производите?

Есть люди, искренне призванные сделать карьеру в области разработки программного обеспечения. К сожалению, немногие нашли плодородную почву для роста и служения. Это видно по растущему числу разработчиков программного обеспечения, которые повторяют слова Пэдди Чаевски, озвученные героем фильма «Сеть»: «Я чертовски зол, и я больше не собираюсь этого выносить. ”

Если вы серьезно подумываете о карьере в области программного обеспечения, если вы действительно хотите быть разработчиком программного обеспечения; вы должны спросить себя, хотите ли вы просто работать или даже быть профессионалом. Если да, продолжайте и сразу же приступайте к делу.

Если вы призваны быть разработчиком программного обеспечения, поймите, что никакая другая работа не окажет большего влияния на все человечество - на то, как они работают, как они играют, как они взаимодействуют друг с другом и как они думают о себе.

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