Как отучиться на программиста с нуля
Как самостоятельно стать программистом с нуля
Читайте внимательно: в этом тексте вы найдете несколько советов и реальных историй выпускников SkillFactory, ставших программистами, а также список бесплатных курсов и материалов для самостоятельного обучения.
Чем занимаются программисты?
Благодаря поп-культуре у большинства далеких от IT людей сформировался стереотип о программистах как о бородатых мужиках в футболках с супергероями, нелюдимых и замкнутых. При этом считается, что они умеют все: от взлома баз данных до починки холодильника, — но на деле в IT-индустрии более узкие специальности.
Но чем конкретно занимаются программисты?
Читайте также: Что выбрать: iOS- или Android-разработку?
Обычно для разных типов систем крупные компании нанимают двух разных разработчиков, но иногда ищут специалистов-универсалов.
Читайте также: Что выбрать: frontend, backend или fullstack? Разбираемся, в чем отличия между типами разработки
Читайте также: Главные профессии в ИТ
Какой язык программирования выбрать?
Это зависит от того, чем вы хотите заниматься:
Google использует Python для ранжирования поисковой выдачи, также на нем работают YouTube, Dropbox и Reddit. Еще на этом языке написан фреймворк Django — универсальный инструмент для веб-разработчиков, который отвечает за создание внешнего интерфейса и работу на сервере.
Fullstack-разработчик на Python с нуля
Научитесь программировать на Python и Javascript и получите востребованную профессию за 15 месяцев. Дополнительная скидка 5% по промокоду BLOG.
Если вы хотите идти в веб-разработку — определитесь, что вам больше интересно: backend или frontend. Вот, что нужно освоить для каждой специальности:
Frontend
HTML и CSS — это языки разметки, с помощью которых элементы сайта в браузере встают на нужные места.
Javascript — язык, который добавляет сайту динамику: анимацию нажатия кнопок, движение карточек продуктов, отправку уведомления.
Python — универсальный язык, который подходит для frontend-разработки, а также backend и других интересных задач.
Кроме этого, понадобится базовое знание основ веб-технологий. Например, нужно знать, как работает протокол http или зачем необходимо шифрование данных.
Научиться всему этому можно здесь.
Backend
Go — язык для backend с простым синтаксисом. Подходит для крупных проектов и высоконагруженных приложений, таких как YouTube или Ozon.
PHP — простой в освоении язык, подходит только для backend, но специалисты советуют обратить внимание на более современные инструменты.
Java — универсальный язык, который используется уже более 20 лет. Код, написанный на Java, работает одинаково на разных устройствах, что является его базовым преимуществом.
Научиться этому можно здесь.
Начинающим разработчикам мобильных приложений стоит определиться, с какой операционной системой они будут работать, потому что код для iOS и Android пишется на разных языках.
Objective-C — язык программирования Apple, который используется в первую очередь для MacOS. Приложения для iOS раньше тоже писали на нем, но теперь мобильные разработчики используют в основном Swift.
Swift — понятный и логичный язык, который отражает главные качества iOS — функциональность и производительность.
Освоить навыки можно здесь.
Android
Java — кроссплатформенный язык для создания мобильных и серверных приложений. На нем также можно писать backend для сайтов.
Kotlin — язык, альтернативный Java, большую часть нового кода сейчас стараются писать именно на нем. Но Java стоит знать для того, чтобы ориентироваться в уже написанном коде, а благодаря совместимости языков код на Kotlin и Java можно миксовать в одном проекте.
Освоить профессию можно здесь.
Android-разработчик с нуля
Вы освоите программирование и главные навыки мобильного разработчика, подготовитесь к трудоустройству и уже после первых 8 месяцев обучения сможете начать работать по новой специальности. Дополнительная скидка 5% по промокоду BLOG.
В геймдеве выбор языка зависит от уровня проектов и платформ, с которыми вы хотите работать:
C++ — потребуется, если вы планируете создавать крупные AAA-проекты с фотореалистичной графикой для PlayStation и Xbox. В этом случае обойтись простыми в изучении базовыми языками точно не получится. Подробная статья о С++.
C# (Си-шарп) — язык для движка Unity, разработанный компанией Microsoft. Он особенно популярен в России и считается более простым в освоении, чем C++. Изначально на нем создавались проекты эксклюзивно для ПК, но сейчас код, написанный на C#, можно портировать на Android, iOS, Xbox и другие платформы.
Разработчик игр с нуля
Научитесь создавать игры на самом востребованном движке Unity и станьте востребованными специалистом. Дополнительная скидка 5% по промокоду BLOG.
Читайте разбор: Какой язык программирования выбрать?
Что еще нужно знать, чтобы стать программистом?
Владение английским языком — важный навык для тех, кто хочет стать программистом с нуля самостоятельно. Во-первых, знание английского нужно, чтобы лучше понимать код, написанный на языке программирования. Важно прокачивать технический английский, чтобы ориентироваться в англоязычной документации. Во-вторых, комьюнити разработчиков, говорящих на английском, гораздо шире русскоязычного, поэтому стоит быть в курсе мировых трендов, общаться и получать информацию на этом языке.
Совет выпускника SkillFactory:
— Только трудом и практикой можно освоить новую профессию. Работодатели не прибегут просто так. Чтобы начать, нужна крепкая база по специальности и главное — практика. Я знаю много людей, которые пропускают фундаментальные вещи. Они часто быстро достигают предела и не могут решать сложные задачи.
Марк Соболев, старший лейтенант полиции, который стал frontend-разработчиком. Читайте его историю
Получите перспективную и творческую профессию в IT с нуля на практике. Дополнительная скидка 5% — по промокоду BLOG.
Что почитать?
Онлайн-медиа — здесь обсуждаются нишевые события и более узкие темы.
Искать решение своей проблемы и задавать вопросы стоит на англоязычных форумах, как специализированных, так и не очень. Есть два популярных варианта:
Я хочу стать программистом. Где учиться?
Можно самостоятельно учиться программированию, записаться на онлайн-курсы и даже учиться очно — плюсы есть у каждого варианта.
Самообразование не требует серьезных затрат, понадобятся только усидчивость и умение добывать нужную информацию. При правильном подходе уже через несколько месяцев после начала обучения получится написать простую программу.
С другой стороны, грамотно составленный курс обучения даст новичку полное представление о профессии и позволит быстро освоить разные инструменты на практике.
Обучение онлайн по сравнению с очным требует меньше времени, а хорошие онлайн-школы сопровождает своих учеников до первого трудоустройства, помогает с составлением резюме и портфолио. Например, в SkillFactory помощью в трудоустройстве занимается специальный карьерный центр.
Самостоятельное обучение: блоги, приложения, книги, бесплатные курсы и видеоуроки
Плюс: дает возможность попробовать себя в новой сфере деятельности без вложений.
Минус: отсутствие опытного наставника и структуры работы. Кроме этого, бесплатные курсы бывают поверхностными, поэтому с их помощью редко получается стать опытным специалистом.
Поступление в вуз или колледж
Плюс: профессиональное образование помогает расширить кругозор. Помимо фундаментальных знаний по специальности, выпускники получают общие знания в других сферах: экономике, культуре, политике и естественных науках.
Минус: IT-индустрия развивается быстро, современные государственные программы не успевают под нее адаптироваться, и выпускники рискуют выйти в большой мир разработки с неактуальными или неполными знаниями.
Онлайн-курсы
Плюс: главный плюс онлайн-обучения на курсах программистов — это поддержка ментора и формирование профессионального сообщества. Все вопросы можно обсудить с коллегами по цеху. Также онлайн-школы предоставляют ученикам доступ к большим методическим базам.
Минус: сам процесс обучения может занимать от полугода до двух лет, потребуется мотивация, чтобы его закончить.
Бесплатные курсы и материалы для самостоятельного обучения
На площадке Coursera можно найти бесплатные программы по разным направлениям в IT на русском и английском языках:
На площадке edX собраны бесплатные курсы Гарварда, Массачусетского университета, Беркли, Бостонского университета и других именитых учебных заведений. Например:
В подборках для новичков чаще всего встречается несколько книг, с которыми полезно познакомиться:
Советы выпускницы SkillFactory:
В IT нужно постоянно учиться. Регулярно выходят новые версии рабочих инструментов или появляются более сложные. Если вы взяли курс, решайте все задачи сами, даже если они кажутся слишком трудными. На реальной работе никто не будет приносить все «на блюдечке»: нужно уметь искать информацию, разбираться в ней и применять на практике.
Ищите компании с возможностями для роста. Менять работу не страшно, но внутри привычной компании это делать комфортнее. Теперь я работаю в компании, где могу пробовать новые специальности.
Лариса Петрова, бывший инженер-программист второй категории, стала fullstack-разработчиком. Читайте ее историю
Как стать начинающим программистом с нуля: 5 советов от профессиональных разработчиков, которые подойдут любому новичку
Хотите стать программистом самостоятельно? Мы собрали 5 советов от профессиональных разработчиков о том, как в домашних условиях самостоятельно стать программистом.
В этом материале вы узнаете:
Кто может стать программистом
Кто угодно. Самостоятельно стать программистом может любой желающий. Даже самостоятельно. Человеку с техническим образованием будет легче понять некоторые принципы работы и стать программистим. Остальным просто придется потратить чуть больше времени, чтобы стать программистом.
Работодателям без разницы, какой у вас диплом и есть ли он вообще. Важно только то, что вы умеете делать и какой у вас опыт.
Пробный период: программирование мое или не мое?
С чего начать? Некоторые профессии можно освоить быстро. Программирование не из их числа. Даже если вам хочется освоить это быстро, так не получится. Чтобы стать программистом, вам придется учиться как минимум несколько месяцев. В том числе, самостоятельно. С чего начать: мы советуем сначала попробовать понять, подходит вам профессия программиста или нет. Для этого можно использовать самые простые технологии из мира разработки и программирования, которые можно быстро освоить: HTML и CSS.
HTML и CSS — это еще не полноценные языки программирования. Скорее, это набор специальных команд. Они «показывают» браузеру, как должны выглядеть объекты на странице.
Вот как выглядит обычный текст, если его открыть в браузере:
Вот как выглядит тот же самый текст, если его немного причесать при помощи HTML:
В данном примере мы использовали несколько тегов:
— тег, который обозначает заголовок страницы.
— тег, который делает шрифт жирным.
Вот так выглядит эта страница, если открыть ее в блокноте, чтобы посмотреть, какие мы использовали теги:
Прежде чем стать начинающим программистом, попробуйте начать свое самостоятельное погружение в программирование с изучения HTML и CSS. По этим инструментам в интернете много бесплатных курсов. Освоить их сможет каждый. HTML и CSS можно изучить за несколько дней. Это поможет вам ответить на вопрос: «Подходит ли мне программирование?».
Как с нуля самостоятельно выучиться и стать начинающим программистом
Если вы уже уверены, что хотите стать начинающим программистом, то нужно начинать учиться. Сначала выберите язык программирования и то, каким начинающим программистом вы хотите стать. Каким разработчиком вы станете — зависит только от вас.
Есть несколько базовых правил, которых нужно придерживаться во время выбора того, каким программистом вы хотите быть:
Каким бы начинающим программистом вы ни хотели стать, нужно придерживаться основных направлений в программировании на 2020 год:
Если вы не можете выбрать, с чего начать и начинающим программистом в каком направлении стать, то выбирайте одно из тех, которые обозначены на скриншоте ниже. Это рейтинг популярности языков программирования за 2020 год из исследования JetBrains.
Хотите грамотно выбрать язык программирования и стать успешным начинающим специалистом? Вам поможет консультация специалиста!
Когда вы выбрали направление и язык программирования, можно начинать учиться. Есть 5 способов стать начинающим программистом.
Самостоятельно учиться на начинающего программиста в университете
Фундаментальное техническое образование поможет вам стать начинающим программистом. Но получать его — дорого, долго и сложно. Если у вас еще нет семьи и ипотеки, то это неплохой старт карьеры для начинающего программиста. В России технические специальности в ВУЗах сильные еще со времен СССР, поэтому стать начинающим программистом таким образом сможет каждый. Наши начинающие программисты регулярно выигрывают международные конкурсы.
Если решите получать «вышку», то нужно понимать две вещи:
Самостоятельно пройти курсы программирования
Существуют курсы на любой вкус для тех, кто хочет стать начинающим программистом: по каждому направлению программирования, платные и бесплатные, онлайн и оффлайн. Несколько важных деталей о курсах программирования для новичков:
Выучиться на начинающего программиста с ментором
Это самый легкий и быстрый способ стать начинающим программистом. Ментор — это ваш персональный репетитор по программированию. Основные плюсы — это человек «в рынке», он на практике каждый день решает те задачи, которые будет вам объяснять. Ментор понимает, какие инструменты действительно востребованы в вашем направлении программирования.
Вместе с ментором вы составите учебный план, по которому будете идти и изучать программирование. Обычно это 1-2 звонка в неделю, на которых вы задаете вопросы и обсуждаете пройденный материал. Ментор объясняет места, в которых вы не разобрались. Основной массив информации по программированию вы изучаете самостоятельно, по тем материалам, которые вам предоставил наставник. Это требует определенной дисциплины.
Наши менторы из знаменитых корпораций помогут вам освоить новую профессию и стать начинающим разработчиком. У нас есть специалисты по всем направлениям со всего мира.!
Учиться в школах программирования при корпорациях
Это не самый известный, но очень эффективный способ обучения. Качественных начинающих программистов на рынке не хватает, поэтому крупные компании организуют собственные школы, чтобы их готовить.
Вот самые известные русскоязычные примеры школ программирования при корпорациях: Школа 21 от Сбербанка, Академия Яндекса, Школа программистов от HH.
Плюсы: качественное образование от экспертов из рынка; близость к компании, а значит, легче получить работу и стать начинающим программистом; нетворкинг; бесплатное образование для будущих программистов.
Минусы: большая часть школ таких школ программирования — оффлайн, а значит, нужно физически присутствовать в нужном городе. Как правило — в Москве. А еще для попадания в школы нужно пройти сложный отбор из нескольких этапов. Почти поступление в ВУЗ.
Выучиться на начинающего программиста самостоятельно
Самостоятельное обучение — это самый дешевый способ стать начинающим программистом, который подходит всем, независимо от места жительства и финансового положения. Все базовые знания о программировании есть в интернете: видеолекции, учебники и статьи.
Минусы подхода самостоятелього обучения очевидны — это дольше, потому что информацию о программировании придется искать самостоятельно. Нужна железная дисциплина, чтобы стать начинающим программистом. Если вы что-то не поймете, будет не у кого спросить совета. Этот способ подходит единицам, которые уверены в собственной силе воли, мотивации и самостоятельности.
Что нужно знать, чтобы устроиться на работу джуниор-программистом
В каждом направлении программирования требования разные. Самый лучший способ узнать, что нужно знать, это «спросить» тех, кто нанимает джуниоров-программистов.
Откройте HeadHunter и посмотрите 7-10 junior вакансий в вашем городе по своему направлению. Выпишите требования из каждой из них, удалите повторы. Бинго, перед вами усредненный лист требований к джуниор-программисту в вашем направлении.
Мы сделали срез по самым популярным направлениям в Москве:
Как быть, если вам не хватает знаний до вакансии джуниор-программиста?
Осваивать большую часть навыков программирования нужно на практике. Во-первых, так вы поймете их быстрее и лучше. Во-вторых, работодателей интересует не то, сколько умных слов из мира программирования вы знаете наизусть, а как вы умеете свои знания применять. Значит, он спросит портфолио.
Начинать нарабатывать портфолио нужно еще во время учебы. В середине процесса или после первых двух третей начинайте искать себе стажировку. Стажировка — это почти полноценная работа начинающим программистом. Отличие в том, что стажировки обычно неоплачиваемые и занимают не полный день, а несколько часов.
Вот как устроена система стажировок в программировании: вы работаете на компанию, решаете базовые задачи в своей области без финансового вознаграждения. Взамен опытные коллеги учат вас и помогают разбираться в сложных вещах.
Такой подход ломает замкнутый круг «всем нужны работники с опытом, но где взять опыт, если никто не берет меня без опыта». Если вы хорошо покажите себя на стажировке, то есть шанс, что работодатель после окончания предложит вам остаться на полноценную работу начинающим программистом.
Если после окончания учебы и/или первой стажировки у вас все еще недостаточно навыков, чтобы получить работу джуниор-программиста, то пройдите еще одну стажировку.
Где искать стажировки: на тех же сайтах и площадках, на которых нужно искать работу.
«Возьмите бесплатно, буду делать, что скажете»: 7 советов тем, кто хочет программировать
Экс-техдиректор «Медузы» и «Букмейта» помогает устроиться в жизни
Иногда кажется, что все вокруг программисты. Но если задуматься о получении новой профессии в ИТ, не так легко понять, куда податься и с чего начать.
В этом отлично разбирается бывший технический директор «Медузы» и «Букмейта» Самат Галимов, который поделился с читателями опытом и рекомендациями в формате AMA. Собрали в материале самые интересные вопросы и ответы: какие языки программирования учить, как выбрать курсы и где найти профессиональную поддержку.
Какой язык программирования изучить, чтобы стать ценным специалистом?
Когда-то давно навык уверенного пользователя ПК был одним из преимуществ при приеме на работу. Сейчас это необходимый скилл, без которого никуда не возьмут. Возможно, в будущем владение каким-нибудь языком программирования станет такой же необходимостью.
Какой язык программирования вы бы посоветовали изучить редактору? Не ради фана, а чтобы повысить свою ценность на рынке труда.
Мне не близок такой утилитарный подход к обучению, я бы отталкивался от того, что интереснее, что драйвит. Отвечу кратко на ваш вопрос, а потом расскажу, как бы я подходил к обучению.
Во-первых, можно верстать что-то по мелочи самому. Тогда — HTML и CSS, а потом JavaScript. Последний — самый настоящий язык программирования.
Во-вторых, можно научиться парсить и обрабатывать данные для исследовательских статей. Как минимум вам будет понятно, насколько сложно собрать данные, которые вам нужны, чтобы корректно поставить задачу программисту и чтобы он не водил вас за нос. Для этого круто подойдет Python с его библиотеками типа Scrapy.
А я бы учил тот язык, который по-настоящему захочется учить.
Если вам хочется попробовать сделать мобильное приложение и вы пользуетесь Айфоном и Макбуком — попробуйте Swift, там все как у «Эпла» — «красиво». Если Андроид — есть Kotlin.
При прочих равных я бы выбрал JavaScript и Python. По обоим языкам тонна бесплатных источников самого разного формата в интернете, начиная от полноценных учебных курсов на том же «Яндекс-практикуме» и заканчивая классными текстовыми туториалами и ютуб-лекциями.
Где получить обратную связь и совет от других программистов?
Подскажите ресурсы — форумы, каналы, чаты, — где тусят опытные программисты, в частности С++, на суд которых можно выложить свой труд и получить объективную профессиональную оценку на предмет полезности/бесполезности?
Опытные плюсовики водятся в Nginx, PostgreSQL, Linux и прочих серьезных проектах. Я бы в их IRC-чатах или даже в dev-рассылках посмотрел и спросил.
Но «объективную профессиональную оценку» в публичном пространстве не получишь. Выскажутся не по делу люди, которые не секут в теме. Лучше идти точечно к человеку и задавать конкретные вопросы: «читабелен ли этот код» или «нормально ли вот тут модуль выделен».
А полезность или бесполезность определяет не программист, а конечный пользователь. Пользуются и решают свою проблему вашим кодом — значит, полезный код. Не пользуются и не решают — бесполезный. Хотя учебный код полезен тем, что вы его написали!
Должен ли программист быть разносторонним специалистом?
Да, нужно уметь приносить пользу бизнесу, а не просто «прогать за деньги». Это умение состоит из многих компонентов: говорить человеческим языком с непрограммистами, понимать их боль, разбираться в бизнес-проблеме, уметь предлагать максимально простые решения, объяснять свое решение и потом его продвигать, по пути передоговорившись, потому что с ходу наверняка все придумали неправильно.
Это скилл, за который платят нереальные деньги. А все потому, что вы приносите пользу, а не просто «прогаете за деньги».
Где учиться на фронтенд-разработчика?
Как правильно учиться программированию? Например, я хочу стать фронтенд-разработчиком. Беру кредит и покупаю дорогой годовой курс. Так нормально или я просто потеряю год жизни?
Я бы пошел на «Яндекс-практикум». Самый безопасный и простой вариант — там не только знания, но и менторы адекватные. Аналогичные школы есть у «Мэйл-ру» и Сбера. Они готовят джунов и потом сразу берут их на работу — это классный вариант, если учите не просто для души, а для работы.
Если вы в провинции, хотите человеческого контакта и любите рисковать, найдите нормальную ИТ-компанию поблизости — они обычно проводят всякие локальные митапы — и говорите им буквально: «Очень хочу работать программистом, возьмите меня бесплатно, буду делать, что скажете». Я знаю, что в Твери ребята так делают и реально учат с нуля.
Как увлечь детей программированием?
У меня двое сыновей-младшеклассников. Они посещают кружки и секции, чтобы попробовать себя в разных областях, — вдруг что-то так увлечет, что они захотят этим дальше заниматься на более серьезном уровне. И вот настал черед попробовать программирование.
Как к нему подступиться? Можно, конечно, отдать в кружок робототехники — их сейчас тысячи. Но подозреваю, что там просто собирают лего-роботов по инструкции, без понимания принципов, особенно не погружаясь в предмет. С чего начать? Как увлечь? Важна ли здесь системность, какой-то план? Курсы для детей? Сообщества? Может, написаны интересные книжки по теме?
Как отец троих, я опасаюсь давать советы про детей, тем более что моей старшей всего семь, она ходит в вальдорфскую школу и компа в глаза не видела. Тем не менее есть несколько крутых штук.
Что почитать будущему программисту?
Какие твои любимые книги о программировании и почему?
Я очень люблю FreeBSD Handbook и PostgreSQL Documentation. Это книги, которые помогают решать конкретные проблемы, но при этом объясняют базовые принципы. Академически выверены, но написаны простым и понятным языком. Правда, это скорее про сисадминство и SQL.
По программированию у меня хорошие воспоминания о Кормене — «Алгоритмы: построение и анализ», я в школе им зачитывался, когда участвовал в олимпиадах. Книга «Язык программирования Си» Кернигана и Ритчи классная, потому что короткая и понятная, и туториал по Go — чистое продолжение этой книги и один из немногих туториалов, который я честно прошел до конца (ну или почти до конца). Я пытался читать книжку Pragmatic Programmer по Ruby — она, кажется, хорошая, и вообще вся серия достойная.
Про менеджмент я в свое время без остановки прочитал «Deadline: роман об управлении проектами» и влюбился в эту книгу.
На каких курсах учить Java?
Какие курсы Java вы порекомендуете?
Я не назову с ходу, но уверен, что и Сбер, и «Мэйл-ру» в своих образовательных программах обучают Java. Оба варианта должны быть нестыдными. И онлайн-курсы на «Курсере», и Udemy от условного «Микрософта» должны быть ок, но они, скорее всего, совсем базовые.
AMA. Эксперты и герои Т—Ж отвечают на вопросы о чем угодно
И в ИТ хорошо бы иметь общее понимание о компьютерных науках. Рекомендую курс CS50, есть русский перевод на сайте JavaRush. Там в веселой форме объясняют азы, хорошо подходит для тех, кто вообще в этом плохо понимает. Да и опытным есть смысл просмотреть, есть интересные моменты.



















