Найти тему
Ориентир

Как стать программистом с нуля за полгода: пошаговое руководство

В первую очередь, хочу напомнить, что сроки окончания пандемии крайне смутные. И если не обманывать себя и доверять статистике, то в лучшем случае это сентябрь-октябрь. А трезвая оценка подсказывает, что на работу страна сможет выйти не раньше первой половины следующего года, когда выжившие из компаний опрянут после кризиса.

Таким образом впереди у нас минимум 4-5 месяцев самоизоляции. За это время реально освоить любую IT-специализацию и даже получить практический опыт разработки начального уровня, которого вполне хватит на то, чтобы устроиться на позицию разработчика уровня Junior.

Инвестируйте в самообразование прямо сейчас - такого шанса может больше не оказаться в вашей жизни. Тем более, что сегодня для этого есть все ресурсы как в открытом доступе, так и за не большую плату, сравнимую с годовой стоимостью фитнес-центра.

Итак, что необходимо для того, чтобы стать за это время Junior-программистом:

1. Окончательно решить, что это для вас

Необходимо определиться, что вы видите себя именно в IT-разработке, и это взвешенное решение, так как путь освоения программирования не близок и кропотлив. Если уж выбрали, то идти нужно до конца.

Если все же еще сомневаетесь, то смотрите в перспективу. В коротком будущем без цифровых технологий не останется ни одна сфера жизни. Об этом я писал в статье: «Наша жизнь через 10 лет: почему срочно необходимо осваивать IT»

Так что, как минимум, вы ничего не теряете: эти знания вы всегда примените. А с учетом реальных зарплат, которыми вознаграждает рынок специалистов со средним опытом, сомнения должны рассеяться окончательно. Об этом можно прочесть тут: «Сколько могут зарабатывать программисты на самом деле»

2. Определиться с направлением

Чтобы быстрее понять, что именно и на каком языке вы хотели бы кодить, я советую пройти бесплатный интенсив от Нетологии «Как стать программистом». Либо мастер-классы от других школ, главное чтобы их проводили реальные разработчики из разных сфер и компаний.

На интенсиве вам станут понятны основные векторы карьерного развития, где и какие языки программирования используются. Заодно немного попрактикуетесь.

Если коротко: мы не берем во внимание искусственный интеллект, VR/AR, DevOps и другие более современные сферы IT, а для начинающих разработчиков выделяем 4 основных направления:

веб-разработка (сайты, соц.сети)

десктопные приложения (все, что решает прикладные задачи - графические редакторы, бухгалтерские программы, CRM-системы и многое другое)

мобильная разработка (под Android и iOS)

игры (т.н. геймдев)

В свою очередь веб-разработка делится на фронтенд (клиентская часть, то, что видит пользователь) и бэкенд (серверная часть, которую пользователь не видит).

В каждой специализации используются определенные языки и программные технологии. Например, для фронтенд-разработки сайтов вместе с HTML и CSS в основном применяют JavaScript. Игры по большей части пишутся на С, C++ и С# . А Swift был создан компанией Apple для мобильной разработки соответственно под iOS.

Но большинство популярных языков могут использоваться и для разработки сайтов, и для приложений, и для игр, и для более сложных проектов: Python, Java, те же С# , C++ и другие. И тут мы как раз подошли к третьему пункту:

3. Определиться с программным языком

Так как опыта разработки у вас скорее всего нет, то в этом вопросе я советую в первую очередь отталкиваться от рынка и востребованности, рейтинга языков. Этот вопрос я разобрал в статье: «Как и какой язык выбрать, если вы таки решили стать программистом»

Если статья вас не очень убедила, то предлагаю ориентироваться на низкий порог вхождения. Т.е. освоение первого языка должно быть максимально простым в понимании и быстрым в плане написания кода, тем более, если у вас нет теоретической базы знаний.

Самые простые в плане синтаксиса языки - Python, PHP и Ruby, следом за ними по сложности идет Java. Изучение одного из них даст вам основу и логику понимания для освоения всех других языков и технологий. C, С++ и C# тоже относятся к так называемым объектно-ориентированным языкам, как и все перечисленные, но они слишком сложны для новичков.

4. Выбрать путь освоения теории и практики

Если с языком определились, нужно понять - сколько и на что есть средств, т.е. какое время и сколько денег вы готовы потратить на освоение новой специальности. Я выделю три самых доступных варианта. У каждого есть свои плюсы и минусы:

✔️ Полное самообучение

✔️ Подписка на базу знаний

✔️ Полноценный онлайн-курс

Остановимся подробнее на каждом:

Самообразование

Самый экономный, но долгий и тернистый путь. Подходит для тех, кто не обременен семьей и обладает достаточным временем. При 2-3 часах изучения в день можно вполне освоить навыки уровня Junior за 5-7 месяцев.

Вы должны понимать, что нет никакого единого инструментария и одного источника. Вам необходимо будет самостоятельно найти и систематизировать материалы так, чтобы понять основные принципы программирования и вычислительного мышления, освоить множество инструментов (редакторы кода, утилиты, фреймворки, репозиторий и т.д.), научиться работать с базами данных и многое другое.

▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬

При этом изначально нужно ориентироваться на проектно-ориентированные курсы. Ведь основная задача начинающего разработчика - это научиться правильно применять полученные знания. Самый простой здесь совет - пошагово повторяйте написание кода за автором курса, вносите в него изменения, анализируйте результаты.

▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬

Поэтому, если используете видео на ютубе - то лучше изучайте те, которые объясняют как создать какое-нибудь несложное приложение или игру. Имитация живой разработки научит вас гораздо большему, чем 2-3 книги теории. Хотя книг по основам программирования никто не отменял.

Из бесплатных англоязычных ресурсов, которые дают системные базовые знания и возможность применить их тут же на практике, могу порекомендовать:

🔥 FreeCodeCamp

🔥 Codecademy

🔥 Sololearn

Регистрируетесь, выбираете направление, последовательно проходите теорию по темам и в конце каждого тематического модуля выполняете проверочные тесты и задания. Таким образом за один курс вы нарабатываете свое первое портфолио с применением различных технологий. Более того, на FreeCodeCamp вы можете публиковать результаты своих работ, чтобы их оценивали другие пользователи.

Если английский вас отпугивает - проходите бесплатно русскоязычные курсы. Их можно найти через поисковик на платформах:

🔥 Coursera

🔥 edX

🔥 ИНТУИТ

🔥 Stepik

👉 Основной недостаток всех перечисленных площадок и в целом метода самообучения: каждый курс затрагивает какую-то отдельную часть технологий по тому или иному языку. И чтобы у вас сложилась вся картина знаний и стек необходимых навыков, вам необходимо самостоятельно искать и отбирать все материалы, определять последовательность их изучения, а главное - совместно применять разные технологии в одном проекте.👈

Так мы подошли как раз к следующему методу изучения:

Подписка на базу знаний

Подходит тем, у кого нет времени на поиск информации и кто готов заплатить за системность всех материалов и их изучение в комфортном для себя темпе.

Есть платформы, которые предоставляют весь необходимый инструментарий и базу знаний за платную подписку. Из них я бы особо выделил:

🔸 IDTVN

🔸 Хекслет

🔸 HTML Академия

Выбираете и приобретаете за небольшую плату (от 10$ в месяц) тариф и получаете на определенный период доступ к полной базе материалов по всем имеющимся на платформе курсам: записи уроков, тесты с автопроверкой, тренажеры с живыми проектами, форумы для общения, макеты с инструкциями и другие бонусы.

Таким образом вы можете осваивать сразу несколько языков, насколько позволяет доступ, и закреплять полученные знания на практике с помощью встроенного редактора кода.

По сравнению с самообучением подписка в разы ускоряет сроки обучения и избавляет от риска получить некачественные отрывистые знания. Но и в этом методе есть один большой недочет, который можно частично компенсировать приобретением более расширенного тарифа или индивидуальных консультаций. В итоге стоимость обучения значительно вырастает.

▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬

Я имею ввиду менторство, т.е. поддержку реального разработчика. Дело в том, что по мере углубления в практику вы понимаете, что не можете найти все ошибки в коде или самостоятельно понять логику проекта. А без развернутого разбора каждого задания или полноценного проекта вы не сможете модифицировать чей-то или писать свой собственный код, что и является целью обучения.

▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬

Ментор помогает последовательно преодолевать трудности, восполняет пробелы в знаниях, дает подробный фидбек по заданиям и советы по написанию правильного кода. Но для того, чтобы помощь наставника была также последовательна, как и модули изучения, он должен быть погружен в процесс обучения.

Поэтому я советую изначально искать именно онлайн-курсы, которые дают не только максимум информации и практики, но и наставничество от опытных разработчиков, желательно из крупных IT-компаний. Итак:

Специализированные онлайн-курсы

Из российских онлайн-школ с IT-курсами, которые соответствуют указанным требованиям, я рекомендую только четыре:

SkillFactory

GeekBrains

SkillBox

Нетология

По-мимо живых вебинаров, на которых студенты и ведущий разбирают реальные бизнес-кейсы, у онлайн-школ есть и другие преимущества перед записями курсов:

⭕ Дипломный проект.

Собственно, командный опыт, который максимально приближен к боевым условиям. Полнофункциональное программное обеспечение по техническому заданию, которое не стыдно показать будущему работодателю. В зависимости от школы и курса это может быть: соц.сеть, сервис по поиску билетов, облачное хранилище по типу гугл-диска, многоуровневая игра и т.д.

Сертификация.

Персональный сертификат о прохождении курсов. Может предоставляться на английском языке или в виде документа о повышении квалификации гос.образца. Особенно важен тем, у кого нет диплома о техническом образовании.

Стажировка.

Все школы являются партнерами каких-либо крупных холдингов. Например, GeekBrains входит в состав Mail.ru Group. Поэтому множество ведущих курсов - это опытные разработчики из компаний Мэйл, Яндекс, Альфа-банк, S7, Сбербанк, X5 Retail Group, Lamoda и других. А сами партнеры заинтересованы в новых специалистах-стажерах. Опыт работы в любой из этих компаний, даже бесплатный, поднимет ваш рейтинг как соискателя.

Помощь в трудоустройстве. Вряд ли это непосредственный рекрутинг, скорее модуль от специалиста по HR по составлению резюме и подготовке к собеседованию. Вы можете получить бесценную практику живого прохождения интервью, а также начать искать вакансии уже во время обучения.

Это конечно же не все про онлайн-курсы. 👉 Мой совет - выбирайте не по ценам, так как они более менее у всех одинаковы. Внимательно изучите и сравнивайте между собой программу обучения, состав и опыт ведущих. Желательно пройти бесплатные вводные вебинары, которые есть у каждого курса, по интересующим вас направлениям: чаще всего их ведут авторы курсов.

Ну и напоследок, хочу привести несколько ресурсов и советов, которые вам помогут быстрее освоить любой язык программирования. Вы ведь помните, что самое главное:

5. Практика и еще раз практика 💪

Вернее так: самое главное - это развить в себе именно алгоритмическое системное мышление, которое позволит решать любые программные задачи, в том числе проектирование приложений. Кстати работодатели чаще всего проверяют кандидата именно эту на способность.

И здесь вам важно получать правильные рекомендации и совместный опыт от сообщества разработчиков. Отточить свои навыки вам помогут следующие сервисы:

Но это, скорее, уже следующий этап. О нем я еще подробнее напишу.

Надеюсь, общая картина, как пройти первые шаги в к новой специализации у вас сложились. Тут очень многое будет зависеть от вашего интереса, а программирование, поверьте мне - это безумно интересная сфера, которую можно изучать всю жизнь.

Если есть вопросы по теме - пишите в комментах, постараюсь ответить.

И подписывайтесь на канал

С подпиской рекламы не будет

Подключите Дзен Про за 159 ₽ в месяц