Приветствую! Если вы спрашиваете себя, где глава 1. То вот она - тык сюда.
В этой главе я расскажу, что это такое - работа программистом.
Давным-давно в садике меня спросили: "Кем хочешь быть, когда вырастешь?". Я ответил, что хочу быть программистом. На самом деле мне просто нравилось это слово и клавиатура, которую дали в счет зарплаты отцу в те далекие времена. Думал, скоро у нас появится компьютер, а я буду играть на нем. Компьютер появился только в 6 классе... А программистом я стал только спустя 6 месяцев после прихода из армии.
Кто вы, мистер программист?
Что вообще такое быть программистом? Чем он занимается?
Программист делает программы, сайты, пишет драйверы (такие программы, чтобы у вас работало на компе оборудование). Причем, все это разные программисты и каждая из этих специализаций делится еще на подклассы. Программист не чинит компы, не настраивает вам интернет, не ставит антивирусы, это все работа системного администратора или системного инженера, людей из другой отрасли компьютерных технологий (IT). Хотя, это не отменяет того, что программист МОЖЕТ это уметь.
Поработав менеджером по продажам, я устроился в другую фирму и стал работать веб-программистом.
Веб-программист, как подкласс профессии
Какое устройство вообще имеет сайт?
Он делится на две части, или даже на три: фронт-энд, бэк-энд, ну и база данных (если уж на три делить). Так и веб-программисты сейчас делятся на фронтэндеров, бэкэндеров и программистов БД. Первые делают визуальную часть сайта, кнопочки, формы, поведение элементов на странице сайта, всякие визуальные эффекты, короче, все что вы видите на сайте. Отрисовывают и придумывают КАК это все будет выглядеть веб-дизайнеры, но реализуют фронты.
У сайта есть "невидимая сторона", которая умело манипулирует данными, которые вы вводите в видимую часть сайта, она сохраняет информацию, работает с соединением, делает запросы в базу данных (БД), обрабатывает полученные результаты и предоставляет готовые данные фронтэнду - это бэкэнд, в ней регламентируется структура сайта и многое другое. Бэкэндом занимаются бэкэндеры.
А есть еще сущность, куда сохраняются и откуда бэкэндом достаются все данные - это база данных. Тем, как база данных будет их выводить занимаются программисты БД.
В некоторых фирмах одних и тех же программистов пытаются заставлять заниматься всем вместе, но на самом деле это неправильно. Хотя и может встречаться.
Как превращаются в программистов?
Все просто: ты или сам учишься или азы постигаешь в университете. Далее этап - ищешь конторы, где соответствующие твоему уровню требования к программисту. Идешь на собеседование, говоришь с HR, отвечаешь на вопросы из области, которые задает обычно твой будущий босс или коллега и, если все всех устроит - стаешь частью компании.
Далее ты постепенно узнаешь, как тут кодят другие и как ты должен кодить. Залезаешь в самые темные уголки кода сайта или программы постепенно узнаешь что и где находится в коде и постепенно прокачиваешь знания и навыки. ЗП будет расти, если это твое, ты не тормоз и учишься. Если пришел совсем без опыта - стаешь стажером, потом junior (младшим) программистом, потом middle (середнячком) программистом, потом senior (старшим) программистом.
Это такая область где все зависит напрямую от твоих способностей к обучению и навыков. Если ты не хочешь развиваться ЗП и вкус печенек в офисе вряд ли изменится, да и офис тоже вряд ли окажется в Купертино, штат Калифорния.
Типичный день программиста
Если в твоей компании все правильно устроено, то ты не будешь общаться с заказчиками почти никогда, этим занимается менеджер проекта (project manager - PM). Ставит тебе задачи в task tracker (программа, которая отслеживает задачи, выводит их список, следит за выполнением и напоминает что-то) - менеджер разработки (или teamlead - ваша рок-звезда программирования, если нет менеджера разработки).
Доля программиста в плане организации процесса простая: зашел в task tracker, выбрал задачу и начал писать код. Как написал код, нужно его потестировать (забыл, есть еще такой вид разработчиков - тестировщики). Потом заливаешь код, грубо говоря, в тестовую версию проекта (его туда все заливают кодеры из вашей команды). На определенный день намечается выпуск (релиз) новой функциональности и код из тестовой версии проекта копируется в рабочую. Если после этого с проектом случается ахтунг, то новая версия проекта заменяется обратно на старую, а тот новый код, который все сломал, отправляется обратно в тестовую среду и правится. Это называется система контроля версий и это я сейчас все описал достаточно упрощенно.
Как понять, что ты настоящий программист и у тебя есть силиконовое (на самом деле, кремниевое) будущее?
Все просто, если ты любишь кодить и делаешь это даже в свободное время, выходные к примеру. То это твое. А если ты любишь изучать что-то новое постоянно, следить за новинками на рынке разработки ПО и осваивать это новое - это вдвойне твое. Знаешь классические алгоритмы и умеешь их применять и реализовать в коде - да ты просто обязан стать классным программистом.
В противном случае, можно, конечно, работать за деньги, но у профессии есть и минусы: ты сидишь перед компом весь день, спина не хреново так устает. Малоподвижный образ жизни может сделать тебя жирным, а безумные хотелки заказчика и периодические стрессы, связанные со спешкой или поломками релизов могут сделать тебя очень нервным. Башка устает конкретно от задач, когда ты не знаешь изначально как сделать, реально закипает. А еще какой-нибудь индус всегда готов претендовать на ваше место и писать говнокод за десятую часть вашей ЗП.
Но у профессии и много плюсов: высокая зп, её рост (ну я уже говорил, при каких условиях), хорошие условия работы (обычно), понятные задачи, много бонусов вроде бесплатного английского и абонемента в спортзал (не везде, но часто бывают), кое-где вам даже ноутбук выдадут рабочий и портфельчик под него, еще можно работать удаленно на фрилансе, но там я не плавал - рассказать как это не смогу.
Так что - решать, как обычно, вам.
Понравилась статья - ставь лайк, не будь кибержлобом!
#обзор профессии #о программистах #программирование #отзыв о профессии #обзор работы