Гостевой блог бывшего директора Code Enigma Стива Коуи

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

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

Одним из первых сайтов, на которые я помню, был php.net, потому что он всегда давал быстрые ответы в виде примеров. Это был решающий фактор, направивший меня на путь PHP, а не ASP, потому что сила и потенциал сообщества открытого исходного кода были настолько очевидны.

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

Переход на открытый исходный код
Когда я начал использовать PHP, это было частью процесса перехода к открытому исходному тексту. Я отказался от ASP, потому что было невозможно найти время, чтобы хорошо овладеть и тем, и другим. Это отвело меня от набора инструментов разработчика Microsoft, но также предотвратило то, что я был привязан к несвободному программному обеспечению.

Учитывая, что для того, чтобы стать профессиональным разработчиком, требуется много времени, я все же посоветовал бы всем быть осторожными, чтобы не увязнуть в поддержке коммерческого продукта. Имейте в виду, мне сказали, что разработчики Sharepoint зарабатывают состояние. Так что, если вам нравятся деньги (об этом позже), не стесняйтесь игнорировать меня.

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

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

«Если вы не можете найти ответ, это, вероятно, означает, что вы неправильно сформулировали вопрос, потому что не поняли должным образом проблему».

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

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

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

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

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

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

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

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

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

Предполагая, что вы делаете что-то, чтобы заботиться о своем теле, пора подумать о своем мозге. Британский политик прошлого Денис Хили говорил о важности наличия внутренних районов. Он имел в виду то, на чем вы сосредотачиваетесь вне работы. Развитие может быть навязчивой идеей, поэтому убедитесь, что у вас есть другие интересы и занятия, в идеале как можно более отличные от разработки.

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

Вы можете узнать больше о разработке, которую мы ведем в Code Enigma, посетив наш веб-сайт здесь.