Как стать начинающим программистом с нуля: 5 советов от профессиональных разработчиков, которые подойдут любому новичку
Содержание:
- Как преодолеть сопротивление и начать учиться программированию?
- Что нужно уметь программисту
- Кто идёт, потому что это модно, без понимания сути дела
- Обучение
- Как стать программистом?
- Как стать программистом с нуля
- — Как найти работу после курсов, если нет опыта в программировании?
- Учиться программировать сложно
- — Можно ли ограничиться информацией с курсов или придётся многому учиться самостоятельно?
- Где учиться на разработчика
- Чем заняться сейчас, чтобы повысить свои шансы на успешную карьеру программиста
- 2. Востребованность
- Что в итоге: вышка нужна или нет
Как преодолеть сопротивление и начать учиться программированию?
Всем знакомо ощущение, когда есть огромное желание научиться чему-то новому, но это желание так и не приводит к каким-либо действиям. Всему виной наши страхи, которые основываются на заблуждениях и мешают нам добиться наших целей.
Чтобы начать учиться, необходимо преодолеть все свои сомнения. Многие уверены, что IT – это крайне сложная сфера, которая требует особого склада ума, знания высшей математики, а также свободного владения английским. Более того, существует мнение, что девушкам в ИТ не место, ровно так же, как и всем тем, кому больше 30 лет.
Но это все не более, чем мифы, в реальности же для входа в программирования требуются совсем другие качества:
Упорство. Вам необходимо понимать, что обучение программированию – это сложный процесс, у вас не получится сразу всему научиться, вам часто будет казаться, что вы недостаточно умны и у вас ничего не получается. Но если вы не будете сдаваться, начнете учиться на своих ошибках и будете проявлять настойчивость, вы обязательно овладеете искусством работы с кодом. Если у вас что-то не получается с первого раза, не стоит унывать: помните, что все приходит с опытом.
Усидчивость и сосредоточенность. Чтобы научиться программированию, вам придется проводить очень много времени, работая над одной и той же задачей (в будущем вас ждет то же самое в рабочем процессе), поэтому вам необходимо научиться высокой концентрации внимания.
Умение решать задачи. В целом, все программирование построено на решении задач. Чтобы научиться работать с программами, вам нужно оттачивать этот навык. Если вы хотите освоить эффективные методы решения задач, рекомендуем пройти нашу программу «ТРИЗ на практике», где всего за 4 недели вы научитесь применять творческие и изобретательские алгоритмы к решению задач в любых областях и развивать свои творческие способности.
Постоянное самообразование
Не важно, вы только учитесь программированию или уже давно работаете в этой сфере. ИТ постоянно развиваются, поэтому специалисту, который с ними работает, необходимо непрерывно изучать новые технологии, повышать свою компетентность, оттачивать свои навыки.
Практика
Какой бы формат обучения программированию вы не выбрали, всегда помните о том, что практика – это лучший способ чему-то научиться. Берите бесплатные проекты, разрабатывайте свои личные продукты, постоянно работайте с кодом.
Свободное время. Если у вас мало времени на изучение программирования, процесс обучения будет длиться очень долго, потому что вам нужно освоить очень большой пласт информации. Организуйте свое время так, чтобы вы смогли уделять этому достаточно внимания и распоряжались своими ресурсами максимально продуктивно.
Главное помните о том, что успех в поиске вашей первой работы и дальнейшее профессиональное развитие напрямую зависит от того, насколько усердно и ответственно вы будете подходить к своему обучению. Поэтому постарайтесь изучать все, что вам доступно, используйте любые возможности, и прикладывайте максимум усилий, они обязательно окупятся.
Что нужно уметь программисту
Обычно здесь принято рассуждать о каких-то технических навыках. Но я считаю, что это не самое главное. Куда важнее личностные качества человека.
В процессе работы столкнулся с тем, что на рынке разработки есть кадровый голод. Много болванов, а нормальных специалистов нужно еще поискать.
Представьте, человек приходит работать в компанию. Его принимают в команду, тратят время на инструктажи, рассказывают про технологии и проекты. Пока новый сотрудник вникает в работу, своими расспросами он отвлекает всех остальных. Потом он берется за задачу и пропадает. Не отвечает на звонки или придумывает липовые отмазки. Даже в WB—Tech у нас есть достаточно подобных примеров.
Если программист не знает каких-то технических тонкостей, его можно подучить, подсказать что-то, указать на ошибки и способы их решения
Считаю, для работодателя важно, чтобы ты был адекватный в общении и договоренностях, не пропадал и на тебя можно было рассчитывать. Если есть желание, все остальное со временем легко подтянуть
При смене профессии полезным может оказаться любой предыдущий опыт. Даже если раньше ты был географом или выращивал цветы. Главное — иметь живой ум.
Кто идёт, потому что это модно, без понимания сути дела
Сфера ИТ находится на пике популярности в Беларуси и туда стремятся попасть люди даже далёкие от понимания того, в чём заключается работа айтишника. Они имеют смутное представление, чем занимается определённый специалист, не предполагают, подойдёт ли им профессия программиста, тестировщика или другие. После первых же занятий на курсах, можно легко разочароваться в выбранном спонтанно направлении и бросить новое начинание. Если хочешь разобраться в этом вопросе, пройди тест «Станешь ли ты программистом?» или посмотри серию вводных занятий от Адукара по каждому направлению в ИТ. Так ты сможешь решить, что тебе подходит больше всего: разработка, тестирование, управление или другой вид деятельности.
Обучение
С самого начала стоит отметить, что обучение программированию — дело непростое и небыстрое. Чтобы стать разработчиком, вам придется вложить много труда и времени. Но то, что учиться нелегко, не означает, что это не весело!
Если вы чувствуете, что хотите стать разработчиком, и вам нравится программирование, время, которое вы потратите на обучение, будет для вас очень интересным и приятным. Насколько быстро вы научитесь программировать, во многом зависит от вашей мотивации и приверженности, а также от выбранного вами метода обучения. Стать младшим разработчиком можно даже за 6 месяцев!
Как стать программистом?
Обучение программированию в вузе
Самый очевидный способ стать программистом – поступить на соответствующий профиль в вуз. Жизнь большинства специалистов уже невозможна без it-технологий. Обращаться с кодом в какой-то мере учат и математиков, и химиков, и биологов. Но чтобы не мучиться на неинтересных для вас предметах и изучать только профильные дисциплины, выберите одно из следующих направлений:
- 02.03.01 Математика и компьютерные науки;
- 09.03.02 Информационные системы и технологии;
- 09.03.03 Прикладная информатика;
- 09.03.04 Программная инженерия;
- 10.03.01 Информационная безопасность;
- 38.03.05 Бизнес-информатика.
Каждый вариант имеет свои особенности. С одной кафедры выпускаются учёные, с другой — управленцы, а с третьей — самые настоящие анти-хакеры! Чтобы подробнее в этом разобраться, посмотрите нашу инфографику. Будущим it-специалистам лучше выбирать технические университеты. Эти профили есть в МИРЭА, МИФИ и других.
Обучение на программиста в колледже
Необязательно ждать выпускного, чтобы посвятить себя любимому занятию. Обучение на программиста можно начать после 9 класса, надо только правильно выбрать колледж. Подходящих специальностей тут не так много:
- 09.02.03 Программирование в компьютерных системах;
- 09.02.05 Прикладная информатика;
- 09.02.07 Информационные системы и программирование.
Всего в стране 71 учреждение среднего профессионального образования с нужными нам направлениями подготовки. Эти профили вы найдете в Санкт-Петербургском колледже информационных технологий, Петровском колледже, Новосибирском колледже электроники и вычислительной техники, в Уральском технологическом колледже “МИФИ” и в многих других.
Курсы дополнительного образования
Учить программированию в России начали не так давно, потому найти качественный профессиональный курс — целое приключение. К тому же далеко не все варианты бесплатные
Чтобы не потратить деньги зря, обратите внимание на отзывы, на преподавателей, программу и перспективу трудоустройства.
Онлайн-платформы
Изучать приглянувшийся язык программирования можно самостоятельно в удобном темпе на одном из обучающих ресурсов. Например, на INTUIT легко подобрать курс по java-программированию. После успешного прохождения итогового тестирования система выдаст бесплатный сертификат.
Онлайн-школы
Если идея самостоятельного изучения вам не по душе, то приглядитесь к онлайн-школам. Существенный плюс — чаще всего тут курсы ведут практикующие программисты, которые не только поделятся общими знаниями, но и расскажут о реальных интересных кейсах. В конце обучения дают диплом и обещают помочь с трудоустройством. Обучение «официальное», даже налоговый вычет можно получить. Но и стоит довольно много. Годовой курс обойдется в 150 тысяч рублей. Здесь уже как посмотришь: это большой расход или умная инвестиция в себя.
Очные курсы
Для желающих видеть преподавателя не через экран монитора, а вживую, есть очные курсы. Например, MAXIMUM ведет занятия по изучению it-сферы для школьников Digital Skills. Программирование там тоже есть, а на ознакомительное занятие можно прийти бесплатно.
Как стать программистом с нуля
На дворе 2021 год, а программисты на рынке труда до сих пор очень востребованы. Чаще всего это так же высокие зарплаты и как минимум хорошие, стабильные условия труда. Так же нет привязки к месту, и можно работать из небольшого города на крупную компанию. В общем все звучит очень заманчиво.
Но не стоит забывать, что программирование — это кропотливый труд, и работа преимущественно головой. В начале пути вам придется изучить большое количество документации, которая часто оказывается скучной или даже нудной для новичков
И очень важно тщательно изучать пункт за пунктом, главу за главой, чтобы разобраться в базовых вещах и начать понимать что же такое “программирование” на самом деле
Вам следует определиться с направлением, в котором вы хотите развиваться:
- Frontend developer (разработка визуальный интерфейсов на сайте или в приложении);
- Backend developer (серверные решения для обработки данных с различных сайтов, игр, приложений и т. д.);
- Разработчик мобильных приложений;
- Data science (построение нейросетей для искусственного интеллекта);
- Системный программист (низкоуровневое программирование бытовых приборов и прочих устройств).
Многие новички считают, что “стать программистом” — это выучить синтаксис определенного языка. Это не совсем так. Синтаксис безусловно важен, но сейчас существует достаточное количество IDE (Integrated Development Environment — специальных редакторов для написания кода), которые помогают с командами, подсказывают с символами и исправляют ошибки. Как автопроверка в ворде. Гораздо важнее понимать более базовые понятия, такие как: системы счисления (двоичная, десятичная, шестнадцатеричная и и т. д.), булева алгебра, как устроена память компьютера, логика, основные математические операции и так далее.
Если вам не терпится побыстрее получить должность стажера, то, наверное, самый быстрый для вас путь — это Frontend разработчик. Вам следует выучить технологии HTML, CSS и JavaScript. В процессе обучения обязательно нужно будет собрать портфолио из красивых, адаптивных под разные устройства, сайтов, и можно идти покорять эйчаров своим резюме. Процесс обучения занимает около 10-12 месяцев. Сейчас огромное количество онлайн и очных курсов. Также есть много толковых роликов на ютубе, где вы сможете сверстать сайт параллельно с автором видео.
Если же хотите погрузиться в программирование более подробно, можете пройти курс Компьютерные науки CS50 (доступен на английском языке бесплатно). Он состоит из 11 модулей (1,5-2 часовых лекций и лабораторных работ, на которые можно получить фидбэк) и плавно двигается по языкам программирования, затрагивая все их особенности. Курс можно проходить в своем темпе. Также есть чат поддержки, где вы сможете познакомиться с другими студентами и обрести новые полезные знакомства.
В backend разработке придется работать с базами данных, большими потоками информации, и тут понадобится выучить чуть больше всего, одного синтаксиса языка (например, Java, C#, Goland, Python etc) будет недостаточно. Здесь уже обязательны знания устройства баз данных, следует изучить и научиться работать с готовыми фреймворками которые используются на рынке.
Если же вы хотите поработать с Data Science и построить нейросеть для распознавания и генерации лиц, звуков, картинок или чего либо другого, тут будет необходимы более глубокие знания в математике, математическом анализе и статистике.
Интересно: История успеха: как сисадмин стал директором завода крупной строительной компании.
Одним словом — в изучении программирования нет ничего невозможного. Просто на некоторые технологии понадобиться больше времени. Ну и, конечно же, в отличии от многих других сфер программистом необходимо постоянно развиваться, ведь на рынке разработки постоянно появляются новые технологии разработки, и вы рискуете остаться за бортом.
— Как найти работу после курсов, если нет опыта в программировании?
Александр Максимкин: Мало кто после курсов сразу находит работу — сначала придётся прокачать навыки. На поиск работы новичку без опыта понадобится полгода-год. Отсутствие опыта — не какая-то непреодолимая преграда, опыт легко получить на фрилансе и в собственных проектах во время обучения и поиска работы.
Я окончил учёбу два месяца назад и сейчас дополнительно прохожу курс по React — это самый популярный фреймворк. Ещё планирую сделать несколько своих проектов, чтобы потренироваться и пополнить портфолио. Когда освою React, начну более активно искать работу.
Дмитрий Карпов: В мае я составил резюме по образцу с курса и стал откликаться на вакансии — причём не только джуна, но и мидла. Получил около 40 отказов. Я не огорчался: на первых порах отказы — это нормально. К тому же было и два предложения — но они мне не подошли.
Ещё я отправил резюме в программу трудоустройства Skillbox. Они переслали мои контакты в эйчар-отдел Group-IB, международной компании, которая занимается кибербезопасностью. И меня пригласили на собеседование. После технического интервью я получил тестовое из двух задач. На него дали всего восемь часов. Потом оказалось, что я многое сделал неправильно. Я уже думал, что меня не возьмут, — а мне прислали оффер. Теперь я — младший Python-разработчик в Group-IB.
Дополнение редакции
Отказы — нормально. Рано или поздно начнут поступать и предложения. Не стоит соглашаться на первый же оффер, вакансия должна понравиться. Также вам могут дать совет подучить какие-то технологии и прийти на собеседование в следующий раз. Так что получать обратную связь полезно для роста.
Илья Космачев: Найти работу непросто — сейчас большая конкуренция среди джунов. Курсов на рынке много, и они ещё не завоевали доверия у работодателей. На собеседованиях я не раз слышал, что всем всё нравится, но не хватает уверенности в моих знаниях: есть моменты, где я плаваю. Но это неудивительно — всю информацию на курсе приходилось усваивать в сжатые сроки.
Учиться программировать сложно
В процессе учебы должны быть моменты, когда мозг напрягается, и вам кажется, что вы ничего не понимаете. Если все получается легко и без напряга, значит вы учитесь не программировать, а повторять за диктором. Если привести грубую аналогию, вас учат не плавать, а шевелить ногами, лежа на песочке. Конечно, возможно, что вы гений и вам просто все легко дается. Чтобы реально оценить свои способности, сходите на пару-тройку собеседований по изучаемому языку программирования и попытайтесь выполнить тестовые задания, которые вам дадут.
Лично я долго (слишком долго) учился на всяких курсах из серии «посмотри на меня, делай как я». Когда начал учиться на Хекслете, у меня от некоторых заданий просто мозг кипел, да и сейчас кипит. Одно задание я пытался сделать 3 дня. Но в итоге я прокачался, и теперь могу решать более сложные задания, чем раньше. Мне кажется, именно в этом должна быть цель хороших курсов программирования. Не в том, чтобы натренировать вашу память на запоминание 1000 функций из какой-то библиотеки. А в том, чтобы заставить мозг напрягаться и с каждым днем решать все более сложные задачи.
— Можно ли ограничиться информацией с курсов или придётся многому учиться самостоятельно?
Николай Мельников: Стандарты в компаниях отличаются — из-за этого сильно разнятся и программы курсов. И большой вопрос, насколько правильно составлена программа конкретного курса. Но вообще-то сотрудников всё равно приходится переучивать — требования к клиентской разработке всюду очень разные. И так будет в любой компании. Например, все приходят со знанием JavaScript, а надо учить и TypeScript.
Лет двадцать назад вебмастер глубоко понимал всё, с чем приходилось работать. Сейчас появилось разделение на узкие специализации: фронтенд, бэкенд, iOS, Android. В результате специалист не понимает, что происходит вокруг, как работает технология, с которой он сталкивается, как она взаимодействует с другими технологиями. И если вы пришли в профессию, придётся разобраться в устройстве систем. Например, надо понимать, что фронтенд — это лишь маленькая часть всего.
Дополнение редакции
Восполнить пробелы в образовании — не сложно. Старший управляющий Egnyte, Грег Нойштеттер, советует всем начинающим разработчикам прочитать книги по дискретной математике, шаблонам проектирования и проектированию алгоритмов.
Где учиться на разработчика
В университете я получил базовые навыки в фундаментальных науках: математика, физика, география, химия и т.д. Считаю, это важный этап в освоении любой профессии. Образование дало базу и задало правильное направление развития. Главное, чему я научился — находить источники знаний. Это позволяет разобраться практически в любой области (и даже с нуля стать программистом).
Онлайн-курсы
После увольнения я решил научиться программированию и интуитивно начал с веб-разработки (в этой области есть больше материалов в открытом доступе). Изучил первые попавшиеся бесплатные интернет-курсы:
- HTML
- Python
- JavaScript и т.д.
Одновременно проходил порядка 5-10 курсов. На это ушло месяцев 6 или 7.
Считаю, начинать с платных онлайн-школ не самое лучшее решение.
- Во-первых, в инфобизнесе во главу угла ставят деньги. Обещают, что без опыта программирования через несколько месяцев обучения вас возьмут на работу с окладом 100-150 тысяч. Это не так.
- Во-вторых, онлайн-школы специально преувеличивают результат, чтобы вам было легче расставаться со своими деньгами. На таких курсах больше рассказывают не о предмете, а о том, сколько вы будете зарабатывать.
Но это не значит, что все курсы плохие. Нужно тщательно выбирать.
Часто в начале обучения чему-то новому у вас нет даже общего представления о предмете. Поэтому первым делом нужно во всем разобраться хотя бы поверхностно. Бесплатные курсы решают эту задачу.
К сожалению, первый этап обучения крайне трудоемкий и времязатратный. По-другому, наверное, не бывает.
Лекции
На YouTube в общем доступе представлено много лекций по программированию от разных авторов: практикующих программистов и профессиональных преподавателей (например, из МФТИ). Среди них есть хорошие уроки и не очень. Что именно для вас станет полезным — определить можете только вы сами. Критически подходите к изучению материалов.
Поначалу, если нет опыта, приходится просматривать много информации. Со временем накопленные навыки собираются в единый пазл. Становится легче отличать полезное от бесполезного, воду от рассказа по существу.
Книги
Книги тоже есть хорошие и плохие. Но плохие книги мне встречаются значительно реже, чем плохие онлайн-курсы и лекции. Наверное, это связано с тем, что издавать книги сложнее, чем снимать видео для YouTube.
Рекомендовать конкретные книги для программистов не могу. Выбирайте интересующую область, ищите по ней книги и начинайте с ходу читать (с первой попавшейся). Если книга не нравится — не дочитать ее никогда не поздно.
Кроме книг все практикующие разработчики обращаются к официальной документации к языкам программирования или используемым библиотекам.
Еще бывают книги о профессии, подходе к работе, этике общения с коллегами и работодателем. Их тоже стоит читать. Из этой области рекомендую прочитать «Идеальный программист» Роберта Мартина.
Чем заняться сейчас, чтобы повысить свои шансы на успешную карьеру программиста
Надо понимать, что it-сфера развивается с огромной скоростью. Вузы физически никогда не успеют адаптировать программы, чтобы давать студентам самую последнюю информацию. Университет заложит основу в виде базовых возможностей языка и стандартных алгоритмов. Именно поэтому работа программиста невозможна без непрерывного самообразования. Языки программирования модернизируются, разработчики создают новые удобные инструменты, чтобы облегчить работу себе и коллегам, придумывают новые алгоритмы решения задач. Дальше мы расскажем, где и чему поучиться ещё, чтобы преуспеть в it-сфере:
Ботайте английский язык. Многие ресурсы на английском. Чтобы не ждать, пока кто-то сжалится и переведет текст за вас, позаботьтесь о языке заранее
Это настолько важно, что некоторые платные курсы дают уроки по языку своим студентам как часть основного программы.
Чатьтесь на it-форумах. Ответы на многие вопросы можно найти на форумах программистов, как например, Хабрахабр
Профессиональное сообщество щедро делится знаниями и полезными кусочками кода. Правда, иногда поиски растягиваются на несколько дней и параллельно приходится разбираться в новых инструментах, с которыми не был знаком раньше. И да, часто самая полезная ссылка будет на английском.
Погружайтесь в книги. Не спешите покупать первую попавшуюся литературу в ближайшем книжном. На полках много бесполезного и безнадежно устаревшего материала. Опять же много трудов изначально написаны на английском, и русская версия может страдать серьезными недочётами перевода. Можете начать с наших рекомендаций, а потом поймете, как выглядит годный контент.
Дочитали до конца? Вот вам ещё пара интересных фактов, которые помогут лучше представить профессию программиста.
- Если вы зайдёте на сайт вакансий, то увидите: требуются загадочные middle или senior разработчики. У программистов есть своя градация степени профессионализма: junior, middle и senior. Первые, новички, должны владеть всеми средствами языка, на котором работают. Вторые — it-специалисты со стажем 3-5 лет. Третьи не только знают все о коде, но и могут организовать работу группы разработчиков над проектом. С ростом звания соответственно растет и зарплата!
- Популярный портрет типичного программиста – неразговорчивый человек в очках с литровой чашкой кофе. На самом деле, эта картинка верна разве что для редкого фрилансера. И совсем не обязательно быть интровертом, чтобы идти в профессию. Как и в любом другом деле, важны надпрофессиональные навыки — объяснять, аргументировать, договариваться, выходить из конфликта.
- Над большими проектами работает целая группа it-специалистов. Каждый отвечает за свой участок кода, и все кусочки в конце должны собраться в единый продукт. Чтобы это случилось, команды постоянно проводят планерки, помогают коллегам искать и исправлять недочёты. А в некоторых офисах даже есть TV-приставки и настольные игры. Коллективная смена деятельности помогает наладить контакт и переключиться, когда работа «встала».
- Программисты празднуют свой профессиональный праздник 13 сентября. Дата выбрана не случайно: это 256-ой день года, максимально возможная степень двойки, которая влезает в число 365.
Список популярных профессий в IT сфере
22 авг
174696
249
Читать позже
2. Востребованность
На сегодняшний день программирование — одна из самых востребованных специальностей в мире, и спрос на нее продолжает увеличиваться.
Социальные сети, веб-сайты, программное обеспечение самого разного назначения, приложения для Andriod и iOS, высокотехнологичные гаджеты, самообучающиеся нейросети — список можно продолжать до бесконечности. Полным ходом идут процессы автоматизации во всевозможных сферах от продаж и бухгалтерского учета до индустрии развлечений и «умного» дома.
При разработке и обеспечении бесперебойной работы всего этого многообразия продуктов и форм человеческой деятельности никак не обойтись без квалифицированных специалистов.
Что в итоге: вышка нужна или нет
Врачом или учителем без высшего образования не стать. Айтишником стать можно: если вы сможете освоить профессию сами или с помощью онлайн-курсов, будете много учиться и практиковаться, то на работу вас возьмут.
Но с хорошим образованием стать специалистом проще: вам помогут со стажировкой, дадут системные знания и откроют дорогу к любым вакансиями. А ещё в процессе обучения вы познакомитесь с кучей людей: преподавателями, сокурсниками, руководителями практики. И, возможно, в будущем запустите с ними стартап или будете помогать друг другу с работой.
Поэтому выбирайте вышку, если:
- Позволяют деньги и время. Например, вы только выпустились из школы и ещё не обременены кучей финансовых обязательств.
- Вы мечтаете работать за рубежом и рассчитываете устроиться в заграничную компанию сразу после окончания учёбы.
- Вы рассчитываете на быстрый карьерный рост, мечтаете о должности управленца.
- Вам сложно учиться самостоятельно, что-то искать и выбирать. Вы не уверены, что справитесь с поиском работы и стажировки на старте карьеры.
- Вы пока точно не знаете, какую профессию мечтаете освоить, и хотите получить системные знания.
- Для вас очень важна тусовка, вы надеетесь обрасти полезными связями и любите общаться с единомышленниками.
Если же считаете, что вышка станет для вас пустой тратой времени, — что ж, у Skillbox есть для вас курсы по конкретным IT-профессиям. Тоже хороший путь, чтобы войти в IT.