Обучение программированию с нуля – пошаговое руководство для начинающих. Десять шагов от чайника к программисту-профессионалу

  • Технологии: HTML, CSS, JavaScript, Git, Node.js, React.js и другие.
  • Язык: английский.

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

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

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

2. Codecademy

  • Технологии: HTML, CSS, JavaScript, Angular.js, React.js, Python, Ruby и другие.
  • Стоимость: бесплатно или от 20$ в месяц за дополнительный контент.
  • Язык: английский.
  • Уровень сложности: лёгкий-средний уровни.

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

В Codecademy также есть комплексные платные программы, которые систематизируют и объединяют материалы разных курсов. К примеру, программа Build Websites from Scratch шаг за шагом обучает разработке простого сайта с нуля с использованием различных технологий.

3. Coursera

  • Технологии: HTML, CSS, JavaScript, Angular.js, Java, Python, Ruby, Swift и другие.
  • Стоимость: бесплатно или от 49$ в месяц за дополнительный контент.
  • Язык: английский, русский и другие.
  • Уровень сложности: все уровни.

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

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

4. edX

  • Технологии: HTML, CSS, JavaScript, Java, Python, Ruby и другие.
  • Стоимость: бесплатно или от 49$ в месяц за сертификат.
  • Язык: английский и другие.
  • Уровень сложности: все уровни.

На edX вы можете получить доступ к курсам от известных компаний и университетов. Среди них есть, к примеру, знаменитый вводный курс для начинающих программистов Introduction to Computer Science от Гарвардского университета. Образовательный контент представлен в основном видеолекциями и текстами. Некоторые курсы содержат тесты и другие интерактивные задания.

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

5. ИНТУИТ

  • Технологии: HTML, CSS, JavaScript, алгоритмы и базы данных, C#, Java, Python, Ruby, и другие.
  • Стоимость: бесплатно или от 500 рублей в месяц за услуги тьютора.
  • Язык: русский.
  • Уровень сложности: все уровни.

В каталоге образовательной платформы «ИНТУИТ» есть текстовые и видеокурсы от российских учебных заведений и международных IT-компаний. Контент площадки охватывает все основные сферы программирования от разработки сайтов до создания настольных программ. Самостоятельное обучение бесплатно, но есть платная услуга, в рамках которой пользователю помогает персональный тьютор.

6. Stepic

  • Технологии: JavaScript, C#, нейронные сети, C++ и другие.
  • Стоимость: полностью бесплатно.
  • Язык: русский, английский.
  • Уровень сложности: легкий-средний.

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

7. Современный учебник Javascript

  • Технологии: JavaScript и другие.
  • Стоимость: бесплатно или от 6 500 рублей за дополнительный курс.
  • Язык: русский.
  • Уровень сложности: все уровни.

Этот ресурс посвящён языку JavaScript и сопутствующим веб-технологиям. Здесь вы найдёте очень подробный, хорошо структурированный и доступный для понимания текстовый курс по JS. Задания после каждой темы помогут закрепить полученные знания. В то же время материал чисто теоретический и не учит созданию проектов на практике.

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


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


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

Основы основ

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

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

Преподаватель курса Введение в архитектуру ЭВМ. Элементы операционных систем (ресурс: Stepic, доступ: с 8 ноября, длительность: 7 недель) обещает разъяснить, как функционирует компьютерная техника начиная с элементарных логических схем, заканчивая сложными мультипроцессорными системами.

Хорошим дополнением к предыдущему может стать курс История ЭВМ и программирования (ресурс: Лекториум, доступ: зима 2015/2016, длительность: 5 недель). От него стоит ждать хронологии развития компьютерных систем и программирования в СССР и России в сравнении с аналогичными тенденциями в США и Западной Европе. В программу занятий также включены ключевые принципы работы электронно-вычислительных машин и основные типы языков программирования.

Мини-курсы Основы программирования 1 (ресурс: Geek Brains, доступ: всегда открыт) и (ресурс: Geek Brains, доступ: с 5 ноября, длительность: 2 недели) раскрывают базовые термины и понятия, необходимые программисту, объясняют, чем отличаются популярные языки, и для чего предназначен каждый из них. Преподаватели рассказывают о популярных направлениях разработки, учат создавать простейшие программы и помогают определиться с выбором языка для дальнейшего изучения. Два курса одинаковые по содержанию, но отличаются форматом. Первый состоит из видеозаписей, второй - это несколько онлайн-трансляций, во время которых можно задавать вопросы лектору.

Еще один мини-курс, предназначенный для ознакомления с основами разработки ПО - Объектно-ориентированное программирование (ресурс: Geek Brains, доступ: всегда открыт). Материал полностью сфокусирован на одноименной парадигме программирования, знание которой необходимо для освоения практически любого современного языка.

Более углубленное погружение в предмет обеспечит курс Основы программирования (ресурс: Prometheus, доступ: с 19 января, длительность: 8 недель). Его автор учит азам разработки на примере конкретных задач с использованием языка Python.

Освоив базовые принципы программирования, вы сможете пройти курс Разработка и анализ алгоритмов (ресурс: Prometheus, доступ: с 26 января, длительность: 9 недель), чтобы лучше разобраться в подходах к анализу, сравнению и построению алгоритмов. Эти знания пригодятся в любом направлении разработки.

Веб-программирование

Вы давно мечтаете создать личный блог или реализовать свои идеи в новом веб-сервисе? А, может, хотите разрабатывать интернет-проекты под заказ? Тогда вам нужно освоить инструменты для построения и визуального оформления веб-страниц (HTML, CSS), языки веб-программирования (JavaScript, PHP, Python и т.д.) и разобраться со смежными технологиями вроде баз данных. Попробуйте что-нибудь из этих курсов:

  • Основы разработки сайтов и веб-приложений
  • Web-технологии
  • HTML, CSS (ресурс: HTML Academy, доступ: всегда открыт).
  • HTML5. Основы клиентской разработки (ресурс: ИНТУИТ, доступ: всегда открыт);
  • JavaScript и JQuery с нуля
  • Программирование на Python (ресурс: Stepic, доступ: всегда открыт);
  • Введение в программирование на Python (ресурс: ИНТУИТ, доступ: всегда открыт);
  • Введение в программирование на языке Python (ресурс: Microsoft Virtual Academy, доступ: всегда открыт);
  • Основы PHP (ресурс: Lendwings, доступ: всегда открыт);
  • PHP. Быстрый старт (ресурс: Geek Brains, доступ: всегда открыт);
  • Базы данных (ресурс: ИНТУИТ, доступ: всегда открыт).

Программирование под мобильные платформы

Стремительное развитие мобильных технологий сделало создание игр и приложений для гаджетов одним из самых перспективных направлений разработки. Если и вы желаете ступить на эту стезю, для начала стоит решить, с какой платформой хотите работать: iOS или Android. Каждая из них требует уникального подхода к разработке и знаний соответственных технологий. Определившись, можете выбрать подходящие курсы для образования.

Устали от скучных книг и лекций? Мы сделали подборку ресурсов для обучения языкам программирования в интерактивной форме.

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

Hexlet

Hexlet - здесь собраны бесплатные курсы по C, PHP, JavaScript, Bash.

Главное отличие от других проектов (например, Codecademy или CodeSchool) в том, что здесь нет симуляторов: в каждом уроке пользователь работает с полноценной машиной, подключенной к сети. На сайте представлено 8 целиком бесплатных курсов.

HTML Academy

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

Codeacademy

Codeacademy - популярный ресурс для новичков, в 2014 году достигший отметки в 24 миллиона пользователей. Здесь собраны курсы по самым популярным языкам, инструментам и многому другому. Задания написаны максимально понятным языком, а если что-то не получается, можно воспользоваться подсказкой или поискать решение на форуме.

Codeschool

Codeschool - ещё одна популярная платформа для начинающих и тех, кто уже в процессе карьерного роста. Процесс обучения сводится к просмотру видеороликов и упражнений по ним. Здесь собраны более 60 курсов, в том числе по HTML/CSS, JavaScript, Ruby, Python, .NET, iOS, Git, аналитике данных, из которых 13 доступны бесплатно.

CheckIO

CheckIO - онлайн игра для обучения программированию на Python или JavaScript, построенная в формате приключения.

CodinGame

CodinGame - онлайн-платформа для программистов, где решение задачи сопровождается визуализацией в стиле видео-игр, а IDE поддерживает 23 языка программирования. Кроме того, крупные компании принимают в качестве примера код, написанный в CodinGame, при устройстве на работу.

Codecombat

Codecombat - одна из лучших игр для изучающих программированию. Она позволяет игрокам получить базовые знания нескольких языков программирования, например JavaScript или Python. Приятно ещё и то, что игра локализована, а значит доступна и тем, у кого проблемы с английским.

Code Hunt

Code Hunt - игра от Microsoft Research, которая учит искать ошибке в коде. Решив проблему, игрок получает очки и может двигаться дальше.

Писать можно на Java, C#, или на обоих языках.

CodeFights

CodeFights - ещё одна платформа для решения задач. Можно сражаться с ботами, друзьями и неизвестными игроками. Интересно то, что участвуя в турнирах, которые, кстати, проходят довольно часто, можно попасть на собеседование в известную IT компанию.

Ruby Warrior

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

The AI Games

The AI Games - развивайте навыки программирования в соревнованиях с другими игроками, пишите своих ботов, выигрывайте призы, но главное - получайте удовольствие от программирования.

Codewars

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

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

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

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

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

Со временем все больше людей, не связанных с IT, используют базы данных и электронные таблицы. Работа с электронными таблицами уже в какой-то мере может считаться элементарным программированием, дальнейшего развития этих навыков можно добиться, начав изучать Visual Basic.

«Умение программировать стало четвертой составляющей грамотности. Каждый должен знать, как наш цифровой мир работает, не только инженеры» - Марк Серман, исполнительный директор Mozilla Foundation.

Мы писали об обучающих играх в статье « ». Но игры появились не сразу.

Как же это работало раньше?

Языки программирования начального уровня и обучающие игры появились с широким распространением персональных компьютеров в 80-х годах. Помимо обучающих алгоритмических языков, которые применялись на уроках информатики в школах и ВУЗах, но в дальнейшем были забыты, повсеместно использовался язык Бейсик. Именно с этого языка программирования началось знакомство с ПК для многих программистов.

Постепенно Бейсик трансформировался в целое семейство языков, включая Visual Basic, популярный и в наше время. Учитывая слабость аппаратного обеспечения компьютеров прошлого века, Бейсик был единственным вариантом для пользователей, которые грузили программы с ленточной кассеты.

В каком направлении двигаться сейчас

Все зависит от возраста. Детям дошкольного возраста лучше всего начать с игр, развивающих логическое мышление, например, с Minecraft и его логического продолжения , воплощенного проектом code.org.

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

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

Хотите освоить веб-разработку. Записывайтесь на профессию .

Почти все разработчики рано или поздно сталкиваются с необходимостью запустить или быстро проверить какой-то код, но не все знают, что для такой простой задачи совсем не обязательно запускать тяжёлые десктопные IDE или прикладные компиляторы. Достаточно воспользоваться онлайн-инструментами, которые позволяют всё сделать намного быстрее: Ctrl+C, Ctrl+V, Run, вжух - и вывод программы уже перед вашими красноватыми глазами.

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

Koding

Koding.com не является онлайн-компилятором в привычном смысле. Каждый пользователь сервиса может создать в облаке несколько полноценных виртуальных машин под управлением Ubuntu 14.04, на которых может сделать всё, что пожелает, в том числе - скомпилировать код. Все популярные языки поддерживаются по умолчанию, но вы с лёгкостью сможете добавить свои.

Кроме панели управления своим сервером, в интерфейсе доступна удобная IDE и окошко терминала. Koding является самым универсальным средством, далее мы рассмотрим более простые и специализированные варианты.

IdeOne

IdeOne - это онлайн компилятор, а также инструмент отладки, который позволяет прямо в браузере выполнять код на более чем 60 языках программирования и их конкретных версиях.

Для тех, у кого нет девушки, создатели предусмотрели компиляцию кода на языке Brainfuck.

JDoodle

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

jsFiddle

Пусть название вас не обманывает - jsFiddle создан не только для JavaScript. Этот онлайн-редактор для фронтенда позволяет проверить любое сочетание JavaScript, HTML и CSS. Разумеется, есть поддержка разных фреймворков, например, jQuery, Vue, React, TypeScript, а также CSS-препроцессоров вроде SCSS. Для удобства вы можете выбрать привязку клавиш из любимого редактора. Правда, только в том случае, если ваш любимый редактор - Vim, Emacs или Sublime Text.

CodePad

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

Главным его достоинством является простота и лёгкость: сайт будет быстро работать даже при медленном интернете. Предусмотрено автоподключение стандартных заголовков, а также интеграция с Vim или Emacs.

Из минусов можно назвать полное отсутствие подсветки синтаксиса при вводе кода в форму. Впрочем, при просмотре уже сохранённой записи подсветка присутствует.

GCC GodBolt

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

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