Вы можете создать лучшее приложение в мире, но если вы не знаете, как об этом никому рассказывать, зачем?

Чтобы быть успешным разработчиком, нужно не только выучить один или два языка и знать, как структурировать коммит git. Существует множество других навыков, не связанных с написанием кода, которые ежедневно критичны для разработчиков. Вы можете создать лучшее приложение в мире, но если вы не знаете, как об этом никому рассказывать, зачем?

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

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

Давайте начнем.

Коммуникация

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

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

«Но что, если я совсем не умею говорить?»

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

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

Еще один фантастический ресурс, который я настоятельно рекомендую, - это пройти курс продаж. Да, вы правильно прочитали. Я рекомендую инженеру пройти курс продаж. Эти курсы научат вас гораздо большему, чем просто заключать сделки. В этих курсах есть множество советов по общению, и они научат вас читать людей и быть убедительными. Один замечательный курс, который я настоятельно рекомендую, - это Курс Криса Крофта по Удеми.

Пишу

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

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

Письменное общение так же важно, как и вербальное, когда дело касается объяснения, документирования и убеждения.

Пример убедительного письма, на который я всегда ссылаюсь, - это шаблон электронного письма от Amazon. Amazon случайно отправил свой шаблон электронной почты - фантастическая статья Аарона Шнора, в которой подробно рассказывается, как выглядит шаблон электронной почты Amazon и как они объединяют элегантные предложения и абзацы в единое целое. связное сообщение.

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

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

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

Читайте последние технологические новости, будьте в курсе последних выпусков библиотек и фреймворков, записывайтесь на онлайн-курс, читайте! Не устраивайся на работу и просто сядь. Будьте губкой. Получите все, что вы можете, от своих коллег, особенно от тех, кто постарше. Попробуйте узнать больше о том, чего вы не понимаете. Машинное обучение или большие данные страшно и загадочно? Иди и узнай почему.

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



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

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

Физическое оборудование

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

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

Попробуйте установить дома дешевый сервер (нет, пожалуйста, не запускайте инстанс EC2) и разместить на нем что-нибудь. Узнайте, что нужно для того, чтобы машина заработала с нуля, и обо всех мелочах, которые происходят между ними. Существует множество подержанных серверов, доступных по разумной цене на Ebay.

Играя с Raspberry Pi или некоторыми проектами Arduino, вы также получите глубокое понимание и понимание мира IoT, встраиваемых систем и базовой электроники. В основе многих этих проектов действительно лежит электротехника. Знание того, как работает простая схема, что делают различные электрические компоненты, увлекательно и имеет огромное историческое значение, когда дело касается компьютеров.

Если вас интересует электротехника, я настоятельно рекомендую следующий текст:



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

Наконец, я считаю, что разработчикам чрезвычайно важно иметь четкое представление о телекоммуникациях и о том, как работают сети. Если работа в сети является для вас сложной задачей, а IP-адреса постоянно сбивают с толку, то я настоятельно рекомендую вам почитать: Разработчикам необходимо изучить основы сетевой инженерии.

Заключение

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

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

Спасибо за внимание!