Составление вакансии на junior позиции — более тонкое дело, чем может показаться на первый взгляд. Связано это с тем, что у ребят без соответствующего опыта работы есть особые тараканы, которые могут повлиять на их решение откликаться или нет.
CTO at hexlet.io
Ульяновск, Ульяновская область, Россия
Составление вакансии на junior позиции — более тонкое дело, чем может показаться на первый взгляд. Связано это с тем, что у ребят без соответствующего опыта работы есть особые тараканы, которые могут повлиять на их решение откликаться или нет.
Монокультура в программировании — это использование одного стека для решения всех возникающих задач. Она существует не только на уровне конкретного человека и его предпочтений, но также часто встречается на уровне компаний. В таких компаниях, как правило, все делается с использованием одной технологии.
Если вам интересно, как и почему монокультура может приводить к более дорогим и сложным решениям, то добро пожаловать под кат.
Во время обучения бывают ситуации, когда ожидания не совпадают с реальностью и вы не видите нужного результата. Причин может быть масса, но среди них выделяется группа, связанная с когнитивными искажениями. Вот об этой группе мы и поговорим.
Недавно запущенные проекты на Хекслете очень хорошо показывают системные ошибки начинающих разработчиков. В этой статье я описал некоторые паттерны, следование которым поможет решать задачи быстрее и лучше.
Как начать писать тесты? Сколько нужно писать? На что их нужно писать, а на что — не нужно? Стоит ли всегда применять TDD? Если вас интересуют ответы на эти вопросы, то вы читаете правильную статью. В своей жизни я написал не одну тысячу тестов всех мастей для разных платформ, использовал во все поля TDD и ставил процесс тестирования в командах, проектах и даже целых компаниях. И теперь я попробую обобщить этот опыт и поделиться им.
Что самое трудное в работе программиста? Выдумывать имена для переменных.
Эта шутка пользуется популярностью среди программистов не случайно. Именование часто становится причиной целых баталий. И действительно, то, как мы именуем наши сущности (функции/переменные/константы/классы/модули), имеет большое значение, ведь большую часть времени мы читаем код, а не пишем.
Устройство на первую работу программистом — это самый волнительный шаг во всем процессе входа в профессию. Следуя нашим простым правилам, вы сможете серьезно увеличить свои шансы на успех. Мотивирующий пендель внутри.
Для настройки окружения проекта можно использовать (а многие так и делают) стандартные средства операционной системы. Такие, как пакетный менеджер (yum, apt), прямое редактирование конфигурационных файлов, bash-скрипты, curl/wget и многое другое.
Этот подход, с одной стороны, самый простой, но он обладает рядом недостатков, некоторые из которых критические.
Первая проблема - это отсутствие повторяемости. Обычно изменения в первую очередь делаются локально, потом их нужно перенести на рабочие машины ваших коллег, а в конце концов все изменения должны оказаться на сервере. При этом иногда вам придется пересобирать локальное окружение (по множеству причин). Такой подход всегда приводит к рассогласованию настроек на разных машинах, появляются разные версии программного обеспечения, неправильно настроенные конфиги, забытые ключи.
Настройка рабочего окружения — не такое простое занятие, как может показаться на первый взгляд. Обычно начинающие разработчики (и не только) устанавливают проект и его зависимости прямо на ту систему, где они работают. Этот подход обладает рядом недостатков.
Часто бывает, что разработчик работает не на одном компьютере. Более того, иногда разработчики работают на разных компьютерах с разными операционными системами. Все это приводит к тому, что сам процесс разворачивания окружения всегда разный и отличается от боевой среды. Что приводит к багам, которые возникают либо только локально, либо только на продакшене. Засоряется система. Практически невозможно вернуть систему в первоначальное состояние, чтобы пересетапить проект. Придется устанавливать с нуля основную систему.
function hammingWeight($weight)
{
$array = str_split(decbin($weight));
$amount = 0;
foreach ($array as $value) {
$amount += $value;
}
return $amount;
}