можно ли самому стать программистом
От «ничего не понятно» до первой работы: как становятся программистами с нуля
⏱ Время прочтения — 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. Его я и выбрала.
К чему готовиться: поиск работы может занять какое-то время — всё зависит от вашей активности и навыков. Если вы понимаете, что каких-то навыков не хватает и их часто спрашивают на собеседованиях, попробуйте изучить их параллельно с поиском работы.
После трудоустройства несколько месяцев уйдет на адаптацию. Не бойтесь спрашивать совета у коллег, готовьтесь много учиться (опять) теперь уже в реальных условиях. И не забудьте гордиться собой — вы перешли в новую профессию.
Как начать работать программистом с нуля
Нет времени? Сохрани в
Сегодня разберем, как стать программистом с нуля. Остановимся на каждом пункте: какой язык выбрать, где учиться и где искать работу. Не переживайте, здесь будем говорить по существу и обязательно дадим список полезных ссылок.
Для начала развеем миф о том, что программирование — это что-то невероятно хардкорное, что-то доступное узкому числу одаренных гениев. На самом деле нет. Да, это работа головой, но нет, тут не нужен какой-то особый склад ума. Всему можно научиться.
Программирование ближе к математике или к иностранному языку
С одной стороны, программирование у многих людей ассоциируется с математикой. Считается, что айтишник хорош в точных науках. С другой, мы же говорим « язык программирования», а не « система программирования», например. Значит это что-то похожее на изучение английского. Какой из двух тезисов ближе к правде?
Скорее второй, чем первый. У компьютерных языков тоже есть своя лексика и грамматика. Они более точные и логичные, чем любой человеческий язык. По сути мы можем сравнить изучение языка программирования с изучением английского, и это не будет прям грубым сравнением. Нужно выучить слова (функции), грамматику (логику и правила написания кода), устойчивые фразы (часто используемые фрагменты кода). Можно даже сказать, что русскоговорящему выучить Python или JavaScript, к примеру, проще, чем арабский или корейский язык. А может даже проще, чем любимый нами английский.
А что с математикой? Она тоже нужна. Условный математический склад ума значительно упростит вам работу с кодом. Умение мыслить категориями из технических наук пригодится не столько в изучении языка, сколько в его применении. Вам будет проще представить в голове, как реализовать задуманное.
Если речь идет о базах данных, блокчейне, искусственном интеллекте или других сложных штуках, то тут уже без математики совсем никак. Причем речь идет не о школьном курсе, а о самой настоящей высшей математике. Для рядовых же задач достаточно базовых знаний.
А вот что касается английского, то он пригодится в любом случае. Код пишется на английском, комментарии к нему и техническое задание зачастую тоже. Без английского в IT вам будет намного сложнее, но об этом позже.
Можно ли стать айтишником с нуля
Конечно можно, ведь все когда-то начинали с нуля. Запаситесь терпением и мотивацией и начните осваивать новую профессию. Ваша предыдущая специальность и образование большой роли не играют. Программистом с нуля может стать как инженер, так и учитель младших классов. Препятствием может стать разве что возраст. Найти первую работу в IT после 23-25 будет сложнее, чем более молодом возрасте.
Top 10 Учебников по коммуникативной методике изучения английского
Выбор языка программирования
Есть много разных языков программирования, и пока вы не погрузились в тему, сложно в них разбираться. Какой начать учить, чтобы потом не пожалеть?
Давайте так. Мы будем описывать разные ситуации. Читайте каждый пункт по очереди. Если поймете, что этот пункт не про вас, переходите к следующему. И так пока не получите свой ответ.
Решение серьезное, не нужно делать его на основе одного-двух предложений в каком-то там списке. Почитайте больше о языке, который мы вам подсказали. Узнайте, для чего конкретно он применяется, погуглите вакансии с ним, посмотрите примеры реализованных проектов. Подойдите к этому со всей серьезностью.
Как научиться программированию
Итак, вы определились с языком, теперь нужно придумать, как его выучить. А выучить его вам будет не так уж и сложно, как кажется на первый взгляд. У страха глаза велики. Нужно просто приложить усилия и потратить на обучение несколько месяцев. Это не так уж и много на самом деле. Специалисты уже подсчитали, что на изучение programming language нужно в среднем от 6 до 13 недель, если заниматься по 8 часов в день. Если предположить, что вы уже где-то работаете на полный рабочий день, и свободного времени у вас меньше, то это 2-6 месяцев.
Есть еще такая теория как » 10,000 hours rule». Она гласит, что в любом ремесле можно стать профессионалом за 10 тысяч часов. Если поделить на 40 часов в неделю, то выйдет около пяти лет. Но это чтобы стать прям экспертом. А для первых серьезных проектов и первой работы достаточно, как мы уже сказали, от нескольких месяцев до полугода.
Где учиться?
Что общее у всего вышеперечисленного? Наличие практики. В хороших учебниках всегда есть разделы с практикой, на онлайн-курсах есть тренажеры или домашние задания. На ютубе вы можете сами попробовать написать программу по туториалу. А на тренингах вы именно этим и будете заниматься большую часть времени. Возможность написать что-то своими руками будет вас мотивировать. В идеале вы должны написать свою первую программу уже на первом, максимум на втором уроке.
Стоит ли поступать в университет, чтобы научиться программировать? Можно, но это вовсе не обязательно. Курс обучения в университете длится от четырех лет. За это время вы спокойно можете выучиться самостоятельно и получить несколько лет опыта. Поступать стоит в том случае, если вы планируете освоить сложную профессию по узкой специальности, и знаете, что в этом конкретном университете вас этому могут научить.
Основные понятия грамматики английского языка
Поиск работы для разработчика
Вероятнее всего, вы будете претендовать на должность разработчика. Должность будет называться по языку программирования — например, Java Developer, либо по направлению — например, Frontend Developer.
Junior — начинающий программист, своего рода стажер. Его опыт работы — до 6-18 месяцев. На этом этапе нужно понимать, что и как делается, но не обязательно уметь это делать идеально. Джуниор активно учится на собственных ошибках и пока нуждается в помощи со стороны.
Senior — специалист с большим опытом, который может сам себе сформулировать задачу и график в зависимости от задач бизнеса. Умеет решать проблемы наперед, еще до их появления. Может делегировать задачи между коллегами младшего ранга и помогать в их решении.
По окончанию обучения вы, можно сказать, ищите работу программистом с нуля. Только с теоретическими знаниями и небольшим опытом реализации тренировочных и несложных собственных проектов. Вы — Junior. И самое сложное для вас — найти работодателя без реальных кейсов. Что вам понадобится?
Портфолио
В процессе обучения у вас должны были появиться какие-то наработки. Если их не появилось, значит вы плохо учились, и искать работу вам еще рано. Продолжайте тренироваться. Так вот, у вас должны накопиться примеры своих уникальных проектов, написанных лично вами. Не по инструкции из учебника, не по шаблону из онлайн-курса, а именно с нуля с применением ваших знаний. Очень круто, если это что-то оригинальное и эффектное, чтобы можно было легко продемонстрировать потенциальному работодателю.
Подготовьте для портфолио хотя бы три-пять таких проектов. Конечно, чем больше, тем лучше. Перед заливкой в портфолио дайте посмотреть код знакомому опытному программисту или пользователям форумов для айтишников вроде Stackoverflow.
Как начать работать программистом на фултайм в своем городе
Далее с вами связываются, приглашают на собеседование в офис или в онлайне, возможно, дают выполнить небольшое тестовое, и если вы подходите, то вас приглашают на работу джуном.
Поиск заказа для программиста на международных сайтах
Работа в компании дает вам хороший опыт и быстрый старт в карьере. Варясь в одном офисе с опытными коллегами, вы можете быстрее повысить свою квалификацию. Но если работа в офисе не для вас, то всегда есть фриланс. Если сумеете презентовать себя, правильно оформить аккаунт и наладить работу, то можете зарабатывать на заказах из США и Евросоюза на порядок больше, чем получали бы на позиции Junior-девелопера в России или Украине.
Это очевидно, но мы напомним: для работы с иностранными заказчиками вам понадобится хороший английский. Это даже не обсуждается — без этого прям совсем никак. Незнание языка — как огромный барьер, который не даст вам подняться даже до среднего уровня, и вы так и останетесь второсортным спецом. У нас в EnglishDom есть курс «Английский для IT». Там 50 уроков. Его можно пройти приблизительно за три месяца — подтяните грамматику и выучите профильную лексику. Первое занятие с преподавателем бесплатное.
Серьезно, запишитесь сейчас, потом забудете.
На каких сайтах искать заказы программисту
Зарегистрируйтесь сразу на нескольких— поймете, где вам комфортнее. Да, потеряете месяц на распыление, зато на годы вперед выберите удобную площадку.
Теперь вы знаете, что делать. Пролистайте всю статью целиком еще раз, чтобы сохранить полезные ссылки. Также читайте другие статьи по теме:
На этом прощаемся. Удачи в карьере!
EnglishDom #вдохновляемвыучить
Что представляет из себя обучение на программиста с нуля
В данной статье мы рассмотрим какой путь надо пройти, сколько времени, сил и денег надо затратить чтобы с нуля дойти до уровня, когда вам начнут присылать приглашения на работу за рубежом на очень вкусных условиях. Ни ссылок, ни рекламы.
Здравствуйте, меня зовут Александр Зеленин. Я программист с более чем 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. Целенаправленно меняйте работу, пока не достигните работы своей мечты. Устраивайтесь на доступную вам, но нужную для ваших навыков работу, работайте там год или два, потом меняйте работу на уровень выше в другой компании. Не советую работать в одной компании меньше года, потому что это вызывает подозрения у работодателя при приеме вас на работу.
При необходимости не бойтесь поменять и город проживания.
Есть еще один лайфхак: как понять список необходимых вам навыков?
Попробуйте пройти собеседование на желаемую должность. По вопросам работодателя вы поймете в каком направлении вам стоит развиваться, чтобы в следующий раз пройти собеседование успешно.