20 советов, которые помогут вам выделиться из толпы на современном рынке!

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

Пункты в этой статье — это некоторые уроки, которые я усвоил за более чем 20 лет самостоятельного обучения работе с компьютерами помимо программирования. Так я получил свою первую работу, где за очень короткое время поднялся до лидера технической команды, будучи самым молодым в команде. Это то, к чему меня привела моя страсть, и это помогло мне стать универсалом.

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

Почему

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

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

Обзор / TL;DR

В этой статье обсуждаются следующие советы:

  1. Решения недолговечны, фреймворки вечны: ищите возможности создавать долгосрочные решения, а не исправлять ситуацию.
  2. Все говорят на коде, мало кто говорит по-человечески. Покажите себя и улучшите свои навыки общения, как устного, так и письменного.
  3. Не всегда все идет по плану: планируйте неудачу при написании кода.
  4. Рассмотрите общую картину. Узнайте у своих разработчиков и коллег, не являющихся разработчиками, чтобы понять жизненный цикл проекта.
  5. Нет ничего идеального. Загляните в свои привычные повседневные инструменты и найдите способы их улучшить.
  6. Ведение записей. Записывайте все, что вы делаете, публично или с помощью заметок.
  7. Писать много: документируйте повторяющиеся процессы для будущих поколений.
  8. Разобрать и проверить: узнайте, как это делают другие в бизнесе.
  9. Будьте скромны: вы перестаете учиться только тогда, когда думаете, что знаете все.
  10. Совершайте ошибки и учитесь у других. Не позволяйте страху совершать ошибки сдерживать вас.
  11. Не соглашайтесь: помните о своих возможностях и помните о своем времени.
  12. Пишите хорошую историю. Пишите код ответственно, даже если вам это не нужно.
  13. Будьте в курсе: будьте в курсе ежедневных новостей.
  14. Создавайте собственные задачи: стимулируйте свой мозг при изучении новых технологий.
  15. Узнайте, как работать с текстом: научитесь манипулировать и преобразовывать различные текстовые форматы.
  16. Изучите медиафайлы: изучите основы редактирования фотографий, аудиофайлов и видео.
  17. Узнайте, какой вы ученик: попробуйте курсы, видеоролики, книги, документацию и посмотрите, что вам больше подходит.
  18. Планируйте финальный этап: подготовьтесь к своему будущему, помимо написания кода.
  19. Развлекайтесь: найдите эффективный способ восстановить свою выносливость.
  20. Это тернистый путь. Люди могут добиться успеха по-разному. Не зацикливайтесь на будущем и не торопитесь.

1. Решения недолговечны, фреймворки вечны

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

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

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

2. Все говорят на коде, немногие говорят по-человечески

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

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

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

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

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

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

3. Не всегда все идет по плану

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

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

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

4. Найдите большую картину

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

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

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

5. Нет ничего идеального

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

Знайте это точно, ни одна система не является на 100% безупречной, и когда вы научитесь распознавать недостатки, вы создадите себе потребность. Я говорю «хорошие возможности», потому что иногда то, что, по нашему мнению, может улучшить процесс или инструмент, может либо уже существовать, но мы еще не нашли его, либо может быть неэффективным для решения (решение требует больше времени, чем экономит).

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

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

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

6. Ведите записи

Ведите журнал действий, в котором фиксируйте то, что вы делаете, и то, как ваши действия повлияли на результат. Вы можете использовать специальную цифровую платформу, такую ​​как Polywork, или личную (предпочтительно синхронизированную) платформу для создания заметок, такую ​​как Apple Notes, Google Docs, или даже физическую записную книжку/журнал.

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

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

7. Много пишите

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

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

8. Разобрать и проверить

Один из моих любимых способов узнать о том, как обстоят дела в отрасли, — изучить существующие производственные проекты и изучить их. Например, когда я начал изучать JavaScript и CSS, я узнал намного больше от инспектора инструментов разработчика Chrome, чем от документации и/или видео.

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

9. Будьте скромны

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

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

Время от времени оглядывайтесь на свой код прошлого года. Если вы считаете, что это уродливо и загромождено, то вы на правильном пути. Это означает, что вы начинаете отличать чистый [er], [лучшее] качество, [более] масштабируемый и удобный в сопровождении код от кода, который просто работает. Позволив себе и другим критиковать вашу работу, вы сможете двигаться вперед.

10. Делайте ошибки и учитесь у других

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

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

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

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

11. Не соглашайтесь

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

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

12. Напишите хорошую историю

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

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

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

13. Будьте в курсе

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

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

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

14. Создавайте свои собственные задачи

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

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

15. Изучите текст

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

Примеры включают:

  • Описывать шаблоны с помощью регулярных выражений.
  • Отфильтруйте выходные данные JSON с помощью jq.
  • Выберите узел в XML-документе с помощью XPath.
  • Управление выходными данными CLI с помощью awk.

Понимание некоторых инструментов Linux CLI, таких как grep, sed и find, может оказаться полезным, даже если вы не работаете с Linux ежедневно. Linux везде, потому что он мощный и универсальный, и вы не можете избежать его.

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

16. Изучите медиафайлы

Вы можете делать на компьютере все, что угодно, кроме написания кода. Это всегда пригодится, если вы разбираетесь в некоторых менее простых приложениях, которые вы можете использовать для редактирования медиафайлов, таких как GIMP (для растровых изображений), Inkscape (для векторов), Audacity (для аудио). файлы), OpenShot (для видео), Blender (для 3D-объектов) и LibreOffice (для документов, электронных таблиц и презентаций) — или любые альтернативные несвободные приложения.

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

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

17. Узнайте, какой вы ученик

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

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

18. План на эндшпиль

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

Вы поблагодарите себя позже, когда позволите себе подготовиться заранее. Каким бы увлекательным ни было развитие в течение первых 20, 30 или 40 лет, в конце концов все устают, и только те, кто планирует заранее, могут пережить суматоху.

19. Получайте удовольствие

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

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

20. Это ухабистая дорога

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

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

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

Об авторе

Меня зовут Муханнад Аджан, я разработчик программного обеспечения в компании StuDocu.

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

Я также был сотрудником №1 в стартапе, где создавал продукт с нуля, находясь на «кухне» с сооснователями, где узнал о ранних этапах построения бизнеса вокруг идеи продукта.

Более подробно обо мне вы можете узнать на моем личном сайте isword.nl