Баннер мобильный (3) Пройти тест

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

Выбираем направление работы и язык программирования

Инструкция

1 апреля 2024

Поделиться

Скопировано
Как самостоятельно стать программистом с нуля: советы и реальные истории

Содержание

    Попробуем разобраться, действительно ли так просто попасть в IT, можно ли стать программистом с нуля и устроиться на первую работу без опыта. Читайте внимательно: в этом тексте вы найдете несколько советов и реальных историй выпускников Skillfactory, ставших программистами, а также список бесплатных курсов и материалов для самостоятельного обучения.

    Чем занимаются программисты

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

    Чем занимаются программисты

    Пройдите наш тест и узнайте, какой язык программирования вам подойдет. Ссылка в конце статьи.

    Но чем конкретно?

    • Разработка мобильных приложений — одна из топовых специальностей в программировании, в которой ежедневно открываются сотни вакансий. Всего есть три вида мобильной разработки:
      • iOS-разработка подразумевает создание приложений для iPhone. Чтобы работать с этой системой, нужен MacBook или компьютер Mac.
      • Android-разработка — для старта подойдет любой ноутбук на Windows. Выбор устройств для разработки гораздо шире: флагманские, средние и бюджетные линейки Samsung, Xiaomi, Honor и еще десятка производителей.
      • Кроссплатформенная разработка для двух операционных систем одновременно.
    • Веб-разработка — это процесс создания веб-сайтов и веб-приложений, включая их проектирование, программирование и визуальное оформление.

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

    • Frontend — программирование видимой части сервиса, с которой пользователь взаимодействует в браузере. Сюда входят, например, внешний вид сайта, выпадающее меню, взаимодействие с кнопками, формы обратной связи и многое другое.
    • Backend — работа с внутренней частью сайта или веб-приложения, невидимой для пользователя. Backend-разработчики отвечают за то, чтобы информация после заполнения формы на сайте попадала в базу данных, а при необходимости данные быстро подгружались из базы и передавались на фронтенд, видимую часть сайта. Например, когда вы просматриваете новости, код, написанный на бэкенде, извлекает из хранилища свежие публикации, передает их на фронтенд, и пользователь уже видит привычную ленту.
    • Fullstack — это работа со всем сразу. Термин придумали для программистов, знающих несколько языков и совмещающих навыки фронтенда и бэкенда. Некоторые fullstack-специалисты берут на себя мобильную разработку, работу с сервером или UX-дизайн. Их многофункциональность может стремиться к бесконечности.

    Читайте также: Что выбрать: frontend, backend или fullstack? Разбираемся, в чем отличия между типами разработки

    • Разработка игр или геймдев — игровые разработчики участвуют в создании компьютерных и мобильных игр разной сложности, от простых платформеров в 2D до крупных AAA-проектов уровня GTA, «Ведьмак» и Cyberpunk 2077.
    • Системное программирование — это создание программного обеспечения для операционных систем. Не самое популярное направление разработки, зато в нем меньше конкурентов. Например, системный программист занимается разработкой драйверов, которые помогают системе взаимодействовать с другими устройствами: подключить колонки к ноутбуку с помощью аудиодрайвера или принтер с помощью драйвера, разработанного под конкретную модель.

    Читайте также: Главные профессии в ИТ

    Можно ли научиться IT с нуля?

    Да, конечно! IT-сфера отличается тем, что не требует обязательного наличия специализированного образования для начала карьеры. Существует множество онлайн-ресурсов, книг, видеокурсов и образовательных платформ, которые помогут вам освоить основы программирования, информационных технологий и других аспектов IT.
    Если у вас нет опыта в программировании, полезно начать с изучения основных концепций и языков программирования. Некоторые популярные языки для начинающих – Python, JavaScript, Java. Также стоит погрузиться в основные концепции разработки программного обеспечения, баз данных, веб-разработки и других аспектов IT.

    Можно ли в 40 лет стать программистом?

    IT все возрасты покорны! Если вы действительно хотите открыть для себя новую профессию и готовы приложить усилия, у вас все получится. Это доказывают истории наших студентов. Конечно, многие из них отмечают, что после 40 может быть сложнее и нужно приложить больше усилий, находить время на обучение в плотном графике и не пасовать перед новизной. С другой стороны — жизненный опыт и умение учиться играют на руку старшим студентам.

    Какой язык программирования выбрать

    Это зависит от того, чем вы хотите заниматься:

    Схема какой язык программирования выбрать

    Для тех, кто никогда не имел дела с кодом, лучше всего подходит Python. Его используют и в Data Science и машинном обучении, для создания скриптов в 3D-редакторах и, разумеется, в веб-разработке.

    Google использует Python для ранжирования поисковой выдачи, также на нем работают YouTube, Dropbox и Reddit. Еще на этом языке написан фреймворк Django — универсальный инструмент для веб-разработчиков, который отвечает за создание внешнего интерфейса и работу на сервере.

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

    Чтобы стать программистом в веб-разработке, определитесь, что вам больше интересно: backend или frontend. Вот, что нужно освоить для каждой специальности: 

    Frontend
    Backend
    HTML и CSS — это языки разметки, с помощью которых элементы сайта в браузере встают на нужные места.
    Go — язык для backend с простым синтаксисом. Подходит для крупных проектов и высоконагруженных приложений, таких как YouTube или Ozon.
    Javascript — язык, который добавляет сайту динамику: анимацию нажатия кнопок, движение карточек продуктов, отправку уведомления.
    PHP — простой в освоении язык, подходит только для backend, но специалисты советуют обратить внимание на более современные инструменты.
    Python — универсальный язык, который подходит для frontend-разработки, а также backend и других интересных задач.
    Java — универсальный язык, который используется уже более 20 лет. Код, написанный на Java, работает одинаково на разных устройствах, что является его базовым преимуществом.
    Кроме этого, понадобится базовое знание основ веб-технологий. Например, нужно знать, как работает протокол http или зачем необходимо шифрование данных.

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

    iOS
    Android
    Objective-C — язык программирования Apple, который используется в первую очередь для MacOS. Приложения для iOS раньше тоже писали на нем, но теперь мобильные разработчики используют в основном Swift.
    Java — кроссплатформенный язык для создания мобильных и серверных приложений. На нем также можно писать backend для сайтов.
    Swift — понятный и логичный язык, который отражает главные качества iOS — функциональность и производительность.
    Kotlin — язык, альтернативный Java, большую часть нового кода сейчас стараются писать именно на нем. Но Java стоит знать для того, чтобы ориентироваться в уже написанном коде, а благодаря совместимости языков код на Kotlin и Java можно миксовать в одном проекте.

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

    C++ — потребуется, если вы планируете создавать крупные AAA-проекты с фотореалистичной графикой для PlayStation и Xbox. В этом случае обойтись простыми в изучении базовыми языками точно не получится. Подробная статья о C++.

    C# (Си-шарп) язык для движка Unity, разработанный компанией Microsoft. Он особенно популярен в России и считается более простым в освоении, чем C++. Изначально на нем создавались проекты эксклюзивно для ПК, но сейчас код, написанный на C#, можно портировать на Android, iOS, Xbox и другие платформы.

    Как стать Junior-программистом

    Junior, или коротко джун, — это специалист начального уровня. Джуниор — уже не стажер, а начинающий разработчик: ему не поручают сложных задач и не привлекают к помощи новичкам. Со временем джуниоры «вырастают» до мидл- и сеньор-специалистов.

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

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

    Понадобится понимать:

    • синтаксис и особенности выбранного языка программирования;
    • основные фреймворки и библиотеки, с которыми придется работать;
    • стиль кода, принятый в выбранном языке;
    • направление разработки в целом — например, веб-разработчик должен иметь хотя бы примерное представление об устройстве сайтов в целом.

    Что еще понадобится. Будет плюсом, если джун окажется знаком со вспомогательными инструментами разработчика: IDE, системами контроля версий, сборщиками или шаблонизаторами. Для каждого направления свой набор must have инструментов, так что не стоит учить все сразу.

    Хорошее понимание сложных алгоритмов и паттернов проектирования на этом этапе еще не обязательно, но если джун окажется с ними хотя бы приблизительно знаком — будет хорошо. А вот простые алгоритмы, как, скажем, основные виды сортировки, знать надо.

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

    Как попасть в IT без опыта?

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

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

    Если нет уверенности в своих силах, можно записаться на стажировку. Некоторые из них оплачиваемые, а еще стажировка — отличный способ попробовать свои силы в настоящей рабочей обстановке. Более того: успешных стажеров могут пригласить в штат.

    Что еще нужно уметь, чтобы стать разработчиком

    • Знание языка программирования это hard skill или базовый навык разработчика. Сюда же можно отнести:
    • знание алгоритмов (для поиска, сортировки или сжатия данных);
    • работу с библиотеками и фреймворками (для упрощения многих вычислительных задач);
    • работу с системами управления версиями (позволяют возвращаться к более ранним версиям проекта);
    • навык чтения чужого кода;
    • чтение технической документации.

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

    Какой должен быть компьютер для программирования?

    Основные параметры, на которые нужно обращать внимание:

    • современный мощный процессор;
    • не менее 16 Гб оперативной памяти;
    • твердотельный накопитель SSD вместо жесткого диска.

    Для старта будет достаточно современного «офисного» ноутбука: отсутствие «крутой» машины не станет препятствием для карьеры в IT. Подробнее о том, как выбрать компьютер для программиста, читайте в статье.

    Как найти первую работу в IT

    Устройство на работу можно условно разделить на три этапа:

    • поиск вакансий и отклики на них;
    • прохождение собеседований;
    • получение оффера и онбординг.

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

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

    На агрегаторах стажировок. Кроме hh.ru, есть тематические агрегаторы для джунов — сайты, где публикуют актуальные стажировки от разных компаний и стартовые вакансии для молодых специалистов. Как пример — FutureToday или Changellenge.

    В телеграм-каналах. Есть специальные каналы для поиска работы в разных направлениях, в том числе в IT. Некоторые компании вместо HH сразу идут туда: там дешевле размещение и выше шанс найти профильного специалиста. Бывают в таких каналах и вакансии джуниоров. Более того: есть каналы, которые специализируются на стартовых вакансиях, например, Remote Junior. Часто каналы работают как тематические агрегаторы и собирают вакансии из разных источников.

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

    Что нужно помнить при поиске работы

    • Резюме и сопроводительное письмо важны. Можете воспользоваться советами по их написанию, например от Максима Ильяхова. Красивое и подробное резюме и нешаблонное сопроводительное письмо оставят о вас более хорошее впечатление. Это способ выделиться среди множества других откликов.
    • Скорее всего, на большинство откликов вы не получите ответа. Так часто бывает, особенно с джуниорскими позициями. Не стоит расстраиваться и падать духом: даже если вы получите десяток отказов подряд, это еще ни о чем не говорит.
    • Будьте готовы к тому, что первое собеседование может оказаться провальным. Это, опять же, частая ситуация. Человек нервничает, он трудоустраивается в новую область, поэтому может ошибиться — а еще всегда высока вероятность, что вы просто не сойдетесь с работодателем. Настройтесь на то, что первые собеседования — это тренировка того, как вы ведете себя на собеседованиях. Со временем станет проще, и вы начнете лучше ориентироваться в разговорах с работодателем.

    Главное — не отчаиваться. Первую работу в новой сфере можно искать несколько недель или даже месяцев, и это нормально, причем не только для IT. Запаситесь терпением и не позволяйте отказам вас демотивировать.

    Что спрашивают у джунов на собеседовании

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

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

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

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

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

    Общее интервью. Оно может идти до или после технического. Это стандартное собеседование, какие есть в любой сфере: рекрутер спрашивает об ожиданиях, планах, интересах, причинах выбрать именно эту вакансию. Тут же могут рассказать о компании, ее миссии и требованиях, о спектре основных задач. На этапе общего интервью не только рекрутер выбирает сотрудника — соискатель тоже выбирает работодателя. Так что советуем отнестись к собеседованию внимательно, чтобы понять, сработаетесь вы с этой компанией или нет. Лучше не согласиться на неподходящую для вас вакансию, чем трудоустроиться «не туда», выгореть и потерять время.

    Можно ли научиться программированию без курсов?

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

    1. Изучение онлайн-ресурсов: На таких платформах, как Codecademy, Coursera, Udemy, freeCodeCamp и др., вы можете найти бесплатные и платные курсы по различным языкам программирования и технологиям.
    2. Чтение книг: Существует множество книг по программированию, которые четко объясняют основные концепции и позволяют поглубже понять языки программирования и методы разработки.
    3. Решение практических задач: Практика – важная часть обучения программированию. Решайте задачи на программирование, участвуйте в соревнованиях, создавайте собственные проекты.
    4. Общение с другими: Присоединитесь к сообществам программистов в социальных сетях, форумах или на специализированных платформах. Общение с коллегами поможет вам задавать вопросы, делиться опытом и получать обратную связь.
    5. Изучение документации: Научитесь работать с официальными документациями различных языков и фреймворков. Это позволит вам быстрее разбираться в новых технологиях.

    Что почитать

    • Google Developers — надежный первоисточник, из которого можно узнавать актуальные новости о продуктах компании.
    • I Programmer — портал для программистов. Новости обо всех направлениях от UX до робототехники и всех языках программирования.
    • Smashing Magazine — статьи о веб-дизайне: разбор кода, свежие кейсы, советы по трудоустройству и общению с клиентами.
    • Хабр — универсальный русскоязычный ресурс, где можно найти гайды, обсуждения, код-ревью и кейсы от разработчиков разных компаний от IT-гигантов до небольших digital-агентств.
    • Вастрик — авторский инди-блог про IT и выживание в мире технологий. Тексты про машинное обучение, блокчейн, VR, вычислительную фотографию, машинный перевод и многое другое.
    • Reddit — популярный форум на все темы подряд, на котором часто сидят опытные разработчики, выкладывают свои кейсы и комментируют другие публикации. Найти их можно по тегу «programming».
    • Stack Overflow — закрытый клуб для программистов без рецептов и котиков. Здесь можно запросить у опытных коллег code review, комментировать публикации и давать им оценку.
    • CyberForum — форум программистов, системных администраторов, где помогают в решении задач по программированию.
    • Game Dev — форум, на котором разбирают создание игр и все, что с ним связано.
    • Crash Course on Python, разработанный в партнерстве с Google;
    • Java Programming and Software Engineering Fundamentals от Duke University (США);
    • HTML, CSS, and Javascript for Web Developers от Johns Hopkins University (США);
    • iOS-разработка: Swift, UI и многопоточность от Московского физико-технического института;
    • Python Basics for Data Science;
    • Programming for the Web with JavaScript;
    • Introduction to C++.
    • «Чистый код» Роберта Мартина;
    • «Совершенный код. Мастер-класс» Стива Макконнелла;
    • «Искусство программирования» Дональда Кнута;
    • «Паттерны проектирования» Эрика и Элизабет Фримен;
    • «Алгоритмы: построение и анализ» Томаса Кормена и Чарльза Лейзерсона.
    Как стать программистом с нуля самостоятельно?
    Что нужно знать, чтобы стать программистом?
    Как выучиться на программиста?

    Тест: какой язык программирования вам подойдет?

    Инструкция

    Поделиться

    Скопировано
    2 комментария
    Комментарии
    • Станислав Г

      Если хочешь стать программистом, не спрашивай "с чего начать". Начни уже!

    • Araik

      10 звезд