А вот смотрите, с чего можно безболезненно начать, во всём разобраться и получить приглашение в профессию разработчика.
Тренажёры для простого программирования
Яндекс.Практикум. Это наш родной тренажёр, где тебя пошагово проводят от первой строчки до небольшого работающего продукта, с пояснениями и интерактивом. Есть тренажёры для веб-программирования, бэкенда, а также аналитики и тестирования. Всё на русском. Бесплатной версии хватит, чтобы понять — нравится вам это направление или нет.
Совет профессионала: если не знаете, какую профессию в программировании выбрать, попробуйте бесплатные версии всех тренажёров, и вы сразу поймёте, к чему лежит душа. Вместо того чтобы читать статьи с описаниями профессий, просто попробуйте сами, и всё станет ясно.
Code Academy (на самом деле CodeCademy, но что?). Похоже на Практикум, только на английском. Из особенностей — помесячная оплата за доступ к материалам курсов.
Уроки по С++.1 урок.Как создать программу?
Codepen. Это не совсем тренажёр, а, скорее, онлайн-редактор кода, где сразу можно увидеть результат. Если вы читаете это с компьютера, посмотрите на HTML-код двух движущихся треугольников, на которые можно залипнуть надолго. Бесплатно, есть необязательная подписка, но нет заданий и проверки кода на ошибки.
Видеокурсы
Harvard CS50 (с переводом на русский). Курс лекций по основам программирования для начинающих. Если вы хотите разобраться в этом вообще с нуля, посмотрите эти видео. Ребята понятно и доходчиво разбирают все популярные темы и подают это в доступной форме. Правда, лекции с четвёртой начинаются уже довольно сложные вопросы, поэтому вечером под ужин посмотреть не получится.
Курс по JavaScript и Node.js преподавателя Киевского политехнического института Тимура Шемсединова (на русском). В плейлисте на момент написания статьи — 87 лекций, от самых базовых понятий до композиции функций и рефакторинга. Единственный момент — первые четыре лекции могут показаться нудноватыми, но с пятой всё гораздо активнее.
Курсы freeCodeCamp (на английском). Если хотите прокачаться одновременно в английском и программировании, обратите внимание на этот канал. Есть почти все популярные языки программирования, длительность каждого урока — от 3 до 14 часов.
Программирование для детей и визуальное программирование
Наборы Lego с роботами и визуальным программированием. Можно собрать своего робота, а потом запрограммировать его поведение на планшете. Или собрать свой пульт управления роботом, который тоже можно запрограммировать как угодно.
Scratch — учебная платформа по программированию для детей, тоже с визуальным программированием. Задача проекта — управлять котом, который может сделать всё, что предусмотрено программой. Слева сгруппированы команды для кота: движения, действия, условия. Посередине — программа, которую вы создаёте, перетаскивая мышкой нужные блоки. Результат можно увидеть справа — там кот начнёт двигаться и выполнять всё, что вы ему сказали.
Не могу написать программу! Что делать! Как начать писать код!
Курсы по программированию с нуля
Приходите к нам в ИТ. У нас есть удаленная работа, высокие зарплаты и удобное обучение в «Яндекс Практикуме». Старт бесплатно.
Получите ИТ-профессию
В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.
Источник: thecode.media
100 видео-лекций по программированию
Товарищи инженеры, уже четвертый год пошел, как я взялся преподавать в Киевском политехническом институте. За это время у меня накопилось огромное количество примеров кода и материалов, примерно на 90 лекций.
Должен сказать, что за весь период своей профессиональной деятельности (а это 24 года почти ежедневного написания кода), я никогда не подымал свой уровень программирования, как за последние годы, работая со студентами. Если раньше мне казалось, что написать кратко, сложно и внушительно — это верх мастерства, то теперь я осознал, что мой код должны понимать студенты после минимальных объяснений, иначе он никуда не годится.
Я пришел к выводу, что способность эту можно и нужно распространить не только на обучающий код, но и на весь рабочий код. Более того, обучающий код не должен существенно отличаться от рабочего кода, потому, что мы учим будущих инженеров делать настоящие системы, а не учебные. А после многочисленных просьб, я решил записывать все лекции в виде скринкастов, которые сразу после завершения лекции отправляются на ютюб. За этот учебный год я планирую записать 100 лекций, из которых уже опубликованы 23, готовы материалы еще для 67 лекций и новых 10 лекций еще в процессе подготовки.
Концепция курса
Все вы знаете, что у нас в отрасли есть существенные проблемы с фундаментальным инженерным образованием:
- курсы ВУЗов часто устарели и оставляют желать лучшего,
- не сформирована общепринятая терминология (в спорах мы часто называем одни и те же вещи разными словами и разные вещи одинаковыми словами), от этого и путаемся,
- статьи и видео в интернетах может с легкостью выпустить любой, кому пришло в голову, что его квалификации для этого достаточно,
- в программировании накопление опыта затруднено быстрым выходом людей из специальности, а ведь фундаментальные идеи циклически повторяются, но те, кто получил опыт на предыдущем витке, с большой вероятностью уже не практикуют и не могут подсказать младшим коллегам, где грабельки и узкие места.
Построить курс на базе JavaScript — это конечно экспериментальная затея, но этот язык уж точно не будет лишним ни для кого в современном ИТ. У самих же JavaScript разработчиков очень часто наблюдается плохая базовая инженерная подготовка и нехватка фундаментальных знаний по структурам данных, алгоритмам, базовым абстракциям, паттернам, архитектуре, парадигмам и приемам программирования.
Большинство кода, что пишется сейчас в индустрии, просто выбрасывается вскоре после создания, потом опять переписывается и опять выбрасывается. В общем, качество и знания редко требуются, разве что на собеседованиях. Выгоднее всего делать некачественный код и обслуживать его или выбрасывать код и продавать больше времени на его повторное написание.
Кроме того, наша отрасль совершенно оторвалась от науки, в этом есть существенные заслуги маркетологов, потому что мы уже программируем не на языках программирования и не на абстракциях, а мы программируем на фреймворках и библиотеках, которые нам «втюхали» в красивой обертке. Мы собираем все из кубиков, часто без всякого научного осмысления и редко можем ответить на вопрос, почему мы делаем так а не иначе.
Все по частям уже давным-давно написано, все можно найти в интернете, но оказалось, что одно с другим не лепится, то есть по частям оно есть, а вместе это не работает. Связывать разобщенные кусочки кода гораздо сложнее чем поодиночке их сделать. Происходит это именно из-за отсутствия системного подхода, терминологического раскола и понятийной рассинхронизации специалистов. Вместе будет работать только то, что идеологически совместимо, что базируется на общей теории и выведенных из этой теории общих стандартах. Я надеюсь, что этим курсом я сделаю хоть небольшой шаг к достижению такого важного для отрасли консенсуса.
Все материалы курса в свободном доступе на github, а лекции открытые, их можно посещать бесплатно. Каждую неделю я записываю 4 лекции. Мы проводим еще семинары и практические занятия, но они не записываются.
Структура курса
- Базовые понятия: программные абстракции, переменные, операторы, типы данных, массивы, структуры, скалярные и ссылочные типы, отображения;
- Основные понятия: функции, контексты и область видимости, классы и объекты, прототипы, методы, лямбды, чистые функции, побочные эффекты, замыкания, частичное применение, каррирование, композиция, функции высшего порядка, колбэки, враперы, декораторы, примеси, события, интерфейс, синглтон, итераторы, функциональные объекты, функторы, монады, работа с файлами, потоки, сокеты, мемоизация, наследование, генераторы, асинхронное программирование, чеининг, модули и зависимости, обработка ошибок, фабрики и пулы, таймеры, регулярные выражения;
- Вспомогательные материалы: git, системы контроля версий и менеджеры пакетов, работа с консолью, тестирование, непрерывная интеграция, логирование, линтеры, оптимизация и производительность, борьба с утечками памяти, скрытые классы, мономорфные функции, дженерики, сборка мусора, управление памятью;
- Структуры данных: коллекции, массивы и типизированные массивы, буферы, списки, стек, очередь, дек, деревья двоичные и иерархические, многомерные деревья, повороты и балансировка ветвей, множества, хешмапы, графы, развернутые списки, асинхронная очередь, автоматы, итерирование структур данных и поиск;
- Расширенные понятия: символы, прокси, диферы, фьючеры и промисы, линзы, трансдьюсеры, async/await, коллекторы данных, асинхронная композиция, адаптеры асинхронности, асинхронные итераторы, интроспекция, рефлексия, скаффолдинг, инверсия управления и внедрение зависимостей, песочницы, слоистая архитектура, компонентный подход, слой доступа к данным, проекции данных, мониторинг файловой системы, клиент-серверная и трехзвенная архитектура, кластеризация и балансировка, проектирование протоколов, динамическая перегрузка модулей, метаданные, динамическое связывание, межпроцессовое взаимодействие;
- Примеры кода и комплексного использования технологий: живые электронные таблицы, чат на вебсокетах, реализация языка запросов к графам, альтернативная библиотека асинхронных абстракций metasync, сравнение реализации одинаковых задач на разных парадигмах, сравнение стилей функционального программирования, примеры структуры приложений, маршрутизация обработчиков в node.js приложениях, изоляция кода в песочницах, транзакционные объекты;
- Парадигмы программирования: императивное, структурное и неструктурное, процедурное, объектно-ориентированное, прототипное, функциональное, логическое, декларативное, асинхронное, реактивное, событийное, автоматное, обобщенное, программирование управляемое потоками данных, мультипарадигменное, метапрограммирование.
Ссылки
Календарь лекций доступен в двух митап группах: HowProgrammingWorks (это лекции по программированию на примерах JavaScript) и NodeUA (это лекции по Node.js) и я настоятельно прошу регистрироваться всех, кто хочет посетить лекции очно. Вход свободный для всех, но организационно проще оценивать количество слушателей. За всю историю у меня были случаи и 600 человек и 2 человека, при чем явка непредсказуема.
Все записанные видео появляются в тот же день (через 10-20 минут после завершения лекции) на youtube канале.
Ссылки на лекции и материалы я размещаю в двух телеграм-каналалах: по программированию и JavaScript и по Node.js и другим более сложным темам.
Для обсуждения и вопросов есть две телеграмм-группы: по программированию и JavaScript и по Node.js.
Мой аккайнт на github, учебные репозитории в организации HowProgrammingWorks и библиотеки нашего комьюнити.
Заключение
Жду предложений по дополнению курса новыми темами, надеюсь на контрибьюшен в примеры кода, в том числе на перевод примеров на другие языки. Ваши отзывы помогут улучшить курс.
Источник: habr.com
Как написать программу для компьютера самому для чайников видео уроки
Канал #SimpleCode содержит плейлисты видео-уроков и домашних заданий по языку C#, которые позволяют освоить с нуля язык и закрепить практические навыки, а также расширить знания тем, кто уже программирует на C#. Основным циклом является C# уроки | C# от новичка к профессионалу: он содержит 104 видео (83 урока), в которых автор подробно разбирает конструкции языка. Плейлист Домашние задания C# закрепляет теоретический материал. Плюшки C# содержит видео о дополнениях, которые помогут продвинуться начинающим разработчикам.
Больше полезной информации вы сможете найти на нашем телеграм-канале «Библиотека шарписта».
2. Гоша Дударь
Канал Гоши Дударя имеет 710 тысяч подписчиков и более 99 723 618 просмотров. Здесь есть видеоуроки по программированию на различных языках и фреймворках, автор которых внимательно и доходчиво объясняет теорию и практику, подкрепляя материал примерами приложений. Языку C# и платформе .NET посвящены 5 плейлистов. Перечислим их:
- Изучение языка C# для начинающих – этот плейлист (видеокурс) содержит 26 уроков, которые охватывают базовые конструкции языка и их использование в коде.
- Уроки C# .NET Windows Forms + Базы данных SQL – видеокурс из 8 уроков научит вас работать с Windows Forms на базе C# и .NET, а также познакомит с созданием приложений для работы с базами данных на примере MySQL.
- Изучение C# WPF на практике / Разработка программ на WPF и XAML – курс знакомит зрителя с написанием приложений на языке C# и WPF, также с языком построения дизайна – XAML.
- Unity 5 C# уроки для начинающих – эти видео помогут освоить программирование игр на C# под Unity 5.
- Уроки ASP.NET Core MVC / Создание сайтов на C# – курс знакомит зрителя с ASP.NET и помогает освоить сайтостроение на языке C#, а также учит работать с MVC-шаблонами, базами данных и создавать многостраничные сайты.
3. CODE BLOG
CODE BLOG – Программирование и IT – канал разработчика Вадима Шванова для начинающих и продвинутых программистов. Содержит обучающие видео по языку программирования C#, алгоритмам и структурам данных, а также по их практическому программированию:
- C# уроки – обучающие видеоуроки по языку C# и платформе .NET. Изучаются конструкции языка и специфичные технологии.
- Структуры данных (data structures) C# – видеоуроки по реализации структур данных на языке программирования C# с подробным объяснением и примерами.
- Паттерны проектирования C# – видео по реализации и использованию паттернов проектирования на языке программирования C#.
4. Caleb Curry
На канале Caleb Curry можно найти видеоуроки на английском по изучению программирования. Среди них есть курс по программированию на языке C#, состоящий из 100 уроков и охватывающий фундаментальные аспекты языка. Материал подойдёт для начинающих программистов.
5. Naresh i Technologies
Naresh i Technologies – одна из крупнейших индийских компаний по обучению разработке программного обеспечения. На канале много видеокурсов, посвящённых языкам программирования и фреймворкам (включая язык C# и .NET Framework) от разработчиков Bangar Raju и Sudhakar Sharma.
- C#.NET Tutorial Videos | Mr. Bangar Raju – от основ языка программирования C# до работы с LINQ и потоками.
- ASP.NET MVC Tutorial | By Mr.Sudhakar Sharma – видеокурс знакомит слушателей с основами разработки сайтов и веб-приложений на языке C# с ASP.NET и шаблоном MVC.
- ASP.NET Tutorials | Mr.Bangar Raju – видеоуроки по ASP.NET для начинающих от Бангара Раджу очень полезны для студентов. Они построены последовательно и с нуля обучают писать веб-приложения.
- ASP.NET MVC Core Tutorials | by Mr.Sudhakar Sharma – видеоуроки помогут получить навыки веб-разработки от начального уровня до продвинутого.
6. Coding Cafe
Канал Coding Cafe – одноименной компании по разработке программного обеспечения. В его арсенале имеются курсы по разработке веб-приложений и мобильных программ. Языку C# и .NET Framework посвящен комплексный видеокурс.
7. ITVDN
ITVDN – один из лучших русскоязычных ресурсов по обучению разработке. Здесь можно найти более 200 видеокурсов на разные темы: FrontEnd, Java, Python, .NET, мобильная разработка и создание игр на Unity. Новые уроки и вебинары выходят дважды в неделю. Разработке на языке программирования C# и .NET Framework посвящено множество видеокурсов ITVDN на разные темы, начиная от основ языка, графического интерфейса WinForms/WPF и тонкостей платформы .NET, до разработки веб-сервисов и мобильных приложений.
8. Канал Евгения Попова
Канал Евгения Попова, автора ресурса по обучению программированию http://metanit.com/ , динамично развивается и дополняется видеоуроками по языку программирования C# и платформе .NET. Здесь можно найти 2 полноценных курса.
- Видеокурс по языку программирования C# посвящён основам: последовательное изложение материалов способствует быстрому освоению языка C#.
- Видеокурс по ASP.NET MVC 5 посвящён разработке веб-приложений на языке C# и ASP.NET MVC 5 с нуля и до публикации их на удалённом сервере.
9. Byte++
Завершим нашу подборку каналом Byte++, на котором можно найти уроки программирования на языках C#, C++ и других, а также материалы по Xamarin, Android, ASP.NET, MS-SQL и т.д. Языку C# уделено особое внимание, видеокурсы охватывают все его аспекты с нуля и до разработки мобильных приложений.
На YouTube наверняка есть и другие интересные ресурсы по C# и .NET, помимо описанного в обзоре джентльменского набора. Если вы не нашли в рейтинге своего любимого канала, не стесняйтесь рекомендовать его в комментариях. Удачи в обучении!
Источник: proglib.io