30 лучших онлайн-курсов программирования с нуля: бесплатные и платные
Научиться программированию можно с нуля, даже если вы всю жизнь работали менеджером по продажам или офисным служащим и понятия не имеете, чем занимаются айтишники. Специалисты IT сферы всегда востребованы на рынке труда, а их работа хорошо оплачивается.
Сейчас можно учиться не выходя из дома и в удобное время, при этом продолжать работать и уделять время семье. На онлайн-курсах вы будете смотреть видео-лекции, отрабатывать теорию на практике и выполнять много домашних заданий. А с обратной связью от преподавателя, наставника или куратора обучение проходит не менее эффективно, чем в офлайне.
Через несколько месяцев вы уже составите портфолио из собственных проектов и получите комплексные знания в выбранной области: от веб- и мобильной разработки до разработки игр и вёрстки сайтов. Некоторые школы организуют для своих учеников стажировки и помогают с трудоустройством.
Мы подготовили подборку онлайн-школ, которые обучают взрослых программировать с нуля.
Онлайн-курсы
Компьютерная академия «ШАГ»
Сайт: https://msk.itstep.org/Телефон: +7 495-151-19-01
Стоимость: 6 800 р. в месяц — дистанционный формат
Учебная программа “Разработка программного обеспечения” создана для тех, кто хочет стать профессионалом в программировании и рассчитана на тех, кто только начинает путь программиста или хочет заполнить пробелы в IT-образовании. Главная цель Компьютерной Академии ШАГ – трудоустройство каждого выпускника.
Программа
В основе программы лежат реальные требования IT-рынка. Методисты и преподаватели академии постоянно работают над ее улучшением и обновлением, чтобы выпускники Академии ШАГ могли достойно показать себя перед работодателем.
- Основы теории алгоритмов и структур данных
- Процедурное программирование с использованием языка С++
- Объектно-ориентированное программирование с использованием языка С++
- Использование библиотеки классов стандартных шаблонов STL
- Разработка Windows-приложений с использованием Visual C++ и WinAPI
- Теория баз данных. Системы управления базами данных: принципы программирования СУБД Microsоft Access, MySQL. Авторизованные курсы Microsoft IT Academy
- Программирование и администрирование Microsoft SQL Server 2012
- Программирование СУБД Oracle
- Системное программирование (потоки, процессы, примитивы синхронизации, межпроцессное взаимодействие). Сетевое программирование (сокеты, синхронные и асинхронные механизмы обмена данными, протоколы)
- Объектно-ориентированное проектирование. Язык UML
- Управление программными проектами
- IT Essentials. Аппаратное и программное обеспечение PC – авторизованный курс Cisco Networking Academy
- Аппаратное обеспечение рабочих станций и ноутбуков
- Установка и конфигурирование Windows 10 – авторизованный курс Microsoft IT Academy
- Разработка web-страниц на языке разметки HTML5 с использованием каскадных таблиц стилей CSS3
- Язык сценариев JavaScript
- Расширяемый язык разметки для создания web-страниц – XML
- Создание web-приложений, исполняемых на стороне сервера при помощи языка программирования
- PHP и технологии AJAX
- Разработка приложений с использованием технологии Клиент-Сервер. Создание приложений для платформы Microsоft .NET
- Создание облачных решений с использованием Windows Azure
- Программирование с использованием технологии Java
- Разработка приложений для мобильных устройств на основе операционной системы Android
- Разработка игр
- Паттерны проектирования
- Тестирование программного обеспечения (QA)
По окончании курса вы сможете
- Создавать Windows-приложения с использованием клиент-серверных технологий, графики, базы данных и мультимедиа
- Правильно и быстро просчитывать алгоритмы решения поставленных задач и стоимость их внедрения
- Проектировать базы данных различной степени сложности и величины, и управлять ими
- Разрабатывать web-приложения, реагирующие на действия пользователей и предоставляющие информацию, хранимую в базах данных
- Автоматизировать работу с базами данных в зависимости от постановки задачи или требования заказчика
- Участвовать в разработке компьютерных игр
- Модифицировать программы и приложения под конкретные задачи
- Разрабатывать сетевые приложения
- Создавать утилиты, решающие повседневные проблемы пользователя
- Создавать приложения и динамические web-узлы на основе платформы . NET
- Обеспечивать безопасность приложений, используя алгоритмы шифрования, аутентификации и безопасные соединения
- Тестировать программное обеспечение, используя современные методики и технологии; проектировать программные проекты, независимо от конечного языка реализации
Нетология
Сайт: https://netology.ruТелефон: 8 (800) 301-39-69, +7 (495) 152-55-28
Стоимость: 990 р.
Онлайн-программа Старт в программировании
Научитесь писать код за две недели. Создадите свой первый проект — небольшую игру для индивидуального подсчёта продолжительности жизни и мотивации
Для кого разработан курс
- Для тех, кто хочет стать разработчиком
Вы изучите основы, которые необходимы программисту, сориентируетесь в специальностях и сможете принять взвешенное решение, куда двигаться дальше: в веб, мобильную разработку или, например, разработку игр - Для тех, кто сомневается в том, что может стать разработчиком
Вы оцените, насколько вам интересно программирование, попрактикуетесь и поймёте, что это легче, чем кажется на первый взгляд
Из чего состоит курс:
- 2 недели общения с практикующими разработчиками, которые способны сложное объяснить просто
- JavaScript — познакомитесь с основами самого популярного языка программирования
- Ваш первый проект — создадите проект для индивидуального подсчёта продолжительности жизни и мотивации
- 20 часов практики — вы оцените профессию и сможете понять, насколько программирование — это ваше
- Развитие карьеры — помощь в составлении дальнейшей траектории обучения
Skillbox
Сайт: https://skillbox. ruТелефон: +7 (495) 120-40-96
Стоимость: бесплатные вебинары и интенсивы, курсы от 3 250 р./месяц
Советуем начать знакомство с курсами Skillbox с их бесплатных вебинаров и интенсивов — по ссылке вы сможете выбрать интересующую вас тему, поучаствовать в интенсивах с практикой и решить, какое конкретное направление в программировании выбрать.
На курсах вас ждут онлайн-лекции и практические задания на основе реальных кейсов. Работать с материалами можно в удобное время, а доступ к ним сохранится и после окончания курса.
В среднем студенты занимаются от 3 до 5 часов в неделю. Также у вас будет куратор в Telegram-чате, а преподаватель комментирует домашние задания и дает полезные советы.
Профессии — программы продолжительностью более 1 года. Позволяют освоить специальность с нуля, собрать портфолио, подготовить резюме и гарантированно найти работу в процессе обучения.
Профессии с трудоустройством:
- Java-разработчик 9 месяцев
- Веб-разработчик PRO 24 месяца
- Разработчик игр на Unity 12 месяцев
- Python-разработчик 12 месяцев
- Frontend-разработчик 10 месяцев
- C#-разработчик 12 месяцев
- iOS-разработчик 14 месяцев
- Android-разработчик 20 месяцев
- PHP-разработчик 12 месяцев
- Разработчик игр на Unreal Engine 4 12 месяцев
- Мобильный разработчик 24 месяца
- Геймдизайнер с нуля до PRO 18 месяцев
- Разработчик на С++ с нуля 18 месяцев
- Frontend-разработчик PRO 24 месяца
- Middle-разработчик на Unreal Engine 4 14 месяцев
- Разработчик AR&VR с нуля до PRO 24 месяца
- Java-разработчик PRO 24 месяца
- Fullstack-разработчик на Python 12 месяцев
- Go-разработчик 12 месяцев
- Fullstack-разработчик на JavaScript 12 месяцев
- Разработчик игр на Unity с нуля до Middle 20 месяцев
- Fullstack-разработчик на PHP 12 месяцев
- Fullstack-разработчик 12 месяцев
Курсы — программы продолжительностью от нескольких недель до 1 года, которые позволяют освоить конкретный навык или инструмент и добавить его в свое резюме.
Онлайн-курсы:
- Веб-разработчик с нуля до PRO
- Java-разработчик
- Python-разработчик
- Frontend-разработчик
- PHP-разработчик с нуля до PRO
- Мобильный разработчик PRO
- Веб-вёрстка
- Middle-разработчик игр на Unity
- SQL-разработчик
GeekBrains
Бесплатные интенсивы:
- “Основы программирования”
- “Веб-разработка для начинающих”
- “Java для начинающих”
- “Python для начинающих”
- «Swift для начинающих»
- «Андроид-приложение фото дня»
- “Создание интеллектуальных чат ботов на C#”
- «Android: Погодное приложение»
Udemy
Дистанционное освоение языков программирования, разработки мобильных приложений и веб-продуктов. Вы получите пожизненный доступ к видеоурокам. Выдается сертификат об окончании курса.
Курсы для начинающих на русском языке:
- Полное руководство по Python 3: от новичка до специалиста
- Веб разработка — с нуля до профессионала. Full Stack
- Полный курс по JavaScript + React — с нуля до результата
- Программирование на C#: от новичка до специалиста
- WEB-разработчик 2020
- Java для начинающих: с нуля до сертификата Oracle
- Язык программирования Swift
- Введение в программирование на Java за 1 месяц
- Изучаем Dart
- Веб разработка с нуля — изучите HTML5 & CSS3 за 2 часа
- PHP v.7+ и MySQL с нуля
- Создание сайта на WordPress для начинающих
- Познавая вёрстку: HTML, CSS и кое что ещё
- GoLang с нуля: Основы программирования на языке Go от Google
- Полный курс Андроид + Java с нуля
и другие программы
«Международная Академия Экспертизы и Оценки»
Курсы профессиональной переподготовки: программирование
Продолжительность: 3 месяца, 520 часов. Требование — наличие высшего или среднего профессионального образования. В результате обучения вы получаете диплом о профессиональной переподготовке установленного образца.
Обучение проходит в полностью дистанционном формате. К вам прикрепляется куратор, который отвечает на ваши вопросы, помогает с подготовкой аттестационной работы и т.д.
GeekBrains
Для обучения по образовательной программе начальной подготовки или базовых знаний не требуется. Курсы продолжительностью от 6 месяцев.
Веб-разработка:
- Веб-разработчик
- Программист Python
- Frontend-разработчик
- Javascript-разработчик
- Программист PHP
- Программист Java
- Go-разработчик
Мобильная разработка:
- Программист Android
- Программист iOS
Игры и десктоп:
- Разработчик C#
- Программист С++
- Разработчик игр на Unity
Занятия ведут практикующие профессионалы. После каждого урока дается практическое задание в различных форматах. Преподаватели помогут разобрать возникшие сложности с практическими заданиями в индивидуальном формате.
Каждый студент сможет стажироваться на реальном проекте GeekBrains или в компаниях-партнерах и создать реальный проект для портфолио. Обучают на основании государственной лицензии, а это значит, что у вас будет диплом о профессиональной переподготовке и электронный сертификат.
Онлайн-школа HEDU
Сайт: https://irs.academyТелефон: 8 800 300-46-39
Стоимость: подписка на платформу — 390 р./30 дней, PRO-пакет — 4 900 р./курс, индивидуальное обучение — 32 000 р./курс
Занятия проходят в формате вебинаров, после них вы будете получать домашние задания и проходить тесты для закрепления материала. В зависимости от выбранного пакета обучения вам будут доступны консультации с преподавателем, развернутый фидбек по домашним заданиям и т.д.
Курсы:
- Онлайн-курс веб-программирования 32 ч.
- Онлайн-курс по HTML 18 ч.
- Онлайн-курс по Java 20 ч.
- Онлайн-курс по PHP 24 ч.
- Онлайн-курс по Python 14 ч.
- Онлайн-курс по frontend 28 ч.
- Онлайн-курс по Паскалю 18 ч.
- Онлайн-курс разработки мобильных приложений 40 ч.
- Онлайн-курс создания игр 24 ч.
Краткосрочные курсы носят вводный характер, чтобы вы смогли познакомиться с новой сферой деятельности и попробовать свои силы на практике. По окончании курса вы получите сертификат.
«Столичный институт экономики и финансов»
Курсы веб-разработки:
- Курсы программирования для начинающих
- Курсы программирования web-сайтов
- Курсы WordPress
- Курсы Python
- Курсы Django
- Курсы UI/UX
- Курсы Ruby
- Курсы Ruby on Rails
- Курсы Qt
Обучение доступно в онлайн-формате. По окончании курса вы обязательно получите документ государственного образца.
Учебный центр «Специалист» при МГТУ Баумана
Вы можете начать свое обучение с азов программирования (языков Python, С или PHP) и подняться до уровня настоящего аса на продвинутых курсах. Дипломные программы позволят вам в короткие сроки освоить новую профессию (по окончании вы получаете диплом о профессиональной переподготовке).
Программы всех курсов программирования соответствуют требованиям профессионального стандарта «Программист». Курсы веб-программирования одобрены профессиональной ассоциацией РАЭК. По окончании курсов слушатели получают престижное свидетельство Центра.
Курсы для начинающих программистов:
- Разработчик Python (фуллстек) (дипломная программа)
- Разработчик JavaScript (фуллстек) (дипломная программа)
- Java — разработчик (дипломная программа)
- Разработчик приложений и баз данных на Java и Oracle SQL (дипломная программа)
- Разработчик приложений и баз данных на Java и Postgre SQL (дипломная программа)
- Магистр PHP 2021 (комплексная программа)
- Эксперт — программист Java с навыками рефакторинга (комплексная программа)
- Эксперт по разработке приложений под мобильную платформу iOS (iPhone и iPad) (комплексная программа)
- Разработчик Python (расширенная программа: разработка веб — приложений и анализ данных) (комплексная программа)
- Основы программирования и баз данных
- Программирование на языке C (Си)
- Программирование на языке Python. Уровень 1. Базовый курс
- Java. Уровень 1. Язык программирования Java
- JavaScript. Уровень 1. Основы веб — программирования
- Программирование на Visual С++
- PHP часть 1. Основы PHP7
- Язык программирования C# 8.0
- Swift. Основы программирования
- Программирование на языке R. Уровень 1. Базовые знания
и другие
Все учебные материалы по курсу предоставляются в электронном виде, вы участвуете в очных уроках в онлайн-формате.
OTUS
Сайт: https://otus.ruТелефон: +7 499 938-92-02
Стоимость: 10000-15000 р.
Здесь вы найдете подготовительные видео-курсы, после прохождения которых можно сдать вступительное тестирование и продолжить обучение на основных программах. Вас ждут видео-лекции и тестовые задания.
- Java для начинающих программистов
- Python для начинающих программистов
- С++ для начинающих программистов
- JavaScript для начинающих программистов
- РНР для начинающих программистов
- С# для начинающих программистов
Учебный центр Softline
Курс «Введение в программирование», 40 ак. часов
Пятидневный авторизованный курс Microsoft для начинающих. В рамках обучения студенты изучают основы программирования через использование Microsoft Visual Studio 2013 и одного из языков программирования Visual C# или Visual Basic. По окончании обучения выдаются сертификаты от вендора и Учебного центра.
Для программистов с минимальным опытом от 3 месяцев доступны и другие авторизованные курсы от мировых разработчиков ПО: Microsoft, Oracle, IBM, Android и др. Обучение доступно в дистанционном формате путем подключения к очной группе студентов.
Avenue
Обучение онлайн в группах до 12 человек. С проверкой домашних заданий и доступом к видео всех занятий. Общение в общем чате и постоянная онлайн-поддержка от преподавателя. По окончании курса — сертификат. Резюме лучших учеников курса направляют рекрутерам ведущих ІТ-компаний в Москве.
Дополнительно в программе — интенсив по трудоустройству. В качестве пробного занятия вы можете получить бесплатную видеозапись первого занятия предыдущей группы.
Программирование:
- Java разработчик. 5 месяцев
- PHP web-разработчик. 4 месяца
- Python для анализа данных. 3.5 месяца
- C++ разработчик (Си). 4 месяца
Веб-разработка:
- Javascript Full-Stack разработка. 5 месяцев
- Javascript Front-end разработка. 4 месяца
- HTML+CSS Вёрстка сайтов. 2 месяца
- Основы программирования (Web-разработка). 1.5 месяца
- Разработчик игр (Unreal Engine). 3 месяца
Мобильная разработка:
- Android (мобильная разработка). 4 месяца
- iOS разработчик (Swift). 4 месяца
SkillFactory
Сайт: https://skillfactory.ruТелефон: +7 495 291-09-12, +7 958 577-04-17
Стоимость: от 4 950 р./мес.
Уроки доступны на онлайн платформе для изучения в любое время. Вам предстоит выполнять домашние задания и работать в тренажерах. Студенты специализации получают доступ к сообществу в Slack для обсуждения учебы.
С самого старта программы вам помогает ментор: отвечает на вопросы, разбирает вместе с вами задачи, курирует финальные проекты. По окончании обучения у вас будет портфолио собственных проектов.
Курсы:
- Fullstack разработчик на Python
- Профессия веб-разработчик
- Профессия Android-разработчик
- Профессия iOS разработчик
- Профессия Java-разработчик
- Fullstack-разработчик на JavaScript
- Frontend-разработчик
- DevOps-инженер
- Профессия C# разработчик
В конце курса вы получите:
- Сертификат о прохождении курса
- Советы по поиску заказов на фриланс-биржах
- Подборку полезных ссылок для работы
Яндекс.Практикум
С первого дня вы учитесь на практике в онлайн-тренажёре. Команда наставников проверяет и комментирует ваши работы, помогает разобраться в сложностях и обучает собственным профессиональным приёмам. Поддержка в чате доступна 24/7.
Вы можете попробовать свои силы и познакомиться с азами профессии бесплатно на вводном курсе. Когда вы окончите курс и сдадите итоговый проект, вы получите диплом — официальный документ о дополнительном образовании.
Курсы:
- Разработчик C++, 8 месяцев
- Веб-разработчик, 10 месяцев
- Python-разработчик, 9 месяцев
«Университет искусственного интеллекта»
Обучение в формате видеоуроков. Для самостоятельной отработки вам будут доступны практические задания. Всё общение на курсе организовано на обучающей платформе.
Если у вас будут вопросы по материалу курса или практическому заданию — напишите куратору. По окончании курса вы получите сертификат на фирменном бланке Университета.
Курсы:
- «Введение в программирование»
- «Введение в IT»
- «Основы Python»
- «Python-разработчик»
Irbis-school
Онлайн курсы веб-программирования: от самых основ до ООП паттернов и популярных фреймворков. Основные языки — HTML, PHP, JAVASCRIPT, MySQL. Для обучения используется декстопное приложение (обучающий комплекс IRBIS-school). Уроки доступны только из этой бесплатной программы.
Основы даются бесплатно — это первые два урока. Дальше можно выкупать уроки по одному или пачками. Уроки написаны подробно с картинками и скринами. Если в процессе обучения возникнут вопросы, вы сможете получить прямую консультацию.
Центр компьютерного обучения «IT-эксперт»
Курсы можно проходить в онлайн формате:
- Курсы программирования с нуля: 24 ч
- Курсы веб программирования (PHP+MySQL): 28 ч
- Курсы веб-мастеров: 84 ч
- Обучение web-мастеров 56 ч
- Курсы Ruby: 40 ч
- Курсы Python для начинающих: 44 ч
- Курсы C++ Qt: 32 ч
Hexlet
Сайт: https://ru.hexlet.ioТелефон: +7 (499) 609-12-31
Стоимость: тариф PRO (все курсы, менторство) — 39$/месяц
Профессии — пошаговые программы обучения для начинающих разработчиков:
- Фронтенд-программист
- PHP-программист
- Java-программист
- Python-программист
- Node. js-программист
- Верстальщик
Профессии — готовые учебные программы, которые помогут освоить вёрстку и программирование с нуля. В каждой программе есть курсы и до четырёх проектов. Профессии включают до четырёх модулей. Каждый модуль представляет собой набор тематических курсов и проект.
Теория подается в формате видео и текстов. После каждого блока с теорией — квиз на закрепление. Вы выполняете практические задания, а менторы отвечают на вопросы, и проверяют задания. Кроме того, у вас будет наставник — персональный помощник.
Вы разработаете полноценные проекты от начала и до конца, а ментор будет помогать вам. В конце обучения у вас будет официальный сертификат Хекслета и портфолио.
Онлайн школа itProger
Сайт: https://itproger.comСтоимость: от 10 400 р./программа, от 560 р./курс
На протяжении нескольких месяцев вам предстоит пройти лекции из теоретических и практических уроков. Каждый новый модуль открывается раз в три дня в 19:00. У вас будет достаточно времени чтобы пройти все уроки, а также выполнить домашние задания.
К каждой лекции есть задания, которые вам предстоит отправлять на проверку. Также на самом сайте вы найдете сотни тестовых и практических заданий на вкладке «Тесты и практика».
Каждый ученик получает поддержку как со стороны лектора, так и со стороны наставника. Все вопросы можно задавать напрямую через специальную форму на сайте.
Онлайн-программы обучения:
- Профессия Java разработчик
- Профессия Python разработчик
- Профессия Unity разработчик
- Профессия Full Stack разработчик
- Профессия Front-end разработчик
После прохождения курса каждый ученик, купивший курс с типом «Стандарт» и выше, сможет подтвердить свои знания выполнив дипломный проект. В случае успешной сдачи дипломного проекта, ученик получает диплом об успешном прохождении онлайн программы обучения.
Кроме этого, доступны записанные курсы:
- Дополненная реальность / Создание Unity AR приложений
- Изучение C#, ASP. NET и создание Windows программ
- Изучение C++ от новичка до профи
- Java до профи: основы, UI дизайн и Android разработка
- Изучение Python до профи / Основы, Django, TKinter
- Современная вёрстка адаптивного веб-сайта
- Видеокурс по PHP, MySQL / Создание динамического сайта
- Изучение JavaScript: от нуля и до создания сайта
- Создание Андроид игры на движке Unity
- Создание игры под платформу iOS на Unity
После прохождения курса каждый ученик, купивший курс с типом «Наилучший» или «Всё включено», сможет получить сертификат. Также на сайте можно найти несколько бесплатных видео-уроков с практическими заданиями.
Сервис LETPY
Сайт: https://letpy.comТелефон: +375 (29) 718-21-82
Стоимость: первые 25 уроков — бесплатные, базовый доступ к курсу — 1490 р.
Интерактивный онлайн курс программирования Python 3 с нуля
- 157 уроков, включая 62 практических задания от простого к сложному
- Мгновенная проверка заданий: помощь в решении от умного робота, сообщества и наших экспертов
Обучение проходит в уникальной среде со встроенным интерпретатором python, которая доступна и с компьютера, и с телефона. Большинство проходит курс за месяц, но можно и быстрее.
Ссылка на сертификат будет активирована, как только вы пройдете 95% курса.
HTML Academy
Сайт: https://htmlacademy.ruСтоимость: подписка — от 300 р./месяц, профессия — от 4 410 р./мес.
Подробнейшие курсы по HTML, CSS и JavaScript. Сто тридцать интерактивных заданий — бесплатные. После их прохождения вы сможете создать свой сайт. Всего — 63 главы, 1317 заданий и испытаний.
Разобравшись с интерактивными заданиями вы сможете принять участие в интенсивах. Это профессиональные программы, где под руководством личного наставника вы научитесь создавать современные сайты и веб-приложения по критериям качества, принятым в веб-индустрии.
Для комплексного освоения материала выбирайте программу-профессию:
- Фронтенд-разработчик
- React-разработчик
После первого этапа обучения вас ждет второй — оплачиваемая стажировка. Курсы рассчитаны на новичков. Для прохождения курса достаточно базовой компьютерной грамотности. Чтобы успешно пройти курс вам понадобится 10−15 часов в неделю или 1,5−2 часа в день.
Бесплатные курсы и интенсивы
Нетология
Сайт: https://netology.ruТелефон: 8 (800) 301-39-69, +7 (495) 152-55-28
Стоимость: бесплатно
Мини-курсы:
- Как стать программистом, 3 дня
- Digital-старт: первый шаг к востребованной профессии, 6 дней
- Основы HTML и CSS, 2 недели
- С чего начать карьеру в IT, 3 дня
Coursera
Бесплатный курс на русском языке: Основы программирования на Python
~87 часов на выполнение всех заданий, 9 недель обучения
Для качественного освоения курса достаточно знания математики на уровне средней школы, опыта программирования не требуется. В курсе большое количество задач по программированию по нарастанию сложности. К каждому занятию прилагается полный конспект.
Курс проводился в оффлайн варианте для студентов бакалавриата факультета компьютерных наук НИУ ВШЭ.
Stepik
Бесплатные курсы для новичков в программировании:
- Введение в программирование (C++)
- Программирование на Python
- Основы программирования
- Java. Базовый курс
- Веб-разработка для начинающих: HTML и CSS
- JavaScript для начинающих
- Введение в Kotlin JVM
Для понимания курсов желательно иметь знания математики не ниже уровня средней школы и уметь достаточно свободно пользоваться компьютером.
Портал видеоуроков LoftBlog
Курсы:
- Изучение языка программирования. 8 уроков
- Введение в Python. 9 уроков
- Разработка Android приложения. 5 уроков
- Java для Android-разработчиков. 13 уроков
- Основы программирования. 12 уроков
- HTML для начинающих. 11 уроков
- Основы SQL для начинающих. 5 уроков
- Основы CSS. 7 уроков
- Основы PHP. 7 уроков
- Основы Javascript. 24 урока
- iOS приложение ToDo List на Swift. 25 уроков
- Сайт с нуля на WordPress. 2 урока
- WordPress для фрилансера. 10 уроков
- Введение в ActionScript3. 4 урока
и другие
Microsoft Virtual Academy
Сайт: https://docs.microsoft.comСтоимость: бесплатно, требуется учетная запись Windows Live ID
Узнайте о базовом синтаксисе и направлении мыслей для создания простых приложений с помощью модульных схем обучения:
- Первые шаги с помощью C#
3 ч 51 мин, 8 модулей - Первые шаги с помощью Python
4 ч 33 мин, 10 модулей
Кроме того, на сайте представлено множество курсов по разработке приложений для HTML5, Windows и Windows Phone, Microsoft Office 365, SQL Server, Azure и System Center для программистов с опытом.
«Смотри и учись»
Сайт: https://smotriuchis.ruТелефон: 8 (800) 550 93 57, 8 (495) 125 93 57
Стоимость: бесплатно
Рассчитанные на новичков онлайн‑курсы:
- Основы С++, 13 ч.
- PHP Базовый курс, 14 ч.
Онлайн Академия IT
На сайте доступны разнообразные курсы по языкам программирования, веб- и мобильной разработке:
- Программирование для всех начинающих. Изучаем язык VBA под Excel
- Основы C++. Программирование для начинающих
- Программирование с нуля
- Изучение языка программирования
- Python для начинающих
- PHP Основы
- Язык С для начинающих
- Уроки PHP 7
- Видео курс С++ Starter
- Ruby Essential
- Swift3 (для новичков)
- Базовый Java
- Разработка приложений под Android. Базовый курс
- Kotlin. Уроки по основам разработки android-приложений
- Ваше первое iOS-Приложение с нуля
- Введение в Unity3D
и другие уроки
Чтобы получить доступ к видеоурокам, необходимо зарегистрироваться.
Hexlet
Сайт: https://ru.hexlet.ioТелефон: +7 (499) 609-12-31
Стоимость: бесплатно
Бесплатные курсы по программированию для получения новых знаний и оценки глубины материалов на Хекслете:
- Python: Основы 13 часов
- Введение в программирование 45 часов
- Ключевые аспекты веб-разработки на PHP 7 часов
- Основы HTML, CSS и веб-дизайна 8 часов
- Ключевые аспекты разработки на Python 4 часа
- Основы современной вёрстки 15 часов
- Жизнь программиста 3 часа
- Введение в Ruby 34 часа
- Основы командной строки 30 часов
- Структура и интерпретация компьютерных программ 17 часов
- PHP: Настройка окружения 5 часов
- PHP: Основы 19 часов
- Введение в Си 19 часов
- Python: Настройка окружения 7 часов
- Введение в веб-разработку 5 часов
- Операционные системы 6 часов
- Основы программирования 60 часов
- JS: Настройка окружения 8 часов
Code Basics
Бесплатные практические уроки по программированию. Если вы совсем новичок и хотите научиться основам — переменным, строкам, циклам, функциям и т.д. Проект от создателей Хекслета.
YouTube-каналы о языках программирования
Подборка русскоязычных каналов и плейлистов, посвящённых различным языкам программирования:
программы и цены на обучение
Чтобы реализовать большой и долгосрочный проект, компании очень часто обращаются к образованным PHP-разработчикам.
Таким программистам необходимо заботиться о качестве и структуре кода, создавать современные сайты, писать всевозможные скрипты, внутренние системы управления платформами, а также хорошо знать базы данных и разнообразные модули.
Для обучения на такую сложную профессию существуют много интернет-порталов, где можно получить образование онлайн. В этой статье разбираются все основные ресурсы данной тематики.
Онлайн-университет «Skillbox»
«PHP-разработчик с 0 до PRO»
Обширная программа для изучения PHP, состоящая из 3 курсов. Поможет с нуля овладеть популярным языком программирования. Программа длится 12 месяцев и состоит из 4 курсов.
Первые 10 тем, входящих в программу:
- Введение в программирование — 4 урока
- Структура управления данными. Базовые концепции PHP — 6 уроков
- Протокол HTTP/HTTPS — 3 урока
- Пользовательские функции — 3 урока
- Файлы и каталоги — 3 урока
- Cookie/Session — 2 урока
- База данных MySQL — 12 уроков
- Объекты (базовые понятия) — 4
- Принципы — 3 урока
- Объекты — 3 урока
В конце каждого курса необходимо сдать дипломную работу, которая подтвердит квалификацию.
Geekbrains
«PHP. Уровень 1»
Курс «PHP. Уровень 1» создан с целью обучить начинающих программистов основам разработки веб-сайтов на языке PHP.
Новички изучат принципы объектно-ориентированного программирования и научаться правильно использовать основные конструкции языка. Более опытные разработчики получат возможность значительно повысить культуру написания кода и смогут грамотно и профессионально оформить скрипт своего веб-сайта.
Слушатель научится:
- Обращаться с фундаментальными единицами и структурами языка
- Работать с общепринятыми стандартами программирования
- Использовать процедурный подход к программированию на PHP
- Применять на практике основные приёмы разработки веб-сайтов
- Работать с базами данных
- Создавать быстрые и безопасные веб-сайты
- Реализовывать авторизацию пользователей с использованием сессий и cookies
- Проектировать бизнес-логику веб-сайтов
Программа курса:
- Урок 1. Введение в PHP
- Урок 2. Условные блоки, ветвление функции
- Урок 3. Циклы и массивы
- Урок 4. Работа с файлами
- Урок 5. Базы данных MySQL и работа с ними на уровне PHP
- Урок 6. Интерактивность: Методы передачи данных GET и POST, работа с формами и пользовательскими данными
- Урок 7. Авторизация и аутентификация
- Урок 8. Практика
Слушателям выдается сертификат об окончании обучения.
Udemy
Основы PHP программирования для начинающих
В курсе соединен ряд проблем, которые пришлось бы решать обычному разработчику. Например Вам придется довольно часто собирать данные пользователей, которые они вводят на сайте и записывать их в базу данных. Данный процесс рассматривается в курсе и показывается, как с помощью PHP можно обратиться в базу MySQL и получать или записать данные.
Чему вы научитесь
- После курса Вы сможете понимать азы PHP и создавать на этом языке стандартные решения.
- Научитесь с помощью PHP отправлять письма и делать записи в базы данных на сервере.
- Пройдя курс Вы сможете спокойно редактировать любой PHP код и разбираться в готовых элементах например в Word Press.
- Вы научитесь грамотно работать с данными и поймете азы объектно ориентированного программирования.
- Вы поймете как устроен рабочий процесс разработки на PHP.
- Вы узнаете о всех функциях необходимых для каждодневной работы.
Портал «otus.ru»
«Backend-разработчик на PHP»
Современные инструменты и лучшие практики для глубокого понимания процесса разработки на PHP.
В программу курса входят:
- Глубокое знакомство с библиотеками PHP и особенностями языка
- Навыки проектирования приложений, работы с базами и файлами, веб-фронтендом
- Привычка к хорошему и чистому коду
- Владение тактиками по созданию высоконагруженных систем
Продолжительность курса 5 месяцев, четыре из которых — обучение, а на пятом учащиеся разделятся на команды и будут реализовывать микросервис, используя гибкие методологии разработки.
Программа обучения:
- Модуль 1. Общие знания
- Модуль 2. База данных
- Модуль 3. Практики разработки
- Модуль 4. Архитектуры и HighLoad-системы
- Модуль 5. Проектный модуль
По окончании обучения слушатель получает сертификат.
Портал «beonmax.com»
«Курс PHP/MySQL»
Интерактивный онлайн курс PHP программирования сайтов для начинающих.
В процессе обучения слушатель получит знания и навыки:
- Что такое язык PHP и его применение
- Конструкции PHP — переменные, операторы, циклы, массивы, классы, функции
- Написание функций под задачи
- Объектно-ориентированное программирование (ООП)
- Полиморфизм, инкапсуляция, наследование, абстрактный класс, интерфейс в ООП
- Веб-сервер APACHE, установка и конфигурирование
- Система администрирования сайта PhpMyAdmin
- Проектирование структуры таблиц базы данных
- Работа с XML и JSON форматами
- Передача данных HTML-формы — методы GET и POST
- Безопасность — как защитить сайт от взлома
- Базы данных MySQL, основные операции
- SQL-запросы, синтаксис, работа с Active Records
- Создание парсеров для сбора информации для сайта
План курса:
- Подготовка к работе. Установка PHP и настройка веб-сервера
- Переменные и константы
- Условные операторы и ветвления
- Циклы
- Массивы. Функции для работы с массивами
- Функции. Создание собственных функций
- Язык SQL
- Работа с XML и файлами
- ООП
По завершении курса выдается сертификат.
Портал «php-start.com»
«Видеокурсы программирования на языке PHP»
Курс разработан специально для начинающих и учеников с неуверенными знаниями PHP.
Преимущества курсов:
- Качественные видеоуроки. Видео уже доступно: 25 бесплатных теоретических и практических уроков общей продолжительностью около 14 часов
- Удобная подача материала. Программа курса хорошо продумана и структурирована
- Дополнительные материалы
- Telegram-канал о PHP
Курсы:
- «PHP UP» – по запросу
- «Практические задачи с решениями» — 400 р.
- «PHP теория» — бесплатно
Интерактивные онлайн-курсы «HTML Academy»
«Основы PHP»
Слушатель учится внедрять PHP-код в разметку, работать с веб-сценариями, данными и адресом.
Знакомится с синтаксисом PHP. Использует условия, массивы, циклы и другие базовые конструкции, чтобы запрограммировать интернет-магазин.
Программа курса:
- Глава 1. Знакомство с PHP – 15 занятий
- Глава 2. Условия – 14 занятий
Всего 2 главы и 29 занятий.
Портал «webshake.ru»
«Курс PHP для начинающих»
В ходе прохождения этого курса слушатель освоит основы программирования на PHP и изучит возможности этого языка. Данный курс по PHP предназначен для обучения начинающих и содержит подробные текстовые и видео-инструкции.
В курсе всё изучается очень подробно — начинается обучение с того, как вообще работает PHP. Рассказывается о современных инструментах и подходах. И, конечно же, даются домашние задания.
Этот курс позволит освоить базовые принципы в программировании, без которых не обойтись ни одному будущему разработчику.
Программа курса:
- Уровень 1. Введение в курс PHP для начинающих
- Уровень 2. Настройка окружения
- Уровень 3. Основы разработки
- Уровень 4. Циклы и массивы
- Уровень 5. Взаимодействие с пользователем
- Уровень 6. Работа с файлами
- Уровень 7. Ещё немного практики
- Уровень 8. Заключение
После прохождения курса ученик получает сертификат об успешном обучении.
Портал «irs.academy»
«Онлайн-курс по PHP»
Слушатель пройдет онлайн-обучение PHP, освоит новые компетенции в программировании и станет востребованным специалистом.
Программа курса:
- Основы программирования, I часть
- Основы программирования, II часть
- Что такое протокол HTTP/HTTPS
- Управление данными. Базовые понятия PHP, I часть
- Управление данными, II часть
- Изучение пользовательских функций, I часть
- Пользовательские функции, II часть
- Работа с файлами и каталогами
- Использование Cookie/Session
- Использование базы данных MySQL, I часть
- Использование базы данных MySQL, II часть
- Основы программирования в PHP
Стоимость:
- «Без обратной связи» — 11 300 р.
- «VIP» — 11 800 р.
- «Индивидуальное обучение» — 32 000 р.
По окончании обучения слушатель получит сертификат, подтверждающий, что он прослушал 12 уроков онлайн-курса по PHP.
Практические курсы по программированию «Hexlet»
«PHP-программист»
PHP популярен и проще для новичков, чем большинство других серверных языков.
В программе:
- Умение строить веб-приложения на основе микрофреймворков
- Разработка веб-сайтов и приложений
- Веб-фреймворки Slim, Lumen и Laravel
- Работа с командной строкой
- Автоматизированное тестирование
- ООП, шаблоны проектирования
- Базы данных, понимание ORM (Object-Relational Mapping)
- Функциональное программирование, чистый код
- Основы алгоритмов и структур данных
Учебный план, первые 10 пунктов:
- PHP: основы
- Жизнь программиста
- Введение в веб-разработку
- Основы HTML, CSS и веб-дизайна
- Основы командной строки
- Системы контроля версий
- PHP: настройка окружения
- Ключевые аспекты веб-разработки на PHP
- PHP: массивы
- Проект № 1: Игры разума
После завершения курса слушатель получает официальный сертификат.
Интерактивные курсы программирования «FructCode»
«Курс PHP/MySQL»
Интерактивный курс PHP программирования для начинающих.
На уроках PHP слушатель узнает:
- Как настроить веб-сервер для работы с PHP и базами данных
- Как установить XAMPP для Windows, OSX (MacOS)
- Как управлять базами данных через PHPMYADMIN
- Основы проектирования структуры базы данных MySQL для вашего сайта
- Как работать с файлами с помощью PHP
- Как читать данные из XML/JSON файлов, обрабатывать и автоматически добавлять данные в базу
- Что такое GET, POST, PUT, HEAD, DELETE, PATCH, OPTIONS
- Как встраивать PHP-скрипты в HTML-страницу
- Базовые методы защиты вашего сайта от взлома
- Для чего нужны массивы, виды массивов и как с ними работать
План курса:
- Установка PHP и настройка веб-сервера XAMPP
- Переменные и константы
- Условные операторы и ветвления
- Циклы
- Массивы и функции для работы с массивами
- Функции и создание собственных функций
- Язык SQL и работа с базами данных
- Работа с XML и файлами
- Объектно-ориентированное программирование (ООП)
После успешного прохождения уроков и заданий курса HTML/CSS слушатель получит сертификат на пяти языках.
Портал «school-php.com»
«Курс PHP и MySQL — программирование с нуля»
Первый уровень программирования на PHP создан для тех, кто мечтает научиться создавать сайты, но не знает с чего начать, так же он подойдет тем, кто уже может сделать простые вещи, но ещё не ориентируется в своём собственном коде.
Благодаря простоте языка программирования первый уровень смогут освоить многие люди, единственное, что требуется — внимательность и ответственность в обучении.
Данный курс начинается с основ PHP и плавно переходит к основам базы данных MySQL. Много практики и выполнения интересных, а порой сложных, самостоятельных работ.
Первые десять тем из программы:
- Начинаем изучать PHP
- Практикуемся с версткой
- Массивы и Циклы
- Домен и хостинг
- Пользовательские функции
- Методы передачи данных GET и POST, работа с формами
- Улучшаем качество кода, include+GET, Суперглобальные массивы
- Фильтрация данных, $_COOKIE, $_SESSION
- Ядро, структура сайта, MVC
- База Данных MySQL. Основы
Школа онлайн обучения IT профессиям «LoftSchool»
«Комплексное обучение PHP»
Курс рассчитан на php-разработчиков с опытом от 0 до года, кто уже работал на php, но у кого нет возможности узнать, как писать правильно, а также закрыть пробелы в знаниях.
Учебная программа:
- Неделя 1 – Основы языка, работа с функциями
- Неделя 2 – Работа с данными, ООП
- Неделя 3 – Безопасность, MVC
- Неделя 4 – WordPress
- Неделя 5 – Laravel
- Неделя 6 – Закрытие курса
По окончании обучения слушатель получит сертификат с уникальным ID.
Онлайн академия «academiait.ru»
«PHP. Основы»
Бесплатный и доступный онлайн-курс «PHP. Основы». Пройдя данный курс, слушатель сделаете первый шаг к серьезному обучению и сможет чётко определиться с направлением интересов.
Программа курса:
- Массивы
- Циклы
- Условия
- Ошибки
- Функции
- Функции. 2 часть
- Массив $_GET
- Массив $_POST
- Session & Cookies
Портал «itproger.com»
Видеокурс рассчитан на новичков, которые хотят научиться программировать на PHP и создавать динамически сайты на нем.
Преимущества:
- Теоретическая база
- Практическая часть
- Домашние задания
План курса (первые десять пунктов):
- Введение в PHP и запуск локального сервера
- Вывод информации, комментарии, строковые операции
- Переменные, типы данных, константы и операции над ними
- Условные операторы (три типа условий)
- Массивы данных (3 типа массивов), а также цикл foreach
- Циклы For, While, Do While, а также операторы
- Динамическое подключение файлов в проект
- Функции, а также область видимости переменных
- Методы GET и POST. Создание формы
- Работа с файлами (запись в файл и чтение)
Стоимость:
- «Мини» — 950 р.
- «Стандарт» — 1 250 р.
- «Наилучший» — 1 700 р.
- «Все включено» — 2 500 р.
После прохождения курса, каждый ученик, купивший курс с типом «Наилучший» или «Всё включено» сможет получить сертификат об успешном прохождении онлайн видеокурса.
Как научиться программировать с нуля и найти первую работу. Большой FAQ от Reddit
Сайт dev.by опубликовал самые часто задаваемые вопросы по теме обучения программированию с нуля и поиска первой работы, собранные /r/learnprogramming.
Список вопросов, на которые отвечает гайд
Начало
С чего мне начать?
Какой язык программирования стоит выучить первым?
Где можно найти качественные образовательные ресурсы?
Как совершенствовать навыки
Как перейти с начального уровня на средний?
Где можно найти тренировочные упражнения и идеи для проектов?
Как улучшить навык реализовывать задачи/задания в программах (алгоритмическое мышление)?
Я не могу придумать классную идею для проекта. Мне просто не хватает креативности? Как другие программисты ищут вдохновение?
Где можно найти примеры хорошего кода и проектов для обучения?
Как выучить темы, которые рассматриваются в стандартных университетских программах по информатике?
Как начать крупный проект и не забросить его?
Распространённые страхи и опасения
Я уже слишком стар для программирования?
Есть что-то другое, чему мне сначала нужно научиться?
Нужно ли мне хорошо знать математику?
Я много гуглю или не знаю, как делать что-то, когда только собираюсь начать. Это плохо?
Программировать сложно?
Вопросы про обучение
Что значит «знать язык» или «уметь программировать»?
Я только что начал учить язык Х. Стоит ли мне начинать учить язык Y?
Стоит ли учить более одного языка программирования одновременно?
Это плохо, что у новичков иногда возникают проблемы с задачами и упражнениями?
Как найти/поддерживать мотивацию, чтобы учиться программировать?
С чего мне начать Х?
С чего начать делать видеоигры?
С чего начать делать веб-сайты/веб-приложения/веб-разработку?
С чего начать делать мобильные приложения/приложения для Android/приложения для iOS/приложения для Windows Phone?
Как автоматизировать что угодно?
Терминология и словарь
В чём разница между информатикой (computer science, CS), компьютерной инженерией (computer engineering, CE), программной инженерией (software engineering, SE), программированием и кодированием?
С чём разница между Cи, C++, Objective-C и C#?
В чём разница между Java и JavaScript?
Инструменты и управление версиями
Что такое управление версиями/контроль версий? Стоит ли мне его использовать?
С чего начать использовать управление версиями?
Что такое IDE? Стоит ли мне её использовать?
Компьютеры и операционные системы
Какую операционную систему мне следует использовать?
Какой компьютер/ноутбук мне следует купить?
Карьера и работа
Можно ли заработать много денег на программировании?
Можно ли получить работу в программировании, не имея диплома по информатике? Или вообще без высшего образования?
Как войти в эту отрасль и получить стартовую должность?
Что делать дальше?
Больше не новичок
Программирование — лишь инструмент
Как улучшить навыки программирования
Разное
Как обучить программированию ребёнка?
Как делать вклад в open source-проекты?
У меня вопрос по Си/Python/другому языку.
Там нет моего вопроса. Что мне делать?
Да, мой вопрос есть в ЧаВо, но я хочу получить ответ от реального человека.
Как редактировать вики /r/learnprogramming (включая эти ЧаВо)?
Итак.
С чего мне начать?
Если вы хотите научиться кодить, для начала полезно правильно понимать, зачем вам это нужно. В этом видео на YouTube Кевин Чирс отлично объяснил, как нужно подходить к изучению программирования.
Далее, не забывайте, что не существует универсального способа научиться кодить — все люди учатся немного по-разному, и, возможно, вам придётся поэкспериментировать, чтобы найти тот вариант, который лучше сработает именно для вас. Впрочем, большинство людей использует следующий подход, который мы очень рекомендуем:
- Найти небольшую задачу или проект, который вам будет интересно решить. Можете попробовать создать инструмент для решения небольшой жизненной задачи или с нуля реализовать программу, которая вам кажется интересной. Такой проект мотивирует вас продолжать учиться кодить и даст возможность применить полученные знания на практике.
- Почитайте информацию о разных языках программирования, чтобы выбрать наиболее подходящий для вашего проекта. (См. рекомендации ниже).
- Найдите один качественный ресурс для новичков по этому языку и руководствуйтесь им. (Также см. ниже).
- Помимо этого ресурса, гуглите и задавайте вопросы.
- Выполните несколько оригинальных проектов на этом языке.
Вот эти вещи мы советуем не делать:
- Нельзя просто пассивно штудировать выбранный ресурс: делайте упражнения и домашние задания; практика – это незаменимая часть обучения программированию.
- Не переключайтесь без необходимости с одного языка на другой. Выберите один и придерживайтесь его, потому что главное в программировании — решать задачи, а не выучить языки. Научиться решать проблемы сложно, и этот навык можно отточить, только если постоянно тренироваться. Каждый раз, когда вы переключаетесь на другой язык, то теряете время, в которое могли бы тренироваться применять полученные знания, чтобы развить навыки решения задач.
- Не прекращайте учиться после того, как закончили какой-либо курс. Программирование — одна из тех областей, где всегда есть, чему учиться.
И наконец, помните, что обучение программированию — долгий и трудный процесс. Если вам тяжело, не расстраивайтесь! Это абсолютно нормально, и многие люди годами учатся и тренируются, пока не почувствуют себя достаточно компетентными, чтобы искать работу или сделать вклад в серьёзный проект. К счастью, просто начинать учиться совсем не так сложно.
Какой язык программирования стоит выучить первым?
Есть два распространённых заблуждения, из-за которых люди задают этот вопрос. Первое — что есть «лучший» язык программирования, а второе — что первый изученный язык раз и навсегда предопределит вашу карьеру в программировании.
На самом деле, не существует лучшего языка, который однозначно стоит учить первым, и это не будет играть критической роли в вашей будущей карьере. Внешне языки программирования кажутся очень непохожими, но большинство фундаментальных принципов перетекает из одного языка в другой. Кроме того, изучать новые языки со временем станет проще: у новичка могут уйти месяцы, чтобы почувствовать себя уверенно в первом языке, опытный же программист познакомится с новым языком за считаные дни.
В идеале, всем программистам следует владеть разными типами языков. Как только вы освоили один язык, можете браться за другой, который принципиально отличается от предыдущего. По мере изучения новых языков, у вас появится возможность выбирать из большего числа инструментов наиболее оптимальный для решения конкретной проблемы, а это — показатель хорошего программиста. Так как главное значение имеют принципы программирования, мы рекомендуем новичкам начать с какого-либо популярного языка из таблицы ниже. С помощью любого из них новички смогут начать создавать простые приложения и тренироваться кодить, не затрагивая слишком продвинутые функции языка.
Если у вас уже появилась идея для проекта или цель, вы научитесь быстрее, если сможете применить ваши навыки для решения этой задачи. В таблице ниже представлены рекомендуемые языки для распространённых проектов.
Я хочу научиться…
- …разрабатывать приложения для iPhone — Swift (ещё)
- …разрабатывать приложения для Android — Java (ещё)
- …создавать веб-сайты — JavaScript, CSS, HTML5 (ещё)
- …писать десктопные приложения для Windows — C#
- …создавать 2D/3D-игры — JavaScript, C# или C++ (ещё)
- …программировать Arduino/микроконтроллеры/роботов — Си
- …заниматься научными/математическими вычислениями или анализом данных — Julia, Python, R или Matlab
- …заниматься автоматизацией и разработкой скриптов — многие языки (Python, Ruby, Bash, Powershell, AutoHotKey…)
Если в списке нет того, что вам нужно, поищите другие варианты на этих ресурсах:
Если вы всё ещё не можете определиться с выбором, изучайте Python. Это хороший, доступный для начинающих программистов язык с огромным сообществом и множеством библиотек, с помощью которых можно сделать практически всё что угодно, начиная созданием игр, и заканчивая автоматизацией процессов дома или на работе и анализом данных для построения веб-сайта. Постарайтесь найти обучающий ресурс, в котором разобраны ключевые принципы и основы, прежде чем погрузиться в разработку более сложных приложений. Инструкции о том, как начинать изучение любого языка, можно найти на странице reddit getting started.
Где можно найти качественные образовательные ресурсы?
Как совершенствовать навыки
Как перейти с начального уровня на средний?
Типичный вопрос, который мы получаем от многих новичков, — «что дальше?» В частности, когда они пытались проработать какие-то уроки, пособия, курсы, но в итоге всё равно не смогли заполнить пробел между пониманием, как работает оператор if или цикл for, и как именно применять то, что они изучили, чтобы создать сложные и интересные программы.
Переходить от обучающих материалов к сложному коду может быть затруднительно, и это обычное дело для тех, кто учится кодить. Такое явление очень хорошо описано в этой статье. Многие курсы (особенно коммерциализированные сайты по, обучающие программированию, вроде CodeAcademy) помогают тщательно разобраться с основами, но на этом завершаются, а новички остаются топтаться на месте.
Но если не сдаваться и преодолеть замешательство, вы начнёте замечать, что постепенно становитесь всё лучше и лучше, пока однажды не поймёте, что, сами того не осознавая, уже начали выходить на новый уровень.
Вот несколько советов, как не сдаваться и что делать дальше.
Перейдите с пассивного обучения на активное
Вместо того, чтобы брать курсы и уроки, которые (как вы думаете) научат вас тому, чему вы хотите научиться, начните активно искать способы обучиться самостоятельно. Например, если вы понятия не имеете, как создать игру, загуглите «как написать игру на Х», где «Х» — это язык программирования, который вы собрались использовать. Если у вас всплыло сообщение об ошибке, которая вам незнакома, попробуйте загуглить её. Если вы хотите освоить машинное обучение — погуглите и найдите годную книгу, пособие или онлайн-курс.
Вам будут нередко попадаться учебные пособия, разъясняющие, что именно вам следует делать, или по крайней мере статьи, которые дадут общее представление и подсказки о том, как составить более точные поисковые запросы. Тем более, нет ничего стыдного в том, чтобы искать источники новых знаний — как раз наоборот. Все программисты, как начинающие, так и профессиональные, постоянно делают две вещи: гуглят и учатся.
Постоянно практикуйтесь
Программирование похоже на физические упражнения в том смысле, что стать лучше можно только если непрерывно тренироваться. Начните с малого и попробуйте написать простейшую игру вроде «камень-ножницы-бумага» в командной строке. Когда закончите, попробуйте взяться за более смелый проект и справьтесь с ним. При желании параллельно можете выполнить какие-либо упражнения по программированию.
Главная цель программирования — разработка прикладного решения задач, а лучший способ научиться этому — постоянно решать задачи, большие и маленькие.
(См. также ЧаВо: Где можно найти тренировочные упражнения и идеи для проектов и ЧаВо: Я не могу придумать классную идею для проекта. Мне просто не хватает креативности? Как другие программисты ищут вдохновение?)
Научитесь декомпозировать задачу
Пытаясь справиться с крупным проектом или задачей, прийти в отчаяние можно уже от того, насколько большими и устрашающими они выглядят. Вместо того, чтобы унывать, разбивайте задачу на всё более мелкие подзадачи (это называется декомпозиция), пока каждая отдельная подзадача не начнёт казаться вполне подъёмной и осуществимой.
Допустим, вы хотите создать игру «камень-ножницы-бумага». Её можно разделить её на несколько подзадач: как получить вводные данные от пользователя, как заставить компьютер сделать случайный выбор, как определить победителя и как повторить игру (если вы хотите играть несколько раз подряд).
Если вы не уверены, как решить каждую из этих подзадач, продолжайте разбивать их дальше. Например, если вы не знаете, как определить победителя, то можете выделить ещё больше подзадач: как определить ничью, как определить вашу победу (если вы выбираете камень), как определить вашу победу (если вы выбираете бумагу) и как определить вашу победу (если вы выбираете ножницы).
Если вы совсем не знаете, как сделать что-то (например, как заставить компьютер выбрать случайное значение), погуглите. В данном примере поиск «Х выбрать случайное значение» (где Х — используемый язык программирования) покажет несколько различных способов, которые вы сможете использовать. Иногда задачу получается разбить на множество частей без поисковика, а иногда без него не обойтись.
Так, если вы учите Java и хотите научиться писать игры, но понятия не имеете, с чего начать или как разбить задачу на составляющие, загуглите «java игры уроки». Поиск даст несколько хороших источников, которые научат вас писать игры и (обычно автоматически) разбивать процесс написания игры на подзадачи поменьше.
По сути, этим вы прививаете себе образ мышления разработчика. Если задача слишком сложная, не расстраивайтесь. Продолжайте разбивать её на всё более простые составляющие и исследуйте вещи, которые кажутся неделимыми. Потом снова по кругу: разбиваете, гуглите, разбиваете, гуглите…
Это достаточно эффективная стратегия самообучения. С практикой вы станете лучше понимать, как раскладывать задачи, а также расширите свой багаж знаний и запас возможных способов их решения.
Больше советов смотрите в ЧаВо: Как улучшить навык реализовывать задачи/задания в программах (алгоритмическое мышление).
Будьте систематичны
Когда вы пишите и отлаживаете код, ни в коем случае не привыкайте просто пробовать сделать что-то, рассчитывая, что это случайно сработает. Будьте максимально чётки и последовательны — метод «проб и ошибок» здесь не подойдёт.
Во время написания кода остановитесь на минуту и составьте на листе бумаги приблизительные план действий. Попробуйте нарисовать какие-то схемы или набросать что-то вроде псевдокода. Если вам придётся изменить свой план (что вы, скорее всего, и сделаете), подумайте, для чего вам нужно это изменение и каким будет ваш новый план действий. (Этот этап планирования — также подходящая возможность, чтобы потренироваться декомпозировать задачи!)
Во время отладки кода ставьте чётки цели. Попробуйте мыслить, как учёный: проводите эксперименты, чтобы либо попытаться исправить баг, либо сузить область его поиска, и запишите результаты. Если ваша догадка/предпринятая попытка оказалась неверной или произошло что-то, чего вы не предусмотрели, остановитесь и разберитесь, в чём причина. Можете фиксировать эксперименты и тесты в блокноте, если это поможет вам придерживаться плана.
Баги возникают тогда, когда ваши предположения не совпадают с реальностью. Если что-то кажется неправильным, не игнорируйте это: продолжайте искать, пока не выясните, в чём дело/какое из ваших предположений было неверным.
Не делайте что попало, пока что-нибудь не сработает — будьте последовательны.
Не расстраивайтесь, если приходится исправлять баги или гуглить
Не все новички понимают, что проводить большую часть времени за исправлением багов и поиском информации — абсолютно нормально даже для профессиональных программистов.
Отладка (и трудности!) — неотъемлемая часть программирования. Если получится, постарайтесь не отчаиваться и не злиться. Отнеситесь к этому как к занимательному квесту или головоломке.
Даже когда из-за бага вы не можете продолжать работу над самим кодом, если вы будете последовательны, то в любом случае хорошо потренируете навык декомпозиции задач, хоть и несколько другим образом.
В конечном итоге, даже если у вас уйдёт много часов на один-единственный баг, это время будет потрачено не зря. Отладка — один из лучших способов научиться решать задачи.
(Это станет ещё вернее по мере того, как вы будете приобретать всё больше опыта. В жизни с ростом вашей компетентности сложность багов, с которыми вы будете сталкиваться, будет только увеличиваться. Иногда даже опытным программистам приходится тратить месяцы на то, чтобы найти один особенно проблемный баг.)
Не бойтесь попросить помощи
И наконец, если вы совсем не можете сдвинуться с места и понятия не имеете, что делать дальше, не стесняйтесь обратиться за помощью!
Программисты в основном очень отзывчивы. Многие из нас — тоже самоучки и понимают, как трудно начинать и каково это, когда ты безнадёжно застрял.
Всё же сначала постарайтесь сделать всё возможное (декомпозировать задачу, отладить код, погуглить и т.д.) и хорошо продумайте ваш пост. Как и любая другая субкультура, среди программистов есть свои негласные правила и порядки. Одна из ключевых вещей — вопрос должен быть доходчиво описан (даже если это что-то элементарное).
Больше информации читайте в руководстве о том, как задавать вопросы на reddit.
Пройдите более интенсивный вводный курс
Этот пункт касается только тех, кто лишь поверхностно знакомился с программированием на вводных курсах вроде тех, что предлагает CodeCademy. Подобные сайты дают отличное представление о том, что такое программирование, и обучают некоторым основам, но могут быть почти бесполезны, если вы хотите продвинуться на средний уровень.
Железное правило: если вводные курсы по программированию, которые вы проходили, не вызвали у вас особых трудностей или не содержали заданий, упражнений и мини-проектов, вам нужно поискать более требовательные курсы. Постоянная практика (и трудности!) — неотъемлемая часть учебного процесса.
Ещё больше подходов, рекомендаций и советов о том, как осуществить этот прорыв, читайте в следующих постах:
Где можно найти тренировочные упражнения и идеи для проектов?
Вот длинный список более 100 идей для проектов, которые вы можете выполнить. Список предназначен для Python, но большую часть идей можно реализовать на любом языке программирования. Среди них есть и забавные проекты, и хорошие упражнения, на которых можно потренироваться. Мы очень рекомендуем взглянуть на него.
Вот ещё один большой список практических программных проектов — от простых до сложных. Если вы ищете идеи для написания настоящих полезных программ, этот список будет хорошим началом.
Здесь список простых клонов 49 игр, которые можно повторить.
Здесь список классных идей для заданий по информатике от Стэндфордского университета. Этот ресурс больше ориентирован на преподавателей информатики, которые ищут неизбитые идеи для заданий для своих вводных курсов. Поэтому это идеальный ресурс, если вы ищете короткие, несложные, но интересные идеи для проектов.
Этот ресурс позволяет активно учиться, решая головоломки разной сложности на Python. Здесь также есть обучающие видео. Акцент сделан на программировании на Python.
Если вы хотите попробовать что-то новое, на сайте Idea Machine пользователи размещают свои идеи для приложений и очень хотели бы, чтобы кто-нибудь их осуществил.
Если вы ищете что-то посложнее, попробуйте переписать программы, которыми пользуетесь каждый день. Например, попробуйте сами написать…
- утилиты командной строки (ls, wget, curl и т.д.)
- текстовый редактор
- IDE
- программу для просмотра изображений
- пакет офисных приложений (например, Microsoft Office или Libreoffice)
- язык программирования (интерпретатор или компилятор)
- веб-браузер
- базу данных (реляционную или нереляционную)
- веб-сервер
- систему управления версиями
Если хотите сделать что-то потруднее, но с детальным объяснением, попробуйте реализовать одну из программ 500 Lines or Less — это open source-книга, в которой пошагово описано, как создавать относительно сложные программы, занимающие не более чем 500 строчек кода (3D-моделлеры, статистические анализаторы и т.д.). В нагрузку попробуйте реализовать эти программы на другом языке, адаптируйте их под немного другую задачу или добавьте им новые интересные возможности. Исходный код книги содержит полные реализации каждой включённой в неё программы.
Что касается тренировочных упражнений, вот некоторые хорошие сайты/ресурсы для старта:
- На reddit:
- /r/dailyprogrammer — сабреддит с ежедневными трудностями программирования
- /r/ProgrammingPrompts — небольшие простые проекты
- /r/tinycode — сабреддит о том, как писать маленький код с большими возможностями
- /r/programmingchallenges — сабреддит, посвящённый трудностям программирования (который не мешало бы оживить)
- /r/programbattles — новый сабреддит, аналогичный /r/photoshopbattles, где пользователи соревнуются в решении задачек на написание кода
- Общие упражнения:
- Finxter — более 300 головоломок на Python, чтобы проверить и потренировать быстрое понимание кода.
- Project Euler — предлагает около 500 математических задач (например, по теории чисел, простым числам, системам счисления), которые возможно решить с помощью программ (на любом языке).
- CodeAbbey — более 200 задач по программированию, начиная с самых простых. Позволяет учиться на решениях других разработчиков.
- Rosalind — аналогичный Project Euler сайт, который содержит более 200 задач по программированию, связанных (немного) с биоинформатикой.
- CodeByMath — более 100 небольших задач по математическому программированию.
- Codingbat.com — упражнения на Java и Python для новичков и программистов более продвинутого уровня.
- codegolf.stackexchange.com — сайт, где можно постить и обсуждать вопросы по программированию.
- Ruby Quiz — ряд заданий, в которых нужно создать небольшие программы разной степени сложности. Все решения пишутся на Ruby, но подсказки работают для любых языков, поэтому вы сможете использовать любой другой язык программирования, если справитесь без эталонного решения, в которое можно было бы подсмотреть.
- OCS Prep Work — подготовительная работа для студентов компьютерных курсов в Омахе. В будущем она превратится в полноценную книгу, но сейчас это просто компиляция тренировочных задач. — Эндрю Эк.
- UVA Online Judge — собрание сотен задач из конкурсов по программированию с системой онлайн-проверки решений.
- TopCoder — содержит алгоритмические задачи, накопленные за годы соревнований, доступных на нескольких популярных языках. Также проводит онлайн-соревнования по программированию несколько раз в месяц.
- CodeForces — аналогичен TopCoder, но даёт больше заданий на соревнованиях и имеет мало отличительных функций, включая «виртуальные конкурсы».
- Timus — аналогичен UVA, предлагает задачи со многих прошедших соревнований (мирового и регионального масштаба).
- SPOJ — аналогичный UVA ресурс с широчайшим выбором языков программирования для разработки решений.
- CodeForces — содержит алгоритмические задачи, накопленные за годы соревнований, доступных на нескольких популярных языках.
- USACO — содержит алгоритмические задачи вместе с руководствами.
- По языкам:
- Для Prolog, Lisp и схожих языков смотрите P-99 и L-99 — в подборках по 99 задач, которые помогут повысить уровень владения языками.
- Python Challenge — объединяет загадки и вопросы по программированию, которые помогут продвинуться на новые ступени.
- 4Clojure — подборка упражнений по программированию специально для Clojure — диалекта Lisp.
Как улучшить навык реализовывать задачи/задания в программах (алгоритмическое мышление)?
Это один из самых часто задаваемых вопросов.
Обычно ответ такой: пишите как можно больше программ.
Однако, есть простое упражнение, которое поможет вам улучшить этот навык:
- Выберите действие, которое вы делаете каждый день, например, готовите завтрак или что-то в этом роде. Оно должно быть не слишком простым, но и не слишком сложным.
- Запишите, какие шаги вы при этом предпринимаете, но сделайте это по памяти и не в то время, в которое обычно выполняете выбранное действие. (Запишите шаги, чтобы приготовить завтрак в середине дня.)
- В следующий раз, когда будете выполнять это действие, возьмите этот план и попробуйте неотступно придерживаться его. Постарайтесь не отклоняться от записанных шагов, а если вам пришлось это сделать, то запишите, что вы сделали не по плану.
- Улучшайте алгоритм, пока не будете довольны им.
- Попробуйте повторить то же самое на различных действиях. С каждым разом задание будет даваться всё легче.
Как бы глупо это упражнение ни звучало, оно работает. Схема была испробована на множестве студентов и позволила достичь значительного прогресса.
Я не могу придумать классную идею для проекта. Мне просто не хватает креативности? Как другие программисты ищут вдохновение?
Для начала, вот очень меткая цитата Чака Клоуза о том, что вдохновение нельзя просто ждать:
«Совет, который я люблю давать молодым художникам, да и вообще любому, кто станет меня слушать, — это не ждать вдохновения. Вдохновение для дилетантов, остальные просто работают. Если вы сидите и ждёте, пока разойдутся тучи и в вашу голову ударит молния, то слишком многого не совершите. Все лучшие идеи рождаются в процессе; они рождаются во время работы. К вам приходят мысли. Если вы бездельничаете, пытаясь выдумать великолепную художественную идею, то может пройти очень долгое время, пока что-либо произойдёт. Но если вы наконец возьметесь за работу, у вас появятся какие-то идеи, а потом другие и третьи, которые вы отбросите и которые заставят вас двигаться в ином направлении. Вдохновение — совершенно не необходимо и в некотором смысле обманчиво. Вам кажется, что вам нужна эта великолепная идея, чтобы взяться за дело, но я понял, что это почти всегда не так».
У вас будут редко появляться идеи, если вы будете просто сидеть и ждать в ожидании искры вдохновения. Вы проведёте время с гораздо большей пользой, если просто возьмёте и попытаетесь создать что-то (что угодно!), даже если эта идея кажется вам немного глупой или обречённой.
В конце концов, именно так и поступают художники и музыканты: они не обязательно начинают с того, что пытаются придумать выдающуюся картину или сочинить собственную музыку. Вместо этого они рисуют пейзажи и натюрморты или делают каверы на известные песни. Как и они, не думайте, что вам непременно нужно придумывать идеи для проектов. Переписывание уже существующих программ — испытанная временем практика. Попробуйте свои силы!
И всё же, вот несколько идей и приёмов, как придумать свой проект:
Попробуйте заново реализовать существующий проект. Как музыканты начинают с того, что делают каверы на чужие песни, для начала можете переписать программы, созданные другими людьми. Например, часто выбирают аркадные 2D-игры, такие как «Pong» или «Космические захватчики»: они вполне под силу новичкам и многому их научат. В этом ЧаВо есть ссылки на ещё больше идей для проектов.
Попробуйте соединить программирование с другим увлечением. Программирование — очень полезный навык в том смысле, что его можно применить в самых разнообразных сферах, даже тех, которые имеют никакого отношения к информатике. Например, если вы интересуетесь политикой, попробуйте анализировать результаты голосований и тенденции, если музыкой — написать цифровой микшер, если спортом — программу для отслеживания и предсказания результатов футбольных матчей, если у вас есть своя компания — программу, которая поможет вести учёт товара. Здесь полезно иметь интересы помимо информатики.
Присмотритесь к вещам, которые вас раздражают. Если в вашей жизни есть что-то монотонное или что вы не любите делать, спросите себя, нельзя ли это действие автоматизировать. Чтобы получить представление о том, что можно автоматизировать с помощью компьютера, зайдите на Automate the Boring Stuff. Это руководство для Python, но все описанные в нём вещи можно сделать на любом языке программирования. Или попробуйте загуглить «как автоматизировать дом», чтобы найти больше прикладных решений.
Где можно найти примеры хорошего кода и проектов для обучения?
Прежде чем начать, пожалуйста, помните, что изучение уже существующего кода — не всегда лучший способ научиться программировать. Ведь смысл программирования — практическое решение проблем, а лучший способ научить лучше решать проблемы — очень много тренироваться. Просто читая готовые отрывки кода, вы вряд ли многому научитесь. Обычно, если людям действительно необходимо изучить код, то они делают это с определённой целью и определённым образом. Например, разработчику, который захотел написать игру, используя тот или иной движок, логично разобраться с исходным кодом демо-версий различных игр, написанных на этом движке.
Загляните в раздел Коллекций на GitHub. Здесь размещён курируемый список массы популярных и интересных open source-программ от библиотек и игр до музыки, журналистики и анализа данных. Он хорошо отражает, какого рода вещи можно делать с помощью кода. Исходный код находится в публичном доступе, и вы можете скачать эти проекты и сами посидеть над ними.
Посмотрите также серию бесплатных электронных книг The Architecture of Open Source Programs, в которых более детально разобрана структура популярных open source-программ. Хорошим отправной точкой может стать последняя книга серии «500 lines or less», так как программы в ней достаточно малы, чтобы вы точно могли выполнить их/с ними справиться самостоятельно и использовать в качестве стартовой площадки для запуска своего проекта.
Как выучить темы, которые рассматриваются в стандартных университетских программах по информатике?
Если вам интересно самому пройти материал, который входит в большинство стандартных программ по информатике в вузах, неплохой материал, а также ссылки на дополнительные образовательные источники, можно найти по следующим ссылкам:
What every computer science major should know — Matt Might (Что нужно знать каждому студенту, изучающему информатику — Мэтт Майт)
Даёт высококачественный обзор различных областей и причин, почему они ценны. Также содержит список материалов к прочтению.
Open source computer science degree — Open Source Society (Открытая программа по информатике от Open Source-сообщества)
Предлагает последовательный учебный план со ссылками на курсы — преимущественно Coursera — в каждой теме.
Teach yourself CS (Как самостоятельно изучить информатику)
Аналог предыдущего ресурса с тем исключением, что рекомендует как книги, так и видеолекции. Более продвинутые рекомендуемые источники связаны с системами (например, операционными системами, базами данных…)
A Self-Learning, Modern Computer Science Curriculum (Современная программа по информатике для самостоятельного изучения)
Ресурс нестандартного формата с намного более математическим подходом к изучению информатики. Концентрируется на таких темах, как дискретная математика, функциональное программирование, верификация программного обеспечения, доказательства, теория типов и теория сложности вычислений.
Пожалуйста, помните, что качественные курсы по информатике преимущественно весьма требовательны и сложны. Если вы решились пройти этот путь, вам придётся потратить несколько лет и вложить колоссальные усилия, чтобы достичь желаемого уровня образованности через самообучение.
Как начать крупный проект и не забросить его?
Во-первых, досконально разберитесь в сути задачи.
Часто на этом этапе помогает Rubber Duck Debugging. Объясняя задачу или идею кому-то (или чему-то) другому, кто о ней ничего не знает или ничего в ней не понимает, человек сам более глубоко вникает в неё: ведь ему приходится размышлять над задачей значительно больше, и это приводит к её лучшему пониманию.
Во-вторых, не бросайтесь сразу же к компьютеру!
Проводите много времени, обдумывая задачу/задание. Создавайте черновики, рисунки, какой-либо псевдокод, заготовки на упрощённом языке или что угодно, что может пригодиться, на бумаге. (Я подчёркиваю это здесь, потому что цифровые инструменты отвлекают от стоящей впереди задачи — используйте только карандаш и бумагу или доску). Тщательно проанализируйте задачу.
Это приведёт нас к следующему.
Помните кое-что, когда работаете над крупным проектом в одиночку:
Всё в мире состоит из более мелких частей.
Это значит, что каким бы большим ни был механизм, дом, небоскрёб, автомобиль, поезд, компьютер и т.д., он является совокупностью множества мелких элементов, которые вместе составляют единый продукт. Эти мелкие элементы также состоят из ещё меньших элементов и т.д.
Это распространяется и на большие программы. Они состоят из большого числа меньших единиц, которые соединены в целое. В идеале (хотя это часто невозможно), каждая меньшая единица должна функционировать (и тестироваться) независимо от остальных.
Начните с малого. Возьмите задачу, которую вы выбрали, и попробуйте разбить её на более мелкие части. Продолжайте, пока не обнаружите, что дальше она не раскладывается.
Как только вы дойдёте до этого момента, начинайте программировать. Напишите одну небольшую часть и протестируйте. Напишите следующую, протестируйте и т.д.
Не задумывайтесь о финальной, полной картине — это будет вас угнетать. Беритесь за одну отдельную часть за раз.
Самая большая проблема неопытных программистов в том, что они почти всегда пугаются объёмных задач. Но эту проблему не так уж трудно преодолеть:
Не думайте о конечной программе со всеми её фишками. Сосредоточьтесь на небольшой, выполнимой части, завершите её и двигайтесь дальше. Даже самая сложная программа/система состоит из простых небольших частей.
Как не забросить проект?
Представьте, что вы работаете на клиента, и клиенту нужно увидеть и одобрить вашу разработку до того, как вы начнёте писать код, на случай, если у него возникнет то или иное замечание или он пожелает убедиться в том, что коммуникация между вами была успешна и вы поняли его требования.
- Подготовьте детальное описание проекта, так называемую «функциональную спецификацию проекта».
- Обсудите эту функциональную спецификацию проекта с воображаемым клиентом (то есть объясните её любому неодушевлённому предмету или кому-то, кто готов вас выслушать).
- Подкорректируйте функциональную спецификацию проекта: вернитесь к предыдущему шагу и повторяйте, пока не будете довольны.
- Составьте план реализации проекта с жёстким (и реалистичным) конечным сроком.
- Соблюдайте пункт выше (потому что иначе воображаемый клиент мог бы потребовать немалую комиссию за просрочку)
Ещё несколько советов:
- Для начала полностью забудьте о коде и взгляните на программу полностью с точки зрения пользователя.
- Составьте список желаемых функций, которые программа должна выполнять.
- Составьте список функций, которыми программа не будет обладать (Так вы сможете избежать соблазна добавить кучу «классных» и совершенно ненужных «улучшений». В основном, именно потому, что программы становится слишком раздутыми, разработчики бросают их через несколько недель.)
- Сделайте несколько набросков экрана, который будет видеть пользователь, и как он будет с ним взаимодействовать. Это не должны быть точные прототипы — они, скорее, помогут представить, что будет изменяться на экране пользователя при переходе на другую страницу. Эти зарисовки помогут вам не забыть что-то важное.
- Научитесь использовать git и заведите аккаунт на GitHub. Здесь можно получить хорошую поддержку и попросить оценку коду. (Игнорируйте комментарии по поводу стиля кода: 99% из них — бесполезные споры.)
Распространённые страхи и опасения
Я уже слишком стар для программирования?
Нет, учиться программировать и, возможно, строить карьеру в разработке можно в любом возрасте.
Существует распространённый миф о том, что единственный способ стать хорошим программистом — начать учиться кодить в раннем возрасте. Это не так: хотя отдельные люди начинают учиться кодить рано (что может дать им некоторое преимущество), большинство начинает учиться этому, когда поступает в вуз, или позже.
Учиться можно в любом возрасте, и вместо того, чтобы зацикливаться на других, просто сосредоточьтесь на себе и вашем личном темпе прогресса. Постарайтесь развить в себе мышление роста и избавиться от фиксированного мышления.
Есть что-то другое, чему мне сначала нужно научиться?
Обязательных условий очень немного, и в целом вы можете в любое время приступать к изучению программирования.
Вот единственные действительно необходимые условия:
- Вы должны уметь печатать (если только вы не используете язык на основе подхода «drag-and-drop» вроде Scratch).
- У вас должен быть компьютер.
- Вы должны уметь самостоятельно гуглить/искать ответы на вопросы.
Вам также пригодится некоторое знание математики (алгебра на базовом уровне) и английского языка (потому что многие онлайн-ресурсы на английском), но без этих двух условий можно обойтись.
Всё, что указано выше, более или менее применимо к желающим получить официальный диплом в университете. Большая часть вузов рассчитывает на то, что поступающие студенты ничего не знают об информатике и программировании, и начинают обучать их с нуля (хотя в отдельных случаях можно пропустить один или два вводных курса, если пройти тестирование или продемонстрировать уже достаточные навыки). Если вы в старших классах или младше и хотите изучать информатику в вузе, то только выиграете, если начнёте учиться наперёд — это даст вам фору, но делать это вы не обязаны.
Некоторые вузы могут более строго относиться к общему образованию и уровню владения математикой (например, в большинстве вузов есть требование к вычислительным навыкам), но они разнятся от вуза к вузу, и вам следует узнавать о них напрямую там, куда вы хотели бы поступить. Более подробно читайте ниже.
Нужно ли мне хорошо знать математику?
Необязательно: программирование и информатика — это широкая область, и нужно ли вам хорошо разбираться в математике, зависит от того, на какой дисциплине вы решите специализироваться.
Например, в некоторых направлениях программирования действительно необходимы уверенные математические навыки. В 2D и 3D-играх часто используются векторы, матрицы и линейная алгебра; в интеллектуальном анализе данных и машинном обучении — многие понятия статистики; а справляться с алгоритмическими сложностями легче, если хорошо владеть алгеброй и элементарными вычислительными навыками.
Обычно чем выше уровень и сложность темы, тем больше вероятность того, что вам понадобится мощная математическая подготовка. Если ваша цель — научиться решать эти сложные задачи, то хорошая база будет для вас бесценна.
Однако так же много направлений информатики и программирования не требуют глубокого знания математики. Единственное, что вам действительно необходимо знать, — это сложение, вычитание, умножение, деление и иногда какие-то основы алгебры. Многие программисты за всю свою карьеру почти не имеют дела с математикой.
Если вы не очень сильны в математике, то в любом случае можете учиться и расти. Ведь в программировании вы, вероятно, тоже ещё не очень хороши, но всё равно собираетесь учиться кодить. Зайдите на Khan Academy и поищите бесплатные уроки, начинающиеся с базовых уровней и до более сложных.
Однако ответ будет несколько другим, если вы хотите получить диплом по информатике. У многих вузов есть особые требования, которым вы должны удовлетворять, прежде чем они либо примут, либо выпустят вас (курсы по исчислению и т.д.). А так как информатика — это в некоторой степени прикладная математика, вам почти наверняка придётся учить дискретную математику, писать доказательства и тому подобное, чтобы получить диплом. Вам не нужно изначально хорошо разбираться в математике, чтобы изучать эти темы (впрочем, любые математические темы), но какие-то познания в математике вам точно не помешают и могут упростить процесс обучения.
То, насколько программа по информатике будет переплетаться с математикой, различается от вуза к вузу. Чтобы узнать подробности, вам следует изучить требования и содержание программы того вуза, в который вы хотите поступить.
Подводя итог, вам не обязательно нужно хорошо знать математику, чтобы построить успешную карьеру в разработке. Если вы хотите стать информатиком, будьте готовы учить очень много математики. Если вы хотите работать над более сложными задачами/в рамках отдельных направлений, в зависимости от ситуации математика может стать очень полезным инструментом.
Я много гуглю или не знаю, как делать что-то, когда только собираюсь начать. Это плохо?
Нет. Вот ветка, в которой эта тема рассмотрена с разных сторон. Есть много других, аналогичных этой.
Программировать сложно?
Программирование подобно любому другому навыку: относительно легко учить и применять основы. Чтобы научиться играть в боулинг, вы выясняете, как вставлять пальцы в отверстия шара и бросать его просто в направлении кеглей. Вам, может, даже удастся сбить несколько штук, и это не особо сложно.
Программирование схоже с большинством навыков в том, что гораздо затруднительнее перейти с начального уровня на более продвинутый. В продолжение примера с боулингом: если вы захотите участвовать в соревнованиях, вам придётся потратить годы, чтобы отточить навык. То же самое верно и для программирования: вам придётся потратить какое-то время (то есть много времени), пытаясь понять, почему эта дурацкая программа не работает, хотя вы всё уже три раза перепроверили. Вам придётся читать книги, сидеть на занятиях и обсуждать их с другими людьми. Вы выучите сленг программистов. Вы выберете специализацию, чтобы более основательно изучить ряд узких областей. Всё это задействует основы программирования, но новыми способами и в новых сочетаниях. Искать решения задач будет тяжело. Часами разбираться с одной задачей будет тяжело. Это нормально, потому что если вы получаете от этого удовольствие и если у вас есть мотивация, трудности не будут казаться такими трудными, и вы справитесь с ними.
Итак, программирование может быть сложным. Как и многие другие вещи, оно требует усилий, и эти усилия могут нелегко даваться. Не опускайте руки — получайте удовольствие, и все трудности будут того стоить.
Вопросы про обучение
Что значит «знать язык» или «уметь программировать»?
«Знание языка» в программировании аналогично знанию разговорного языка. Вы можете сказать, что знаете его, когда научитесь эффективно его применять, даже если не знаете его в совершенстве. «Уметь программировать» обычно значит то, что вы понимаете принципы программирования и можете эффективно применять их в одном или нескольких языках. Почитайте недавние ветки по этой теме.
Я только что начал учить язык Х. Стоит ли мне начинать учить язык Y?
Особенно когда вы начинаете учиться программировать, лучше учить один язык и на какое-то время остановиться на нём. Даже если отдельная проблемная область использует конкретный язык, которым вы пока не владеете, сначала научитесь программировать. А разобравшись с основами (управление потоком, обработка ошибок, ввод/вывод, имплементация алгоритмов, структуры данных и т.д.), можете начинать думать о том, чтобы взять следующий язык.
Стоит ли учить более одного языка программирования одновременно?
Если вы только начинаете, мы рекомендуем выбрать один язык (как сказано в предыдущем ответе, неважно, какой именно) и сосредоточиться на нём минимум на месяц. Опытные программисты могут понемногу учить несколько языков сразу, но новички скорее просто запутаются.
Это плохо, что у новичков иногда возникают проблемы с задачами и упражнениями?
Это плохо, что новички иногда падают с велосипеда, когда учатся кататься? Это плохо, что новички иногда не могут удержаться на воде, когда учатся плавать? Это плохо что новички иногда не попадают в ноты, когда учатся играть на инструменте? Это плохо, что новичкам иногда приходится выбрасывать сгоревший обед?
Конечно, нет!
Серьёзно, это один из глупейших и часто задаваемых вопросов, связанных с программированием. Это естественно, если вам трудно и иногда что-то получается неудачно. В конце концов, вы только начинаете. Вам так и положено.
Неудача — важная часть обучения. Очень важно знать, как не надо делать. Неудача — это просто приобретённый опыт.
Если бы вам не было трудно и вы не сталкивались с неудачами, то вы не были бы новичком — вы уже были бы экспертом (но бывает, что даже у них иногда что-то не получается, просто не так часто, как у новичков, и обычно они знают, как с этим справиться).
Как найти/поддерживать мотивацию, чтобы учиться программировать?
Зайдите на /r/GetMotivated/ и /r/GetDisciplined.
Мы часто думаем: «если бы у меня было достаточно мотивации… тогда я мог бы…», хотя именно действие поддерживает мотивацию. Сначала идёт действие, потом — мотивация. Найдите небольшие конкретные программы, которые хотели бы создать. Избавьтесь от всего, что вас отвлекает. Установите расширения для браузера, блокирующие сайты вроде Reddit, Facebook и Twitter. На минуту представьте, насколько здорово будет ощущать, что вы стали более компетентным программистом.
Вот несколько свежих веток по теме:
С чего мне начать Х?
С чего начать делать видеоигры?
Современные видеоигры создаются с помощью игровых движков: это библиотеки программ, которые позволяют работать со сложными вещами, например, графикой, звуком, физикой и сетями. Существует множество доступных библиотек. Однако для начинающих настоятельно рекомендуют следующие библиотеки, так как они бесплатны и имеют лучшую для обучения документацию:
- Unity (C#): подходит для мобильных, десктопных, браузерных/онлайн и консольных 2D и 3D-игр
- Construct2 (JavaScript): для мобильных, десктопных и браузерных/онлайн 2D-игр
- Pygame (Python): движок для десктопных 2D-игр
- LÖVE (LUA): подходит для десктопных 2D-игр
Всегда помните, что ваша цель — разрабатывать игры, а не движки! Так что не нужно заново изобретать велосипед.
Движки помогут вам начать работу с графикой и пользовательскими элементами управления для будущих игр, но вам всё равно нужно тщательно изучить язык программирования, чтобы прописать логику игры, поэтому, подберите годную книгу или онлайн-ресурс.
Самое главное: начинайте с простого. Вам захочется взяться за всё и сразу же создать игру своей мечты, но помните, что единственный способ взобраться на вершину горы — делать по одному небольшому шагу за раз. Вот список простых игр для тренировки в порядке возрастания сложности — попробуйте выполнить какие-то из них, перед тем как броситься к своей конечной цели:
Обязательно загляните в ЧаВо /r/gamedev, почитайте вводное руководство на /r/gamedev и поищите более старые ветки на /r/gamedev и /r/learnprogramming.
С чего начать делать веб-сайты/веб-приложения/веб-разработку?
Существует много различных способов научиться веб-программированию, но в целом ключевые навыки, которые вам будут нужны, — это фронтенд-разработка (код, который выполняется в веб-браузере пользователя) и бэкенд-разработка (код, который выполняется на вашем сервере).
Обычно большинство людей советует начинать с изучения HTML, CSS и Javascript (в таком порядке) — это три главных языка, которые поддерживают все веб-браузеры и на которых написаны все сайты.
Больше информации можно найти в ЧаВо /r/webdev. Вот ещё один список онлайн-курсов, пособий и ресурсов для начинающих.
С чего начать делать мобильные приложения/приложения для Android/приложения для iOS/приложения для Windows Phone?
Для каждого типа смартфонов понадобится выучить разные языки программирования.
- Приложения для Android пишутся преимущественно на Java — больше информации читайте в ЧаВо /r/androiddev.
- Приложения для iOS пишутся на Objective-C или Swift — больше информации ищите на боковой панели /r/iosprogramming и в их вики (на GitHub).
- Приложения для Windows Phone пишут на C#, Visual Basic или Javascript — больше информации ищите на боковой панели /r/WPDev.
Вы также можете создать приложения, которые будут запускаться на всех трёх крупнейших платформах, с помощью технологий Phonegap и Titanium — приложения пишутся один раз с использованием HTML, CSS и Javascript, а запускаются на любой платформе.
Больше информации ищите в списке ресурсов по разработке мобильных приложений. Вот одна старая ветка на эту тему: http://redd.it/352f09.
Однако не забывайте, что многие, если не все из указанных инструментов рассчитаны на тех, кто уже имеет предыдущий опыт в программировании. Если вы прежде никогда не занимались разработкой, может быть, вам лучше начать с изучения языка, по которому есть больше ресурсов специально для новичков. Когда вы приобретёте некоторый опыт и усвоите лежащие в основе программирования принципы, то вам станет намного проще учить новые языки и начинать изучение мобильной разработки. Раздел «С чего мне начать?» в нашем ЧаВо содержит больше информации о том, с чего нужно начинать.
Как автоматизировать что угодно?
Для Windows есть пара специальных языков программирования, такие как Autohotkey and AutoIt.
Другая подходящая кросс-платформенная альтернатива — это Python. Automate the Boring Stuff with Python (Как автоматизировать рутину с помощью Python) — потрясающий образовательный ресурс.
Если вы хотите автоматизировать MS-Office, используйте встроенный язык программирования Visual Basic for Applications (VBA). Сабреддит /r/vba посвящён программированию на VBA.
Какие лучшие…
/u/thekodols сделал подборку из более чем 150 вопросов и ответов в стиле «какие лучшие» в этом посте, который охватывает различные языки, инструменты и темы.
Терминология и словарь
В чём разница между информатикой (computer science, CS), компьютерной инженерией (computer engineering, CE), программной инженерией (software engineering, SE), программированием и кодированием?
Информатика/компьютерная инженерия/программная инженерия vs. программирование/кодирование
Понятия информатика, компьютерная инженерия, программная инженерия, программирование и кодирование взаимосвязаны, но между ними есть тонкое различие, из-за чего новичкам сложно разграничить их.
Первое отличие, о котором вам следует понимать, это отличие между первыми тремя терминами и программированием/кодированием. Информатика, компьютерная инженерия и программная инженерия — это научные дисциплины. Сказать «я изучаю информатику» — то же самое, что сказать «я изучаю химию» или «я изучаю литературу». В противоположность этому программирование и написание кода — это виды активности, то есть их нужно делать. Образно говоря, изучение этих трёх дисциплин можно сравнить с изучением теории музыки, а программирование и кодирование подобно обучению игре на конкретном музыкальном инструменте.
Теоретически, можно выучить одно и не учиться другому, но ваши знания будут гораздо богаче, если вы освоите и то, и другое.
Второе отличие состоит в том, что информатику, компьютерную инженерию, программную инженерию можно изучить, а навыки программирования приходят только с практикой. Фактически, большинство вузов формально обучает одному языку, чтобы изложить основы разработки кода, и сосредотачивается на преподавании теоретических дисциплин, а программировать студенты учатся самостоятельно, тренируясь и выполняя домашние задания.
Информатика vs. компьютерная инженерия vs. программная инженерия
Далее нужно разобраться, в чём разница между информатикой, компьютерной инженерией и программной инженерией. Если кратко, несмотря на многие их сходства, информатика, или «компьютерные науки», имеет мало общего как с компьютерами, так с науками, и, скорее, представляет собой область прикладной математики, которая изучает понятие вычислимости. Компьютерная инженерия схожа с информатикой, но сильнее концентрируется на аппаратном обеспечении нижнего уровня — это своего рода мост между информатикой и электротехникой. И наконец, программная инженерия больше связана с тем, как создавать большие и сложные, но при этом стабильно функционирующие программы. Это как информатика и компьютерная инженерия, только с меньшим количеством теории.
Более детальный обзор смотрите здесь: http://www.reddit.com/r/learnprogramming/comments/2k569h/eli5_computer_science_vs_software_engineering_vs/.
Программирование vs. кодирование
И наконец, остались программирование и кодирование. Разница между этими понятиями очень невелика, и многие используют их как синонимы. В целом термин «программирование» имеет более положительный оттенок, чем «кодирование». Если вы говорите «я программист», это подразумевает определённый уровень профессионализма и свидетельствует о том, что вы можете не только писать код, но и глубоко владеете основами и теорией, умеете общаться с клиентами, работать в команде и т.д.
Напротив, если вы говорите «я кодер», то подчёркиваете, что занимаетесь исключительно разработкой кода, и в меньшей степени — остальными вещами.
Но опять же, эти оттенки здесь почти несущественны: в подавляющем большинстве случаев эти два термина можно использовать взаимозаменяемо.
С чём разница между Cи, C++, Objective-C и C#?
Cи, C++, Objective-C и C# — это не вариации одного и того же языка.
Си — самый маленький и старый из этих языков. Изначально он создавался как системный язык программирования для операционной системы Unix и до сих пор широко используется в прикладном программировании.
С++ — очень популярный язык программирования общего назначения, изначально основанный на Си. После некоторых настроек большая часть кода (почти любой код) на Си может быть скомпилирована как код на С++. Однако в языке С++ появляется большой набор особенностей, которые значительно меняют применение языка по сравнению с Си. Написание кода в стиле Си на С++ обычно не приветствуется.
Objective-C — это строгое надмножество языка Си, поэтому любой рабочий код на Си также является рабочим кодом Objective-C. Этот язык далеко не так распространён, как Си или С++, и сегодня в основном используется в разработке для платформ OS X и iOS от Apple.
C# не основан на Си ни в каком техническом плане. С# — это язык программирования общего назначения, созданный Microsoft и подобный Java. Он компилируется в промежуточную форму, которая запускается на виртуальной машине (CLR), в отличие от предыдущих трёх языков, которые компилируются в нативный машинный код. И хотя С# заимствует элементы синтаксиса из Си и С++ (как и Java), технически он с этими языками не связан.
В чём разница между Java и JavaScript?
Java и JavaScript связаны в той же степени, в которой связаны крем и крем-брюле.
Аналогично предыдущему вопросу, с технической точки зрения Java и JavaScript никак не связаны. У них есть некоторые общие черты в синтаксисе, так как предком обоих был Си, но не более. В Википедии есть хорошее объяснение, откуда взялось это сходство в названиях: https://ru.wikipedia.org/wiki/JavaScript#JavaScript_%D0%B8_Java.
Инструменты и управление версиями
Что такое управление версиями/контроль версий? Стоит ли мне его использовать?
Система управления версиями (Version Control System, VCS) — это инструмент, который отслеживает изменения в коде и даёт такие полезные возможности, как исправлять ошибки и просматривать, что в нём изменялось с течением времени. Современные распределённые системы также позволяют легко работать над одним и тем же кодом с другими программистами. И да, вам определённо стоит использовать систему управления версиями!
Две самых популярных распределённых системы — это Git и Mercurial; которую именно использовать, в основном зависит от ваших личных предпочтений, но мы настоятельно советуем одну из них.
С чего начать использовать управление версиями?
Для начала вы можете почитать статью для начинающих по Git, написанную одним из пользователей reddit, и бесплатную книгу от Git.
Хорошее и краткое руководство по Mercurial — здесь.
На странице reddit с инструментами есть ссылки на сайты, где можно скачать обе системы.
Что такое IDE? Стоит ли мне её использовать?
IDE (или интегрированная среда разработки) — это приложение графического интерфейса пользователя, обычно включающее текстовый редактор с автодополнением кода и подсветкой синтаксиса, некоторые функции управления проектами, компилятор или интерпретатор (настраиваемый или встроенный) и другие замечательные функции, которые упрощают написание, запуск и тестирование кода. Как вариант, можно вручную делать то, что IDE сделает за вас автоматически. Но для этого программисту придётся использовать отдельные инструменты и иметь более глубокое знание процесса разработки.
Для новичков есть аргументы в пользу обоих методов разработки:
- Если вы используете IDE, вам не нужно много знать о процессе разработки, использовать интерфейс командной строки и настраивать эти инструменты, чтобы они корректно работали вместе; IDE предлагает быстрый способ начать создавать код и даже может написать часть кода за вас!
- С другой стороны, при работе из командной строки вам не нужно подстраиваться под образ мысли автора IDE, а так как вам открыта большая часть процесса разработки, вам удастся лучше познакомиться с процессом создания ПО.
Выбор IDE или отдельных инструментов — обычно вопрос личного предпочтения (если, конечно, ваш начальник/вуз не требует использовать определённую среду разработки). Если вы никогда раньше не использовали IDE, скачайте какую-нибудь из самых популярных и повозитесь с ней. Если вы никогда не пользовались Vim или не компилировали код из командной строки, то попробуйте — может, вам понравится. Список часто используемых IDE и небольших по весу тестовых редакторов можно найти в разделе инструментов программирования.
Компьютеры и операционные системы
Какую операционную систему мне следует использовать?
Частый вопрос, который возникает у многих новичков, — какую из операционных систем им лучше использовать: Windows, Mac или Linux.
На самом деле это не имеет значения: в наши дни качество и возможности доступных инструментов будут приблизительно равны у всех платформ, и любой приличный язык программирования можно будет использовать на всех операционных системах.
И всё же рано или поздно вам следует в более или менее познакомиться со всеми тремя операционными системами, чтобы вы совсем не растерялись, когда столкнётесь с новой ОС (например, когда будете переходить на другую машину или получите новую работу).
Из этого правила есть два основных исключения:
- Если вы хотите заниматься разработкой для Windows, покупайте компьютер на Windows.
- Если вы хотите заниматься разработкой для Mac или iOS, покупайте Mac.
Есть несколько хороших возможностей запуска кода на C# на других платформах, но некоторые инструменты Microsoft и .NET преимущественно ориентированы на Windows.
Хотя вы сможете разрабатывать приложения для Mac и iOS на любом компьютере, вам придётся использовать Xcode на машине Mac, чтобы скомпилировать и загрузить ваше приложение в App Store.
И наконец, следует отметить, что выбор той или иной операционной системы не ограничивает вас в действиях: всегда можно запустить виртуальную машину с установленной на ней другой операционной системой. Например, если у меня на компьютере установлена Windows, я могу легко настроить виртуальную машину Linux и использовать её не опасаясь, что она помешает работе существующей Windows.
Какой компьютер/ноутбук мне следует купить?
По большому счёту это тоже не критично: подойдёт любой ноутбук или компьютер среднего класса. Если у вас уже есть компьютер или ноутбук, просто используйте его — покупать новый не нужно. Учиться программировать и писать сложные и интересные программы вы сможете практически на любом существующем компьютере.
Если у вас совсем туго со средствами или нет рабочего компьютера, всегда можно найти подержанные компьютеры на сайтах вроде Craigslist, или поспрашивать у знакомых. Вы сможете далеко продвинуться даже на стареньком компьютере, если собираетесь просто учиться.
Но если вам понадобится купить новый компьютер, который вы хотите использовать для программирования, в первую очередь обратите внимание на процессор, объём оперативной памяти и жёсткого диска. По возможности постарайтесь приобрести компьютер с вот этими характеристиками или лучше:
- центральный процессор Intel i5 (3.0+ ГГц)
- оперативная память 4+ Гбайт
- жёсткий диск 200+ Гбайт
- (опционально) твердотельный накопитель
Если есть возможность, лучше отдайте приоритет устройству с более производительным процессором и большим объёмом оперативной памяти, чем жёсткого диска: лишняя мощность процессора никогда не помешает. И наоборот, в основном для программирования не требуется большое дисковое пространство — только если вы не собираетесь работать с изображениями и видео или обрабатывать огромные наборы данных для машинного обучения и тому подобных вещей. Впрочем, такие вещи можно хранить в облаке.
Если вы собираетесь купить настольный компьютер, это — единственно важные характеристики. Если вам важна мобильность, приобретайте ноутбук, причём обязательно с достаточно большим экраном и удобной для программирования клавиатурой. Однако в ноутбуках есть некое соотношение между удобством в использовании и мобильностью:
- Чем шире экран, тем меньше время работы от батареи (но чем меньшую вы настроите яркость, тем больше будет её ресурс)
- Чем меньше экран, тем меньше на нём будет помещаться и тем чаще вам придётся переключаться между окнами/рабочими столами. В идеале на нём должны удобно для работы размещаться два окна.
- Чем шире ноутбук, тем он тяжелее и тем тяжелее носить его с собой.
Стоит также продумать, как вы планируете использовать ноутбук. Будет ли весь день просто стоять на столе, или вы собираетесь носить его с собой, или отправитесь с ним в поход?
По возможности вживую протестируйте каждый ноутбук, из которых будете выбирать. Если, например, вам неудобно печатать на клавиатуре какого-то из них и вы не сможете к ней привыкнуть, от такого ноутбука лучше отказаться, как бы привлекательно он ни выглядел на бумаге.
Дополнительную информацию и более подробную помощь можно найти в следующих сабреддитах — в них предложены более индивидуализированные советы:
Также тщательно взвесьте покупку хромбуков: вам придётся или настраивать их, или использовать онлайн-редакторы и IDE, а также понадобится постоянный доступ с интернет. Больше информации читайте по ссылкам:
Ещё лучше нужно подумать, стоит ли в качестве своего главного инструмента для программирования использовать планшеты или смартфоны. Хотя с некоторыми усилиями программировать на планшетах или смартфонах вполне реально, разработка ПО почти всегда ведётся на компьютерах или ноутбуках при помощи клавиатуры.
Если вам нужен совет по выбору конкретного производителя, просто помните, что для программирования от вашего компьютера не требуется никаких суперспособностей: хороший универсальный компьютер, скорее всего, хорошо подойдёт для программирования. (Поэтому легче искать хороший ноутбук, так как не нужно подбирать устройство, предназначенное непосредственно для программистов.)
Последний возможный нюанс: если вы хотите заниматься исключительно машинным обучением, обработкой естественного языка или графикой (включая разработку игр), рассмотрите вариант покупки устройства с графическим процессором. Он необязателен для всех этих вещей, но часто код можно ускорить, если писать его так, чтобы он запускался на графических процессорах.
Если вас больше интересует машинное обучение или обработка естественного языка, имейте в виду, что можно арендовать машины с графическими процессорами в облаке с помощью сервисов вроде Web Services (AWS) или Google Compute Engine (GCE) по относительно низким ценам.
Карьера и работа
Можно ли заработать много денег на программировании?
Возможно, но только если вы хороший программист. Много денег можно заработать и будучи сантехником или в любой другой сфере. А можно и не заработать. Профессия программиста не гарантирует это на сто процентов.
Можно ли получить работу в программировании, не имея диплома по информатике? Или вообще без высшего образования?
Да и да.
Без диплома по информатике получить работу программистом реально, как и вообще не имея никакого диплома, хотя перспективы будут похуже. Бросать вуз точно не советуем. Если программирование — не для вас, поменяйте специализацию. Если для вас, то завершение учёбы повысит ваши шансы на успех в поиске работы.
Более развёрнутые ответы на различные вопросы по поводу карьеры можно получить, задав их в /r/cscareerquestions.
Как войти в эту отрасль и получить стартовую должность?
В этом сабреддите этот вопрос немного не по адресу: вопросы на тему карьеры лучше задавать в /r/cscareerquestions и искать на их исчерпывающей вики-странице.
Но в общем, ответы большинства людей сводятся к следующему:
- Создайте убедительное портфолио оригинальных проектов, которое можно показать потенциальным рекрутерам и приложить к резюме. Это могут быть ваши школьные проекты, самостоятельные сторонние проекты, проекты из кружков в школе и университете, исследовательские или волонтёрские проекты, или проекты, сделанные во время практики или на предыдущих работах и т.д. Мощное портфолио показывает работодателям, что вы умеете успешно применять языки программирования, библиотеки и технологии для решения проблем, и даёт им возможность более точно оценить уровень ваших навыков.
- Сначала лучше искать стажировку, а не полноценную работу. На стажировку проще попасть, а оплачиваются они обычно достойно.
- Вам обязательно нужно хорошее понимание структур данных и алгоритмов. Большинство собеседований, особенно на стартовые должности, включают задания по кодированию — на веб-сайте или вживую, на белой доске.
Намного более подробную информацию и советы читайте в вики /r/cscareerquestions.
Что делать дальше?
Больше не новичок
Приходит время, когда все программисты вырастают, и тогда они сталкиваются с проблемой — с реальным миром. В реальном мире никто не держит за ручку и не ведёт по жизни. Теперь вам придётся научиться идти вперёд самостоятельно. Если вы добрались до этой точки, наверно, у вас уже появилась какая-то сфера интересов, будь то просто программирование, веб-разработка, алгоритмы или что-то другое. Может, вы хотели бы изучить другие направления, связанные с программированием, или просто понять, что делать дальше.
Программирование — лишь инструмент
Начиная программировать, вы, возможно, размышляли о будущем, когда узнаете, как создать второй reddit или невероятную графику, или же как выполнять различные алгоритмы. Что ж, если вы больше не считаете себя новичком, значит, программирование пополнило ваш арсенал инструментов. Теперь вам нужно научиться применять его и закрепить свои умения. Очень скоро вы сможете делать подобные вещи и будете узнавать всё о них.
Как улучшить навыки программирования
Многие люди, занимающиеся программированием, начинают бояться, что им недостаточно знаний. Поэтому многие стремятся усовершенствовать свои навыки. Но на данном этапе есть только один способ сделать это — практиковаться. Существует много сайтов и источников для тренировки, например, /r/dailyprogrammer, CodeWars, HackerRank, Project Euler и многие другие.
Разное
Как обучить программированию ребёнка?
В той или иной форме этот вопрос здесь возникает часто. Перед тем, как размещать свой, посмотрите вот этот запрос — возможно, на него уже отвечали. Если вы всё же решите запостить новый вопрос, пожалуйста, постарайтесь чётко объяснить, как ваши потребности в обучении отличаются от тех, которые звучали в уже опубликованных вопросах.
Scratch — просто потрясающий инструмент для детей 8-16 лет, разработанный Массачусетским технологическим институтом. Он запускается через браузер без установки дополнительного ПО.
Также можете заглянуть на /r/ProgrammingForKids — сабреддит посвящён именно этому вопросу. Ресурсов множество.
Как делать вклад в open source-проекты?
Участвуйте в проектах группы /r/learnprogramming на GitHub! Её создал jfredett специально для размещения проектов, с помощью которых начинающие программисты смогут освоить отрытую разработку, взаимодействуя с опытными программистами и менторами.
Группа сформирована недавно, несколько людей занимаются её продвижением.
Есть также сайты, где размещены ссылки на проекты, которые активно ищут желающих сделать вклад любого уровня опытности, а также ссылки на открытые баги и проблемные вопросы, доступные для новичков.
Вот несколько старых веток на тему работы с open source-проектами.
У меня вопрос по Си/Python/другому языку.
Поищите ваш вопрос в наших вики по конкретному языку:
Там нет моего вопроса. Что мне делать?
Посмотрите краткое руководство reddit по устранению неисправностей для начинающих и страницу ЧаВо используемого вами языка — возможно, ответ на ваш вопрос находится на одной из страниц. Если нет — можете постить!
Поищите ваш вопрос в наших вики по конкретному языку:
Вопросы, связанные с карьерой, также смотрите в /r/cscareerquestions.
Да, мой вопрос есть в ЧаВо, но я хочу получить ответ от реального человека.
Эти ЧаВо, как и другие страницы вики /r/learnprogramming, редактируется сообществом. Эти ответы — продукт сообщества, и их писали реальные люди. Если ваш вопрос уже есть в ЧаВо, значит, его уже неоднократно задавали до вас. В этих ЧаВо собраны ответы, которые обычно дают и принимают на эти вопросы. Пожалуйста, подумайте, действительно ли ваш вопрос существенно отличается от тех, которые присутствуют в этих ЧаВо, прежде чем просить людей тратить время, чтобы ответить персонально вам на вопрос, который задавали уже много раз.
Если ваш вопрос действительно существенно отличается, а ответы в этих ЧаВо вам не подходят, пожалуйста, укажите в посте, что вы прочитали ЧаВо, и напишите, как именно отличается ваш вопрос и почему имеющиеся ответы вам не помогают. Это значит, что вы уже потрудились, чтобы найти ответ на свой вопрос, и поможет более точно ответить на него.
Как редактировать вики /r/learnprogramming (включая эти ЧаВо)?
Мы приветствуем ваш вклад, но чтобы получить право редактирования, вам нужен аккаунт, зарегистрированный не менее 30 дней назад и коммент-карма не менее 200 в данном сабреддите (не в целом на reddit). Как только эти условия будут выполнены, в заголовке вики появится кнопка «ре
90+ бесплатных ресурсов для самостоятельного обучения онлайн / Хабр
Хочу поделиться списком полезных образовательных ресурсов, среди которых каждый найдет для себя что-то интересное и новое. Главное рассмотрим в начале — IT и иностранные языки. А следом будет подборка сервисов и ютуб-каналов, связанных с наукой, образованием в целом, бизнесом и творчеством.
Информационные технологии и программирование
На русском:
- Academy.yandex.ru — Яндекс — найдется все! Помимо возможности записаться в одну из школ Академия Яндекса, на сайте доступен архив записей некоторых докладов.
- Cybermarketing.ru — Профессиональное обучение интернет-маркетингу.
- Code.org — Каждый должен иметь возможность изучать компьютерную науку наравне с общепринятыми дисциплинами.
- Geekbrains.ru — Хочешь научиться программированию? Десятки бесплатных материалов доступны на Geekbrains.
- Hexlet.io — Как стать программистом? Для начала перейти на данный ресурс.
- Htmlacademy.ru — Интерактивные курсы и интенсивы для будущих гуру в IT.
- Lendwings.com — Неплохая подборка курсов, в том числе бесплатных.
- Loftblog.ru — Портал видеоуроков по веб-разработке.
- Mail.ru — “Погребок” аккуратно собранных и замаринованных видео-лекций от профессионалов Mail.ru и ведущих IT-разработчиков, которые вы можете “достать и открыть” в удобное для вас время и попробовать на вкус.
- Microsoft.com — Подборка курсов от виртуальной академии Майкрософт.
- Techdays.ru — Видеопортал по разработке и современным технологиям.
На английском:
- Codecademy.com — Учитесь программировать в интерактивном режиме.
- Codeplace.com — Обучение веб-разработке от А до Я для новичков и продвинутых разработчиков.
- Codeschool.com — Учись, практикуйся, добивайся своего!
- Datacamp.com — Онлайн-уроки и курсы программирования.
- Dataquest.io — Больше данных богу данных. Научитесь писать код, работать с данными и строить свои проекты.
- Datamonkey.pro — Изучайте SQL и Excel, станьте мастером по анализу данных.
- Generalassemb.ly — Великолепные сайты (HTML, CSS, Javascript) своими руками.
- Onemonth.com — Стань на “ты” с кодом за 1 месяц. Заманчиво не правда ли?
- Platzi.com — Маркетинг, программирование и дизайн от лидеров отрасли.
- Sitepoint.com — Ruby, PHP, SEO, дизайн и многое другое.
- Teamtreehouse.com — Учитесь HTML, CSS, мобильной разработке и многому другому.
- Udacity.com — Тот самый “Университет Силиконовой долины”.
Иностранные языки
С русским интерфейсом или поддержкой:
- 16polyglot.ru — Англисйкий (и другие) язык за 16 часов! Конечно, это не совсем правда, но для поездки или начала изучения самое то.
- Abaenglish.com — Бесплатные видео-уроки английской грамматики, фильмы и многое другое.
- Busuu.com — Сайт и приложение. Обучайся вместе с 60 миллионами пользователей со всего мира. Отправляй упражнения на проверку реальным людям и сам помогай другим.
- Duolingo.com — Сайт и приложение: учите языки в игровой форме.
- Lang-8.com — Социальная сеть для изучения другого языка. Пиши тексты, отправляй их на проверку другим ученикам. Проверяй работы на своем родном языке.
- Lingualeo.com — Персонализированный онлайн-сервис, помогающий учить английский язык эффективно. Сайт и приложение.
- Lingvist.io — Азы английского или французского языков обещают донести за 200 часов, проверим?
- Lingust.ru — Еще один сайт с подборками материалов для изучения языка.
- List-english.ru — Подборка бесплатных материалов по английскому языку для начинающих.
- Ororo.tv — Смотрите фильмы и сериалы с субтитрами, в любой момент наводите мышь на неизвестное слово — фильм остановится, а вам покажут перевод и прочую полезную информацию.
- Real-english.ru — Английский без дураков — “Курс молодого бойца”.
На английском:
- 40 Essential British Expressions — Youtube-канал. Простые и познавательные анимационные уроки помогут вам лучше понимать язык Байрона и Шекспира.
- Anglo-linklink — Youtube-канал. Учим постепенно, переходя от менее сложных уроков к более сложным.
- Babbel.com — Если с английским уже все в порядке, здесь вы можете взяться за другие языки. Основной принцип площадки — во главе всего реальные повседневные беседы и темы.
- BBC Learning English — Youtube-канал. Изучайте язык вместе с британской новостной службой BBC.
- Britishcouncil.org — Большая база графических, аудио и видео материалов от British Council.
- English in a minute — Youtube-канал. Американский английский по несколько минут в день. Такой подход точно понравится людям с хронической нехваткой времени.
- Learn English with Jennifer — Youtube-канал. Полмиллиона подписчиков и десятки видеоуроков говорят сами за себя. Заходим на канал опытного педагога, смотрим и работаем над собой.
- Planblabs.net — Уделяйте этому приложению по 5 минут в день.
- Memrise.com — Карточки, карточки, слова, слова.
- Rachel’s English — Youtube-канал. Как работать с американцами? В первую очередь – говорить с ними на одном языке.
- Quill.org — Различные топики для изучения английского.
Наука и образование
На русском:
- 4brain.ru — Развивайте память, считайте в уме, осваивайте ораторское мастерство. arzamas.academy/courses Некоммерческий просветительский проект, посвященный гуманитарному знанию.
- Coursera.org — Знания тысяч экспертов из ведущих университетов мира собраны специально для вас на одной площадке.
- Coursmos.com — Курсы по различным темам всегда с вами. В любом месте, с любого устройства.
- Ifmo.ru — Курсы от ИТМО. IT’sMOre than a UNIVERSITY.
- Gaidaruniversity.ru — Открытый университет Егора Гайдара. Лекции по экономическим и социальным дисциплинам.
- Khanacademy.org — Академия Хана (Khan Academy) продвигает идеи бесплатного и качественного образования для всех.
- Lektorium.tv — Просветительский проект Лекториум. Вас ждут специально подготовленные ведущими вузами страны онлайн курсы. Темы найдутся для всех: старшеклассников, студентов и специалистов.
- Lectoriy.mipt.ru — Лекторий. Видеолекции и открытые образовательные материалы Физтеха.
- Nkj.ru — Видеоподборка журнала “Наука и жизнь”.
- Openedu.ru — Открытое образование. Платформа позволяет изучать базовые дисциплины бакалавриата российских университетов через онлайн-курсы. Среди партнеров-организаторов МГУ, СПбГУ, СПбПУ, НИУ «ВШЭ», МФТИ, ИТМО.
- Postnauka.ru — Короткие видеолекции, монологи ученых по теме их исследований. Научные теории, понятия, идеи и факты.
- Pushkininstitute.ru — Образование на русском. Проект Государственного института русского языка им А.С.Пушкина.
- Theoryandpractice.ru — Теории и практики- место в сети для обмена знаниями.
- Totaldict.ru — Онлайн подготовка к “Тотальному диктанту”.
- Academia — Проект Academia телеканала Культура. ТВ-проект, каждая серия которого — это самостоятельная лекция по одной из фундаментальных наук.
- Tvkultura.ru — Телеканал Культура, подборка видеоматериалов образовательной тематики.
- Universarium.org — Универсариум — открытая система электронного образования. Бесплатные образовательные программы от лучших университетов России.
- Univertv.ru — Открытый образовательный видеопортал УниверТВ. Коллекция видеофильмов, записей лекций ведущих российских и зарубежных ВУЗов.
- Uchinovoe.ru — Учи новое! Не школьные предметы для школьников.
- Universiality.com — Технологии, личностный рост, творчество, дизайн, музыка.
- Upstudy.pro — Молодой агрегатор различных курсов, в основном офлайн, но начали появляться и онлайн. Иногда можно поймать интересные бесплатные онлайн мероприятия от экспертов различных сфер.
- Vnimanietv.ru — Коллекция материалов по итогам первой в России национальной премии «Внимание» в области образовательное видео.
На английском:
- Academicearth.org — Курсы для абитуриентов, учащихся колледжей, техникумов и их выпускников, а также бакалавров, магистров, докторов наук.
- Curious.com — Учитесь чему-то новому каждый день, уделяя всего по 5, 15 или 30 минут.
- Edx.org — Качественное образование мирового уровня для всех и везде.
- Gohighbrow.com — Получайте каждое утро 5-минутный урок на свою электронную почту.
- Mruniversity.com — Экономика во всех ее проявлениях.
- Skillshare.com — Дизайн, бизнес, технологии, фотография, кулинария.
- Open2study.com — Видео-курсы различных направлений от детского раннего развития до астрономии.
- Udemy.com — Более 30 тысяч курсов и образовательных программ, ныряйте с головой.
Бизнес и карьера
На русском:
- Businesslearning.ru — Бесплатное повышение квалификации в сфере предпринимательской деятельности.
- Dasreda.ru — Электронные знания школы бизнеса Деловая среда (Сбербанк).
- Eduson.tv — Продажи, менеджмент, личная эффективность. Все здесь!
- Hse.ru — Видеоматериалы бизнес-инкубатора НИУ ВШЭ
- Intuit.ru — Знания — ваш ключ к новой работе и более высокому посту в компании.
- Uniweb.ru — Повышайте свои компетенции без отрыва от работы.
- Skolkovo school — Ютуб канал Московской школы менеджмента Сколково.
Творчество, разное
На русском:
- Dancehelp.ru — Видеокаталог хореографу в помощь.
- Smak — Эфиры телепроекта Смак.
- Strelka — Vimeo канал института социальных изменений Strelka.
- Talerka.tv — Традиционные рецепты мира.
- Ted.com — «Technology, Entertainment, Design» или по-русски «Наука, Искусство, Культура». Образовательные видеоролики, отснятые специалистами различных компаний мира. Основной язык английский, у многих есть русские субтитры.
- Забавы кисточкой — Ютуб канал “Забавы кисточкой”. Небольшая подборка нетривиальных уроков акварели.
На английском:
- Chesscademy.com — Все, чтобы научиться играть в шахматы. Онлайн.
- Guides.co — Ежедневно авторы, педагоги, маркетологи и блоггеры пополняют огромную коллекцию руководств (гайдов) по различным тематикам.
- Pianu.com — Каждый может научиться игре на фортепиано.
- Yousician.com — Клавишам предпочитаете струны? Тогда этот ресурс для вас.
- DrawWithJazza — Ютуб канал с видеоуроками по созданию мультипликационных персонажей.
- LighterNoteProd — Ютуб канал с практическими советами начинающему художнику.
Пользуйтесь, изучайте, открывайте новое каждый день!
Жду в комментариях ссылки на ресурсы, которыми пользуетесь вы сами. Что они дают, как работают и почему именно эти сервисы, а не один из 10 других подобных.
Обучение программированию с нуля онлайн, список курсов
Подборка ресурсов, которые помогут научиться программировать, от Business Insider.
На Codecademy можно бесплатно проходить интерактивные курсы базового уровня или купить подписку за $20 в месяц — она включает поддержку тьюторов, доступ к огромной базе практических заданий и многое другое. Каталог Codecademy насчитывает тысячи часов курсов: здесь есть комплексные программы Career Paths по технологическим специальностям, например по машинному обучению и data science, по языкам, например HTML & CSS и Python, а также курсы по более узким тематикам, например по анализу данных с помощью Python или разработке Android-приложений на Java. Ещё авторы сделали викторину для тех, кто не знает, с чего начать в мире программирования.
Полностью бесплатная некоммерческая площадка, которая обучает веб-разработке путём решения задач и выполнения проектов. Платформа предлагает более 6 тысяч туториалов. По словам freeCodeCamp, свыше 40 тысяч студентов, прошедших её программу, нашли работу в крупных компаниях вроде Google, Amazon и Microsoft. В основном на один курс потребуется примерно 300 часов времени.
На Coursera есть курсы, профессиональные сертификаты и магистрские программы от вузов с мировым именем, таких как Университет Дьюка, Стэнфордский и Принстонский университеты, и крупных айтишных компаний, включая Google и IBM. Найти обучающие программы здесь смогут слушатели любого уровня — от начинающих до профессионалов. Большинство курсов бесплатны, но сертификаты о прохождении придётся покупать. Также есть бесплатный 7-дневный период, по прошествии которого ежемесячно взимается $39. Можно сразу купить годовую подписку Coursera Plus за $399 — она открывает свободный доступ к 90% контента на сайте.
Площадка основана Массачусетским технологическим институтом совместно с Гарвардским университетом. Предлагает бесплатные и недорогие курсы, сертификации, и другие виды программ от топовых компаний и вузов, в том числе Microsoft, IBM, Дартмутского колледжа, Гарварда и других. Проходить курсы можно бесплатно, сертификаты стоят от $39 до $99. Профессиональные сертификации обойдутся в несколько сотен долларов, а некоторые магистрские университетские курсы могут доходить до нескольких тысяч долларов.
Udemy предлагает более 150 тысяч бюджетных курсов за $10-12, которые можно проходить более чем на 65 языках. На платформе часто бывают скидки.
Цель этой инициативы Массачусетского технологического института — опубликовать в свободном доступе материалы его всех курсов. Ресурс содержит видеолекции и симуляции, которые будут весьма полезны для обучения, хотя сертификаты и дипломы по итогу учёбы не выдаются. Контент полностью бесплатный.
25 тысяч курсов от предпринимателей и профессионалов в своих областях из разных стран мира. Занятия строятся в форме коротких лекций с практическими проектами, которые можно обсуждать с преподавателем и другими студентами. Есть курсы по HTML и CSS, UI/UX-дизайну и другие. За базовый онлайн-доступ к курсам платить не нужно, но если есть желание учиться офлайн или получить расширенный доступ, понадобится премиумный аккаунт за $19 в месяц или $99 в год.
16 тысяч курсов длительностью в основном не более 4 часов на образовательной платформе бизнес-сервиса LinkedIn. Можно подбирать курсы по сложности, времени на прохождение, тематикам или языкам программирования. Первый месяц бесплатно, далее — $30 в месяц или $240 в год.
Полностью бесплатная платформа с упражнениями и небольшими видеоуроками для школьников, студентов, преподавателей и родителей. Среди прочего, здесь есть специализированный контент от партнёров Khan Academy, таких как NASA, MIT, Калифорнийская академия наук, Музей современного искусства в Нью-Йорке.
Здесь можно выбирать отдельные курсы и курируемые модульные программы, например DevOps для разработчиков и программирование на Python. Большинство курсов платные и стоят в пределах $19-$79, комплексные программы — $39-$470. Можно оформить подписку за $59 в месяц или $249 в год.
Тысячи курсов и комплексных программ от профессионалов по разработке ПО, большим данным, кибербезопасности, а также Python, JavaScript, веб-разработке, Angular JS, Java и многому другому. На площадке можно проверить знания по разным темам, чтобы подобрать оптимальный курс. Пробный период ограничен 10 днями либо 200 минутами контента в зависимости от того, что истечёт раньше. Далее нужно платить $29 в месяц или $299 в год, премиумная подписка за $449 в год включает доступ к тестовым заданиям, проектам и интерактивным курсам.
На Treehouse есть сотни курсов и модульных программ, сочетающих смежные темы, а также буткемпы TechDegrees для full stack-разработчиков, Python, PHP, фронтенд-разработчиков и UX-дизайнеров. В распоряжении студентов — видеоролики, тесты и упражнения. Курсы можно искать по теме, сложности, названию и преподавателю. Первая неделя предоставляется бесплатно, дальше — $20 в месяц за курсы и $199 — за буткемпы.
Курсы по data science, машинному обучению, искусственному интеллекту, облачным вычислениям, автономным системам разной сложности и длительности. 190 курсов на Udacity выложены бесплатно, также есть «нанодипломы» (nanodegree program) по несколько сотен долларов. Они включают проект, помощь ментора, помощь в подготовке к поиску работы и кастомный план для обучения в комфортном режиме. Первый месяц — пробный период, ежемесячная подписка стоит от $340.
более 70 бесплатных русскоязычных онлайн-курсов по IT-специальностям
Пандемия COVID-19 закрывает границы государств, но открывает людей и компании друг другу. Библиотека программиста поддерживает коллег по онлайн-образованию, открывших доступ к своему контенту. Мы также не забываем о ресурсах, которые предоставляли свои материалы бесплатно и раньше. В этом посте мы сгруппировали по категориям доступные сейчас русскоязычные IT-курсы, чтобы наши читатели могли с толком потратить время на карантине.
Категории мы дополнили нашими ключевыми статьями, а в конце списка указали теги сайта, чтобы во время прохождения курсов вы могли посмотреть реальные примеры использования изучаемых технологий.
На всех перечисленных платформах имеются платные курсы, однако акценты расставлены различным образом. Обычно бесплатны лишь наиболее общие разделы в больших специализациях. Такие курсы служат рекламой и показателем качества ресурса для того, чтобы заинтересовать пользователей подписаться на платные курсы или оформить подписку. Но бывают и другие подходы. Например, стратегия монетизации Stepik.org построена на том, чтобы предоставить платформу другим компаниям для создания собственных платных специализаций.
Множество качественных русскоязычных курсов доступны на популярной МООК-платформе Coursera, но их подробное рассмотрение требует отдельной публикации. Напишите в комментариях, если вам это интересно.
В эту подборку мы включили бесплатные образовательные материалы, имеющие большое количество подписчиков и высокие оценки на их платформах (указаны в скобках при наличии информации). Чтобы у читателей был выбор между различными источниками информации, по возможности для одной темы мы старались найти несколько ресурсов.
Stepik
Stepik.org – это образовательная платформа и конструктор онлайн-курсов. Основные темы: программирование, информатика, математика, статистика и анализ данных, биология и биоинформатика, инженерно-технические и естественные науки. Можно учиться не только на сайте, но и в мобильных приложениях для iOS и Android.
Хекслет
Три составляющие курсов Хекслет: лекция с упором на практическую задачу, тест на проверку понимания и практика, доступная через браузер. Полный список курсов.
GeekBrains
В этой подборке мы указали те курсы GeekBrains, что постоянно находятся в свободном доступе. Недавно мы писали про то, что компания на время карантина также открыла ряд других курсов. Чтобы на них записаться, нужно зарегистрироваться на сайте, а потом заполнить анкету.
Яндекс.Практикум
Яндекс.Практикум предоставляет бесплатный доступ к первым курсам пяти специализаций. После прохождения вы можете оценить, насколько вам подходит формат занятий и сама профессия. Что входит в бесплатные курсы – перечислено на странице Яндекс.Помощи. Обычно это 20 часов теории и доступ к онлайн-тренажеру, практические задания или проект.
Для абсолютных новичков
Если вы хотите составить ваш собственный план, советуем прочитать нашу публикацию Детальный план самообразования в Computer Science за 1.5 года. Можно использовать этот план в качестве шаблона.
Математика для программистов
Математика – это не только и не столько предмет вузовской программы, сколько мощный язык для представления абстрактных идей. Если вы занимаетесь самостоятельно, мы советуем проходить математические курсы параллельно специальным. Например, если вы хотите стать специалистом по данным, вам не обойтись без линейной алгебры и статистики. Эти курсы будет интереснее проходить одновременно с курсами по машинному обучению.
Чтобы учиться было проще, мы подготовили статью 12 простых советов тем, кто самостоятельно учит математику.
- Введение в логику (Хекслет, 15K).
- Введение в математический анализ (Stepik, 36K, ★4.9).
- Линейная алгебра (Stepik, 11K, ★4.7).
- Математическая логика и теория алгоритмов (Stepik, 11K, ★5.0).
- Теоретическая информатика: сложность вычислений (Stepik, 6K, ★4.7).
- Основы теории графов (Stepik, 14K, ★5.0).
- Полный курс теории графов (Stepik, 2K, ★4.3).
- Основы перечислительной комбинаторики (Stepik, 10K, ★5.0).
- Дискретные структуры (Stepik, 23K, ★5.0).
- Ликбез по дискретной математике (Stepik, 26K, ★5.0).
- Теория вероятностей (Stepik, 26K, ★5.0).
- Видеолекции курса «Дискретный анализ и теория вероятностей» (ШАД).
- Математическая статистика (Stepik, 12K, ★5.0).
- Основы статистики (Stepik, 106K, ★4.9), часть 2, часть 3.
- Компьютерная графика: основы (Stepik, 26K, ★4.9).
- Наш тег Математика.
Алгоритмы
Алгоритмы можно учить также с помощью книг и веб-сайтов с задачами. Наиболее популярный ресурс с алгоритмическими задачами – LeetCode. Мы посвятили отдельную статью тому, как научиться решать задачи на алгоритмы.
Обучение новым языкам программирования
Для написания качественного кода рекомендуем прочитать наш материал Как написать код, который полюбят все. В нем собран набор практик хорошего кода, не зависящих от языка программирования.
- C#. Быстрый старт (GeekBrains, 6K, ★4.7).
- Программирование на Python (Stepik, 312K, ★4.8), продолжение (81K, ★4.8).
- Введение в программирование на C++ (Stepik, 193K, ★4.8).
- Основы программирования на C. Задачи (Stepik, 18K, ★4.8).
- Основы языка C (GeekBrains, 1K, ★4.7).
- Введение в Си (Хекслет, 8K).
- Программирование на языке C++ (Stepik, 75K, ★4.7).
- Программирование на C# (Stepik, 7K, ★4.7).
- JavaScript для начинающих (Stepik, 71K, ★4.5).
- Программирование на Go (Stepik, 3K, ★4.3).
- Введение в Scala (Stepik, 7K, ★4.6).
- Введение в Ruby (Хекслет, 3K).
- PHP: Основы (Хекслет, 5K).
- Введение в Perl (Stepik, 1K, ★4.7).
- Функциональное программирование на языке Haskell (Stepik, 14K, ★4.9).
Отдельно Java и Kotlin
Операционные системы
Если вам нужно беглое ознакомление с тем, как устроены операционные системы, советуем этот материал.
Linux
Чтобы обучаться между делом, можно запускать плейлисты из нашей публикации 10 лучших видеокурсов для изучения Linux, а для глубокого погружения мы собрали 6 лучших книг о Linux.
Системы контроля версий
Если нужно разобраться контроле версий быстро, то один из наших самых популярных материалов – Git за полчаса: руководство для начинающих. Если настало время перейти к деталям, то вот пара хороших курсов:
Тестирование
Веб-программирование
- Веб-разработчик (Яндекс.Практикум, бесплатен первый курс).
- Веб-разработка для начинающих: HTML и CSS (Stepik, 62K, ★4.7).
- Введение в веб-разработку (Хекслет, 27K).
- Ключевые аспекты веб-разработки на PHP (Хекслет, 2K).
- PHP: Настройка окружения (Хекслет, 2K).
- Python-разработчик (Яндекс.Практикум, бесплатен первый курс).
- Web-технологии (Stepik, 52K, ★4.7).
- Анализ безопасности веб-проектов (Stepik, 21K ★4.9).
- Учебник по PHP от HTMLAcademy
- Наши теги: Web, Frontend и Backend.
Data Science
Так же, как в случае с Computer Science, вы можете составить собственный учебный план, оттолкнувшись от нашего учебного плана-интенсива. Еще советуем нашу большую подборку видео 100 лекций экспертов Постнауки об анализе данных, ИИ, роботах, математике и сетях.
- Аналитик данных (Яндекс.Практикум, бесплатен первый курс).
- Специалист по Data Science (Яндекс.Практикум, бесплатен первый курс).
- Открытый курс машинного обучения ODS.
- Основы программирования на R (Stepik, 15K, ★4.9).
- Анализ данных в R (Stepik, 27K, ★4.9), часть 2.
- Введение в Data Science и машинное обучение (Stepik, 30K, ★4.9).
- Машинное обучение (Stepik, 8K, ★4.9).
- Видеолекции курса «Машинное обучение» (ШАД).
- Нейронные сети и обработка текста (Stepik, 10K, ★4.6).
- Нейронные сети и компьютерное зрение (Stepik, 27K, ★4.9).
- Введение в базы данных (Stepik, 7K, ★4.7).
- Hadoop. Система для обработки больших объемов данных (Stepik, 21K, ★4.8).
- Наш тег Data Science.
Мобильные приложения
Забавно, что для обучения тому, как делать мобильные приложения, можно учиться в самих приложений – ознакомьтесь с нашим постом про 10 мобильных приложений, которые научат вас программировать. Относительно программирования под Android мы также описали множество инструментов и трюков. Есть материал и про открытые библиотеки iOS.
Интерфейсы
Менеджмент проектов
Специальные знания (не вошедшие в другие категории)
***
Эта публикация не является рекламным постом: если какой-то из перечисленных курсов стал платным, дайте нам знать – мы исключим его из подборки. Аналогично: если мы не упомянули какой-то курс или образовательную платформу с бесплатными курсами, которые вам понравились – напишите в комментариях – добавим их в статью.
Успехов в обучении!
ᐉ 15+ лучших книг для изучения русского с нуля (обновление 2020)
Какую книгу лучше всего использовать для изучения русского? Список самых эффективных книг для начинающих, изучающих русский язык на уровнях А1-А2. Если вы учащийся среднего уровня, ваш уровень владения языком B1, B2 см. В: 7+ Лучшие учебники русского языка для уровней B1 — B2, средний
Мы с женой изучаем русский язык, поэтому я купил этот график. Я видел отрицательный отзыв, но я также читал много других обзоров, подумал, что стоит попробовать.Я не был разочарован. Если есть небольшие неточности, они незначительны. Русский — сложный язык, не уверен, что все русские его понимают. (Американцы тоже не всегда понимают английский). Таким образом, эта раскладывающаяся многослойная таблица не пытается заменить учебник, но в ней содержится много полезной и надежной информации. Сделано очень добротно. Купи это!
Это лучшая книга для изучения русского с нуля без учителей и уроков, даже если вы совершенно ничего не знаете о русском языке.
ПРОФИ
1. твердое понимание русской грамматики.
2. Словарь некоторых из самых полезных слов в русском языке.
3. Логичная и простая методика без кормления с ложечки или разбавленных уроков грамматики в сопровождении милых мультяшных картинок.
4. На каждом уроке вы сначала запоминаете список новых словарных слов .
5. Вы бы изучили несколько кратких грамматических принципов , которые были четко объяснены.
6. Вы изучите небольшой текст на русском языке, который включает новую лексику и применяет новые принципы грамматики, которые вы только что выучили на уроке.
7. Вы должны перевести английский текст на русский, чтобы проверить себя на новом словарном запасе и грамматике.
8. Ключ, показывающий правильный перевод английского текста на русский, чтобы вы могли убедиться сами.
9. Многочисленные дополнительные русские тексты и разговоры , чтобы вы могли видеть, как словарный запас используется в контексте.
10. Клавиши ответов на обратной стороне книги показывают перевод упражнений с русского на английский, а также с английского на русский.
11. Упражнения по переводу в конце каждого урока и соответствующие ключи ответов на обратной стороне книги. Перевод, вероятно, лучший способ проверить, действительно ли вы понимаете грамматику и словарный запас , которым учат на уроках, и эта книга дает вам множество возможностей проверить себя таким образом.
12. Он достаточно мал, чтобы носить его с собой куда угодно, в отличие от тех громоздких учебников русского 101, которые используются в классах колледжей, в которых используется медленный, разбавленный, почти детский подход к обучению языку. Если вы хотите выучить русский язык, купите эту книгу и проработайте уроки.
МИНУСЫ
Единственным серьезным недостатком является то, что вы никогда не выучите правильное произношение, не послушав, как русские говорят на этом языке (в этом случае присоединяйтесь к нашему чату с коренными русскими). , и в этой книге нет аудиокассет для сопровождения.Однако, кроме этого, вы не найдете лучшей книги для начинающих, которые хотят выучить русский язык.
Получите "Новый курс русского языка для пингвинов" прямо сейчас!
Замечательный и простой для понимания источник для всех, кто начинает изучать русский язык. Объясняется кириллица, часто вызывающая серьезные затруднения. Делается попытка упростить, а также дать фонетическое произношение языка. Частые слова и фразы, такие как дни недели, числа и т. Д., покрыты. Также рассматриваются ситуации в реальном времени, такие как рестораны и банки. Если вы только начинаете бороться с русским языком, вам нужно это введение.
Иллюстрированная грамматика русского языка.
Охватывает все ключевые моменты элементарной русской грамматики.
Инфографика и иллюстрации в книге дают наглядные объяснения.
Практические упражнения.
Полная таблица правильных и неправильных русских глаголов.
Можно использовать для самостоятельного изучения или как приложение к любому учебнику.
- Современное, актуально для нашего времени. Россия явно ушла из советской эпохи, и эта книга отражает это.
- Тщательно. Каждый раздел в этой книге дает вам возможность улучшить свои навыки чтения, речи, письма и общего понимания русского языка.
- Интерактивный.На сайте, который идет вместе с этим учебником, есть всевозможные слуховые упражнения. Вас всегда поощряют слушать, говорить, писать и читать. Это очень разносторонний подход.
- Fun. Ни капли не сухо, пользоваться этим учебником весело. Иллюстрации внутри милые. Актеры озвучки на сайте звучат восторженно. Легкий формат книги в мягкой обложке побуждает вас пойти в парк и выучить русский язык.
Этот учебник с множеством иллюстраций и словесных упражнений прекрасно подходит для учащихся, изучающих зрение и слух.
Автор знает, как преподавать язык, и она знает, как сделать русский язык понятным для англоговорящего человека. Там тонны записей (92), и все очень четкие. Грамматика освещена, но в этой книге гораздо больше полезного. Красиво организованная книга, больше похожая на школьный учебник.
Большая серебряная книга русских глаголов — это наиболее полный ресурс для изучения и усвоения русских глаголов.Это незаменимое руководство, предназначенное для начинающих и продвинутых учеников, поможет вам с легкостью спрягать глаголы, позволяя уверенно общаться на русском языке.
555 полностью спряженных глаголов, перечисленных в алфавитном порядке.
Текущие идиомы и выражения для каждого глагола.
Топ-50 глаголов с множеством примеров их использования в контексте.
Более 4200 глаголов связаны с моделями спряжения.
Удобное руководство по расшифровке неправильных форм глаголов.
Интересный, веселый и занимательный иллюстрированный тематический словарь станет вашим верным помощником в изучении русского языка.
* более 1000 слов
* 43 иллюстрированные тематические страницы, которые знакомят с известными темами, такими как дом, семья, школа и работа, а также на актуальные и конкретные темы, такие как окружающая среда и астрономия.
* Существительные, глаголы, прилагательные, наречия и предлоги.
* Глоссарий перечисляет более 1000 слов в алфавитном порядке с перекрестными ссылками на соответствующую тематическую страницу.
Русско-английский двуязычный визуальный словарь из серии бестселлеров DK делает изучение языков доступным благодаря фотографиям, позволяющим поместить повседневную лексику современного мира в контекст.
Тематическая организация, состоящая из более чем 10 000 полностью иллюстрированных терминов, обозначенных как на русском, так и на английском языках, и исчерпывающих двусторонних указателей, которые помогут вам найти идеальный перевод.
Дополнительные панели функций включают абстрактные существительные и глаголы, а также полезные фразы, которые вы можете использовать в разговоре, когда почувствуете себя более уверенно.
Русско-английский двуязычный визуальный словарь — это красочный и стимулирующий учебный ресурс, идеально подходящий для всех уровней, будь вы студент, преподаватель, турист или деловой путешественник.
Теперь полностью обновлено с новым текстом, изображениями и новым смелым внешним видом.
Сочетая в себе удобный подход и тщательное изучение языка, он дает учащимся основные навыки, необходимые для уверенного и эффективного общения на русском языке в самых разных ситуациях.
Прогрессивное распространение навыков устной речи, аудирования, чтения и письма
Структурированные пояснения грамматики без жаргона
Обширный спектр целенаправленных и стимулирующих упражнений
Реалистичные и увлекательные диалоги, охватывающие самые разные сценарии
Списки полезной лексики по всему тексту
Дополнительные ресурсы, доступные в конце книги, в том числе полный ключ ответа, грамматическое резюме и двуязычные глоссарии
Сбалансированный, всеобъемлющий и полезный разговорный русский язык станет незаменимым ресурсом как для самостоятельных учащихся, так и для студентов, обучающихся на курсах на русском языке.
Русский уровень 1, уроки 6–10: научитесь говорить и понимать русский язык с помощью языковых программ Pimsleur  (аудиокнига с оригинальной записью 0,00 долл. США) — 30 минут обучения языку с разговорной речью, лексикой и структурами.
Уровень 1 разделен на 3 аудиокниги. Каждая аудиокнига рассчитана на 5 уроков по 30 минут каждое, в общей сложности 2 часа 40 минут содержания.
Я наполовину закончил второй. Учитывая количество повторений, вы, вероятно, можете оценить, что объем контента не очень велик.Из этих примеров вы не выучите массу новых слов, но они, кажется, позволяют вам достаточно хорошо понять базовую механику языка, чтобы вы могли использовать их в качестве моделей для словаря, который вы получите в противном случае.
Для этого я рекомендую карточки AnkiApp. Вы можете выбрать 200 более часто встречающихся слов со звуком, которые охватят 80% того, что говорится в обычном разговоре . Я слушаю это каждый день в течение 1 часа с тех пор, как начал неделю назад, и я делал приложение для карточек AnkiApp, чтобы пополнить словарный запас.Сейчас я могу очень мало разговаривать с моими русскими друзьями в Нью-Йорке, но это все еще очень шутливо. Я еще не знаю грамматических времен и сложных структур, но я могу сделать понятным Тарзана, например, высказывания, а также я могу понять некоторые из того, что они говорят, и это круто, потому что с тех пор, как я начал, прошло совсем немного времени. Также понравилась общая тема разговора.
Я считаю, что этот продукт обеспечивает качество и кажется более естественным и интересным способом обучения.
Я использовал Rosetta Stone и десятки других языковых курсов и учебных материалов, но только метод Pimsleur помогает вам встать и говорить за считанные минуты. На сегодняшний день это лучший и самый быстрый способ научиться говорить на языке.
Если вы планируете путешествовать и хотите научиться говорить на родном языке к тому времени, как вы туда доберетесь, это вам поможет. Нет ничего лучше.
Я говорю на русском, испанском, немецком, сербском, греческом и итальянском языках и очень жалею, что выучил их все с Pimsleur.
Многие люди изучают языки, а в процессе выучить много слов, которые могут им не понадобиться . Такой справочник будет очень ценен для любого серьезного изучающего язык.
ПРОФИ
В этой книге буквально перечислены наиболее часто используемые слова в порядке их появления в обычном разговоре и письме.
Возможно, стоит отметить, что язык — динамичный зверь, и слова могут меняться по частоте использования, даже приглашая в процесс новые слова.
Это работа, основанная на прошлых усилиях по документированию шаблонов использования , расширенная за счет включения большего, чем просто того, что вам нужно для выполнения учебного требования.
МИНУСЫ
Но помните, это список, а не учебник.
Предлагаются примеры использования (для первых 600 слов) и времен , но нет подробных объяснений применения.
Получите «Словарь для учащихся русского языка: 10 000 русских слов в частотном порядке» прямо сейчас!
Полный русский язык: основы (книга и набор компакт-дисков): включает учебное пособие, 4 аудиодиска и словарь для учащихся (полные базовые курсы)
ПРОФИ
Самая начальная ставка русского языка в линейке рейтингов крупнейшего американского издательства LIVING LANGUAGE.
Поможет научиться говорить, читать и писать по-русски, заложит фундамент, на котором вы сможете улучшить свои знания.
Современный курс «Русский без проблем» основан на эффективной методике, которая с 1960 года используется для обучения в дипломатической академии США. В первых четырнадцати главах выбраны самые важные и базовые элементы для начинающих изучать русский язык.
Если вы способны уделять курсу всего 30 минут в день, то уже через несколько недель вы сможете научиться говорить по начальным предметам и понимать письменное… Основа курса — метод естественного обучения. То есть мы начнем с изучения звуков, затем фраз и отдельных слов, а затем предложений.
И повторить все, что нужно — послушать аудиозапись за диктором, для которого русский язык является родным. Слушайте, вы говорите, погрузитесь в язык.
Этот полный курс охватывает все аспекты языка — навыки устной речи, письма и грамматики.
В книге вы найдете перевод на английский язык всех текстов аудиозаписи и краткие пояснения к каждому уроку.
Первые пять уроков относятся к объяснению правил произношения, что является основой для изучения новых слов, словосочетаний и грамматики.
Если вы ранее уже изучали русский язык, то можете использовать книгу для повторения и как справочник по грамматике, здесь есть таблицы неправильных глаголов и справочник по переписке.
Получить сейчас! «Полный базовый курс русского языка»
Этот заголовок разбивает грамматику на мелкие кусочки и даже предлагает образцы, чтобы вы могли увидеть грамматику в действии, пока вы изучаете ее, пока он смешивает ее с разговорным русским.Автор этой книги — носитель русского языка, выучивший пять языков и, очевидно, обладающий языковыми способностями. Автор показывает, как научиться этому, в простой и лаконичной форме с множеством примеров, которые помогут целеустремленному человеку многому научиться самостоятельно. Автор советует читателям проявлять гибкость в использовании книги, не стесняйтесь бросаться куда угодно, чтобы выучить конкретный предмет (например, существительные, глаголы, местоимения) или начать с начала и работать до конца.Книга состоит из трех частей: грамматики, разговорного языка и словарей (числительные, глаголы, существительные, прилагательные, неправильные глаголы и ссылки). Стратегия автора по облегчению обучения состоит в том, чтобы выучить совершенный аспект глаголов, что нужно запоминать, а что не запоминать, и слушать живой язык. Сама книга организована с использованием алфавита, глаголов, существительных, местоимений, прилагательных, разговорного языка и словарей. Он относительно короткий (103 страницы) и может быть использован в качестве основного текста для начинающих российских студентов или в качестве справочного документа для более продвинутых студентов.
Отличная книга, которая научит вас тому, как работает английская грамматика, чтобы вы могли понять русскую грамматику!
ПРОФИ
Вы получите информацию о:
- Части речи — как определить английские и русские существительные, глаголы, прилагательные, предлоги и т. Д.
- Функции слов — как идентифицировать английские и русские предметы, прямые и косвенные объекты и т. Д.
- Грамматические термины — объяснение спряжения, падежа, склонения, согласия и т. Д.
- Пошаговый разбор примеров — как перейти от английской структуры к эквивалентной русской структуре.
Каждая глава книги охватывает один грамматический вопрос.
На английском
Грамматика объясняется в отношении английского языка, предваряя концепции, необходимые для русского языка.
На русском языке
- Грамматика, связанная с русским языком.
- Примеры с объяснением применяемых правил.
- Возможные подводные камни для англоговорящих.
Глаголы — ключ к живому языку.
750 русских глаголов и их использование дает вам ключ к живому языку — глаголы в контексте.
Глаголы придают силу речи и движение.
Урусских глаголов есть тонкости, которые обычно можно оценить только после многих лет изучения и разговора с носителями языка.
750 русских глаголов и их употребления дает вам все правильные варианты и сразу же добавляет к вашему знанию языка.
Правильные употребления проиллюстрированы общими фразами и идиомами, при этом особое внимание уделяется аспекту глагола, что особенно важно для изучающих русский язык.
Идеально подходит для студентов или бизнесменов, которые работают над развитием одного из самых интересных коммерческих рынков в мире, эта книга поможет вам понять и выразить себя на важном и сложном языке.
Вы хотите выучить русский язык быстро, весело и легко?
Тогда этот огромный сборник аудиокниг для вас.
Учите русский для повседневной жизни: Большая коллекция аудиокниг для начинающих предназначена для людей, которые хотят, наконец, говорить и использовать настоящий русский язык.
Вы выучите необходимые разговорные фразы, вопросы, ответы, фразы из социальных сетей и научитесь говорить о своей повседневной жизни на русском языке. Все слова и фразы были подобраны нашей командой преподавателей и экспертов русского языка.К концу этого сборника аудиокниги вы сможете …
1. Общайтесь на русском языке в социальных сетях
2. Мастер общих поздравлений
3. Общайтесь с местными жителями.
3. Расскажите о своем распорядке дня — с утра до вечера
4. Заказ еды в ресторанах
5. Спросите дорогу
И многое другое …
С этим сборником аудиокниг вы получите:
Аудиокниги внутри: фразы, которые необходимо знать в социальных сетях, 400 самых популярных занятий: ежедневные занятия на русском языке и трехминутный русский язык
+ 60 аудиоуроков всего
+ 5 часов всего
+ 319-страничный PDF, чтобы вы могли читать по
+ Две шпаргалки по бонусным беседам
Учите русский для повседневной жизни
«Учите русский, чтобы работать с русскими: легкий способ говорить по-русски» — это удобное пособие для изучения или преподавания основ русского языка и русской деловой терминологии.
Книга представляет собой ценное практическое руководство о том, как начать говорить по-русски. Автор вводит много русских слов, фраз и диалогов, полезных в повседневных ситуациях.
Вы можете использовать печатную книгу для заметок.
В этой книге вы обнаружите:
- Русский язык от А до Я и специальные советы по их быстрому изучению
- Шаблоны часто используемых диалогов
- Иллюстрированный учебный материал
- Базовая бизнес-терминология для делового общения
Скачать : «Учите русский, чтобы работать с русскими»
Для многих, кто начинает изучать русский язык, кириллица представляет собой большую преграду, чем это признается в большинстве текстов и книг по саморазвитию.Абсолютный новичок часто нуждается в источнике, который вводит определенные наборы букв и сопровождающих звуков, а затем приступает к предоставлению упражнений (с помощью простого словаря) для их отработки. Эта рабочая тетрадь предоставляет этот источник «шаг за шагом», что очень эффективно.
Если у вас есть опыт работы с русским языком, вы можете обнаружить, что это учебное пособие слишком простое. Но если вы начинаете изучать русский язык (особенно если вы начинаете самостоятельно), это отличное место для начала.
81 Лучшие места для бесплатного обучения программированию | Учимся кодить вместе со мной
Если вы новичок в мире программирования и веб-разработки, имеет смысл начать с самообучения, используя все бесплатные онлайн-ресурсы по обучению программированию.
Воспользовавшись этими ресурсами во время бесплатного обучения программированию, вы сможете узнать, что вам нравится, а что нет, прежде чем вкладывать деньги в определенный язык программирования или набор курсов. После того, как вы пройдете достаточно бесплатных уроков по программированию, чтобы найти это направление, вы сможете направить свою страсть на дальнейшее обучение наиболее эффективному программированию в Интернете.
Однако есть так много бесплатных ресурсов по кодированию, классов и книг на выбор. Как узнать, где лучше всего учиться программированию в Интернете?
Что ж, я провел небольшое исследование, чтобы сэкономить ваше время! Вот 81 лучший веб-сайт, на котором можно бесплатно научиться программировать — от простых руководств по программированию до полных онлайн-курсов. Чтобы упростить задачу, я разбил эти ресурсы для обучения программированию по темам. Используйте приведенное ниже содержание, чтобы прыгать.
Раскрытие информации: я горжусь тем, что являюсь партнером некоторых ресурсов, упомянутых в этой статье.Если вы купите продукт по моим ссылкам на этой странице, я могу получить небольшую комиссию за ваше направление. Благодаря!
Содержание
Обратите внимание: вся информация, преподаваемые темы и т. Д. Были приняты во время обновления (июль 2020 г.) и определенно могут быть изменены. Благодаря!
Начать кодирование сейчас
Хватит ждать и начать учиться! Получите мои 10 советов, как научиться программировать.
Успех! Теперь проверьте свою электронную почту, чтобы подтвердить подписку.
Общие веб-сайты и учебные платформы бесплатного программирования
1. Codecademy
Codecademy — это то место, где большинство новичков в программировании начинают свое дело. На их платформе вы можете узнать, как программировать, среди других технических навыков. Его репутация заслуженная. Codecademy вращается вокруг интерактивного обучения; то есть вы немного читаете, вводите свой код прямо в браузер и сразу видите результаты.
Какие бесплатные уроки программирования они предлагают: HTML и CSS, JavaScript, PHP, Python, Ruby, Angularjs, Командная строка и другие
2.freeCodeCamp
Эта бесплатная онлайн-школа кодирования, созданная Куинси Ларсоном, обучает программированию сначала по установленной учебной программе (всего около 800 часов), а затем дает вам практический опыт работы над проектами для некоммерческих организаций. Он идеально подходит для учащихся, которые хотят научиться программировать в Интернете, получив практический опыт, который принесет пользу и впечатляюще будет смотреться в резюме.
Предлагаются бесплатные сертификаты кодирования: HTML, CSS, JavaScript, визуализация данных, DevTools, тестирование QA, Node.js, React, jQuery и другие
3. Coursera
Coursera — одно из лучших мест, где можно бесплатно научиться программировать, с его профессиональными и универсальными вариантами курсов. Сайт представляет собой большую онлайн-библиотеку курсов, где занятия ведут настоящие университетские профессора. Все курсы бесплатны, но у вас есть возможность оплатить «Сертификат, подтвержденный Coursera» (цены варьируются от 30 до 100 долларов США), чтобы подтвердить окончание курса. Иногда оплата сертификата также предоставляет доступ к контенту, недоступному в бесплатных версиях.Coursera также предлагает «Специализации», которые представляют собой сборники курсов по определенной теме, обычно с заключительным проектом в конце.
Какие бесплатные курсы программирования они предлагают: Многие (далеко за пределами ваших базовых тем о программировании / информатике)
4. edX
EdX — это программа высшего образования с открытым исходным кодом, управляемая Массачусетским технологическим институтом и Гарвардом, что делает ее еще одним высококлассным ресурсом, где вы можете бесплатно научиться программировать онлайн. Сайт предлагает более 600 отличных курсов в категории «информатика», обучающих различным языкам программирования.
Предлагаются бесплатные курсы программирования: Java, C #, Python и многие другие
Прочтите наш полный обзор edX здесь.
5. Кодовые войны
Codewars предлагает увлекательный и уникальный способ научиться программировать. Программа посвящена боевым искусствам и основана на задачах, называемых «ката». Выполняйте их, чтобы заработать честь и перейти на более высокие ранги. Это интересный способ научиться программированию в Интернете, если вас мотивирует небольшая геймификация!
Задачи кодирования, которые они предлагают: CoffeeScript, JavaScript, Python, Ruby, Java, Clojure и Haskell
6.Код Conquest
Code Conquest — это бесплатное онлайн-руководство по программированию для начинающих. Веб-сайт кодирования идеально подходит для тех, кто не понимает, с чего начать. Узнайте, как , как научиться программировать, посмотрите бесплатные учебные пособия, загрузите шпаргалки, проверьте свои знания с помощью викторин и многое другое.
Преподаваемые темы: HTML / CSS, JavaScript, PHP, Ruby, jQuery, Swift, Python и другие
7. GA Dash
Это бесплатная обучающая онлайн-платформа Генеральной Ассамблеи.Он полностью основан на проектах — вы создаете «проект» с каждым пошаговым руководством, что делает его идеальным для тех, кто любит практиковаться во время обучения программированию онлайн.
Это один из очень немногих бесплатных ресурсов для обучения программированию, в которых есть курс по созданию темы Tumblr с нуля. Прочтите мой обзор здесь.
Какие проекты бесплатного программирования они предлагают: HTML, CSS, JavaScript, адаптивный дизайн
8.
Учите русский с нуля с помощью этих 7 ресурсов YouTube
Мы все любим YouTube.
Мы все часами развлекались там.
Просмотр веселых видео, на которых животные делают трюки.
Смотрю очаровательные видео с младенцами.
Хотя мы, возможно, привыкли отключать YouTube, чтобы поработать, изучить что-то или заняться чем-то еще продуктивным, мы призываем вас сделать прямо противоположное: выучить русский язык с YouTube.
Верно.
Онлайн-видео — отличные ресурсы для изучения языка.
Вы можете услышать русский, на котором говорят местные жители, увидеть его в письменном виде и даже задать вопросы в комментариях, и все это абсолютно бесплатно.
Существует различных ресурсов YouTube, посвященных обучению русскому языку новичков. , а также ресурсы для различных уровней, на которые вы можете легко погрузиться, будучи абсолютным новичком.
В этой статье мы сосредоточимся на этих типах ресурсов. Так что независимо от того, являетесь ли вы новым учеником, который нервничает по поводу того, чтобы сделать рывок в изучении языка, или вы просто ищете надежные ресурсы, охватывающие несколько уровней с нуля, мы поможем вам.
Загрузить: Эта запись в блоге доступна в виде удобного и портативного PDF-файла, который вы можете можно взять куда угодно. Щелкните здесь, чтобы получить копию. (Скачать)
Зачем начинать изучать русский язык с YouTube?
- Выбирайте из множества источников: YouTube содержит миллиарды видео, и тысячи из них предназначены для обучения аудитории русскому языку. Использование YouTube позволяет вам читать разных учителей, следить за теми, которые вам нравятся, и переходить от тех, которые вам не нравятся.
- Это бесплатно: YouTube совершенно бесплатно; Помимо оплаты подключения к Интернету, вы можете получать удовольствие от обучения без затрат, связанных с обычными онлайн-классами.
- Учитесь где угодно и когда угодно: Вы можете учиться с помощью YouTube во время перерыва на работе, в спортзале или в дороге. Нет предела тому, где и когда вы можете учиться, независимо от того, есть ли у вас несколько минут или несколько часов.
- Слушайте русские произношения: Русские слова могут быть длинными и сложными.YouTube позволяет услышать, как правильно произносят слова русские. Это действительно важно для беглости речи, особенно когда вы только начинаете.
- Общайтесь с другими учащимися: Поскольку YouTube — это социальная сеть, вы можете общаться с другими изучающими русский язык и читать комментарии, которые часто предлагают другие ресурсы и делятся советами по наиболее эффективным стратегиям обучения.
Как получить лучший опыт изучения русского языка на YouTube
- Создайте расписание, чтобы оставаться последовательным: Если вы посещаете уроки русского языка, вы обязуетесь пойти в определенный день и в установленное время.YouTube не требует никаких обязательств, но если вы не составите расписание, чтобы оставаться последовательным, это может помешать вам уделить достаточно времени изучению языка. Чтобы не сбиться с пути, составьте недельный график и соблюдайте его.
- Используйте другие источники, такие как учебники, блоги и карточки: Чтобы по-настоящему погрузиться в русский язык, полезно использовать как можно больше источников, чтобы найти различные способы изучения определенной темы и проверить свои знания.
- Убедитесь, что канал YouTube легитимен: Кто угодно (прочтите это еще раз, любой) может загрузить видео на YouTube. Прежде чем посвятить время изучению определенного источника, убедитесь, что это законный канал. Один из простых способов сделать это — искать проверенные каналы с большим количеством подписчиков и просмотров. Еще более простой способ — ознакомиться с замечательными ресурсами ниже!
Учите русский язык во сне
Хотя экспертное жюри еще не решило, действительно ли вы выучите язык во время сна, нет никаких сомнений в том, что это видео на YouTube с Eko Languages поможет вам выучить русский словарный запас, даже если вам придется делать это, пока вы бодрствуете !
Специально для начинающих русскоговорящих, это отдельное видео содержит более трех часов 100 распространенных русских слов и фраз, которые помогут вам получить хорошее начальное знание произношения и словарного запаса.
Каждое слово сначала произносится по-английски, а затем несколько раз произносится по-русски. В видео представлены варианты написания на русском и английском языках, а также руководство по произношению.
Учите русский с RussianPod101
Созданный сайтом RussianPod101.com, этот канал на YouTube имеет более 125 000 подписчиков. Частично его популярность связана с учителем Катей, которая дружелюбна, весела и заставляет зрителей чувствовать себя достаточно комфортно, чтобы поделиться с ней своим путешествием.
Этот канал предлагает множество видео, предназначенных для начинающих. Большинство из них сосредоточены на обучении русским словам и фразам, глаголам, существительным, прилагательным, именам членов семьи, зданиям и т. Д. Вы можете получить больше видео (на всем протяжении продвинутого уровня), подписавшись на их веб-сайт. При подписке вы также получите дополнительные учебные материалы и поддержку, например заметки к урокам в формате PDF и доступ к их форуму сообщества.
FluentU
FluentU — это место, где вы найдете коллекцию лучших видеороликов YouTube на русском языке () в одном месте.FluentU берет видеоролики из реального мира — например, трейлеры к фильмам, рекламные ролики, новости и вдохновляющие выступления — и превращает их в индивидуальные уроки языка.
Другими словами, с FluentU вы действительно можете пропустить учебные материалы и сразу перейти к обучению с помощью детских мультфильмов, песен и подлинного контента, который смотрят носители русского языка. Все это отсортировано по уровням, настроено с интерактивными подписями, транскриптами и викторинами, так что вы можете учиться независимо и достоверно, но с полной поддержкой аудио, определений и примеров, когда вам это нужно.
Поскольку FluentU поставляется с мультимедийными карточками, списками слов, пояснениями по грамматике и многим другим, вы можете использовать его отдельно или в дополнение к любому из ресурсов в этом списке. Вы также можете продолжать использовать его на протяжении всего путешествия по России по мере повышения вашего уровня, и у вас будет доступ к новым видео, которые добавляются постоянно.
Начните использовать FluentU на веб-сайте или, что еще лучше, загрузите приложение FluentU из магазина iTunes или Google Play.
The Travel Linguist: русский 101
«Лингвист-путешественник» предлагает 41 курс русского языка для начинающих.Как и на большинстве других сайтов YouTube, слова и фразы произносятся на русском и английском языках, а также пишутся на обоих языках. Однако эти видео отличает то, что в них два разных человека говорят одно и то же слово подряд, что очень полезно, если вы не можете полностью уловить, что говорит один из них.
Кроме того, видео останавливается после каждого слова, побуждая зрителей попытаться произнести эти слова самостоятельно. Видео сосредоточено на изучении слов для приветствий, направлений, покупок, ужинов и так далее.
Русский со страстью
На этом канале YouTube представлено более 130 видеороликов ведущей Антонии Ромакер. Во вступительном видео Антония приводит несколько веских причин для изучения русского языка, одна из которых заключается в том, что русские женщины очень красивы и что их язык может помочь вам в общении с ними (это объясняет название канала!).
В видеороликах используются общие фразы, например вступительные, а ведущий предоставляет дословные и популярные переводы с пояснениями.
Учите русский с RT
Этот канал YouTube отличается от других тем, что видеоролики короткие и по существу. Сфотографированные так, как будто они ведущие новостей, ведущие тратят несколько секунд на обучение определенной теме русского языка, например, как сказать «с днем рождения», «доброе утро», «до свидания» и т. Д.
Эти видео отлично подходят для поиска определенного слова или фразы, не просматривая длинное видео!
Удивительный русский
Хотя этот канал доступен всем, его создатель Ольга Джаррелл — преподаватель русского языка, которая использует видео в качестве ресурса для своих русских учеников вместе с учебником «Голоса» (Голоса).
Будучи преподавателем, Ольга дает отличное введение в свои видео, объясняя цель видео, а также свою методику преподавания этой темы. Это полезно, потому что вы не только изучите русский язык, но и сможете лучше понять свой стиль обучения!
Бонус: Easy Russian Club
Это единственный канал в списке, который не совсем подходит для новичков, но он хороший, чтобы начать смотреть в поисках вдохновения и ощущать вкус того, что будет дальше.Видео с сайта Easy Russian Club, ведущего Марии Здоровецкой, собрали более 3,8 миллиона просмотров. Этот канал, ориентированный на русскоязычных со средним уровнем владения языком, стал настолько успешным благодаря тому, что Мария не просто помогает зрителям выучить русский язык, но и погружает их в культуру .
Она создала и поделилась сотнями видеороликов о российских достопримечательностях, таких как Красная площадь, русская кухня, водка и т. Д. Видео забавные, занимательные и, прежде всего, помогают выучить русский язык!
Мы объяснили, почему обучение с помощью YouTube может помочь вам в овладении русским языком, и предоставили отличные ресурсы для начала.
Итак, чего вы ждете? Иди и учись!
Загрузить: Эта запись в блоге доступна в виде удобного и портативного PDF-файла, который вы можете можно взять куда угодно. Щелкните здесь, чтобы получить копию. (Скачать)
Если вам понравился этот пост, что-то мне подсказывает, что вы полюбите FluentU, лучший способ выучить русский язык с помощью реальных видео.
Испытайте погружение в русский язык онлайн!
Minecraft in Scratch, курс программирования для Maincraft для детей
Все больше родителей поддерживают современную тенденцию, направленную на раннее развитие детей.Особенно важно обучение компьютерной грамотности и технологиям с младшего возраста. Основная сложность — заинтересовать малышей.
Секрет успешного обучения в том, чтобы сочетать то, что нравится детям, с тем, что поможет развить у них навыки. Все дети увлечены играми. Что, если предложить ребенку создать собственную игру на языке программирования, разработанном специально для детей? А если это Minecraft, то никого нельзя оставить равнодушным! Мы рекомендуем курс «Minecraft Scratch» каждому ребенку от 7 лет, ведь обучение программированию в нем превращается в интересный и увлекательный процесс.
Создание собственной игры — лучший способ научиться программировать. Особенно когда все увлечены созданием игры.
Царапины. Как собрать собственный Майнкрафт?
Minecraft — очень популярная инди-игра в жанре детской площадки с элементами симулятора выживания и открытого мира, разработанная шведским программистом Маркусом Прессоном. Это одна из самых успешных компьютерных игр в истории: ее продажи составили более 80 млн копий, а количество зарегистрированных игроков превысило 100 млн человек.В Minecraft практически неограниченные возможности, позволяющие создавать целые миры и управлять действиями главных героев. Игра в Майнкрафт может быть создана в разных программах. Но вряд ли семилетний ребенок захочет учиться программировать и реализовывать собственный проект в привычной для профессиональных программистов среде разработки. Детям будет скучно и сложно. Поэтому еще в 2003 году Массачусетский технологический институт разработал Scratch — понятный и интересный язык программирования для детей. Scratch — это не просто язык программирования, это визуальная объектно-ориентированная среда программирования.Он идеально подходит для обучения детей младших и старших классов основам программирования и разработки собственных игр и анимации.
Scratch Environment обладает массой хороших качеств:
- простой и удобный интерфейс;
- нет кодов для изучения;
- красочный дизайн, который помогает привлечь и удержать внимание ребенка;
- Скретч помогает развить у ребенка навыки творческого и логического мышления.
Scratch похож на конструктор Lego — он позволяет собрать полноценную программу из блоков и кирпичиков разного цвета. Программу можно изменить в любой момент и проверить, как она работает, сразу после внесения изменений. Именно эта функция дает возможность создать аналог известного Minecraft в мире Scratch cube. Наш курс подходит для детей, которые уже выучили язык программирования Scratch и хотят расширить свои знания и найти им хорошее применение.
На уроках программирования «Minecraft in Scratch» ваш ребенок:
- продолжить изучение основ программирования;
- увеличить знания языка визуального программирования Scratch;
- научиться разрабатывать игровую механику;
- создавать пейзажи, разные объекты, перемещать их по экрану, изменять и играть с ними, создавать формы взаимодействия между ними;
- развивать навыки творческого и пространственного мышления;
- создайте собственный уникальный мир Minecraft.
Наши опытные преподаватели покажут детям, что программирование и игру можно совместить и превратить в интересный процесс. Добро пожаловать в чудесный мир программирования Minecraft in Scratch!
Системные требования
Убедитесь, что ваш компьютер подходит для этого курса. Вы можете найти наши рекомендации здесь.
Программы для установки для курса «Minecraft in Scratch».
Скачать здесь.
Сегодня этот курс посмотрели 40 человек
Возраст учеников:
7-14 лет
Стоимость:
от 750 руб. / Час для групповых занятий
от 1050 руб. / Час для индивидуальных онлайн-уроков
от 1800 руб. / Час для индивидуальных занятий на дому
Продолжительность курса: от 3 месяцев
Время занятий:
по субботам или воскресеньям, раз в неделю
Количество учеников:
до 10
Бесплатный онлайн-курс: Программирование с нуля от edX
Лучшие онлайн-курсы года
Посмотреть Закрыть Класс Центральный КурсыСубъекты
Компьютерная наука
Здоровье и медицина
Математика
Бизнес
Гуманитарные науки
Инженерное дело
Наука
Образование и обучение
Социальные науки
Арт Дизайн
Data Science
Программирование
Личное развитие
- Все предметы
Ежемесячные отчеты о курсе
- Начиная с этого месяца
- Новые онлайн-курсы
- Самостоятельный темп
- Самый популярный
Меню
Компьютерная наука
Компьютерная наука
- Искусственный интеллект
- Алгоритмы и структуры данных
- Интернет вещей
- Информационные технологии
- Кибербезопасность
- Компьютерная сеть
- Машинное обучение
- DevOps
- Глубокое обучение
- Блокчейн и криптовалюта
- Квантовые вычисления
- Посмотреть все компьютерные науки
Здоровье и медицина
Здоровье и медицина
- Питание и благополучие
- Болезни и расстройства
- Здравоохранение
- Здравоохранение
- Уход
- Анатомия
- Ветеринария
- Посмотреть все Здоровье и медицина
Математика
Математика
уроков русского языка — выучите русский бесплатно
Научитесь говорить по-русски.
Если вы хотите выучить русский язык, то вы попали в нужное место! Мы предлагаем бесплатные онлайн-курсы русского языка для всех. Все наши уроки русского бесплатны, и мы намерены и дальше продолжать. У нас есть аудио и видео, записанные носителями русского языка. Наш сайт растет, и мы добавляем все больше и больше функций, которые помогут вам научиться говорить по-русски.
Вы изучаете основы русского языка к своему следующему отпуску? Возможно, вы хотите получить фору, прежде чем учиться или работать в России? Или вы хотите свободно говорить по-русски? Есть много причин, по которым люди любят изучать русский язык.Это один из самых богатых и выразительных языков в мире. Независимо от причины, позвольте нам заверить вас, что это того стоит. У нас есть все необходимое, чтобы начать обучение прямо здесь.
На первом уроке вы выучите русский алфавит. Если вы можете озвучивать слова и названия мест, у вас есть огромное преимущество во время путешествия по России. Есть несколько русских слов, которые похожи на английские, но выглядят иначе. Если вы знаете русский алфавит, вы также можете читать знаки, меню и названия мест.Вы можете удивиться, узнав, что русский алфавит — это просто! В отличие от английского, в русском алфавите для каждого звука есть по одной букве.
На третьем уроке вы научитесь основным фразам на русском языке. К концу четвертого урока вы сможете считать, поздороваться, попрощаться и заказать себе напиток в русском баре или кафе. Вы можете быстро выучить основы русского языка, и это очень поможет вам во время путешествий. Вы сможете увидеть и получить больше удовольствия от отпуска в России.
Многие думают, что русская грамматика сложна. Это не сложнее, чем на других языках, таких как французский или немецкий. Часто это просто не объясняется четко. В RussianLessons.Net мы понимаем, что многие англоговорящие люди даже не очень хорошо запоминают английскую грамматику. Мы научим вас основам грамматики, не вдаваясь в технические подробности, а просто научим базовым правилам, которые укажут вам правильное направление. Мы изо всех сил стараемся объяснять такие концепции очень четко. На нашем сайте есть меню быстрой справки внизу слева, чтобы вы могли быстро найти любую информацию, которая нуждается в обновлении.
Надеемся, вам понравится изучать русский язык. Убедитесь, что вы присоединились к нашему сообществу в разделе форумов на сайте. Чего ты ждешь? Начни учить русский язык прямо сейчас!
Видео
У нас есть много видео, которые помогут вам выучить русский язык. Попробуйте про алфавит. Подпишитесь на наш канал на YouTube
Об уроках русского .Net
Путешественники повсюду говорят о том, что может предложить Россия.В России одна из самых богатых культур в мире, и она лишь недавно вновь открыла двери миру. Для кого-то это потрясающая русская ночная жизнь, для кого-то — красота российских городов, таких как Санкт-Петербург. Некоторым людям нравится гулять по удивительным музеям России (в Санкт-Петербурге самый большой в мире). Многим нравится чувство истории, которое простирается от имперского величия Российской империи до недавнего падения СССР. Другим нравится тот факт, что они могут прогуляться по городу с населением более 500 000 человек, и знают, что других туристов там нет.Но больше всего путешественники говорят о русских, и это причина того, что в последнее время так много людей начали учиться говорить по-русски, брать уроки как в России, так и за ее пределами. Изучая русский язык, вы многое узнаете об одной из великих культур мира. Мы надеемся, что этот сайт поможет всем тем, кто задумывается об изучении русского языка.
Этот сайт все еще довольно новый, но мы регулярно добавляем на него новые уроки и контент. Вы можете начать каждый урок, щелкнув ссылку слева.Каждый урок вводит новые понятия о русском языке в основном разделе урока. В каждом уроке будут дополнительные разделы с упражнениями и другой подробной информацией, которая поможет вам быстро выучить русский язык.