"Ну так что ты делаешь?"

Все чаще меня спрашивают: Чем конкретно вы занимаетесь? На самом деле я независимый архитектор и разработчик программного обеспечения. Практически у меня есть работа мечты: я могу работать где угодно и когда угодно над проектами по своему выбору. После небольшого объяснения, основанного на примерах, следующий вопрос обычно выглядит примерно так: Как я могу это сделать?

Я та редкая птица - старший технический специалист не из Кремниевой долины (да, мы действительно существуем). Хотя это было заманчиво, но я НЕ оставил технику (но все равно), несмотря на обычную адскую серию неудачных инцидентов на протяжении моей 15-летней карьеры здесь. Скорее, я нашел способ преуспевать в нашем технологическом мире, который работает на меня. Учитывая подтекст, кажется логичным попытаться поделиться тем, что я узнал.

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

Учиться

Любопытство

Эта черта, возможно, убила кошку, но это ключ к моей работе (и жизни). Сочетание необычной (возможно, неестественной?) Уверенности (например, «Я смогу понять тему x, y или z…»), упорства и отсутствия отвлекающих факторов ( нет телевизора) приводит к обучению на протяжении всей жизни. Связано это с тем, что я вечный новичок в большом количестве областей, поэтому мое отсутствие предположений часто способствует более быстрому обучению. Я постоянно экспериментирую с новыми технологиями, языками программирования и т.д.

Своевременное наставничество

Меня часто просят наставлять людей, нередко я получаю несколько запросов каждую неделю. Итак, как мне выбрать человека для работы? Как инженер, я оптимизировал работу, чтобы ответить на вопрос (вы будете наставлять меня?), написав этот пост, чтобы ответить на вопрос.

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

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

Наставничество переходит в следующую тему. Обучение проявляется в создании работающего программного обеспечения.

Строить

Страсть

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

Всегда стоит задача создать MVP для моих пользователей. Что, кажется, упускается из виду, так это того, кто является фактическим пользователем? Подсказка: это могу быть я, но чаще это НЕ Я. Я буквально заработал тысячи долларов, помогая компаниям снова сосредоточиться на этом ключевом вопросе.

Поскольку я часто участвую в совместной программе со студентами университетов, теперь я (наконец) понимаю, чем мы занимаемся, а не обучаем выпускников CS. Мой опыт обучения программированию сильно отличался от их. 15 лет назад я начал самоучку, применив проверенный метод разработчика с копированием и вставкой («это работает!»).

Просто закодируйте это

Я продолжал практиковаться, практиковаться, практиковаться - моим первым полностью созданным приложением было приложение для Windows: «Lynn’s Life in C #». Чтобы продолжить мое нетипичное путешествие, мой первый оплачиваемый проект был на этом стойком языке программирования - T-SQL. В последнее время большая часть моей производственной работы выполняется на Python, однако за последний год я выполнил оплачиваемую работу на Ballerina, JavaScript, Lua и Go.

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

Напротив, я нахожу печальным и, возможно, трагичным, что наши университетские курсы CS, похоже, застряли в недрах языков C или Lisp-типа.

Я наконец понимаю, почему мне так много раз говорили: «ты не технический». Это академическое определение до смешного узкое. Интересно, когда мы будем развиваться?

Моя компания быстро приносит пользу моим клиентам, потому что я лучше, чем большинство разработчиков с формальным образованием, понимаю истинную стоимость кода (компромиссы между отсутствием кода, повторным использованием кода или написанием кода). Эта практичность проявляется в повторении следующих вопросов:

  • Это работает?
  • Это имеет значение?
  • Могут ли они это использовать?
  • Они это используют?

Ключевым аспектом этого процесса является эффективное общение. Мое формальное образование связано с лингвистикой. Сосредоточение внимания на предметно-ориентированной коммуникации с пристальным вниманием к таксономии было краеугольным камнем моей работы. Понимаю ли я, чего хочет / нуждается мой клиент? Понимают ли они, что я планирую для них построить? Последнее время я добавляю в свой репертуар визуальную коммуникацию (схемы, рисунки, зарисовки).

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

Учат

Просить

Что касается технического обучения, возникает несколько вопросов ...

В любом случае, чему учат в наши дни? Имея все в сети постоянно, получаем ли мы пользу от общения с учителями-людьми? Прошли те времена, когда я преподавал 5-дневные восьмичасовые технические курсы - что их заменит?

Ответы на этот вопрос всегда озаряют:

«Как ты учишься?»

Внимательное прислушивание к индивидуальным ответам неизбежно перезапускает для меня рабочий цикл. Что-то в этом исследовании должно быть правильным. Меня поразило, что более 4 миллионов студентов просмотрели часть или все мои онлайн-курсы.

Просто поделись им

«Разместите свой код на GitHub!» становится мантрой. Мне интересно видеть, какие материалы люди размещают на GitHub: код, списки, руководства и даже книги.

В этом мире совместного технического обучения я ищу «следующий GitHub». Учитывая рост машинного обучения, я сейчас сосредоточусь на Kaggle. Интересно, что Microsoft владеет GitHub, Google владеет Kaggle. Размышляя о том, скоро ли на этом рынке появится Amazon или, возможно, Alibaba…

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

Следующий

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

#learnBuildTeach