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

Мы программируем как команда уже 10 лет. Когда мы оглядываемся назад на последнее десятилетие, это отличное сочетание того, что мы сделали как команда, вещей, которые мы открыли, уроков, которые мы извлекли, и, прежде всего, воспоминаний, которые мы создали.

Важно, чтобы мы все сделали. Не менее важно, чтобы мы тратили время на построение отношений.

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

Ничто не высечено в камне. Узнайте, что мы открыли в своем путешествии.

Хотите писать код для удовольствия? Присоединяйтесь к Coding Adventures with Party Parrot и решайте головоломки программирования. 🎒 Играйте: https://sml.io/play 🏆 и присоединяйтесь к другим путешественникам в Discord, чтобы обсудить задачи и получить призы после завершения путешествия: https: // discord. gg / BuqjuKnKpU

Советы разработчиков SoftwareMill

Яцек Куницки - старший разработчик программного обеспечения



Не занимайтесь программированием культа карго.

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

Анджей Людвиковски - Подмастерье программного обеспечения



Фреймворки, инструменты, языки приходят и уходят.

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

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

Томаш Дзюрко - старший разработчик программного обеспечения



Долгие проекты - не зло.

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

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

Томаш Шиманский - генеральный директор



Не переписывайте все заново каждый раз, когда вам предстоит новый проект.

Вы, скорее всего, проиграете.

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

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

Кроме того, будь скромным.

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

Марчин Кубала - хранитель типичной безопасности



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

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

Будь программистом, но оставайся человеком.

Адам Варски - технический директор, разработчик Scala



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

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

Магда Сточек - инженер-программист



Не позволяйте синдрому самозванца встать у вас на пути.

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

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

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

Кшиштоф Граек - старший инженер-программист



Попробуйте разные парадигмы программирования и языки.

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

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

Миколай Козяркевич - старший инженер-программист



Не теряйте лес ради деревьев.

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

Другими словами, всегда помните о «общей картине» - что, когда и почему вы кодируете именно эту систему или приложение.

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

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

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

Себастьян Рабей - инженер-программист



Себастьян Рабей
Последние твиты от Себастьяна Рабей (@sebastianrabiej). Я часто спрашиваю «почему
... Разработчик программного обеспечения в @ softwaremill… twitter.com »



Некогда сожалеть о розах, когда горит лес.

Часто, как разработчики, мы сосредотачиваемся на законах, правилах и технологиях. Мы забываем о самом главном - о ценности для бизнеса. Я знаю, мы хотим делать что-то новое, чтобы сделать наше резюме еще лучше. Но чтобы быть ценным инженером, мы должны сначала спросить себя: «зачем нам это?» И «сделает ли это наш проект лучше?».

Лукаш Люховски - старший инженер-программист



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

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

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

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

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

Томек Лучак - финансовый директор, старший разработчик Scala



Выйдите из своей зоны комфорта и перестаньте тратить время на проекты, которые вас не развивают.

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

Не хотите пообщаться с нами о программировании? Приглашаем вас присоединиться к нашему каналу AMA Slack.