Проверь свой уровень английского
Это бесплатный комплексный тест, который поможет определить твой уровень владения языком по всем параметрам:
- Грамматика
- Словарный запас
- Чтение
- Восприятие речи на слух
🕣 🇬🇧 Tест займет до 15 мин
Сегодня разберем, как стать программистом с нуля. Остановимся на каждом пункте: какой язык выбрать, где учиться и где искать работу. Не переживайте, здесь будем говорить по существу и обязательно дадим список полезных ссылок.
Для начала развеем миф о том, что программирование — это что-то невероятно хардкорное, что-то доступное узкому числу одаренных гениев. На самом деле нет. Да, это работа головой, но нет, тут не нужен какой-то особый склад ума. Всему можно научиться.
Программирование ближе к математике или к иностранному языку
С одной стороны, программирование у многих людей ассоциируется с математикой. Считается, что айтишник хорош в точных науках. С другой, мы же говорим «язык программирования», а не «система программирования», например. Значит это что-то похожее на изучение английского. Какой из двух тезисов ближе к правде?
Скорее второй, чем первый. У компьютерных языков тоже есть своя лексика и грамматика. Они более точные и логичные, чем любой человеческий язык. По сути мы можем сравнить изучение языка программирования с изучением английского, и это не будет прям грубым сравнением. Нужно выучить слова (функции), грамматику (логику и правила написания кода), устойчивые фразы (часто используемые фрагменты кода). Можно даже сказать, что русскоговорящему выучить Python или JavaScript, к примеру, проще, чем арабский или корейский язык. А может даже проще, чем любимый нами английский.
А что с математикой? Она тоже нужна. Условный математический склад ума значительно упростит вам работу с кодом. Умение мыслить категориями из технических наук пригодится не столько в изучении языка, сколько в его применении. Вам будет проще представить в голове, как реализовать задуманное.
Если речь идет о базах данных, блокчейне, искусственном интеллекте или других сложных штуках, то тут уже без математики совсем никак. Причем речь идет не о школьном курсе, а о самой настоящей высшей математике. Для рядовых же задач достаточно базовых знаний.
А вот что касается английского, то он пригодится в любом случае. Код пишется на английском, комментарии к нему и техническое задание зачастую тоже. Без английского в IT вам будет намного сложнее, но об этом позже.
Можно ли стать айтишником с нуля
Конечно можно, ведь все когда-то начинали с нуля. Запаситесь терпением и мотивацией и начните осваивать новую профессию. Ваша предыдущая специальность и образование большой роли не играют. Программистом с нуля может стать как инженер, так и учитель младших классов. Препятствием может стать разве что возраст. Найти первую работу в IT после 23-25 будет сложнее, чем более молодом возрасте.
Читай также
Top 10 способов уточнить непонятное на английском
Выбор языка программирования
Есть много разных языков программирования, и пока вы не погрузились в тему, сложно в них разбираться. Какой начать учить, чтобы потом не пожалеть?
Давайте так. Мы будем описывать разные ситуации. Читайте каждый пункт по очереди. Если поймете, что этот пункт не про вас, переходите к следующему. И так пока не получите свой ответ.
- Хочу что-то предельно простое, может даже не самое практичное. Ваш язык: Ruby.
- Я хочу начать кодить для себя, из любопытства или в рамках самосовершенствования. У меня нет на примете проекта, который мне бы хотелось реализовать. Посоветуйте мне лучший способ начать. Ваш язык: Python.
- Я хочу начать кодить для себя, из любопытства или в рамках самосовершенствования. У меня нет на примете проекта, но я хотел бы выучить такой язык, чтобы после него было легко переключиться на любой другой (даже если изначально изучение первого языка будет трудным). Ваш язык: С++.
- Я хочу кодить для себя, и у меня на примете есть проект. Он связан с сайтами. Хочу выучить самый простой язык из тех, что позволит мне создавать сайты в интернете. Ваш язык: JavaScript.
- Я хочу кодить для себя, и у меня на примете есть проект. Он связан с сайтами, но в будущем я хотел бы работать не только с ними. Ваш язык: Python.
- Хочу стать программистом для себя, и есть идея проекта, связанного с приложениями на Android. Ваш язык: Java
- Хочу стать программистом для себя, и есть идея проекта, связанного с приложениями на iOS Ваш язык: Objective-C
- Хочу стать программистом для себя, и есть идея проекта, связанного с компьютерными играми или сложными программами в 3D. Ваш язык: C++
- Я иду в программирование ради денег, и хочу получить хорошую работу. Компания не имеет особого значения. Ваш язык: Java или Python.
- Я хочу устроиться на работу в компанию и работать с веб-интерфейами. Ваш язык: JavaScript.
- Хочу устроиться в компанию и работать с сайтами. Готов потрудиться чуть больше, но охватить при этом более широкий спектр знаний. Ваш язык: PHP.
- В будущем я хочу устроиться в крупную корпорацию вроде Google или Facebook. Ваш язык: Python.
- В будущем я хочу устроиться работать в Apple. Ваш язык: Objective-C.
- В будущем я хочу устроиться работать в Microsoft. Ваш язык: C#.
Решение серьезное, не нужно делать его на основе одного-двух предложений в каком-то там списке. Почитайте больше о языке, который мы вам подсказали. Узнайте, для чего конкретно он применяется, погуглите вакансии с ним, посмотрите примеры реализованных проектов. Подойдите к этому со всей серьезностью.
Как научиться программированию
Итак, вы определились с языком, теперь нужно придумать, как его выучить. А выучить его вам будет не так уж и сложно, как кажется на первый взгляд. У страха глаза велики. Нужно просто приложить усилия и потратить на обучение несколько месяцев. Это не так уж и много на самом деле. Специалисты уже подсчитали, что на изучение programming language нужно в среднем от 6 до 13 недель, если заниматься по 8 часов в день. Если предположить, что вы уже где-то работаете на полный рабочий день, и свободного времени у вас меньше, то это 2-6 месяцев.
В одной из статей мы как-то уже писали, сколько времени нужно на изучение английского — можете сравнить.
Есть еще такая теория как "10,000 hours rule". Она гласит, что в любом ремесле можно стать профессионалом за 10 тысяч часов. Если поделить на 40 часов в неделю, то выйдет около пяти лет. Но это чтобы стать прям экспертом. А для первых серьезных проектов и первой работы достаточно, как мы уже сказали, от нескольких месяцев до полугода.
Где учиться?
- Онлайн-курсы. В той же самой подборке о них тоже сказано несколько слов, но если вкратце, то можно заниматься в Codeacademy (англ), Coursera (в основном англ), Skillshare (в основном англ) и так далее.
- Видеоуроки на YouTube. Есть много хороших бесплатных курсов. В том числе записи уроков из платных видеокурсов прошлых лет — слитых или выложенных самими школами.
- Оффлайн школы и тренинги. Это самый дорогой способ научиться программированию, но самый эффективный. Под личным руководством наставника вам будет гораздо проще, ведь не придется задерживаться на одном месте.
Что общее у всего вышеперечисленного? Наличие практики. В хороших учебниках всегда есть разделы с практикой, на онлайн-курсах есть тренажеры или домашние задания. На ютубе вы можете сами попробовать написать программу по туториалу. А на тренингах вы именно этим и будете заниматься большую часть времени. Возможность написать что-то своими руками будет вас мотивировать. В идеале вы должны написать свою первую программу уже на первом, максимум на втором уроке.
Стоит ли поступать в университет, чтобы научиться программировать? Можно, но это вовсе не обязательно. Курс обучения в университете длится от четырех лет. За это время вы спокойно можете выучиться самостоятельно и получить несколько лет опыта. Поступать стоит в том случае, если вы планируете освоить сложную профессию по узкой специальности, и знаете, что в этом конкретном университете вас этому могут научить.
Читай также
Разница между wage, salary, income, revenue
Поиск работы для разработчика
Вероятнее всего, вы будете претендовать на должность разработчика. Должность будет называться по языку программирования — например, Java Developer, либо по направлению — например, Frontend Developer.
Junior — начинающий программист, своего рода стажер. Его опыт работы — до 6-18 месяцев. На этом этапе нужно понимать, что и как делается, но не обязательно уметь это делать идеально. Джуниор активно учится на собственных ошибках и пока нуждается в помощи со стороны.
Middle — от слова «средний». Еще не маэстро, но уже уверенный самостоятельный специалист. Может без помощи справиться с поставленной задачей. Умеет взаимодействовать с коллегами из своего отдела и других отделов, так как понимает не только «что» и «как», но и «зачем».
Senior — специалист с большим опытом, который может сам себе сформулировать задачу и график в зависимости от задач бизнеса. Умеет решать проблемы наперед, еще до их появления. Может делегировать задачи между коллегами младшего ранга и помогать в их решении.
По окончанию обучения вы, можно сказать, ищите работу программистом с нуля. Только с теоретическими знаниями и небольшим опытом реализации тренировочных и несложных собственных проектов. Вы — Junior. И самое сложное для вас — найти работодателя без реальных кейсов. Что вам понадобится?
Портфолио
В процессе обучения у вас должны были появиться какие-то наработки. Если их не появилось, значит вы плохо учились, и искать работу вам еще рано. Продолжайте тренироваться. Так вот, у вас должны накопиться примеры своих уникальных проектов, написанных лично вами. Не по инструкции из учебника, не по шаблону из онлайн-курса, а именно с нуля с применением ваших знаний. Очень круто, если это что-то оригинальное и эффектное, чтобы можно было легко продемонстрировать потенциальному работодателю.
Подготовьте для портфолио хотя бы три-пять таких проектов. Конечно, чем больше, тем лучше. Перед заливкой в портфолио дайте посмотреть код знакомому опытному программисту или пользователям форумов для айтишников вроде Stackoverflow.
Как начать работать программистом на фултайм в своем городе
Тут процесс поиска работы для программиста практически не отличается от того, как ее ищет бухгалтер, дизайнер или администратор. Подготовьте резюме. Как составить резюме для IT, мы рассказывали здесь. И начните откликаться на актуальные вакансии. Просматривайте как классические сайты для поиска работы (robota.ua и т д), так и профильные (LinkedIn, DOU, Dice и так далее). Также просматривайте группы с вакансиями на Facebook и в Telegram (например, Finder).
Далее с вами связываются, приглашают на собеседование в офис или в онлайне, возможно, дают выполнить небольшое тестовое, и если вы подходите, то вас приглашают на работу джуном.
Поиск заказа для программиста на международных сайтах
Работа в компании дает вам хороший опыт и быстрый старт в карьере. Варясь в одном офисе с опытными коллегами, вы можете быстрее повысить свою квалификацию. Но если работа в офисе не для вас, то всегда есть фриланс. Если сумеете презентовать себя, правильно оформить аккаунт и наладить работу, то можете зарабатывать на заказах из США и Евросоюза на порядок больше, чем получали бы на позиции Junior-девелопера в России или Украине.
Это очевидно, но мы напомним: для работы с иностранными заказчиками вам понадобится хороший английский. Это даже не обсуждается — без этого прям совсем никак. Незнание языка — как огромный барьер, который не даст вам подняться даже до среднего уровня, и вы так и останетесь второсортным спецом. У нас в EnglishDom есть курс "Английский для IT". Там 50 уроков. Его можно пройти приблизительно за три месяца — подтяните грамматику и выучите профильную лексику. Первое занятие с преподавателем бесплатное.
Серьезно, запишитесь сейчас, потом забудете.
На каких сайтах искать заказы программисту
Вот на этих:
- Toptal. Регистрируетесь, заполняете анкету, выполняете задание на проверку квалификации от администрации сайта, и в случае успешного его прохождения получаете доступ к заказам. Вначале придется занизить ценник, чтобы наработать рейтинг и отзывы на простых заказах. Далее уже сможете конкурировать за жирные заказы.
- Upwork. Аналогично, принцип такой же, как на Toptal. Только получить доступ к заказам не так сложно, и комиссия сервиса повыше — 20% с первого заказа, и 10% с остальных.
- Freelancer. Один из самых популярных сайтов для поиска работы для фрилансеров в IT. Здесь реализована интересная система тендера, хоть вы можете в нем и не участвовать, а откликнуться напрямую.
Зарегистрируйтесь сразу на нескольких— поймете, где вам комфортнее. Да, потеряете месяц на распыление, зато на годы вперед выберите удобную площадку.
Теперь вы знаете, что делать. Пролистайте всю статью целиком еще раз, чтобы сохранить полезные ссылки. Также читайте другие статьи по теме:
На этом прощаемся. Удачи в карьере!
Englishdom #вдохновляемвыучить