Программирование с нуля – какие существуют варианты обучения?

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

Например, чтобы пройти курс по веб-разработке в Moscow Coding School, достаточно «базовой компьютерной грамотности» и «математики на уровне 5-го класса».

«Можно прийти, ничего не зная, и, совмещая наш курс и самостоятельное обучение, научиться создавать интерактивные веб-страницы, работать с данными и понимать принципы их обработки», — говорит куратор образовательных программ школы Екатерина Руднева.

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

Но за всем этим стоят серьезные методологии программирования: модульный подход, наследование классов, различия атрибутов классов и экземпляров, разрешение конфликтов при Merge и прочее», — говорит ведущий курса «Python-разработчик с нуля» Вадим Шандринов.

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

Абитуриенты с нулевым уровнем начинают с азов: «Мы берем один из самых простых языков — JavaScript — и изучаем все базовые понятия, циклы, массивы, переменные. Учимся этим всем пользоваться, понимаем, какие там основные подходы к разработке.

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

Но тем, кто планирует изучать специфические области — big data, machine learning, обработку финансовых/научных данных, — потребуется уже математическая подготовка на уровне профильного института, говорит Вадим Шандринов.

Выбираем формат обучения

«У офлайн-курсов есть один существенный плюс: если пришел в аудиторию, то хочешь не хочешь — нужно два часа учиться», — говорит Вадим Шандринов.

Среди преимуществ такого формата — возможность слышать и видеть других учеников («Я не единственный, кто не сразу все понимает!»), слушать ответы преподавателя на вопросы.

Недостаток — необходимость подстраивать свой график под расписание занятий (а кроме того, кому-то просто некомфортно осваивать новую сложную область в незнакомом коллективе).

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

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

Программирование с нуля – какие существуют варианты обучения?

Выбираем школу и курс

На что смотреть, чтобы не выбросить деньги на ветер:

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

Адекватность. «Если обещают, что вы за два месяца освоите мобильную разработку, станете middle-разработчиком и так далее, знайте — это неправда», — предупреждает Евгений Картавец.

Он признает, что оценить, насколько длительность программы соответствует содержанию курса, самостоятельно бывает сложно, и предлагает советоваться с теми, кто уже ее прошел: «Просто глядя на темы, выяснить это не получится».

Опыт. Евгений Картавец советует прямо спрашивать преподавателя, на чем он специализируется, в каких компаниях и над какими проектами работал. Учитывайте, что разработчик в сфере мобильных приложений вряд ли хорошо обучит big data, добавляет Вадим Шандринов.

Программирование с нуля – какие существуют варианты обучения?

Программирование: выберите курс или лекцию

Иногда подходящий курс находится только с третьего-четвертого раза, предупреждает он, и дело не только в школах, но и в учениках: то, что подходит другим, может не подойти вам. А комьюнити-менеджер HTML Academy Татьяна Власенко напоминает, что эффективность обучения зависит еще и от вашей мотивированности.

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

Программирование с нуля – какие существуют варианты обучения?

Я начала учиться на английском в Pluralsight (ранее Code School) и Сodecademy, потому что сначала хотела разобраться в основах и понять, стоит ли продолжать. За пару месяцев нерегулярных занятий я прошла все курсы по HTML, CSS и JavaScript.

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

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

Потом я увидела рекламу курсов фронтенд-разработки от Moscow Coding School, программа понравилась мне и мужу, который помогал мне учиться. Курс занял около 40 часов, плюс домашние задания. Тогда программу можно было пройти за 3 недели, занятия длились 6 часов по выходным.

Большую часть того, чему нас учили, я уже знала, да и вообще занятия в группе, когда все время нужно кого-то и чего-то ждать, оказались не для меня.

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

 — Прим. ред.). В плане обратной связи офлайн-формат удобнее, но зачастую это лишает тебя возможности самому найти решение и научиться чему-то.

После Moscow Coding School хотелось найти что-то более фундаментальное, с упором на теорию, так мы выбрали hexlet.io. Их курс для JS-программиста оказался самым сложным и долгим, на его прохождение у меня ушло полгода. Над многими задачами я сидела несколько дней, иногда звала на помощь опытных программистов, но и у них не всегда получалось мне помочь.

«Хекслет» не только дает знания, но и закаляет характер. Курс заставляет искать и изучать информацию самому, а это главный навык программиста. Кроме этого, у каждого задания есть секция «вопрос — ответ», где можно поискать подсказку и задать вопрос, если ты застрял. Прямых ответов авторы курса не дают, только направляют, в какую сторону стоит копать.

Рассчитываем время

Научиться писать несложные скрипты можно за 1–2 месяца, но если конечная цель — устроиться на работу младшим программистом, то на это уйдет минимум год, говорят в Skillbox.

Скорость освоения программирования сильно зависит от практики и обратной связи.

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

От нескольких дней до пары недель: интенсив по узкой теме для опытных разработчиков. С нуля за это время можно освоить разве что основы HTML и CSS.

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

12–18 месяцев: полноценный курс — с нуля до минимального профессионального уровня.

Программирование с нуля – какие существуют варианты обучения?

Обучение машин: что такое machine learning и как им овладеть

Учитывайте интенсивность обучения.

Например, в Moscow Coding School занимаются по 6 часов в неделю, в HTML Academy — по 2–4 часов в день, в среднем от 20 часов в неделю (в это время входят лекции два раза в неделю и выполнение домашних заданий).

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

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

Программирование с нуля – какие существуют варианты обучения?

Сейчас я прохожу второй семестр обучения по специальности «медиаинформатика». Форма обучения — онлайн-бакалавр: дистанционное с реальным дипломом вуза. Есть учебные материалы, преподаватель, связь с которым доступна по имейлу, домашние задания, еженедельные веб-конференции, форум, а раз в 3 недели по два дня учебы на месте.

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

Ужас, ничего не понятно, три раза читаешь учебник, смотришь видео на YouTube с Udemy (вообще, чем в большем количестве источников получаешь информацию, тем больше шансов какую-то картину выстроить), читаешь онлайн-учебники, начинаешь делать задачи и… боже, ну ничего же не понятно! Идешь на Stack Overflow, читаешь все похожие вопросы, рисуешь себе схему, пробуешь, ошибаешься, исправляешь, становится хуже, начинаешь все сначала. Чувство, когда программа работает, несопоставимо ни с чем другим.

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

Программирование с нуля – какие существуют варианты обучения?

Учимся сами

Учиться можно и самостоятельно, хотя это определенно потребует больше времени. В GeekBrains рекомендуют серию самоучителей «Head First». В Skillbox советуют искать видеоуроки по программированию, слушать подкасты, пробовать программировать самостоятельно и обсуждать свои работы на профессиональных форумах.

При этом очень важно изучать язык системно, регулярно: каждый день или раз в два дня что-то делать — или читать теорию, или практиковаться, отмечает Евгений Картавец из GeekBrains. «На первые несколько месяцев этого хватит.

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

Программирование с нуля – какие существуют варианты обучения?

Серия самоучителей «Head First»

Самоучители по Java, C#, HTML, JavaScript, jQuery, SQL, Android, iOS и т. п. Написаны простым языком, содержат много картинок, схем, таблиц и графиков; снабжены упражнениями для закрепления пройденного материала.

Программирование с нуля – какие существуют варианты обучения?

Учебная онлайн-библиотека LiveEdu

Предлагает обучающие видео по различным языкам программирования и фреймворкам (React.js, Python, Django, C ++, Node.js, JavaScript). Большая часть контента доступна бесплатно.

Программирование с нуля – какие существуют варианты обучения?

The Code Player

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

Программирование с нуля – какие существуют варианты обучения?

Programming Knowledge

Обучающие видео в основном для начинающих.

freeCodeCamp.org

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

Получаем обратную связь

«Недостаточно просто решить задачу; нужно решить ее грамотно, качественно, чтобы разработка была стабильна, а код был читаемым», — отмечает Евгений Картавец.

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

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

Тем, кто учится самостоятельно, без посторонней помощи тоже не обойтись: «Надо найти человека, с которым можно консультироваться, — это может быть друг, знакомый, репетитор или преподаватель вуза», — советует Картавец. «Ищите наставника — это не обязательно должен быть учитель, им может стать просто сосед или коллега, который понимает в программировании и поможет вам разобрать примеры кода», — говорит Вадим Шандринов.

Держим в голове цель

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

 — Мы в Академии собираем истории выпускников и сами удивляемся: люди, посвятившие жизнь музыке, обнаруживают талант к верстке, журналисты становятся отличными фронтенд-разработчиками.

Таких историй много, а это говорит о том, что деление на технарей и гуманитариев весьма условно». «В программировании человек из ничего творит нечто, что можно пощупать, потрогать, использовать», — говорит Евгений Картавец из GeekBrains.

«Виртуальные миры живут по правилам, определенным программистом, он там — Создатель», — добавляет Вадим Шандринов из Skillbox.

«Непредсказуемо много молодых людей вдруг обнаружили, что быть актуальным в тотальной киберреальности можно только в том случае, если ты эту реальность создаешь, — согласна с ним Екатерина Руднева из Moscow Coding School. — Кодер — это звучит гордо. Моду на архитектуру и дизайн в образовании уверенно потеснило умение писать программы и придумывать мобильные приложения».

Источник: https://theoryandpractice.ru/posts/16997-koder—eto-zvuchit-gordo-kak-splanirovat-obuchenie-programmirovaniyu

Программировать с нуля. «Сейчас» — самое подходящее время, чтобы начать

Программирование с нуля – какие существуют варианты обучения? (Иллюстрации к статье А.П. Ершова «Программирование — вторая грамотность»)

Стив Джобс не написал ни строчки кода, Билл Гейтс — написал. Пол Грэм — первоклассный программист, Питер Тиль — юрист по образованию, сооснователь PayPal и владелец Palantir (написал ли он что-нибудь?), а Илон Маск в детстве написал свою игру и успешно её продал.

Читайте также:  Как удалить приложение с айфона – несколько способов

Никита truesnow из #tceh сказал мне, что на курсе «Врубаемся в Ruby» они научат программировать любого человека, даже с нуля. Я спросил его: «А с гуманитарием справитесь?» И мы задумались, были ли случаи, когда «гуманитарий» выучил язык программирования?

На ум сразу пришел бомж-программист, но после успеха с его приложением он предпочёл остаться «дзен-монахом». Есть ли еще примеры? Вдохновляющий пример, что научиться кодить может каждый — слепой программист. Когда я прочитал статью на Хабре «Смотря на код с закрытыми глазами», то понял, что нет преград, кроме собственных отмазок.

А у меня для вас есть три истории из моей жизни. Просто три истории. Слово «ламер» я прочитал в «Компьютерре». Там давалось такое определение: «Ламер — отнюдь не безграмотный человек, не умеющий (как бы это помягче выразиться?) программировать». Окрылённый истиной я побежал и рассказал об этом друзьям-одноклассникам, но они предпочли поиграть в футбол, вместо того чтобы освоить суперспособности. Забавно, что потом все они зарабатывали программированием деньги, а я нет. Через неделю я записался в краевую станцию юных техников (КСЮТ), где был кружок по программированию. Там для новичков давали qbasic. А боги прогали на C. Так вот как-то один из «богов» подозвал меня к монитору и спросил: «Так сможешь?». И показал прогу, которая ждала, когда пользователь введёт в командной строке любой символ, а потом поворачивала его на 90 градусов. Я был ошеломлен. Наверное, меня это так зацепило, что я решил — во что бы то не стало, выучить все что можно, и стать самым крутым программистом. Заряда хватило на годы. Этот случай я позабыл, прошло несколько лет, и, вспомнив о нем, я написал не больше десятка строк на basic`e минут за 20. Программа работала идеально.

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

Идея пришла внезапно. Пришла так, что не смог заснуть и сел кодить. Из шифров тогда я знал только про пляшущих человечков из Шерлока Холмса (а это класс 8 или 9, занимался программированием полгода-год). Мне захотелось написать шифр, чтобы нельзя было так просто его вскрыть простым анализом. Задумка была следующая: каждой букве русского алфавита мы приписываем массив из 5 символов в виде букв русского и английского языка, спецсимволы. При шифровании мы рандомно выбираем один из них. Получалась «расширенная» простая замена. Это сейчас мне понятно как его ломать, но тогда для меня была запредельная высота. Через 3-4 года я поступлю на компьютерную безопасность.

Вывод. Решать интересные задачи — это круто. Но гораздо круче придумывать и находить задачи самому.

Я уже 2 года «занимался» программированием. И тут в школе появилась… информатика. Меня почему-то отправили в слабую группу. Как узнал позже, моё лицо не понравилось преподавательнице и она посчитала, что я тупой. Мои друзья ворвались в кабинет к директору и сказали, что я занял призовое место на краевой олимпиаде по программированию. Начались, разборки, но мне было так пофиг, что я остался в слабой группе, где учили вводить цифры в Exсel. За первую неделю я сдал всю программу и спокойно ходил играть в Diablo 2 в компьютерный клуб. А на олимпиаде был забавный случай. Разрешённые языки — C, Pascal, а я то был прожжённым бейсичником. Выкрутился. Задачу принимали в виде exe'шника, а я подсуетился и нашёл бейсик, который кует exe'шники. Программы проходили тесты, а сами тесты принимались на серваке. Одна задача была сугубо вычислительная. Давались координаты центров и радиусы двух окружностей. Требовалось выдать взаимное расположение окружностей в текстовом виде: пересекаются, касаются, одна в другой, совпадают, и прочие. С формулами было возиться лень, и недавно я как раз разбирался с графикой. Задачу решил графически, рисовал окружность одним цветом, а потом «сканировал» попиксельно по второй окружности, втыкаюсь ли я в уже окрашенный пиксель. Был большой страх, что прога не сможет работать на серваке без монитора, но все обошлось — 10 тестов из 10. На разборе задач был звездный час. Полсотни человек решили задачу один в один как автор, какого же было их удивление, когда я рассказал свой способ.

Вывод. Школа — зло. Результат — круто. Нестандартное мышление — прикольно. Обходной путь есть всегда.

У меня есть три ответа на этот вопрос. Они зависят от горизонта планирования: — Цель на 1 неделю или месяц — это вызов. Это как пробежать марафон или забраться на Эльбрус, проверить не засохли ли мозги, выйти из зоны комфорта. — Цель на год-два — это бабло. За это время можно научиться создавать ценность и работать удаленно. Или учить других. Очень многие хотят научиться программировать.пруфПрограммирование с нуля – какие существуют варианты обучения? сам поискал 8 сентября:Программирование с нуля – какие существуют варианты обучения? на русском в 1000 раз меньше:Программирование с нуля – какие существуют варианты обучения? — Цель на 5-10 лет — развитие в целом. Во-первых, вы улучшите своё мышление. Во-вторых, вы сделаете неоценимый подарок детям. Они получат несколько лет форы в изучении программирования и у вас появится много чудных моментов совместного написания программ. Для полного счастья останется научиться играть в компьютерные игры, но это вы скорее всего уже умеете. Есть заезженная картинка на этот счёт:Программирование с нуля – какие существуют варианты обучения?

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

Если готовы приступить по-взрослому, то есть множество ресурсов для самообучения. От Coursera (раз, два) до всяких %имя%academy (codeacademy, htmlacademy и пр)

Если намерения совсем серьёзные, могу посоветовать курс «Врубиться в Ruby».

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

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

Программирование с нуля – какие существуют варианты обучения?

— Никита, почему именно Ruby? — Все просто, мы нашли очень хорошего преподавателя.

Про Ruby

Попробовать сделать первые шаги можно прямо сейчас, займет всего 5-10 минут. Программирование с нуля – какие существуют варианты обучения? Нашел шикарный ресурс с геймификацией и сразу из браузера tryruby.org За 5 минут выполняем несколько заданий, получаем ачивку и переходим на следующий уровень. Программирование с нуля – какие существуют варианты обучения? А зомбяк не хотите ли? railsforZOMBIES.org

Про Lisp

«Однако я не думаю, что смогу убедить кого-нибудь (старше 25) выучить Lisp.» Пол Грэм, «Побеждая посредственность» Начитавшись Грэма, осваиваю Lisp. ;; Welcome to L(λ)THW!
(let ((llthw '(learn lisp the hard way)))
(format t «~{~@(~A~)~^ ~}, because ~{~A~^ ~} is easier!» llthw (cddr llthw)))

;; Common Lisp: Powerful, Expressive, Programmable, General Purpose, Multi-Paradigm.
Программирование с нуля – какие существуют варианты обучения? Нашёл для себя удобную браузерную обучалку Learn Lisp The Hard Way «За те годы, что я проработал в Viaweb, я прочитал множество объявлений о найме на работу. Примерно каждый месяц появлялся новый конкурент. Первое, что я делал после того, как проверял, доступна ли онлайновая демонстрация работы их программы, — смотрел список их вакансий. Через пару лет я научился отличать опасных конкурентов от неопасных. Чем больше отдавало IT-мэйнстримом от описания требуемых кандидатур, тем менее опасна была компания. Самыми безопасными были те, кому требовались специалисты по Oracle. О таких не стоило беспокоиться. Также мы были спокойны, если требовались разработчики на C++ или Java.

Если требовались программисты на Perl или Python, это уже было слегка пугающе — это значило, что компанией или, по крайней мере, ее технической частью заправляли настоящие хакеры. Если бы я когда-нибудь увидел объявление о найме на работу Lisp-хакеров, я бы обеспокоился не на шутку.»

Пол Грэм, «Побеждая посредственность»

  • Читайте Хабр. Например, вот это статья может очень помочь тем кто уже начал свой путь — «Почему научиться программировать так чертовски тяжело?» Или история успеха — «Как я сам научился программировать за 8 недель»
  • Читайте Пола Грэма. Он вдохновит заняться программированием кого угодно. Даже меня. Даже на Lisp.
  • Найдите единомышленников
  • Найдите вдохновляющую задачу напримерОбщие упражнения: Project Euler содержит более 500 математических задач (на теорию чисел, числовых систем и пр.), которые нужно решить, используя программирование на любом языке. Code Abbey хранит более 200 задач по программированию. За решения 125 из них выдают сертификат, чем мотивируют многих студентов. Rosalind — это ещё один сайт наподобие Project Euler, который предоставляет на выбор более 200 задач по биоинформатике. Codingbat.com дарит упражнения по Java и Python, как для новичков, так и для продвинутых программистов. codegolf.stackexchange.com – сайт, на котором публикуют и обсуждают программистские головоломки. Ruby Quiz — серия головоломок, в которых вас просят написать короткие программы различной сложности. Исходные решения описаны на Ruby, но их можно реализовать на любом языке. Задачи из олимпиад по программированию: UVa Online Judge — коллекция из сотен задач с олимпиад по программированию, с онлайн-системой проверки решений. TopCoder содержит сложные задачи на алгоритмы, собранные годами с разных соревнований. Также несколько раз в месяц проводит олимпиады по программированию. CodeForces похож на TopCoder, но содержит больше задач на соревнованиях и несколько особых фишек, включая «виртуальные соревнования». Timus — то же, что и UVA. Содержит задачи с последних соревнований (мирового и регионального уровня). SPOJ — похож на UVA, с огромным числом языков программирования на выбор. USACO содержит несколько задач на алгоритмы с руководством по их решению. Под определённые языки: Для Prolog, Lisp и подобных языков посетите P-99 и L-99, наборы из 99 задач для повышения вашей эффективности в данных языках. Python Challenge — объединяет загадки и головоломки, которые помогут вам серьёзно прокачаться в Python. 4Clojure — набор упражнений по программированию, специально разработанных под Clojure, Lisp-подобный язык.
  • Соревнуйтесь
  • Играйте в Игры для программистов
  • Пишите код каждый день
  • Пишите о своих успехах и находках на Хабр

P.S. Ещё интересные статьи с Хабра на тему быть/не быть программистом и как делать шаги на пути мастерства P.P.S. Алан Кэй делится яркой идеей об идеях. Архитектура, математика, обучение, программирование и много ещё интересного.

Источник: https://habr.com/post/265981/

15 приложений для изучения программирования с нуля — Kompot Journal

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

Читайте также:  Чистый андроид – что это такое, что лучше фирменная оболочка или «голый» android

Tynker

Программирование с нуля – какие существуют варианты обучения?

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

Learn Java

Android | iOS

Бесплатное приложение для Android и iOS, где вы найдете более 150 уроков в рамках курса обучению Java.

Lynda Apps

Программирование с нуля – какие существуют варианты обучения?

У вас есть возможность учиться всем языкам программирования в удобном приложении и на всех популярных платформах. За $25/мес. вы получите доступ ко всем обучающим курсам Lynda.

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

CodeWars

Программирование с нуля – какие существуют варианты обучения?

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

Learn programming

Программирование с нуля – какие существуют варианты обучения?

Интерактивный учебник программирования, в котором вы найдёте более 35 языков программирования, огромное количество фреймворков.. Здесь есть тест способностей и полноценная система наград.

Рекомендуем скачать это приложение для Android каждому, кто хочет изучить программирование с нуля.

SoloLearn: учимся программировать

Android | iOS

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

Programming Hub. Learn to code

Android | iOS

Программирование с нуля – какие существуют варианты обучения?

Еще одно приложение, которое обучит вас программированию. Здесь есть всё: курсы, тестирование, примеры, компилятор. Учитесь и практикуйтесь в одном месте. В приложении есть все популярные языки программирования: Java, C, C++, HTML, JS, Python.

Swift 4

Хотите программировать для iOS? Установите Swift 4: как уже понятно из названия, он учит языку программирования Swift, что используется в macOS, iOS, watchOS и tvOS продукции.

Swift Playgrounds

Программирование с нуля – какие существуют варианты обучения?

Крутейшее приложение, которое научит вас программировать на языке Swift. Учитесь программированию на практических примерах прямо на iPad.

Codecombat

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

P. S.: создано для детей, но ограничений по возрасту нет. Главное, чтобы пользователь хотел учиться программированию.

Lightbot

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

Цель игры: заставить робота подсветить все плитки на решетке. И это нужно сделать за один подход, иначе всё придётся делать заново. Игра для обучения программированию познакомит с базовыми понятиями. Идеальный выбор для мальчиков и девочек от 6 до 106 лет.

Udacity

Ресурс, на котором вы найдете тысячи текстов, видео и руководства от настоящих IT-гуру.

Codemurai

Android | iOS

Программирование с нуля – какие существуют варианты обучения?

Хотите почувствовать себя настоящим самураем? Приложение Codemurai обучит программированию в основных языках. Кроме этого, вы разберетесь в объектно-ориентированном программировании и узнаете много захватывающих малоизвестных фишек от настоящих гуру своего дела.

Encode: Learn to Code

Android | iOS

Интересна сфера программирования, но не хватает времени для обучения из-за основной работы? Разработчики сделали процесс обучения максимально простым в понимании, не требующим усилий для изучения. С помощью Learn to code вы начнёте кодить на Java, Python, HTML и CSS с нуля.

Code Hub

Научитесь программировать в HTML5 и CSS, не отрываясь от своего телефона. Приложение для Android с чистым интерфейсом подходит даже для тех, у кого нулевой опытом в кодинге.

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

Программирование с нуля – какие существуют варианты обучения?

Источник: https://read.kj.media/obuchenie/15-prilozhenij-dlya-izucheniya-programmirovaniya/

5 языков программирования, которые надо учить первыми

Программирование с нуля – какие существуют варианты обучения?

Сегодня каждый, кто стремится попасть в IT, задается вопросом — какой язык программирования изучить? Все ищут универсальный ответ, который предопределит головокружительную карьеру. Да, до изобретения интернета и появления мобильных платформ можно было освоить один язык, написать на нем программу и быть востребованным разработчиком. Сегодня реалии таковы, что даже джуниорам предъявляется огромный список требований, среди которых — знание нескольких языков.

Судите сами: для веб-разработки неплохо бы владеть PHP, JavaScript, Python, Ruby, а еще HTML и CSS; в мобильной сфере — Swift, Objective-C, Java, C#.

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

Именно поэтому мы взяли на себя ответственность назвать 5 языков программирования, которые надо изучить хотя бы шапочно, чтобы сегодня называться программистом.

Python

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

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

def fib_recursion(i): if i > 1: return fib_recursion(i-1) + fib_recursion(i-2) return i for i in range(10): print i, fib_recursion(i)

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

Стоит упомянуть, что на данный момент актуальны две версии: Python 2 и Python 3. Вам за основу лучше брать последнюю, так как поддержка Python 2, а значит — и активная разработка на ней, прекратится совсем скоро.

Кстати, для тех, кто решился изучать Python, мы подготовили список полезных и практичных советов.

JavaScript

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

function fib_recursion(n) { return n

Источник: https://geekbrains.ru/posts/5_top_first_langs

Как научиться программированию с нуля? :: РБК Тренды

И можно ли сделать это бесплатно

Программирование с нуля – какие существуют варианты обучения?

Patricia de Melo Moreira / Bloomberg

1

Хочу стать программистом. Без каких знаний точно не обойтись?

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

2

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

Существует более 300 языков программирования. Одним из лучших языков для начинающих является Python. Этот популярный язык общего назначения хорош лаконичностью и простотой синтаксиса, его активно используют в IT-компаниях России и мира. Другими популярными языками считаются Java и C.

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

Например, в качестве серверных языков популярны php, Java, ruby. Из клиентских языков наиболее перспективен Java Script. Для разработки сложных высоконагруженных проектов требуется C++. На этом же языке пишутся игры. Еще одна перспективная сфера — разработка приложений для мобильных устройств. Тут используют Java, Objective-C.

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

3

Я хочу делать сайты. Какие языки программирования выбрать?

Веб-программисты занимаются разработкой интернет-сайтов и программ. Она делится на Frontend- и Backend-разработку.

Frontend developer занимается разработкой пользовательского интерфейса. То есть, делает все то, что видит пользователь, открывая web-страницу. Его главная задача — сделать максимально удобным взаимодействие пользователя с сайтом или веб-приложением. Основной язык, который он использует — JavaScript, также понадобится знание HTML и CSS.

Backend-разработчик занимается базами данных, архитектурой и логикой работы сайта, то есть серверной частью, которая не видна пользователям. Основные языки серверного программирования для такого специалиста — PHP, Ruby, Python. Также ему пригодится знание MySQL.

Универсальный специалист, выполняющий оба процесса, называется Full Stack-разработчик. Это программист, который может создать полноценный сайт «под ключ» самостоятельно. Он непременно должен знать HTML и CSS.

4

А какие еще бывают программисты?

— 1С-программист, в непосредственные задачи которого входит оптимизация готовой системы 1С и ее настройка непосредственно под каждое предприятие.

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

— Game Developer, который специализируется на создании компьютерных игр. Геймдевелоперы заняты в полном цикле жизни видеоигры: создание, тестирование, доработка, поддержка, обновления, модификация и т.д.

— Android- и iOS-разработчики, которые занимаются созданием игр, программного обеспечения, интерфейсов и обновлений для устройств, созданных под брендом Apple, или Android-устройств.

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

— Передовым направлением в области программирования считается сфера Data Science. Она объединяет искусственный интеллект и данные, умение прогнозировать на основе статистических данных.

5

Куда пойти учиться на программиста?

Если есть возможность поступить в вуз, то лучше выбрать один из ведущих: МГУ, МИФИ, ВШЭ, СПБГУ, МФТИ, МГТУ им. Баумана, МАИ, ИТМО и т.д. Речь идет, естественно, о профильных факультетах. Выпускники этих университетов лидируют в рейтинге портала Superjob, составленного по критерию уровня стартовых зарплат программистов.

6

Можно ли научиться программированию на онлайн-курсах?

Начальные навыки программирования помогут приобрести такие популярные платформы, как Сodecademy, Skillbox, GeekBrains, HTML Academy. После прохождения подобных курсов человеку становится легче понять, в сторону какого направления двигаться в профессиональном развитии.

Бесплатные курсы нередко открывают и спонсируют крупные российские компании: Mail.Ru Group, «Яндекс», «Лаборатория Касперского», Сбербанк, Тинькофф банк, «2ГИС», «Роснано», «Сколково» и HeadHunter.

Многие ведущие мировые вузы открывают курсы в онлайн. Например, курсы MIT можно найти на платформе Coursera.

7

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

Освоение программирования на 80% предполагает самостоятельную работу. Почти все необходимые материалы есть в интернете. Самое главное: мотивация. Лучше всего подходить к изучению комплексно, например, совмещая онлайн-курсы, официальную документацию к языкам, лекции, статьи, книги. При этом не следует распространяться на несколько языков сразу, лучше начать с самых простых.

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

В сообществе программистов также много людей, готовых помочь следующему поколению программистов. Hack.pledge — сайт, который поможет найти наставника.

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

8

Нужен ли диплом по программированию для успешной карьеры?

Считается, что высокие инженерные или исследовательские должности без высшего образования недостижимы. Также диплом необходим тем специалистам, которые захотят работать за границей.

При этом многие российские HR-специалисты говорят, что при приеме на работу смотрят, в основном, не на строку «образование» в резюме программиста, а на реальный опыт работы.

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

Источник: https://www.rbc.ru/trends/green/5d6bdbd99a79479d59272f35

Инструкция для тех, кто хочет стать программистом с нуля

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

С чего начать

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

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

И последний вариант — хобби, которое переросло в работу.

Если с вами ничего из вышеперечисленного не произошло, значит, у вас есть выбор из четырёх вариантов:

  • Самообразование. Этот вариант можно использовать как самостоятельно, так и в паре с другими методами. В интернете полно сайтов, книг и приложений, которые помогают изучать различные языки программирования и технологии. Но это самый тяжёлый путь для начинающих.
  • Университет. Если вы оканчиваете школу и хотите быть программистом, тогда идите в университет. Если не за знаниями, тогда за корочкой. Она может послужить бонусом при устройстве на работу. Хотя и какие-то знания вы тоже получите. Но не забывайте заниматься и самообучением. К выбору вуза стоит подойти очень ответственно. Внимательно изучите программы обучения и выбирайте лучшие технические вузы.
  • Ментор. Будет очень неплохо, если вы найдёте человека, который согласится помочь вам и направит вас в правильную сторону. Он подскажет подходящие книги и ресурсы, проверит ваш код, даст полезные советы. Кстати, мы уже писали о полезном ресурсе, где вы сможете найти ментора. Наставника можно искать среди знакомых программистов, на IT-тусовках и конференциях, на онлайн-форумах и так далее.
  • Специализированные практические курсы. Попробуйте поискать в своём городе курсы, где вас обучат какому-нибудь языку программирования или технологии. Я был приятно удивлён количеством таких курсов в Киеве, в том числе бесплатных и с последующим трудоустройством.

Какой язык, технологию и направление выбрать

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

  • Наличие на рынке вакансий. Конечная цель этого пути — найти работу программистом. А это будет трудно сделать, если на рынке вакансий никто не будет искать разработчиков на вашем языке программирования. Проверьте сайты с вакансиями, посмотрите, кого больше ищут, выпишите десяток языков. И переходите к следующему критерию.
  • Низкий уровень вхождения. Если вам придётся потратить длительное время на изучение языка, это может отбить у вас охоту к программированию вообще. Почитайте о тех языках, которые вы выбрали выше. Просмотрите литературу, которую нужно будет прочитать, чтобы изучить эти языки. И выберите те, о которых пишут, что они лёгкие, или которые вам показались лёгкими. Такими языками могут оказаться PHP, Ruby, Python.
  • Кайф от процесса. Если вам не нравится писать код на выбранном языке, вы не будете получать удовольствия от этого процесса, от работы и от жизни. А оно вам надо? Делайте правильный выбор.

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

Самые популярные и относительно лёгкие отрасли — разработка под веб, мобильные и десктопные клиенты. Под каждое направление может подходить один язык и совсем не подходить другой.

То есть при выборе языка программирования также стоит отталкиваться и от этого фактора.

В любом случае изучите веб-технологии. Это язык разметки HTML, стили CSS и JavaScript, который позволит сделать вашу страницу динамической. На следующем этапе изучите серверный язык (Python, PHP, Ruby и другие) и подходящие для него веб-фреймворки. Изучите базы данных: практически в каждой вакансии программиста это упоминается.

Как получить начальный опыт

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

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

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

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

Реальные проекты являются большим плюсом в вашем резюме.

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

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

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

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

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

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

Почему стоит выбрать Python

Давайте немного подробнее поговорим о выборе первого языка программирования. Первый язык должен быть простым и популярным на рынке. Таким языком является Python. Я очень советую выбрать именно его в качестве первого языка программирования.

Код программы на Python читабелен. Вам даже не нужно быть программистом, чтобы в общих чертах понять, что происходит в программе. Из-за несложного синтаксиса Python вам понадобится меньше времени для написания программы, чем, например, на Java.

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

И он такой простой, что даже дети могут его выучить.

Справедливости ради стоит упомянуть и о других языках программирования. Java может стать неплохим выбором для новичка. Этот язык популярнее, чем Python, но и немного сложнее. Зато инструменты для разработки гораздо лучше проработаны. Стоит только сравнить Eclipse и IDLE. После Java вам будет проще перейти к работе с низкоуровневыми языками программирования.

PHP — ещё один очень популярный язык. И, мне кажется, он даже проще, чем Python. Очень легко найти себе ментора или решение какой-нибудь проблемы на форуме.

Всё потому, что в мире существует огромное количество PHP-программистов разного уровня. В PHP нет нормального импорта, есть множество вариантов решения одной и той же задачи. А это усложняет обучение.

И PHP заточен исключительно под веб.

Языки C и C# очень сложны для новичка. Ruby — хороший выбор в качестве второго языка, но не первого. JavaScript — очень простой язык, но ничему хорошему он вас не научит. А задача первого языка программирования всё-таки научить вас чему-то правильному, задать какую-то логику.

Важен ли английский язык

Важен! Не знаете? Учите. Знаете? Совершенствуйте. Учитесь читать, писать, слушать и говорить на английском. Делайте упор на техническую литературу. Слушайте англоязычные подкасты. Читайте англоязычные учебники по программированию.

Что нужно знать, кроме языка программирования

Конечно же, кроме языка программирования и английского, нужно знать что-то ещё. А вот что — зависит от направления, которое вы выберете. Веб-программист обязан знать HTML, CSS, JavaScript. Десктоп-программист учит API операционной системы и различные фреймворки. Разработчик мобильных приложений учит фреймворки Android, iOS или Windows Phone.

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

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

Без этого вы не проживёте.

Последние шаги

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

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

И вперёд — к светлому будущему с новой профессией программиста.

Источник: https://Lifehacker.ru/kak-stat-programmistom/

Ссылка на основную публикацию