4 совета по поиску сообщества разработчиков

Источник: Honeypot Одним из факторов, которые помогают разработчикам в их профессиональном развитии, является сообщество, в котором они состоят. Если вы еще не нашли свое, не волнуйтесь! В этой статье я расскажу, как это сделать. Люди не предназначены для одиночества. Именно благодаря способности сотрудничать ради достижения общей цели человечество и достигло прогресса. Прекрасным примером подобного сотрудничества можно назвать сообщество разработчиков. В отличие от некоторых других профессиональных отраслей, разработчики очень часто взаимодействуют друг с другом, и большая часть их жизни так или иначе связана с сообществами, которые они создают вокруг себя. Если вы разработчик, но еще не нашли свое сообщество, не отчаивайтесь. Присоединиться к одному из них вы можете на любом этапе вашей карьеры.Кофе-брейк #55. 4 совета по поиску сообщества разработчиков. 5 неожиданных навыков, которые нужно освоить начинающему программисту - 1

1. Выясните, что вам нужно

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

2. Ищите местные сообщества

Джессика, участник команды программистов Ember, живет в Берлине. К счастью для нее, этот город предлагает множество возможностей для взаимодействия с другими местными разработчиками. «У меня был большой опыт профессиональных групповых встреч, долгое время я была частью Школы открытых технологий, которая помогает людям больше узнавать о технологиях». Девушка участвовала в семинарах и группах совместного обучения, и нашла это очень полезным для новичка. «Меня поддерживали другие студенты и я получала бесплатное наставничество. Можно сказать, что это давало чувство ответственности, помогало приходить на встречи регулярно и стимулировало учиться самостоятельно». Чтобы найти местное сообщество, Джессика предлагает воспользоваться поиском в Google. Если вы живете в большом городе, то у вас, вероятно, не возникнет проблем с поиском местных сообществ программистов, к которым можно присоединиться. Однако может оказаться, что некоторые такие группы в соцсетях уже неактивны или в них давно не публиковались сообщения. В таких ситуациях не бойтесь прямо спросить, происходит ли что-то еще в сообществе. Если вы проявляете интерес, это всегда оценят.

3. Найдите интернет-сообщество

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

Вот несколько мест, где можно найти свое интернет-сообщество

dev.to. По их собственным словам, «индустрия программного обеспечения полагается на сотрудничество и сетевое обучение», а dev.to предоставляет разработчикам пространство для встреч и помощи друг другу, будь то технические аспекты кодирования, советы по карьере или общая поддержка и мотивация. #developers в Slack. Вам нужно будет ответить на несколько вопросов, чтобы получить доступ к этому каналу, но как только вы туда войдете, то получите всю необходимую поддержку и советы :) Hashnode. Напишите статью на любую желаемую тему программирования и взаимодействуйте с более широким сообществом. Это отличный способ оставаться на связи с другими разработчиками. Женщины, которые кодят. Это место поддержки для женщин, работающих в сфере технологий, где они найдут ресурсы для программирования и открытое пространство для обмена идеями. Reddit. Существует множество субреддитов для любой ниши кодирования; ознакомьтесь с некоторыми из наиболее активных: r/programming, r/java, r/python, r/javascript, r/reactjs и r/cscareerquestions. Круги разработчиков на Facebook. Здесь основная цель состоит в том, чтобы создать сообщества, организованные на местном уровне, где разработчики могут «получать бесплатные инструменты для развития новых навыков, идей и продвижения по службе». Найдите свое сообщество на Facebook, все обсуждения в настоящее время ведутся онлайн.

4. Найдите сообщество с открытым исходным кодом

Участие в сообществе, которое посвящено открытому исходному коду, может стать важным этапом профессионального развития. Быть ​​активным членом open source сообщества — это значит не только вносить свой вклад, но и посещать мероприятия и конференции, знакомиться с другими людьми, находить наставников и налаживать контакты. Помимо навыков, приобретенных в сообществе с открытым исходным кодом (как технических, так и нетехнических), участие в нем дает чувство принадлежности к программистам за пределами основной работы. В сообществе с открытым исходным кодом есть уникальное ощущение работы над чем-то большим, и во многих смыслах эта работа является значимым вкладом. Хотите знать, с чего начать? Подумайте, какие проекты с открытым исходным кодом вам нравятся, и начните с них — это может быть очень просто, достаточно найти и исправить опечатку в коде. Важно лишь с чего-то начать.

Заключение

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

5 неожиданных навыков, которые нужно освоить начинающему программисту

Источник: Codeburst Мой путь к тому, чтобы стать разработчиком-самоучкой, был долог и труден. Иногда, вспоминая все препятствия и разочарования, с которыми мне довелось столкнуться, я спрашиваю себя, а стоило ли начинать именно так. И сейчас я могу сказать, что дело того стоило. Для людей вроде меня — тех, кто начинал с нуля, кривая обучения оказалась очень крутой. Но я уверена, что в долгосрочной перспективе преимущества перевешивают усилия, которые приходиться тратить для покорения этой горы. Конечно, это относится только к тем случаям, когда вам нравится то, что вы изучаете. Мне потребовалось несколько лет, чтобы понять: хороший разработчик должен уметь не только быстро и легко писать код. Многие новички не понимают, что для получения навыков разработки нужно нечто большее, чем просто умение написать и запустить программу. Итак, вот еще пять навыков в дополнение к кодингу, которые точно понадобятся каждому начинающему разработчику!Кофе-брейк #55. 4 совета по поиску сообщества разработчиков. 5 неожиданных навыков, которые нужно освоить начинающему программисту - 2

1. Использование инструментов для совместной работы

Многие популярные платформы для самостоятельного изучения программирования фокусируются на синтаксисе языка и структурах данных. Некоторые из них позволяют учащимся создавать базовые проекты с нуля. Скажем, простую игру или приложение для составления списка задач. Эти уроки неоценимы для начала овладения навыками программирования, но они не имитируют реальную рабочую среду, с которой вы столкнетесь в будущем. Над крупными проектами разработчики работают вместе, причем иногда разработчик может участвовать в работе над несколькими базами кода одновременно. В командной работе часто используют инструменты, например таблицы Google или Invision. У команд разработчиков имеется свой собственный стандартный набор инструментов для совместной работы. В моей компании, как и в десятках тысяч других компаний США, используется GitHub. Я никогда не забуду день, когда мои коллеги познакомили меня с GitHub. Сначала мне сказали открыть терминал моего компьютера (я даже и не подозревала, что у меня в компьютере есть что-то подобное). Затем коллеги начали набирать какую-то тарабарщину в этом загадочном окне на моем экране. Эта тарабарщина, как выяснилось, творила волшебные вещи, например, заполняла несколько папок на моем компьютере всевозможными файлами, полными кода. Затем они говорили о «ветках» и «пушах», о чем-то «удаленном». И казалось, что буквально все слова начинаются с приставки «git». Я знала, что они говорят по-английски, но смысл их слов был для меня непонятен. Если вы новичок, которому еще не приходилось писать код с другими разработчиками, вам придется изучить язык и инструменты для совместной работы. Это может показаться сложным, особенно если вы никогда не открывали командную строку. Но со временем это войдет в привычку.

2. Регистрация и обработка ошибок

Допустим, вы уже научились сотрудничать с другими программистами, и ваш код отправляется в производство. Когда то, что вы написали, используется тысячами или даже миллионами пользователей, это вызывает поистине захватывающее ощущение. Но дойдя до этой стадии, вы на собственном опыте узнаете, что непредвиденные ошибки в коде случаются постоянно. Например, созданная вами переменная так и не получила значение. Теперь вы вызываете метод с нулевым значением, а ваша программа не знает, что с этим делать. Возникает ошибка, и теперь пользователь больше не имеет доступа к той потрясающей странице, которую вы создали. Когда вы проверяете работу программы, все кажется правильным, поэтому проблему вы можете даже не заметить. Возможно, эта конкретная ошибка возникает только в 5% случаев, но 5% от 100 тысяч пользователей это существенно. Вам нужно научиться регистрировать, обрабатывать и предвидеть ошибки в вашем коде: это совершенно необходимые навыки для разработчика. Да, умение предвидеть проблемы — это чутье, которое развивается со временем и опытом. Но новичку важно помнить о том, что ошибки — это практически неотъемлемая составляющая разработки. Умение защищать свой код с помощью различных типов регистрации ошибок может избавить вас от головной боли в будущем, особенно когда вам поручат выполнить отладку. Кроме того, это может помочь выявить проблемы, о которых вы даже не подозревали. Сегодня нам доступны различные инструменты для регистрации ошибок, позволяющие легко отслеживать уязвимости в кодовой базе. Один из моих любимых — Sentry, при помощи которого можно увидеть, когда проблема возникла впервые и как часто она возникает. Также стоит упомянуть Logentries, Rollbar и Instabug. Есть программы, отслеживающие общесистемные данные и проблемы, например New Relic и Datadog. Скорее всего, в своей карьере разработчика вы столкнетесь с некоторыми комбинациями подобных программ, и вам стоит научиться пользоваться ими.

3. Тестовое покрытие

Как я уже говорила, оттачивание навыков программиста — это больше, чем просто написание кода. Вы должны убедиться, что ваш код понятен другим разработчикам, и когда кто-то откроет его спустя два года, этот человек должен иметь возможность быстро вникнуть в суть дела и приступить к внесению изменений. Логика, которую вы пишете, должна быть понятной и пригодной для повторного использования в течение нескольких лет. Но иногда ваша логика будет сложной, и упростить ее не удастся. Возможно, из-за сложности бизнес-логики. Возможно, из-за нехватки времени. Реальность такова, что из-за дедлайна вы порой будете вынуждены принимать далеко не идеальные технические решения. И не всегда сможете четко определять все варианты использования перед началом работы. Один из способов подстраховать свой код — писать тесты для сопровождения изменений. Большинство языков программирования имеют дополнительные пакеты тестирования, которые вы можете установить. Например, для Ruby мы используем Rspec, а для React часто используется Jasmine. Существуют различные типы тестов, включая модульные (для тестирования небольших участков логики) и интеграционные (для сквозного тестирования потоков). Очень часто для того, чтобы ваш код был отправлен в общую кодовую базу, он должен пройти весь набор тестов. Научившись их писать, вы добавляете «предохранители», которые не дадут случайно перезаписать написанные вами функции при будущих изменениях. Тестовое покрытие также помогает определить ожидаемое поведение, поскольку многие тестовые случаи пишутся обычным английским языком. Не могу передать, сколько раз я заходила в какой-нибудь файл, написанный несколько лет назад, вносила изменение — и оказывалось, что из-за него проваливается с десяток тестов, хотя мне казалось, что я хорошо поняла ожидаемое поведение. Однажды я даже сломала функционал, который сама же и написала несколько месяцев назад. К счастью, это сразу выявили мои модульные тесты. Просматривая пул-реквесты, я замечаю, что разработчики часто не уделяют должного внимания тестовому покрытию, причем это касается как простых, так и сложных изменений. Я тоже виновата в этом, особенно когда сроки поджимают. Но я могу припомнить несколько проектов, в которых внесение правок в одном месте привело к поломкам в четырех других местах. Это увеличило уровень стресса и добавило нам работы, а ведь мы и так спешили, чтобы успеть к дедлайну. Подобных ситуаций можно было бы избежать, если бы мы в свое время нашли время на написание модульных тестов. Научиться их писать может быть утомительной задачей, особенно для начинающего разработчика, а их написание определенно замедляет общий процесс разработки. Но чем раньше вы начнете писать тесты, тем меньше головной боли ожидает вас и вашу команду в будущем.

4. Ревью кода

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

5. Правильный поиск в Google

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

Заключение

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