- Кто такой программист
- Выбор языка, технологии и направления
- Как составить резюме, если нет опыта?
- Начните с изучения языка программирования
- Шаг 1. Знакомство с веб-разработкой
- Свои небольшие проекты
- Книги по программированию для начинающих
- Поддержать автора
- Где найти самоучитель по программированию?
- Шаг 2. Обучение
- Самостоятельное обучение
- Обучение на курсах программирования
- Как найти наставника и чего от него ожидать
- Как можно получить начальный опыт
- Что учить веб-разработчику на все «двадцатые»?
- Метод Франклинa
- Лекции и литература
- Образовательные ресурсы с курсами и лекциями
- Учебная литература
- Самоучители для начинающих
- Что нужно знать и уметь
- Изучение алгоритмов
- Как стать программистом с нуля
- Подбор направления
- Выбор языка программирования
- Самообразование
- Онлайн-курсы
- Составление резюме и портфолио
- С чего программисту начать поиск работы?
- Определитесь с направлением
- Выберете направление
Кто такой программист
Программист — это человек, который разрабатывает программы и алгоритмы для решения конкретных задач. В своей работе он использует математическое моделирование, на основе которого пишет код. Продуктами работы программистов могут быть компьютерные игры и операционные системы, веб-сайты и приложения.
Программистом может стать любой желающий, независимо от пола и возраста. Но он должен искренне интересоваться компьютерами и веб-технологиями, потому что они постоянно развиваются и изменяются, поэтому специалист должен следить за изменениями и постоянно обновлять знания.
У программистов есть такие качества, как:
- стрессоустойчивость,
- внимание,
- упорство,
- ответственность,
- креативность.
Кроме того, у большинства есть высшее, часто техническое, образование. Если это гений-самоучка, не помешает набраться опыта, чтобы устроиться в известную компанию.
Выбор языка, технологии и направления
После того, как вы уже станете программистом, через пару лет работы вы сможете выбрать любой язык, какой захотите. Однако, выбирая первый язык программирования, новичок должен учитывать несколько важных критериев:
- Наличие вакансий на рынке труда.
Конечная цель обучения — устроиться на работу программистом. Это будет довольно сложно сделать, если на рынке труда просто нет никого, кто ищет разработчиков для работы с выбранным вами языком программирования. Чтобы выбрать язык, нужно оценить сайты с вакансиями, оценить, каких специалистов они ищут, написать на нескольких необходимых языках. Затем можно переходить ко второму критерию.
- Маленький начальный уровень.
Если вам приходится тратить много времени на изучение языка по вашему выбору, это может легко отбить у вас желание учиться программировать. Для начала лучше потратить некоторое время на языки, которые считаются легковесными: Python, PHP и Ruby.
- вам нужно определить направление программирования самостоятельно.
Будь то настольное или мобильное программирование, игры или Интернет, может быть, низкоуровневое программирование или что-то еще. Самыми популярными и относительно легкими секторами являются веб-разработка, мобильные и настольные клиенты. Для каждой из этих областей одни языки могут идеально подходить, а другой — совсем не подходить. При выборе языка программирования обязательно учитывайте этот фактор.
- Так или иначе, вам придется изучать веб-технологии.
Это языки разметки HTML, стили JavaScript и CSS. А на следующем этапе вы уже можете изучить серверный язык (Python, Ruby, PHP и другие) и подходящие для него веб-фреймворки. Также необходимо ознакомиться с базами данных, ведь это упоминается практически в каждой вакансии программиста.

Как составить резюме, если нет опыта?
В резюме рекрутер изучает амбиции человека — куда он хочет прийти и как он это делает. Анна Смирнова рекомендует собирать весь опыт, связанный с веб-разработкой: участие в хакатонах, участие в митапах, некоммерческих и фриланс-проектах, обучающих курсах. Также необходимо указать предыдущую работу в другой области, но это должно быть сделано кратко и через точки соприкосновения с новой профессией.
Еще один важный момент — это начинка навыков. Например, в HeadHunter они действуют как теги, которые рекрутеры используют для поиска кандидатов. Поэтому лучше всего описывать максимальное количество технологий, которые вы изучали или с которыми приходилось работать, а не только базовый JavaScript, HTML и CSS.
Начните с изучения языка программирования
Новички впадают в ступор, не зная, какой язык учить. Но это неважно. Более опытные специалисты владеют несколькими языками, поэтому, скорее всего, позже вам придется начинать изучать второй, третий язык и так далее. То есть это выбор из разряда «с какой книги начинать обучение в первом классе — с азбуки или с« математики».
Если вы уже определились именно с направлением, можете сразу выбрать подходящий язык:
- Приложения для iPhone написаны на Swift, а для Android — на Java;
- Windows-приложения — на C#;
- Анализ данных, математические вычисления — на R, Python, Matlab;
- Автоматизация, разработка скриптов — на Ruby, Python, Bash и так далее;
- Игры — на C ++, C #, JavaScript;
- микроконтроллеры, роботы, Arduino — на C.
Найдите авторитетный ресурс, который обучает выбранному вами языку с нуля, и следуйте приведенным там рекомендациям. Это может быть книга, веб-сайт или, например, бесплатный курс Coursera. Найдите ответы на свои вопросы в Google.
Если в какой-то момент вы застряли, не стесняйтесь спрашивать опытных программистов на тематических форумах. Конечно, они не обязаны вас учить, но если у них будет свободное время, они с радостью помогут новичку.
Шаг 1. Знакомство с веб-разработкой
Начнем с общего понимания направлений веб-разработки. Вы должны решить, насколько вам подходит программирование и какое направление ближе всего: front-end или back-end.
Интерфейсный разработчик отвечает за внешний вид страниц сайта. Он получает макет от дизайнера и преобразует его в готовую страницу: он адаптируется к разным экранам, все кнопки работают при нажатии, а диаграммы или таблицы отображаются правильно.
Бэкэнд-разработчик отвечает за работу сайта. Он взаимодействует с сервером, частью сайта, где хранится вся информация. Создавайте базы данных и управляйте ими, а также интегрируйтесь с внешними службами.
На этом этапе стоит потренироваться на бесплатных тренажерах. Тематика тренажеров и продолжительность их изучения могут быть разными. Например, учебное занятие «Введение в веб-разработку» займет 4 часа и даст вам понимание основных технологий веб-разработки. Далее вы можете выбрать симуляторы, которые более подробно раскрывают некоторые направления развития. Уроки рассчитаны на разные уровни, от новичков до продвинутых пользователей.
На YouTube много информации и базовых уроков. Вы можете сами изучить их дома. Другой вариант — читать книги по развитию для начинающих. В любом случае вам необходимо убедиться, что информация актуальна. ИТ стремительно развиваются и существует риск получения устаревших знаний и, следовательно, переобучения на длительное время.
«Я начал с симуляторов HTML и CSS Академии. Решил, почему бы не попробовать. Так пролетело около двух месяцев: с утра до вечера решал задачи на тренажере, параллельно изучал статьи и видео, которые находил в Интернете. И в какой-то момент я понял, что он мне очень нравится. Осталось определиться с направлением: backend или frontend. Снова были статьи, тонны видео об их различиях, плюсах и минусах и, наконец, интерфейсное решение. Приглянуло то, что результат фронтальной работы виден сразу. Смотрите, во что превращаются ваши усилия, и мотивируйте их », — рассказывает разработчик Кирилл Тертунов о первых шагах в профессии.
К чему готовиться: если у вас вообще нет опыта программирования, вы ничего не поймете на этом этапе! Это хорошо. Как только вы получите первое представление о развитии, вы сможете понять, в каком направлении двигаться.
Стажировка продлится около месяца.
Свои небольшие проекты
После активного выбора и изучения технологий стоит применить полученные знания на практике. Это очень важный момент, потому что без практики вы не сможете продвинуться в своей нише.
По мере того, как вы узнаете, лучше начинать создавать свои собственные небольшие проекты, даже если они маленькие и бесполезные. Таким образом вы сможете закрепить свои знания и в ходе дальнейшего обучения понять, о чем идет речь. Например, если вы веб-разработчик, создаете собственное небольшое портфолио или разработчик игр, попробуйте воспроизвести небольшие проекты, представленные на рынке.

Активная практика придаст уверенности в своих силах и позволит быстро применить их в реальных проектах. Также при приеме на работу работодатели попросят вас продемонстрировать свои знания о тестовых заданиях.
Книги по программированию для начинающих
В 2018 году вышла книга Якова Крамаренко «Введение в разработку программного обеспечения». Это полезная книга для тех, кто учится программировать с нуля. Выделены начальные шаги в веб-разработке, не затрагивая серверную часть. В доступной форме он рассказывает о HTML, CSS и Javascript, которые необходимы, если вы изучаете веб-программирование в 2020 году.
Кроме того, книга на трех языках. Вы можете читать программирование на английском или начать учиться программировать на английском — доступны все варианты! Главное — начать 🙂
Для тех, кто только начинает изучать программирование и любит работать с книгами, я считаю, что это хороший вариант. Книга доступна бесплатно или за дополнительную плату. Думаю, автору стоит заплатить!
Поддержать автора
Я мечтаю сделать программирование доступным для всех. Если вы готовы поддержать идею создания бесплатного контента, полезного для людей, вы можете перевести доступную вам сумму через страницу https://money.yandex.ru/to/410011268740994 или форму ниже:
Для перевода в гривне или долларах можно перевести деньги на карту Приватбанка: 4731185616241912
Вы также можете подписаться на канал Telegram https://t.me/itman_in и канал ITMAN на Youtube. Когда у меня будет 1000 подписчиков, я постараюсь организовать регулярную публикацию полезных материалов, а также обзоров курсов и книг по планированию обучения.
Так что если вы хотите добавить мне мотивации, принести пользу себе и другим — поделитесь энергией денег, зарегистрируйтесь и все будут счастливы 🙂

Где найти самоучитель по программированию?
лучше подойти к обучению комплексно, например, объединив онлайн-курсы, документацию на официальном языке, лекции, статьи, книги. На GitHub есть огромная коллекция бесплатных книг по кодированию. Также доступен корпус электронных книг на 24 языках программирования.
Шаг 2. Обучение
Определившись с направлением, приступаем к тренировкам. Вы можете учиться самостоятельно или записаться на курсы верстки или программирования.
Самостоятельное обучение
Бесплатно, но сложнее, чем учиться по готовым программам. Для этого составьте резюме: наметьте темы, выберите упражнения и проекты своими руками, которые потом украсят ваше портфолио.
Идеи учебных проектов
- Клон простой старой игры. Space Invaders, Pacman или что-то в этом роде с Atari 2600. По крайней мере, три одинаковых (но против компьютера).
- Счетчик калорий. Приложение, с помощью которого можно рассчитать индивидуальную суточную норму калорий.
- Умный домашний интерфейс. Просматривайте показания датчиков и время прибытия транспортного средства на остановку рядом с вашим домом на одной странице. Мы берем открытые данные из Интернета, загружаем их и обрабатываем с помощью JavaScipt.
- Детектор активности. Все их делают, но вдруг вы получаете первое нормально.
- Конструктор сайтов на JavaScript для браузера.
- Создайте свой собственный сайт-визитку, если у вас есть собственный небольшой бизнес. С листами продуктов, информацией о материалах и поставщиках и красивым прайс-листом.
Обучение на курсах программирования
На рынке существует множество курсов для разного бюджета, с разной продолжительностью и дополнительными опциями от школ — например, в HTML Academy есть личный наставник во время обучения, а после — стажировка и помощь в поиске работы.
При выборе школы важно понимать, что информация в программе актуальна и действительно будет вам полезна при приеме на работу.
Незаменимая основа для любого хорошего разработчика / дизайнера верстки
Для этого вам может понадобиться не один, а два или три курса, например, по обычной и адаптивной верстке, но также и по JavaScript.
Договоренность
- Макет страницы согласно макету Figma
- Доступен семантический кроссбраузерный макет
- Создавайте адаптивные сетки на FlexBox и Grid
- Форматирование текста и декоративных элементов
- Оптимизация кода
- Автоматизация создания проекта
- Макет БЭМ
- Использование препроцессоров
- Работа с адаптивной графикой и графикой Retina
- Макет PixelPerfect
- Проверка кода
- Тестирование макета с помощью Devtools
- Макет Retina
JavaScript
Курсы должны четко объяснять основные вещи программирования: типы, операторы, алгоритмы, функции, циклы, объекты и структуры данных. Их понимание пригодится, даже если вы выучите другой язык.
Концепции:
- Работа с деревом DOM
- Интегрированные API
- Шаблон
- Асинхронность
- Проверка формы
- Сферы деятельности
- Модульность
- Объекты, неизменяемость и компонентный подход
- Связывание данных
Сокращения:
- HTTP: XML, JSON, JSONP, XMLHttpRequest
- REST API
- СУХОЙ
- ООП
Инструменты (для верстки и JavaScript):
- Редактор кода — код Visual Studio
- Препроцессоры (Less, Sass)
- Gulp или Webpack для автоматизации сборки
- Git для контроля версий
- Figma или Photoshop для графики
- Chrome DevTools для отладки
- Терминал
К чему готовиться: на этом этапе вы столкнетесь с первыми трудностями и чувством усталости. Практически каждый делает ошибки и чувствует себя глупо, когда учится. Важно не поддаваться желанию сдаться и сдаться. Для этого правильно выделите время на учебу и отдых и найдите наставника. В общей сложности изучение основ займет около полугода.
Как найти наставника и чего от него ожидать
На этапе обучения наставник практически незаменим. Он может проверить код, ответить на сложный вопрос, оказать моральную поддержку на вершине своего опыта программирования.
Хорошие курсы назначат вам хорошего наставника, который будет задавать вопросы и отслеживать ваши успехи. Если вы учитесь самостоятельно, не волнуйтесь, у вас закончится поддержка — крикните в социальных сетях и попросите кого-нибудь помочь вам. Другой вариант — поискать наставника на форумах программистов или в сообществе разработчиков. Например, в HTML Academy есть чат сообщества в Telegram, где можно задать любые вопросы.
«Я совмещал обучение с работой из дома. В будние дни он тренировался около 3 часов, в выходные еще больше — в целом в среднем четыре часа. Самое сложное — это JavaScript.
