Найти в Дзене
CyberEd

Что должен уметь программист, кроме программирования?

Чтобы написать прототип, достаточно языка программирования и того, что сможет его запустить. Однако для разработки полноценного программного продукта или системы необходимо правильно протестировать разработанный код, внедрить и развернуть в уже имеющейся программе. Зачастую эти сферы ускользают от внимания начинающих программистов и становятся камнем преткновения на собеседовании. Давайте их разберём! Контроллер версий Это самая популярная «хотелка» компаний и то, что нужно знать для успешного трудоустройства. Наиболее популярной реализацией контроллера версий является GIT. Он позволяет создавать несколько веток изменений, откатывать изменения, объединять ветки и так далее. Удобство совместной разработки, которую предоставляет GIT, сделало его неотъемлемой частью стека любой компании, где больше одного человека. Здесь крутой тренажёр по GIT Docker Не могу передать все те эмоции, которые испытываешь, разобравшись с ним впервые. Теперь даже самые небольшие проекты не обходятся без его ис
Оглавление

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

Контроллер версий

Это самая популярная «хотелка» компаний и то, что нужно знать для успешного трудоустройства. Наиболее популярной реализацией контроллера версий является GIT. Он позволяет создавать несколько веток изменений, откатывать изменения, объединять ветки и так далее. Удобство совместной разработки, которую предоставляет GIT, сделало его неотъемлемой частью стека любой компании, где больше одного человека.

Здесь крутой тренажёр по GIT

Docker

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

Интересная статья по Docker: https://habr.com/ru/post/310460/

Тестирование

«Да тут минорные правки! Можно сразу на prod поправить». Если вы хотите бесплатно провести выходные на работе, но не знаете как — произнесите это заклинание, и сверхурочные найдут вас сами. А если серьезно, то любой код считается написанным, если он протестирован. И да, вы будете формально правы, если возразите мне: «Так есть же тестировщики, пущай они и тестят!». Однако вы не можете сливать на тестировщика всякий шлак и просить его довести до ума. В серьезных компаниях есть определенный список критериев, которым должен отвечать ваш код, прежде чем он перейдет в руки тестировщика. Иначе, словно бумеранг, ваша наукоемкая какашка вернется в ваш редактор кода и будет там находиться, пока не примет достойный вид. Конечно, тратить время на тестирование «ручками» каждой функции — это слишком затратно. Именно поэтому есть специальные программы, позволяющие автоматизировать этот процесс. В разных сферах и языках они могут отличаться, но общий смысл у них един: прогнать весь ваш функционал через тесты при любом даже незначительном изменении и дать вам выкатить вашу версию. Но только в том случае, если все тесты будут пройдены успешно.

Полезная информация про тестирование: https://habr.com/ru/post/167173/

Сборка

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

Пособие по сборщику: https://habr.com/ru/post/309306/

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

PS. Попробуйте себя в роли веб-разработчика на интенсиве-практикуме от HackerU. Вместе мы разберёмся, как работают и из чего состоят web-приложения и сайты. Затем вы научитесь писать несложные скрипты на языках JavaScript и PHP и создадите своё первое web-приложение. Ну а в конце мы составим ваш персональный план развития в профессии. В общем очень интересно ;)

Записаться можно тут

-2