За какое время можно научиться программировать
Сколько нужно учиться на программиста с нуля
Новичкам кажется, что обучение разработке требует много времени. Отвечаем с преподавателями Skillbox на вопрос, как долго учиться программированию.
«Всю жизнь», — вот так лаконично отвечают разработчики на вопрос о том, сколько нужно учиться профессии. Это вполне справедливое замечание, ведь регулярно появляются новые технологии. Но мы решили более подробно рассмотреть, сколько времени нужно, чтобы стать программистом при различных исходных данных.
А ты точно программист?
Перед тем как начать изучать программирование, проанализируйте, зачем вам это нужно. Разработчиком может стать любой человек, если приложит усилия и наберется терпения. Но абстрактные деньги — не лучший мотиватор в этом деле. Поставьте более конкретную цель, для достижения которой понадобятся средства и инструменты, — именно она будет двигать вас вперед.
Вы хотите эмигрировать за границу? Хотите реализовать полезный для людей проект? Может быть, открыть собственную компанию по разработке сайтов? Это примеры мотивации, которая поможет преодолеть много ступеней профессионального развития.
Наталья Березовская
Автор в сфере IT, digital, экономики и финансов. Ведет некоммерческий проект для начинающих писателей «ЛитЦех».
Программирование позволяет переехать на ПМЖ за рубеж — останется только выучить иностранный язык в зависимости от желаемой страны. Хотя для контрактной работы в бизнес-инкубаторе достаточно и английского на уровне Upper Intermediate. Если вы станете трудолюбивым высококлассным специалистом, то переезд вполне реален. Так же как и открытие собственного бизнеса или создание онлайн-проекта мечты, приносящего постоянный пассивный доход.
Сколько времени потребуется на обучение
Временные затраты — вопрос конкретных обстоятельств и желаемого результата. Наверняка вы слышали выражение, что профессионалом в любой сфере можно стать, затратив 10 000 часов на эту деятельность. Чтобы стать разработчиком начального уровня, потребуется в несколько раз меньше.
Например, Даниил Пилипенко, программист с 10-летним стажем и ведущий курсов Skillbox, полагает, что для начального уровня достаточно 6–12 месяцев:
Зависит от талантов, конечно. Но полгода-год обычно достаточно, чтобы с нуля вырасти до уровня Junior.
Если у вас уже есть техническая база в виде математического вуза или колледжа, то освоить технологии Frontend на базовом уровне — HTML, CSS, JavaScript, фреймворки — можно за 4-5 месяцев. И после этого уже искать первые заказы на фрилансе для создания портфолио. Однако это зависит от степени интенсивности обучения: если вы работаете и параллельно учите программирование, то времени может понадобиться больше. Без технической специальности за плечами при нагрузке 2-3 часа в день вы будете постигать азы около года.
Этапы изучения веб-разработки для новичка
Обучение можно условно поделить на три этапа:
- Начальный или пробный. В течение пары-тройки месяцев изучаете две-три актуальные технологии, которые легко освоить. Например, те же самые HTML, CSS, JS или один из языков Backend — Python/Ruby/PHP. В это время прислушивайтесь к тому, нравится ли вам программирование, как быстро вы получаете результат и усваиваете знания.
- Самостоятельный этап. Если предыдущий успешно пройден, можете вкладываться в самообразование по-крупному. Изучайте программирование более комплексно и интенсивно: оплатите курсы, чтобы прогресс шел быстрее, или найдите ментора, если учитесь самостоятельно, — кто-то должен вас направлять и объяснять ошибки.
- Стажировка в компании. Первые заказы на фрилансе или удаленная работа в качестве junior-специалиста.
На гребне технологической волны
Что же делать, чтобы стать настоящим профессионалом разработки? Всегда оставаться в русле технологического развития и поддерживать полученные знания в актуальном состоянии. Первые несколько лет для новичка — очень насыщенный период. В это время нужно впитать массу знаний, отработать множество навыков и освоить много новых инструментов, порой не самых интуитивно понятных.
Программирование — это интенсивно развивающаяся сфера, где изменения происходят очень быстро. При этом динамичность сильно зависит от того, где работает программист выбранного языка. Например, в том же JavaScript изменения происходят почти каждый день — настолько велико его сообщество и популярность.
Чтобы стать хорошим программистом, нужно действительно учиться всю жизнь. Выучить один-два языка в совершенстве можно, лишь постоянно практикуясь.
Преподаватель Skillbox Вадим Шандринов так ответил на вопрос о том, сколько потребуется времени для становления IT-специалиста:
Инструкция для тех, кто хочет стать программистом с нуля
Кризис заставляет многих сменить место работы или даже полностью поменять специальность. Приходится осваивать новые навыки и профессии. Прекрасным выбором в этом случае может стать профессия программиста. Это интересно, комфортно и прибыльно. В этой статье мы постараемся ответить на вопрос, как построить карьеру программиста с нуля.
Начать свой путь к карьере программиста стоит с ответа на вопрос, нужно ли вам программирование вообще? Этот вопрос не относится к тем, кто учится или учился по специальности, близкой к программированию. Если вам в школе математика давалась лучше, чем гуманитарные науки, если вам нравится проводить много времени за компьютером, если вам хочется изучать что-то новое, тогда программирование вам подойдёт.
С чего начать
Есть несколько вариантов развития событий, в результате которых человек становится программистом. Первый — родители-программисты, которые всему научили своих детей. Таким детям даже не нужно идти в университет. Второй вариант — модная профессия программиста. После школы нужно было выбрать, куда пойти учиться, и выбрали модное направление IT, вроде бы понравилось. И последний вариант — хобби, которое переросло в работу.
Если с вами ничего из вышеперечисленного не произошло, значит, у вас есть выбор из четырёх вариантов:
- Самообразование. Этот вариант можно использовать как самостоятельно, так и в паре с другими методами. В интернете полно сайтов, книг и приложений, которые помогают изучать различные языки программирования и технологии. Но это самый тяжёлый путь для начинающих.
- Университет. Если вы оканчиваете школу и хотите быть программистом, тогда идите в университет. Если не за знаниями, тогда за корочкой. Она может послужить бонусом при устройстве на работу. Хотя и какие-то знания вы тоже получите. Но не забывайте заниматься и самообучением. К выбору вуза стоит подойти очень ответственно. Внимательно изучите программы обучения и выбирайте лучшие технические вузы.
- Ментор. Будет очень неплохо, если вы найдёте человека, который согласится помочь вам и направит вас в правильную сторону. Он подскажет подходящие книги и ресурсы, проверит ваш код, даст полезные советы. Кстати, мы уже писали о полезном ресурсе, где вы сможете найти ментора. Наставника можно искать среди знакомых программистов, на IT-тусовках и конференциях, на онлайн-форумах и так далее.
- Специализированные практические курсы. Попробуйте поискать в своём городе курсы, где вас обучат какому-нибудь языку программирования или технологии. Я был приятно удивлён количеством таких курсов в Киеве, в том числе бесплатных и с последующим трудоустройством.
Какой язык, технологию и направление выбрать
Когда вы станете программистом, через годик-другой будете вольны выбирать любой язык, который вам нравится. Но при выборе первого языка программирования новичок должен учитывать следующие критерии:
- Наличие на рынке вакансий. Конечная цель этого пути — найти работу программистом. А это будет трудно сделать, если на рынке вакансий никто не будет искать разработчиков на вашем языке программирования. Проверьте сайты с вакансиями, посмотрите, кого больше ищут, выпишите десяток языков. И переходите к следующему критерию.
- Низкий уровень вхождения. Если вам придётся потратить длительное время на изучение языка, это может отбить у вас охоту к программированию вообще. Почитайте о тех языках, которые вы выбрали выше. Просмотрите литературу, которую нужно будет прочитать, чтобы изучить эти языки. И выберите те, о которых пишут, что они лёгкие, или которые вам показались лёгкими. Такими языками могут оказаться PHP, Ruby, Python.
- Кайф от процесса. Если вам не нравится писать код на выбранном языке, вы не будете получать удовольствия от этого процесса, от работы и от жизни. А оно вам надо? Делайте правильный выбор.
Также вам придётся определиться с направлением программирования. Мобильное, десктопное, игры, веб, низкоуровневое программирование и так далее. Самые популярные и относительно лёгкие отрасли — разработка под веб, мобильные и десктопные клиенты. Под каждое направление может подходить один язык и совсем не подходить другой. То есть при выборе языка программирования также стоит отталкиваться и от этого фактора.
В любом случае изучите веб-технологии. Это язык разметки HTML, стили CSS и JavaScript, который позволит сделать вашу страницу динамической. На следующем этапе изучите серверный язык (Python, PHP, Ruby и другие) и подходящие для него веб-фреймворки. Изучите базы данных: практически в каждой вакансии программиста это упоминается.
Как получить начальный опыт
Без опыта вы не получите работу. Без работы вы не получите опыт. Замкнутый круг реальной жизни. Но ничего страшного, мы из него выберемся.
Во-первых, не стоит ждать, пока вы прочитаете все книги по выбранному языку программирования. Начинайте писать свои первые строки кода уже после второй главы книги. Выполняйте все задания из книг, перепечатывайте примеры, разбирайтесь в них. Усложняйте примеры и задания из книг своими идеями. Создавайте свои задачи к пройденному материалу. Решайте эти задачи.
Во-вторых, вам нужно найти свои первые проекты. Это, наверное, самый сложный вариант, но рабочий. Вам придётся самому искать заказы, выполнять их, заморачиваться с оплатой. Для новичка это архисложно, но зато затем все остальные варианты покажутся плёвым делом. Выполненные проекты можно будет записать в опыт и показать вашему будущему работодателю. Реальные проекты являются большим плюсом в вашем резюме.
Если вы знаете английский язык, регистрируйтесь лучше на англоязычных биржах. Рынок там больше. Если не знаете английского, учите его. А пока что вам доступны русскоязычные биржи фриланса. Ищите небольшие проекты, которые соответствуют вашему уровню знаний или чуть выше него. Подайте заявку на пару десятков таких заданий. И приготовьтесь получить море отказов. Но если одна-две заявки выстрелят, у вас будет шанс получить реальный опыт.
Ещё одним неплохим вариантом для получения реального опыта является open source. Таким проектам всегда нужны новые люди, пусть даже и новички. Вы можете поискать в проекте баги или посмотреть в баг-трекере и предложить методы их решения. Найти такие проекты легко на GitHub или других сервисах для хостинга кода. Не стесняйтесь задавать там вопросы.
Четвёртый вариант получения опыта — помощь знакомым программистам. Попросите их передать вам маленькие и несложные задания. Если что-то не будет получаться, у вас всегда будет к кому обратиться. И при этом вы будете участвовать в реальном проекте.
Последний способ — собственные проекты, различные хакатоны или работа в коворкинге. Свои проекты сложно начинать самому, лучше поискать знакомых или друзей.
Почему стоит выбрать Python
Давайте немного подробнее поговорим о выборе первого языка программирования. Первый язык должен быть простым и популярным на рынке. Таким языком является Python. Я очень советую выбрать именно его в качестве первого языка программирования.
Код программы на Python читабелен. Вам даже не нужно быть программистом, чтобы в общих чертах понять, что происходит в программе. Из-за несложного синтаксиса Python вам понадобится меньше времени для написания программы, чем, например, на Java. Огромная база библиотек, которая сэкономит вам кучу сил, нервов и времени. Python является высокоуровневым языком. А значит, вам не нужно особо думать о ячейках памяти и о том, что там разместить. Python — язык широкого назначения. И он такой простой, что даже дети могут его выучить.
Справедливости ради стоит упомянуть и о других языках программирования. Java может стать неплохим выбором для новичка. Этот язык популярнее, чем Python, но и немного сложнее. Зато инструменты для разработки гораздо лучше проработаны. Стоит только сравнить Eclipse и IDLE. После Java вам будет проще перейти к работе с низкоуровневыми языками программирования.
PHP — ещё один очень популярный язык. И, мне кажется, он даже проще, чем Python. Очень легко найти себе ментора или решение какой-нибудь проблемы на форуме. Всё потому, что в мире существует огромное количество PHP-программистов разного уровня. В PHP нет нормального импорта, есть множество вариантов решения одной и той же задачи. А это усложняет обучение. И PHP заточен исключительно под веб.
Языки C и C# очень сложны для новичка. Ruby — хороший выбор в качестве второго языка, но не первого. JavaScript — очень простой язык, но ничему хорошему он вас не научит. А задача первого языка программирования всё-таки научить вас чему-то правильному, задать какую-то логику.
Важен ли английский язык
Важен! Не знаете? Учите. Знаете? Совершенствуйте. Учитесь читать, писать, слушать и говорить на английском. Делайте упор на техническую литературу. Слушайте англоязычные подкасты. Читайте англоязычные учебники по программированию.
Что нужно знать, кроме языка программирования
Конечно же, кроме языка программирования и английского, нужно знать что-то ещё. А вот что — зависит от направления, которое вы выберете. Веб-программист обязан знать HTML, CSS, JavaScript. Десктоп-программист учит API операционной системы и различные фреймворки. Разработчик мобильных приложений учит фреймворки Android, iOS или Windows Phone.
Всем нужно выучить алгоритмы. Попробуйте пройти курс на Coursera или найти подходящую для себя книгу по алгоритмам. Кроме этого, нужно знать одну из баз данных, паттерны программирования, структуры данных. Стоит также познакомиться с репозиториями кода. Хотя бы с одним. Обязательно знание систем версионного контроля. Выбирайте Git, он самый популярный. Вам нужно знать инструменты, с которыми вы работаете, операционную систему и среду разработки. И главный навык программиста — уметь гуглить. Без этого вы не проживёте.
Последние шаги
Вам нужно подготовить резюме. Не просто резюме, а хорошее резюме. Не стоит писать там лишней информации, но и умалчивать о своих умениях тоже не нужно. После того как вас пригласят на интервью, вы должны к нему подготовиться. Пройдитесь по материалу, который указан в вашем резюме. Вы должны быть уверены в своих знаниях. Просмотрите проекты, над которыми вы работали, вспомните технологии, которые вы применяли. И вперёд — к светлому будущему с новой профессией программиста.
Сколько нужно времени, чтобы научиться программировать с нуля
IT-профессии привлекают своей востребованностью и высокооплачиваемостью. По данным аналитического отдела HeadHunter и «Яндекс.Практикума», в прошлом году медианная зарплата в IT составила 92 000 рублей в месяц, а доля вакансий для новичков выросла за 2016-2018 г. на треть. Хорошая новость в том, что стать программистом можно за год обучения и практики, если есть интерес и желание. Автор программы курса « Как стать фронтенд-разработчиком » Александр Братчиков рассказывает, что нужно, чтобы освоить IT-профессию и найти первую работу в новой для себя сфере.
Самостоятельно научиться программированию можно, самое сложное на старте — выбрать направление. Например, в разработке сайтов их три:
- фронтенд — всё, что видит пользователь на сайте (вёрстка, интерактивные элементы);
- бэкенд — невидимая часть сайта (логика, хранение и безопасность данных, обработка платежей и т.д.);
- фулстек — фронтенд и бэкенд вместе.
Как понять, к какому направлению больше лежит душа? В идеале — попробовать фронтенд и бэкенд, а потом определиться, что интересно изучить дальше.
Сколько времени стоит уделять занятиям, чтобы был толк?
Лучше равномерно распределить занятия во времени — тратить на обучение один-два вечера в неделю не так эффективно, как проходить небольшие уроки каждый день. Чтобы быстрее перейти к практике, на начальном этапе нужно заниматься не меньше десяти часов в неделю. Занимайтесь тогда, когда вам легче воспринимать новое, и когда никто не будет мешать, чтобы можно было полностью сконцентрироваться на учёбе — например, утром, когда домашние ещё спят.
Обязательно ли поступать в университет?
Нет, можно попасть в профессию с прикладной стороны. В работе рано или поздно понадобятся теоретические знания компьютерных наук (computer science) — с ними будет проще ориентироваться в технологиях, новых языках программирования — но и их можно получить самому. Например, вводный курс лекций CS50 Гарвардского университета можно бесплатно пройти на русском языке .
С чего начать и чему можно научиться за три месяца?
Чтобы учиться было интереснее, придумайте себе проект (сайт) и начните его воплощать — верстать, писать код. Дело пойдёт быстрее, потому что код не будет абстрактным, перед вами будут стоять конкретные задачи, решения которых вы будете искать.
Обязательные основы — HTML и CSS, нужные для вёрстки, и язык программирования JavaScript, который делает сайт интерактивным. Фронтенд-разработчику важно понимать на базовом уровне, как устроен бэкенд, поэтому нужно изучить, как происходит сборка проекта — подключение сайта к серверу и его «доставка» до пользователя.
Через месяц-полтора уже получится сверстать несложный сайт, ещё через два месяца — «оживить» сайт при помощи JavaScript и адаптировать его для разных устройств.
Сколько времени нужно потратить, чтобы стать специалистом?
В российской и мировой сфере ИТ принято делить программистов по квалификации на уровни:
- junior — стажёр, который решает самые простые задачи, а для более сложных ему понадобится помощь опытных коллег; за 1-2 года в позиции «джуниора» можно перейти на средний уровень.
- middle — готовый к самостоятельной работе джуниор, который уже легко справляется с типовыми задачами и может браться за нетиповые; этот уровень, непрерывно обучаясь, можно пройти за 2-3 года.
- senior — руководитель команды (тимлид), эксперт с опытом разработки и запуска проектов, способный организовать работу коллег — построить архитектуру проекта так, чтобы его было проще и дешевле поддерживать; на достижение этого уровня у «миддла» уходит 2-3 года и больше.
У компаний нет единых требований к уровням ИТ-специалистов — например, в Яндексе к новичкам больше требований, чем в веб-студии, а в Сингапуре их уровень ниже, чем в России. Курс «Яндекс.Практикума» даёт базу, чтобы начать работать «джуниором» уже через полгода.
Чем раньше начнёте смотреть вакансии разработчиков, тем проще будет отстроить свои навыки, не закапываясь в теорию. В описаниях вакансии обычно указаны требования — по ним можно понять, чему уделять больше времени при обучении.
Как быстро можно найти работу?
После трёх месяцев регулярных занятий начинайте откликаться на вакансии или пишите потенциальным работодателям, ходить на собеседования. С первого раза получить предложение о работе вряд ли получится, но обязательно узнавайте причину отказа. Через какое-то количество итераций и при условии, что вы повышаете свой уровень, работа найдётся.
Скорее всего, сначала вас возьмут стажёром-разработчиком или верстальщиком и будут доверять только самые простые задачи, но за полгода вы получите первый «боевой» опыт и сможете претендовать на позицию джуниора.
30 лет — не поздно?
Начинают и в 35, и в 15. Рынок растёт, хороших специалистов не хватает, поэтому не имеет значения, когда ты решил освоить новую профессию. В 30 лет у человека прекрасно работает мозг, и освоить что-то новое несложно.
Работодатели не обращают внимание не возраст — им больше важны навыки и личные качества сотрудника, или soft skills (эмоциональный интеллект, умение работать в команде, ответственность, желание расти профессионально). После 30 лет у человека уже развиты soft skills — это может стать преимуществом.
« Цех » — медиа о непрерывном образовании взрослых людей. Мы целиком захвачены идеей постоянного развития личности — профессионального, интеллектуального, эмоционального и даже духовного. Мы исследуем, как, чему и где лучше всего учиться и, главное, зачем. Если вам понравился этот материал, подпишитесь, пожалуйста, на нашу почтовую рассылку .
Источники:
http://skillbox.ru/media/code/skolko_nuzhno_uchitsya_na_programmista_s_nulya/
http://lifehacker.ru/kak-stat-programmistom/
http://zen.yandex.ru/media/id/5a2693e8a936f4fc5c4525a6/5d1b3371d33d2500ad862283