можно ли самому научиться программированию и зарабатывать
Как получать 100 тысяч за код. Полное руководство для начинающих
Сохраните в закладки сейчас, скажите спасибо через год. В конце каждого этапа — ссылки для внеклассного чтения.
1. Познакомьтесь с веб-разработкой
Продолжительность этапа: 1 месяц.
Что изучить на этом этапе.
Сначала будет много непонятных слов, аббревиатур и голова пойдёт кругом. В одном JavaScript десятка три направлений, поэтому нужно понять, ваше ли это вообще. Смотрите видео на Ютюбе или тренируйтесь на интерактивных курсах. Другой вариант — по учебникам, но с ними сложнее всего. Электронные пока держатся, а вот бумажные устарели ещё до публикации.
Для начала вам даже не нужен сайт. Чтобы было проще и дешевле — настройте на домашнем компьютере сервер и экспериментируйте там. Можно и код покрутить, и вёрстку поломать, и написать пару скриптов на PHP.
Где применять знания. Пока просто поймите, какая из областей веб-разработки нравится больше (и нравится ли вообще хоть что-то).
2. Постепенно увеличивайте уровень сложности
Продолжительность этапа: 2 месяца.
После того, как определились с направлением, проходите более сложные курсы и усложняйте испытания.
Базовая база. На этом этапе нужно знать обо всём, из чего строятся страницы — формах, таблицах, медиа-элементах и всём остальном. Хорошо строить сетки, отличать флексы от гридов и декорировать страницы. Ещё хорошо бы не путать друг с другом переменные, типы, условия, циклы, массивы и объекты. Хотя бы со словарём и StackOverflow.
Гитхаб и бэкапы. На этом этапе лучше научиться пользоваться Гитхабом и завести себе репозиторий. Вы сможете показывать хорошие проекты работодателям, чтобы не делать все подряд тестовые задания при приёме на работу.
Инструменты. Экспорт графики из макетов, консоль, быстрая работа с Гитом, инструменты разработчика в браузере — это всё должно быть знакомо и под рукой.
Где применять знания. На этом этапе вы окончательно разберётесь, из чего состоят веб-страницы, как их правильно собрать и сделать всё красиво. Этого уровня хватит, чтобы сделать страничку своей собаке или брать несложные заказы на фрилансе.
А ещё не бойтесь, что всё сломалось или не получается. Это как в качалке — сначала тяжело, а потом бицуха.
3. Запишитесь на полноценный курс и пройдите его
Продолжительность этапа: до полугода.
Веб-разработке обычно не учат в колледжах и университетах, так что есть смысл посмотреть на какой-нибудь полноценный курс по вёрстке или программированию. Их тоже очень много на любой бюджет.
Актуальная программа курса. Проверьте, чтобы в выбранном курсе учили вещам из списков ниже — обязательно не всё, но чем больше, тем лучше. Иногда такие списки могут вмещаться в 2 или 3 курса, это нормально, так как все знания должны уложиться в голове и усвоиться на практике.
В списках ниже — необходимая база для любого хорошего разработчика/верстальщика. Всё это будут спрашивать на собеседованиях, поэтому чем больше пунктов совпадёт — тем лучше.
В курсах по вёрстке должны быть:
В курсах по JavaScript. Хорошо бы, чтобы там давали понятную базу: типы, операторы, алгоритмы, функции, циклы, объекты и структуры данных.
Инструменты (для вёрстки и JavaScript):
Где применять знания. Тренируйтесь в домашних проектах — или делайте странички по бесплатным макетам, или найдите готовые наборы навыков, где есть и теория, и упражнения для тренировки.
Делайте проекты, которые интересны лично вам или полезны в хозяйстве.
Идеи проектов для тренировки.
Деньги. После курсов по вёрстке можно пойти младшим верстальщиком за 25-45 тысяч (в зависимости от города) и делать хорошие сайты. Обычно верстальщикам быстро наскучивает верстать, и они идут на курсы по JavaScript — это увеличивает количество задач и поднимает зарплату до 40-75 тысяч. К тому же, хорошие разработчики быстро растут, так как их меньше, чем нужно в индустрии.
4. Найдите знакомого, который разбирается в теме
Продолжительность этапа: полчаса, чтобы написать в Фейсбуке всем знакомым.
Попросите его быть вашим наставником. Такому человеку можно показывать код, жаловаться на тяжёлую программистскую жизнь и просить совета. Хорошо, если вам будут отвечать.
На хороших курсах за вами закрепляют личного наставника, тогда можно подружиться и поддерживать контакт. В IT очень важны знакомства и большая сеть знакомств, поэтому не бойтесь знакомиться. Если к этому моменту вы уже работаете младшим разработчиком, наставника вам дадут на работе. Слушайте его и запоминайте, чтобы потом ещё кому-нибудь передать знания.
5. Выучите какой-нибудь фреймворк
Продолжительность этапа: 1-3 месяца, в зависимости от занятости.
Ваши будущие коллеги обычно не пишут на чистом JavaScript — они используют фреймворки (на курсах об этом тоже расскажут).
Что учить. Самые популярные и прибыльные для фронтендеров — React, Angular, Vue.js, Ember.js и Meteor. Для бэкендеров — Yii2, Laravel, Symfony, Django и Flask.
Если вы знаете JavaScript, но вам понравилось делать бэкенд, попробуйте Express.js — это фреймворк для Node.js.
Суть фреймворков. Они устаревают быстрее бумажных книг по фреймворкам. Поэтому будьте готовы доучиваться, так как на очередном месте работы может понадобиться Vue.js вместо React, с которым вы уже знакомы. Поэтому относитесь к ним серьёзно, но не слишком.
Где применять знания. Для практики на этом этапе попробуйте сделать какое-нибудь тестовое задание по React — есть репозиторий, где лежат задания разных крупных компаний. Выберите то, которое понравилось, разберитесь и реализуйте. А потом положите результат к себе на Гитхаб — лишним не будет.
Деньги. На этом этапе можно зарабатывать ещё больше — средняя зарплата React-разработчика около 100 тысяч. И чем дольше и лучше вы работаете, тем больше получаете.
Можно остановиться на этом шаге — цель из заголовка выполнена. Но никто не мешает пойти дальше и жечь сердца кодом.
6. Пройдите стажировку с командой
Продолжительность этапа: до полугода.
Искать работу можно и без стажировки, но чаще всего она не бывает лишней — как минимум, там вы посмотрите на разработку изнутри.
Где стажироваться. Это или несколько месяцев в крупной компании летом (обычно туда берут студентов старших курсов), или от 3 месяцев до полугода в компании, которая целенаправленно берёт стажёров на вырост.
Ещё на стажировку можно попасть, если хорошо закончить курсы — обычно у школ есть какие-нибудь партнеры, которым нужны младшие разработчики, и все заинтересованы, если вы туда попадёте. После стажировки, если всё хорошо, вас могут туда же взять на работу.
Как себя вести. Берите все задания, которые дают, и попробуйте работать в команде, даже если вы волк-одиночка и можете всё сами. Это важно из-за того, что даже хорошим программистам иногда отказывают в работе из-за неумения общаться с коллегами.
Компании, которые берут себе стажёров, часто встраивают их в команду с менеджером, тестировщиком и другими программистами — вот тут-то и нужно проявить себя.
Где применять знания. В поиске работы — к этому моменту уже должно быть портфолио, пара личных проектов, несколько коммерческих заказов и опыт работы в команде. Если добавить к этому знание фреймворков и хорошую базу в выбранном языке, можно смело ходить по собеседованиям.
7. Найдите работу и устройтесь на неё
Продолжительность этапа: у кого как.
Где искать. Здесь пригодится всё с прошлых этапов — и полученные навыки, и профиль на Гитхабе с регулярными обновлениями, и сеть знакомств. Сайтов с работами тоже много — можно найти вакансии почти в любом городе и с любым опытом.
Иногда работу предлагают прямо после курсов, а у некоторых школ есть свой каталог вакансий. Не стесняйтесь пользоваться такими предложениями и ищите в разных местах. Скорее всего, прямо сейчас где-то грустит один тимлид и не может найти фулстек-фронтенд-реакт-джифорс-программиста, а вы как раз он.
Деньги. Зависит от компании и города. Если вы знаете и умеете всё, что написано выше, хорошо ладите с коллегами и можете спроектировать большой сайт самостоятельно, можно претендовать на зарплату, о которой мы писали в пункте 5. С постоянным развитием и обучением она может повышаться почти бесконечно — потолка особо нет. Тут уж как договоритесь.
8. Участвуйте в жизни сообщества
Продолжительность этапа: всю остальную карьеру.
Если вам есть чем поделиться, ваша ценность растёт.
Что делать. Начните с простых проектов или объяснения сложных штук. Ходите на митапы и конференции, общайтесь с людьми из отрасли. Во всех больших городах есть группы по фронтенду и бэкенду. Ищите то, что вам интересно, и ходите слушать.
Куда ездить. Всё из списка, кроме митапов, проходит раз в год.
На самом деле конференций ещё больше, а то, что в списке — регулярное и большое. Маленькое и нерегулярное тоже бывает хорошим.
Когда наберётесь опыта — выступайте. Чаще всего компании проводят митапы, чтобы найти себе новых разработчиков, и там можно получить интересные предложения и по задачам, и по зарплате.
Учитесь вообще всё время
Этот шаг без номера, потому что учиться нужно вообще на всех этапах. Без этого никак — любая, даже самая простая работа требует обучения и адаптации к новому. Саморазвитие, мотивация, планирование и управление временем — да вы и сами всё это знаете.
Как получать 100 тысяч за код. Чеклист
Расскажите в комментариях, как вы учились разработке, с чего начинали и куда пришли? Если ещё в пути — то на каком этапе?
От «ничего не понятно» до первой работы: как становятся программистами с нуля
⏱ Время прочтения — 7 минут
Шаг 1. Знакомство с веб-разработкой
Начинаем с общего знакомства с направлениями веб-разработки. Вам предстоит определиться, насколько вам подходит программирование и какое направление ближе — фронтенд или бэкенд.
Фронтенд-разработчик отвечает за внешний вид страниц сайта. Он получает от дизайнера макет и превращает в готовую страницу — она подходит под разные экраны, все кнопки работают при нажатии, а схемы или таблицы корректно отображаются.
Бэкенд-разработчик отвечает за работу сайта. Он взаимодействует с сервером — частью сайта, где хранится вся информация. Он создает базы данных и управляет ими, а также проводит интеграции с внешними сервисами.
На этом этапе стоит потренироваться на бесплатных тренажерах. Темы тренажеров и длительность их прохождения могут быть разными. Например, занятия на тренажере «Знакомство с веб-разработкой» займут у вас 4 часа и дадут представление о базовых технологиях веб-разработки. После можно выбрать тренажеры, раскрывающие какое-то из направлений разработки более подробно. Занятия бывают для разного уровня — от новичков до опытных пользователей.
Много информации и базовых уроков есть на «Ютубе». Можно проходить их дома самостоятельно. Еще один вариант — читать книги по разработке для новичков. В обоих случаях нужно следить за тем, чтобы информация была актуальной. ИТ стремительно развивается — и есть риск получить устаревшие знания, а потом долго переучиваться заново.
К чему готовиться: если вы вообще не сталкивались с программированием, на этом этапе вам будет ничего не понятно! Это нормально. Получив первое представление о разработке, вы сможете понять, в какую сторону вам двигаться.
По времени этап займет около месяца.
Шаг 2. Обучение
После того как определились с направлением — начинаем обучение. Можно учиться самостоятельно или записаться на курсы по верстке или программированию.
Самостоятельное обучение
Бесплатно, но сложнее, чем учиться на готовых программах. Чтобы всё удалось, составьте учебный план: распишите темы, подберите упражнения и самостоятельные проекты, которые потом украсят ваше портфолио.
Идеи проектов для тренировки
Обучение на курсах программирования
На рынке много курсов для разных бюджетов, с разной длительностью и дополнительными опциями от школ — например, в HTML Academy во время обучения есть личный наставник, а после — стажировка и помощь в трудоустройстве.
Выбирая школу, важно понять, что информация в программе актуальна и на самом деле пригодится вам при трудоустройстве на работу.
Необходимая база для любого хорошего разработчика/верстальщика
Чтобы получить ее, возможно, понадобится не один, а два или три курса — например, по обычной и адаптивной верстке, а еще по JavaScript.
На курсах должны понятно объяснять базовые вещи из программирования: типы, операторы, алгоритмы, функции, циклы, объекты и структуры данных. Их понимание пригодится, даже если вы в итоге будете учить какой-то другой язык.
Инструменты (для верстки и JavaScript):
К чему готовиться: На этом этапе вы столкнетесь с первыми трудностями и чувством усталости. Делают ошибки и ощущают себя глупыми в процессе обучения практически все. Важно не поддаваться желанию опустить руки и всё бросить. Для этого правильно распределяйте время на учебу и отдых и найдите наставника. Всего изучение основ займет у вас около полугода.
Как найти наставника и что от него ожидать
На этапе обучения наставник практически незаменим. Он может проверить код, ответить на сложный вопрос, поддержать морально с высоты своего программистского опыта.
На хороших курсах за вами закрепят хорошего наставника, которому вы сможете задавать вопросы, который будет отслеживать ваш прогресс. Если вы обучаетесь самостоятельно, не переживайте, что останетесь без поддержки: киньте клич в социальных сетях и попросите кого-то из знакомых помочь вам. Еще один вариант — поискать наставника на форумах для программистов или в сообществе разработчиков. Например, в HTML Academy есть чат сообщества в «Телеграме», где можно задать любой вопрос.
Шаг 3. Углубление навыков, чтобы зарабатывать больше
Первую работу вы можете найти уже на этом этапе. Например, после курсов по верстке можно устроиться младшим верстальщиком. Зарплата в данном случае будет в районе 25–45 тысяч. Те, кто выучил основы JavaScript, смогут зарабатывать до до 40–75 тысяч на начальном этапе.
Чтобы получать больше и не заскучать, стоит продолжать обучение. Вариант для развития — выучить фреймворки, потому что программисты обычно не пишут на чистом JavaScript.
Самые популярные и прибыльные фреймворки для фронтендеров — React, Angular, Vue.js, Ember.js и Meteor. Для бэкендеров — Yii2, Laravel, Symfony, Django и Flask. Если вы знаете JavaScript, но вам понравилось делать бэкенд, попробуйте Express.js — это фреймворк для Node.js.
Знание фреймворков повышает зарплату. Средний заработок React-разработчика — около 100 тысяч. И чем дольше и лучше вы работаете, тем больше получаете.
К чему готовиться: заложите на изучение фреймворков еще от 1 до 3 месяцев.
Шаг 4. Стажировка или первая работа
Изучив основы программирования и какой-то из фреймворков, вы готовы к стажировке или первой работе.
Стажировка. Ее проходить не обязательно, но она помогает посмотреть на все рабочие процессы изнутри, набраться уверенности и легче адаптироваться к смене профессии. Компании со своей стороны заинтересованы в выпускниках и обычно готовы трудоустраивать их на позицию младших разработчиков, если стажировка прошла успешно. Часто школы принимают своих студентов на стажировку.
Трудоустройство. К этому моменту у вас уже будет наработанное портфолио — профиль на «Гитхабе» с вашими проектами. Осталось сделать резюме, указать ваши ключевые компетенции, сослаться на профиль и опубликовать на hh.ru или других сайтах по поиску работы. Пока у вас мало опыта, стоит активно откликаться на вакансии и ходить на собеседования.
Тина Кузьменко — выпускница HTML Academy, живет в Нидерландах. По образованию она журналист, но после переезда в новую страну освоила профессию и устроилась фронтенд-разработчиком в продуктовую компанию:
Еще во время учебы тщательно прорабатывала свое резюме. Позже красиво оформила фриланс-опыт по верстке. Также у меня накопилось немало личных проектов для портфолио, которые я аккуратно оформила на GitHub. Так что меня почти сразу стали приглашать на собеседования.
По итогу собеседований я получила в один день сразу два предложения. Одно из них было на мидла в продуктовую компанию Copernica Marketing Software. Его я и выбрала.
К чему готовиться: поиск работы может занять какое-то время — всё зависит от вашей активности и навыков. Если вы понимаете, что каких-то навыков не хватает и их часто спрашивают на собеседованиях, попробуйте изучить их параллельно с поиском работы.
После трудоустройства несколько месяцев уйдет на адаптацию. Не бойтесь спрашивать совета у коллег, готовьтесь много учиться (опять) теперь уже в реальных условиях. И не забудьте гордиться собой — вы перешли в новую профессию.
Что представляет из себя обучение на программиста с нуля
В данной статье мы рассмотрим какой путь надо пройти, сколько времени, сил и денег надо затратить чтобы с нуля дойти до уровня, когда вам начнут присылать приглашения на работу за рубежом на очень вкусных условиях. Ни ссылок, ни рекламы.
Здравствуйте, меня зовут Александр Зеленин. Я программист с более чем 15 годами опыта. За это время удалось поработать на позициях от веб-разработчика до CTO, в компаниях разного уровня (от 5 человек, до 2000+, стартапах, корпорациях), в разных странах и городах. Так же собеседовал более тысячи человек за всё время, вёл образовательные курсы, менторил и так далее.
* Данная статья является исключительно моим мнением. Не претендует на полность, абсолютную корректность, отсутствие ошибок, неточностей. Используйте здравый смысл при принятии любых решений и несите ответственность за них лично.
— Обязательно ли релевантное высшее образование?
Нет. Оно напрямую не влияет ни на доступную работу, ни на зарплату, ни на возможности. Диплом немного помогает с процессом получения визы, но ни разу не являлся стопором. За всю мою карьеру диплом меня спрашивали только когда уже всё подписано и нужно оформить проживание в стране. Всегда работодатель находил способы решить этот вопрос.
— Но, всё же, с высшим образованием проще?
Да, так как многие из тем так или иначе затрагивались при обучении. Даже если всё забылось, то восстановить знания выйдет быстрее. То если оно есть — хорошо, нет — ну и фиг с ним.
— Я интроверт. Программист это же самый круто вариант для интровертов, да?
Ну. как сказать. До определённого момента может быть и да, но уже через пару лет для роста потребуются коммуникативные навыки. Можно решать эти вопросы по мере необходимости.
Да, очень. Конечно, это всё индивидуально, и кому-то это даётся очень легко (мне лично это всё казалось очень лёгким, но и путь был долгий), но, в основном, все кто переучивался говорят, что это очень сложно.
Основная проблема в том, что начинаешь в новом для себя поле (особенно когда был экспертом в другом) с самых низов. Постоянное ощущение что тупой, знаешь недостаточно, медленно решаешь и так далее. Это серьёзный вызов. Намного серьёзнее чем кажется на первый взгляд.
— Оно того стоит вообще?
Это зависит от вашего видения мира, текущих условий и кучи других факторов специфичных для вас.
Специалист высокого уровня может рассчитывать на следующее (на момент написания этой статьи):
а. Для РФ: зарплата в районе 200 000 рублей белая, ДМС (на семью), печеньки, свободный график, оплата образования/садика детей, поездки на профильные конференции, высокую стабильность, интересные задачи, полный пакет для переезда (квартира на месяц, билеты, перевозка грузов, помощь с поиском жилья и т.п.)
б. Для Европы: зарплата в районе 5000 евро, и в принципе всё что и выше. В пакет для переезда часто ещё включают единоразовую выплату в районе 7000 евро. Часто ещё местная пенсия начинает капать и есть возможность позже получить вид на жительство / гражданство
в. США/Канада/Швейцария/Мидл Ист: зарплата в районе 10000$, и все плюшки выше
— Что значит «специалист высокого уровня»?
Принято условно делить специалистов на 3 уровня. Часто очень разнятся требования, но в общем случае они следующие:
1. Junior — может эффективно решать задачи, но требуется помощь более опытных коллег при столкновении с неопределенностями (не понятна задача, не ясно как решать, не ясно кого спросить и так далее)
2. Middle — самостоятельная единица, которая может и задачу решить очень хорошо, и всю информацию собрать сам из нужных источников
3. Senior — эксперт, который хорошо знает не только программную часть, но и понимает бизнес, в котором работает и может предлагать решения на совершенно разных уровнях
— Окей, и сколько времени учиться на каждый из уровней?
Самый первый этап, пожалуй, самый сложный психологически. На Junior’а вам потребуется около 1500 часов чистого времени (это полгода по 8 часов каждый день).
После чего джуниором проработаете около 1.5 лет.
После чего мидлом ешё года два.
Если не меняли предметную область, то добро пожаловать в сеньёры (4-5 лет суммарно).
— Погоди, погоди… Я вот видел курсы, там 3 раза в неделю по 2 часа и через два месяца мне обещают зарплату в 100 000 в месяц!
Ну если обещают, значит так и будет (нет).
Я вёл несколько подобных курсов исключительно из личного интереса. Даже увеличив нагрузку на учащихся по часам в 2.5 раза (по 5 часов), к концу второго месяца получался хороший “обзор” технологий.
Конкурентоспособность после таких курсов примерно никакая. В зачёт “опыта” такое не идёт. Ну т.е. вы можете в резюме написать хоть 5 лет опыта, но опыта это не даст.
— Окей, окей, а вообще польза от курсов платных есть?
Вообще есть, если не сидеть и не ждать у моря погоды, а активно использовать возможность общения с ментором и при условии, что помимо этих курсов (которые вроде 6 часов в неделю) вы ещё вкладываете свои 34 часа сверху.
— Какие курсы порекомендуешь?
Бесплатные. Я серьёзно. Главная ценность курсов — общение с ментором. На этом их польза заканчивается. Проблема многих подобных платформ в том, что: на них много участников и внимание ментора рассеивается, менторы не квалифицированы.
Часто платформы предлагают какие-то сущие копейки за их проведение, что практически сразу исключает появление хороших специалистов готовых их вести (кроме идейных, которых мало и фиг найдёшь).
— Эээ, так как тогда учиться?
1. Обязательно нужно найти личного ментора.
Без этого весь процесс будет либо замедлен в разы, либо уйдёте, не туда потеряв кучу времени. Как найти ментора? Лучший способ это среди друзей и знакомых, кто либо уже программист, либо учится (хотя бы полгода). Обычно программисты не против делиться знаниями и помогать.
Другой способ — это нанять ментора. Минус этого способа в том, что он стоит денег. Плюс в том, что можно более точно подобрать под свои нужды. Тут надо учитывать зарплату хороших спецов (см в предыдущих вопросах) и понимать, что даже несколько часов в неделю обойдутся прилично.
2. Определиться, где вы хотите работать и что делать
Это нужно сразу, чтобы подобрать релевантные технологии для изучения и быть полезным этой компании через полгода
3. Составить план и поставить сроки
Составить план поможет ментор. Самому это нереально, потому что ты не знаешь то, что ты не знаешь
— Ментор, ментор. что, совсем никак без него?
Можно и без него. Но тогда надо намного больше читать, делать, пытаться ориентироваться во всём и перепроверять себя постоянно.
Мне доводилось общаться с людьми, у которых 10+ лет опыта, а по знаниям они даже до джунов не дотягивают. Как так выходит — вопрос сложный. Отловить момент стагнации непросто.
Можно мониторить рынок, смотреть какие технологии ищут, смотреть разные решения свежие и так далее.
А потом найти ментора. Даже если ты уже сеньёр, всегда круто получить консультацию от более опытного специалиста.
— Статья, вроде, про то как «сменить» специальность, а ты говоришь что нужно пол года по 8 часов. Как совмещать с работой то? Может год по 4 часа?
Подловили. Это очень сложный вопрос. По предыдущему опыту сокращение количества часов увеличивает срок обучения непропорционально (т.е. по 4 часа будет не ожидаемый год, а, скажем, 1.5-2). Так же, в зависимости от текущей работы, усвоение сложного материала может просто не идти и всё, то есть совмещать может не получится. Это всё зависит, всё индивидуально.
Один из способов — это накопить средств и уделить полгода на такой переход. Это может быть очень сложным, когда уже есть семья или другие требования в виде ипотек и подобного. А ещё может получиться что с ходу сложно найти работу или какие-либо непредвиденные обстоятельства типа короновируса.
Другой способ это… ну фигачить по полной. А вы чего хотели? 😀
— У меня друг закончил курсы за два месяца и начал получать 5000$ в месяц сразу после
Несколько вариантов: либо он врёт, либо он гений (в этом случае курс тут не причём, совпало), либо ему повезло (знакомый нанял по-хитрому и т.п.), либо это что-то прям супер узкоспециализированное и он нашел лазейку. Пусть расскажет как. Ещё бывает, когда стартап не знает куда деньги от инвестора тратить и переплачивает явно. В первой же компании с адекватной разработкой картина будет совсем иная.
В столицах или, минимум, городах-миллионниках. Если вы не в Москве, Киеве, Минске или где вы там — готовьтесь к переезду. Локальные рынки слишком малы и не могут предоставить достаточно вакансий (особенно для начинающих специалистов), возможности для роста малы и так далее. Вообще если удалить всю статью, и оставить только эту рекомендацию — это будет одним из лучших решений для карьеры (!, но может быть не лучшим для других ваших факторов).
Есть исключения, когда офисы разработки некоторых крупных компаний находятся в небольших городах. Если вы целите в такую компанию, или она есть в вашем городе — желательно заранее сравнить все варианты друг с другом.
— Можно ли устроиться сразу на удалёнку?
Можно, это будет сложнее, в первую очередь, для вас. Не потому, что сама работа отличается, а потому что ответы на вопросы будут с задержкой, не будет возможности что бы подошел человек и пальцем показал, где что и почему. Да, есть куча инструментов сейчас (тивью, чаты, скайпы, доски разные), но в плане комфорта и скорости коммуникации оно отличается. Если целить на удалёнку, то надо быть готовым фигачить х2 от нормы, что бы хотя бы поспевать за адекватным темпом.
— Мне 45. Возьмут ли меня Juniur’ом без живого опыта?
Да, возьмут. Возраст вам даже в плюс сыграет, потому что много опыта из жизни хорошо перекладывается на технологии. С большой вероятностью пройти путь до сеньёра у вас выйдет намного быстрее, именно благодаря житейскому опыту (который начинает играть большую роль со стадии “мидла”, чем технические навыки). С релокациями в некоторые страны может быть сложнее если и возраст большой, и вышки нет, но это тоже всё решаемо.
Зависит от того, чем вы хотите заниматься. Если не хотите играть в лотерейку и пойти по надёжному пути — Java ваш выбор. Во всяком случае он позволит пройти весь путь без сильной технологической смены и с очень хорошей оплатой.
Если у вас есть друг, который обещает устроить вас PHP разработчиком уже через полгода — это может быть также хорошим кандидатом. Потому что язык не важен.
— Я думал ты пошутишь про «английский». Надо его учить?
Не на старте. Несмотря на то, что куча документации, информации и статей идут на английском, это всё можно поглощать через переводчики. Английский понадобится, когда решите переезжать. Хорошим моментом для начала изучения может быть через пару месяцев после устройства на работу Junior’ом. И да, обязательно нужно будет общение с носителями языка — будьте готовы в это также вложить денег.
Про переводчик мини-пример: буквально недавно пришлось столкнуться с библиотекой, актуальная документация для которой существует только на китайском (MyBatis-Plus) — гугл транслейт помог мне разобраться что к чему без особых приключений.
— Погоди, ты сказал язык не важен. что?
Это не совсем так. Он важен, конечно, но после определённого этапа (senior) вам будет всё равно на каком языке писать. Концепты, на которых строится программа, переносятся из языка в язык и именно их изучение занимает намного большее время.
Условно говоря, это можно представить, что профессиональный писатель решил написать рассказ на не родном языке — рассказ получится не такой выразительный и красивый, но сама история будет крутой, потому что он уже знает, как писать крутую историю. Язык — это лишь инструмент донесения.
— Окей, можешь накидать мне план что делать то?
1. Определитесь реально оно вам нужно. Стоит ли оно того?
2. Решите чем хотите заниматься. В идеале составить список компаний, в которых хотели бы работать. В идеале выбрать, где хотите быть через полгода, через два и через пять.
3. Напишите в компании, где хотите через полгода работать. Узнайте условия найма, что нужно выучить и так далее.
4. Составьте план тем, которые надо изучить (из описания вакансий и информации из пунктов 2 и 3)
5. Учите, практикуйте. Каждый день. Каждый. Обязательно. Без пауз.
6. Решайте программерские задачки. Минимум 1 в день, хотя бы easy уровень.
7. По мере продвижения можно контактировать с рекрутерами из компаний и искать возможность чтобы вас наняли. Чем раньше, тем лучше. Для увеличения шансов можно попробовать сделать какое-нибудь мини-решение полезное для компании, чтобы заинтересовать их.
Вне зависимости от языка список тем, которые я рекомендую включить в план: контроль версий (git, github), структуры и алгоритмы (знать все распространённые, big O, знать что “что-то такое есть” и уметь найти быстро), IDE (зачем, как настроить), отладка и профилирование (как искать ошибки, точки остановки и прочее), тестирование (написание хотя бы простейших тестов и понимание что включать в них), базы данных (реляционные, сетевые, документо-ориентированные), документирование (как писать, зачем), планирование и приоритизация (сколько займёт, что делать и когда), изучить Style Gudie по вашему языку, linux (базовое понимание что там, зачем и куда, умение запустить свой код там), пакетные менеджеры (как пользоваться, зачем, как поддерживать), семантичное версирование (зачем оно, как следовать), фреймворки (на нужном языке, хотя бы для ознакомления несколько), инструменты для сборки и автоматизации, криптография (базово что существует, а не как сделать), авторизация и аутентификация (что есть что и что для этого существует).
Насколько глубоко копать в каждую тему — зависит от условий, что решили изучать и так далее. На какие-то темы хватит и 15 минут, на какие-то можно и месяц-два выделить из полугода.
— Я видел, что компания, которая мне интересна обучает с нуля и нанимает. В чём подвох?
В низкой зарплате первые год-два. Но вообще это довольно крутой вариант, так как при должной мотивации это гарантированная работа, живой опыт и заинтересованные менторы, которые будут вас учить именно тому, что требуется компании. Теоретически это может снизить вариации после или удлинить срок роста, но это очень зависит от конкретных компаний и предложений. Если компания из списка вашего интереса имеет подобные стажировки с нуля — стоит к ним присмотреться.
И да и нет. Сложнее всего на старте. Дальше многие концепции запоминаются и их не надо держать в голове. Очень многие вещи “гуглятся” за 10 секунд, но при условии, что вы знаете, что гуглить.
Не советую заниматься тем чем не нравится, если программирование вас не заинтересует, не факт что и до среднего уровня прыгнете
ТС, огромное спасибо за этот пост))
Вот уже три месяца осваиваю Ruby. Хочу получить новую профессию в свои 36. Всю жизнь потихоньку осваивал программирование ( со школы и до текущего бизнеса, верстал себе сайты, проходил курсы и т.д.). И вот недавно понял, что это тянется за мной на протяжении всей жизни и мне это нравится.
Поэтому посвящаю обучению максимально свободное от бизнеса время.
Именно твой пост помог ответить на многие вопросы, которые крутятся в голове и которые некому задать )))
Еще раз спасибо )
Честно говоря думал что будут какие-то вопросы; помогу кому-то тут и так далее. По сути это сборник вопросов от знакомых, который я получал в разное время. Почему то статья воспринялась как рекламная, хотя не содержит ни единой ссылки или названия компании и носит ровно противоположный характер… ну ок 😀
Хорошо написали, мне зашло. Сама сейчас учусь, 5-6 часов в день, 30+, процесс нравится, но сама чувствую, что очень долго иду. Многие темы приходится разбить очень долго по десяткам источников.
а я просто бухаю. но уже заебался. тоже думал кодить но в нашем таксопарке пока нет компов.
Благодарю за пост! Спустя столько времени задаю вопросик: хотелось бы уйти в нишу тестирования: ТС, насколько там свои заморочки и другие нюансы, если не трудно объяснить?
Здравствуйте. Хочу развиваться в разработке мобильных приложений на swift. Но в последнее время набирает популярность flutter. Стоит ли дальше учить swift или перейти на flutter?
@Zav39, а такие площадки, типа codecademy, – нормальны для старта? Подписка там стоит немного, а информации, вроде как, много.
Хоть и тема была опубликована полгода назад, попытаю счастья задать вопросы.
У меня серьезные сомнения на таком избитом вопросе «какой язык выбрать». Я пересмотрел кучу разных материалов, статистики, roadmap, но так и не довелось спросить у реально человека. Я с самого начала выбрал область фронтенд-разработки, никогда не ассоциировал себя с серверной частью. Нормальный ли это выбор все таки? Будет ли возможность найти работу высокой в Москве? Боюсь, что специалистов в этой области не воспринимают как-то серьезно и все вокруг python, ruby, java. Или реально все сменить пока не ушел далеко и изучать что-то из этого (python, ruby, java)?
Спасибо за статью! И спасибо за возможность задать вопросы!!
Первый.
«6. Решайте программерские задачки. Минимум 1 в день, хотя бы easy уровень.»
Посоветуйте конкретные сайты/книги, пожалуйста, на ваш взгляд максимально качественные.
Второй.
«Концепты, на которых строится программа, переносятся из языка в язык и именно их изучение занимает намного большее время.»
Это про паттерны проектирования? Есть рекомендации для будущего front-end по источникам информации?
Вообще-то уровня 4. До junior есть ещё intern.
Опять агитка в духе «выучи с нами змеюку за 5 недель и будешь получать 5000 евро в час»?
И это не разу не спам говносайта Leetcode с говняными задачка типа «что выведет кусок говнокода, который в реальности никогда не встретится».
Секрет успешной карьеры
Расскажу вам одну историю, которая произошла с одним моим хорошим другом.
Он с отличием закончил универ. И одна компания, в которой он подрабатывал пока учился, сразу же предложила ему работу. Зарплата его более чем устроила, и он согласился.
Так он проработал в этой компании почти 10 лет. Переодически его повышали в должности, также росла и зарплата.
Пока однажды не оказалось так, что повышение больше не получить. Его развитие в данной компании достигло потолка. Затем он обнаружил, что его однокурсники, которые даже не были особо успешны в учебе, занимают более хорошие высокооплачиваемые должности.
Тогда он решает поменять работу.
Но с его опытом всего в одной компании другие компании не спешат предлагать ему хорошую должность. Ему приходится уходить с понижением, но зато он получает новый опыт. Во второй компании он работает всего 4 месяца, и его увольняют. Потому что сложно сработаться с новым коллективом, когда работаешь в одном месте 10 лет. Дальше он выбирает работу, которая дала бы ему необходимый профессиональный опыт. За следующие 4 года, он сменяет 2 компании, и в каждой работает по 2 года. Получает необходимые навыки и опыт, и описывает их в резюме.
И только после этого работодатели начинают им массово интересоваться и предлагать хорошую зарплату.
Второй минус, что ваш рост ограничен свободными должностями на уровне выше. Даже если вы заслуживаете повышения, если выше нет свободной должности, то вас и не повысят. Ожидая повышения вы теряете не только деньги, но и опыт, который могли бы приобрести на новой должности.
Таким образом, для многих может оказаться более полезной стратегия развития своих навыков для построения карьеры в разных компаниях.
Что для этого нужно:
1. Решите для себя на какой должности вы мечтаете работать, и какие компетенции для этого нужны.
2. Определите на какой работе вы можете получить опыт, для работы вашей мечты.
3. Составьте план по смене разных мест работы, на которых вы получите необходимые скиллы.
4. Целенаправленно меняйте работу, пока не достигните работы своей мечты. Устраивайтесь на доступную вам, но нужную для ваших навыков работу, работайте там год или два, потом меняйте работу на уровень выше в другой компании. Не советую работать в одной компании меньше года, потому что это вызывает подозрения у работодателя при приеме вас на работу.
При необходимости не бойтесь поменять и город проживания.
Есть еще один лайфхак: как понять список необходимых вам навыков?
Попробуйте пройти собеседование на желаемую должность. По вопросам работодателя вы поймете в каком направлении вам стоит развиваться, чтобы в следующий раз пройти собеседование успешно.