Делаем стримы кодинга чему я смогу научиться


Оглавление (нажмите, чтобы открыть):

Новые знанияКак и где научиться кодингу?

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

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

Захар День

куратор профиля «Дизайн и программирование»
Школы дизайна НИУ Высшей школы экономики

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

Программирование — это не только сам навык написания программ. Это в первую очередь развитие мышления. Кодинг учит нескольким важным вещам: критическому мышлению, декомпозиции и композиции. Это в целом развивает человека как личность.

Что касается бытового уровня, то в повседневной работе иногда нужно вытащить какую-нибудь картинку или обойти криво написанный код, который не даёт вам на сайте что-то сделать. История из жизни. Мы периодически заказываем еду домой на сайте одной сети ресторанов. После логина через Facebook поле для ввода телефона на сайте заблокировано, а без телефона нельзя заказать еду. Достаточно удалить в коде сайта слово disabled, чтобы не остаться голодным.

В веб-разработке порог входа значительно ниже, чем в мобильной. Чтобы разрабатывать под браузер, необходимо изучить язык гипертекстовой разметки HTML, каскадные таблицы стилей CSS и единственный язык программирования под браузер — JavaScript (не путать с Java).

Последние несколько лет активно развивается JavaScript. С его помощью можно писать практически под всё, а если под что-то нельзя, то в ближайшем будущем, скорее всего, будет можно. В любом случае без JavaScript ничего дельного в браузере сделать нельзя, потому что это единственный язык программирования, который понимает браузер. Но в данный момент в экосистеме JavaScript всё весьма непросто для новичков, к тому же сам язык не очень выразительный. Зато очень развита и удобна для начинающего разработчика экосистема языка Ruby, хоть он постепенно и теряет свою популярность. Более того, важен не только язык, а фреймворк (большой инструмент, состоящий из обширного количества библиотек) на этом языке — Ruby on Rails. С его помощью можно за пару часов сделать многопользовательский веб-сервис. Это моя личная рекомендация для старта.

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

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

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

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

Егор Яковишен

Senior Frontend Developer в Look At Media

Причин, почему стоит начать программировать, несколько. Это активно растущий рынок труда. Я неоднократно видел цифру в миллион человек — таков будет недостаток людей в этой сфере к 2020 году. Есть такая книга, своего рода манифест, «Программируй или будь запрограммирован». Суть её сводится к тому, что либо ты сам начинаешь разбираться в технологиях, либо технологии начинают формировать твою жизнь. Продукты, которыми мы пользуемся, пронизаны алгоритмами, которые не все понимают. Соответственно, если хочется хоть как-то разбираться, что к чему, было бы неплохо понимать основы.

Абсолютно точно можно научиться кодингу прямо из дома. Есть множество сайтов для онлайн-обучения. Я сам время от времени прохожу какие-то курсы, мне очень нравится. Они интерактивные, понятные, ты сразу начинаешь что-то писать. К тому же сейчас стало появляться всё больше коротких интенсивов, где можно за пару занятий освоить базу. Как правило, преподаватели на них учат тому, с чем сами имеют дело, и на практике знают, что работает, а что — нет. Книги — это хорошо, но очень часто веб-технологии развиваются с такой скоростью, что информация в книге может быстро устареть. Читать что-то, что вышло больше двух лет назад, смысла нет.

Многие считают, что для программиста очень важно знать математику, но математики как таковой в базовом программировании практически нет. Гораздо важнее способность абстрактно мыслить. Также важна логика, ведь программирование — это по сути написание алгоритма работы системы. Перед тем как этот алгоритм сделать, ты должен сначала увидеть его у себя в голове. И, конечно, английский. Без английского есть большая вероятность всегда плестись в хвосте. Техническую документацию стоит читать в оригинале: перевод всегда запаздывает.

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

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

Я бы точно порекомендовал ходить на митапы — когда программисты собираются и по очереди выступают с какими-то докладами. Это мотивирует, там всегда приятная атмосфера, можно подойти к любому человеку и задать вопросы по теме. Из самых известных — регулярные встречи разработчиков JavaScript MoscowJS Meetup, «Я.Субботник» и Moscow Tech Meetup.

Путь кодера: как начать и не бросить

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

Языки программирования

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

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

Подходящая методика обучения

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

Онлайн-курсы кодирования. Некоторые люди работают более эффективно, когда им говорят, что делать и регулярно проверяют результаты их деятельности. И таких людей очень много. Поэтому если новичок чувствует, что у него есть проблемы с самодисциплиной, то ему стоит выбрать такой курс, где его будут постоянно мотивировать проверками. Это хорошая идея – очень многие бросили изучение программирования, понадеявшись на свою силу воли и энтузиазм. Самостоятельное изучение кодирования не для всех, об этом нужно помнить всегда.

Видео на YouTube. Сегодня можно узнать все обо всем, просто просматривая видеоролики на YouTube. Более опытные кодеры показывают, что именно нужно делать, поэтому такие материалы очень полезны. Это простой, эффективный, а самое главное бесплатный способ научиться кодировать. Если есть доступ в интернет, то можно сидеть, смотреть, повторять хоть весь день, пока не станет понятно.

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

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

Фиксация успеха

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

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

Понятные сроки обучения

Когда дело доходит до кодирования, многие новички допускают распространенную ошибку – они разом пытаются сделать кучу заданий и как правило бросают их все, не закончив. Им становится интересно что-то другое, чаще всего другие задачи, поэтому они скачут от одного проекта к другому. Не стоит так делать. Лучше всего двигаться планомерно – решать одну задачу или разбираться в примере до тех пор, пока не станет все понятно. Это очень простой принцип: одно дело за один раз.

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

Сообщения об ошибках

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

Общение с другими программистами

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

Такое общение к тому же поможет понять, что другие люди столь же часто сталкиваются с проблемами кодинга и в этом нет ничего необычного. А если новичок вдобавок сможет помочь своему другу-программисту, то у него откроется второе дыхание и он с удвоенной силой будет продолжать обучение. И не стоит бояться общения – программисты люди на самом деле дружелюбные, просто они часто на «своей волне» и новичку нужно лишь попасть в резонанс.

Правильный и неправильный подход

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

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

Игры для программистов

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

  • CheckiO — игра, в которую вы можете играть в своем браузере, она требует решения проблем в JavaScript или Python для продвижения по игре.
  • CodeMonkey — в основном предназначена для детей, но если вы новичок, вы можете узнать какой-либо код, играя в эту игру.
  • Codewars — это не настоящая игра, скорее решение совместных задач для программистов. Это отличный способ овладеть кодингом, так как игра поддерживает многие языки.
  • Code Combat – это онлайн-платформа, это где можно научиться кодировать, играя в реальную игру.

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

Вывод

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

Livecoding.tv – это Twitch для программирования

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

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

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

После бета запуска в феврале, Livecoding получил 40,000 подписчиков из 162 стран. Пользователи транслировали видео на разных языках, включая португальский, русский и немецкий, а также языках программирования, среди которых C#, Python и PHP.

Любой, кто хочет стримить про кодинг, может сделать это: от эксперта до 11-летнего ребенка, который делает свою первую Java-игру.

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

Для профессиональных программистов Livecoding может стать отличным местом для поиска бета-пользователей или получения отзывов на новое приложение. Хорошо известный программист и физик Стивен Вольфрам, например, продвигал свой новый язык программирования на Livecoding на на прошлой неделе и получил более 4000 просмотров.

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

Это взаимодействие – единственная, но ключевая вещь, которая отличает нас от обычного онлайн туториала, который можно посмотреть на YouTube, – говорит сооснователь Livecoding Джейми Грин. – Эти туториалы отредактированы, они ведут по самой прямой дороге к решению задачи, но в реальности инженеры решают проблемы не так.

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

“Некоторые говорят, что им помогает сконцентрироваться и думать, когда у них есть аудитория, так что тут не будешь отвлекаться на Facebook каждые пять минут”, – сказал Грин.

И Livecoding не ограничен разработкой приложений или игр. Платформа была использована одним программистом для установки 3D принтера, а также другим – для проигрывания лайв-музыки. Грин говорит, что в конце концов Livecoding может распространиться и на другие сферы, кроме кодинга.

“Лайв обучение – ключ к будущему, – говорит Грин. – Дизайн тоже может оказаться в этой модели очень интересным”.

Как вы научились кодить?

Мое влечение к компьютерам началось в самом детстве. Мне повезло родится в 1999 (17 лет назад) т.к. с самого детства у меня был компьютер с которым я очень дружил :).

Мастер Йода рекомендует:  12 новых фреймворков для разработки внешних интерфейсов Javascript

Сначала это был MS-DOS, который впарил сосед моим родителям за копейки, в качестве игрушки. Потом уже был «нормальный» компьютер с окнами на борту.

Вообще, в детстве (странно звучит, да?) всегда увлекался техникой, любил все разбирать (А иногда собирать!!1!1), моими любимыми игрушками были: набор юного электрика, лего, куча электро-хлама.

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

Во 2 классе, когда спросил у учительницы по информатике об этом, она сказала: «HTML». С этим странным словом я пошел домой. Совсем скоро я принял ужасное решение — пошел в книжный магазин.

Книги я не любил, да и сейчас не люблю, поэтому выбрал самую тонкую книгу, на обложке которой было это слово. Это была «HTML и CSS для создания Web-страниц» Э.Кастро, круто звучит да? Дома я скачал нужные программы, попробовал, поигрался. В итоге свой первый сайт, который был выпущен в «продакшн», я сделал на прекрасном народ.ру, (яндекс, без тебя не было бы меня). Сайт был ужасен, это было несколько ссылок списком, которые ведут на разные страницы с фотками, историями. Мне сейчас очень стыдно не за сайт, а за его содержание, он был про мальчика из нашего класса, который всех задирал и бесил. Я тогда сделал именно на такую тему т.к. мне хотелось вызвать активность в классе, я хотел что бы мой сайт смотрели. В итоге в мой адрес люди говорили, что это классно, весело и я молодец. Сайт я вскоре этот удалил. Совесть замучила, но тот парень про сайт так и не узнал. Прости, если что.

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

Дальше пошло развитие. Я постоянно хотел изучить все больше, хотел сделать свой сайт круче, хотел быть нужным, хотел зарабатывать на этом, я хотел быть МОЛОДЦОМ.

Постепенно я дошел до изучения PHP, JS. Просто однажды взял, открыл сайты и начал изучать. Первый сайт (CMS) на PHP я сделал в 2012 году, прошло довольно много времени т.к. для «создать сайт» хватало и Ucoz. Я совершенно не жалею, что потерял много времени на юкозе, т.к. я получил огромный опыт, я изучал что людям нравится, что чаще смотрят, я левелапился в направлении бизнес, я узнал 1000 вещей, которых делать не надо и в будущем это очень хорошо сказалось (читайте дальше).

Дальше я развивался как программист, я 2 года искал себя, изучал Java, C++. Еще за 2 года было много чего создано. Я сделал огромное количество проектов, которые не стрельнули(я тогда не раскручивал ничего т.к. не было денег), заработал первые 100 000 на заказе сайта от родственника.

В итоге я нашел себя. Я понял, что больше всего на свете мне нравится: 1) Делать крутые проекты, связанные с IT 2) Делать полезное людям 3) Быть молодцом (Расшифровка: мой продукт — лучший, все должны афигивать от него)

В 2014 году (14 лет) в январе я выпустил свое первое популярное приложение – умный электронный дневник, которое потом закрыл в апреле из-за давления законов. Об этом даже статья есть

Оно не приносило денег.

В 2014 (15 лет) в июле я запустил онлайн «создавальщик» интернет магазина для игровых серверов. Это было точное попадание в цель. Без реклам, мам, пап, кредитов начал получать стабильно 30-40 тысяч в месяц. (медиана 30).

Проект и его развитие смотрите тут:

Потом проект закрыл. Дальше 30к в месяц он не рос, а работы требовал все больше. На тот момент я захватил 90% серверов для игры Rust. В вк было 71 тысяча упоминаний сайта.

В 2015 начал возрождать проект с дневником. Почему – думайте сами. У него на данный момент 25 000 активных пользователей и дальше все будет очень хорошо.

Самое главное, что я хочу сказать. Не знаю как вы отнесетесь к этой статье, но одно я могу сказать точно – я молодец и я счастлив от этого.

Очень круто и вдохновляюще

это неловкое чувство, когда кто-то в 17 лет уже чего-то добился, а ты в 17 не можешь выучить php из-за собственной лени.

Молодец! С таким характером и мозгами у тебя будет большое будущее. Успехов!))

Как это могло меня вдохновить? Я ж гуманитарий.. вроде бы. Продолжайте в том же духе, автор. Успехов 🙂

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

Начинал я, как и многие, с Паскаля, но потом перешёл на С++, нормально выучив его, поучаствовав в Google Code-In, где улучшал текстовый редактор для какой-то непонятной операционной системы.

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

На первом курсе немного поизучал Java и objective-c, написав сервер и приложение для расписаний своего университета.

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

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

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

Этот же подход верен и для каких-то технологий, а не только языков.

Какой язык более универсальный?

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

Научиться кодить достаточно просто. Совсем другое дело — научиться разрабатывать. Если тебя впирает сам процесс кодинга, то подойдут любые книжки или курсы любого кружка/политеха по изучению языка программирования. Программирование само по себе за время существования эволюционировало не сильно, это по-прежнему применение операторов условия, циклов, присваивания и потоков ( со временем появляются лишь надстройки над кодом ассемблера, так называемые «новые уровни абстракции», что делает работу с ним проще), поэтому узнав синтаксис одного языка, без труда сможешь разобраться с синтаксисом другого, а значит сумеешь перевести с русского языка (заказчика) на язык машинный, на этом работа кодера заканчивается. К примеру, моим первым языком программирования стал Python, изучал я его на курсах программирования в школе и читал официальную документацию на python.org. Этот язык по праву считается «Паскалем 21-го века» и идеально подходит для решения школьных олимпиадных задачек, обладает множеством встроенных функций для работы с приметивными типами данных и одним из самых низких порогов вхождения. Далее я изучал c++ по одной из книжек O’Reilly, чтобы понять, как работает объектно-ориентированное программирование, и затем MySQL, чтобы понять, как работают базы данных. Все это учил под управлением OC Ubuntu (в итоге самый полезный опыт).

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

Как обучаться разработке? Кинуться сразу в командный проект, не имея достаточных знаний, как многие советуют — это неплохой и достаточно эффективный способ обучения, но это точно не панацея и не волшебная палочка, которая сделает из вас программиста. Начало работы в команде профессионалов можно сравнить с покупкой картриджа для игровой приставки, на котором уже есть сохранение от продавцов или разработчиков где-то посередине игры. Вы можете не доходя до этой точки самостоятельно, начать играть с сохранения и у вас будет получаться, ведь принципы игры те же, будет даже местами интереснее, чем в начале. Но вы не будете знать, какими навыками следует обладать на этой стадии игры (хотя эмпирически это можно выяснить). Когда вы застряли на каком-то моменте при прохождении игры от середины до конца, то скорее всего игра с 1-го уровня поможет вам разобраться что делать в сложившейся ситуации. Есть и такие, кто может пройти игру, не возвращаясь к начальным уровням, понимая, что делать, на основе своего опыта или интуиции — значит им действительно не имеет смысла проходить игру от начала до середины — все люди разные 🙂 Но в большинстве случаев (как и в моем), следует проходить игру параллельно, то есть чтобы научиться хорошо разрабатывать нужно и участвовать в реальном проекте с профессионалами (что можно написать в этой ситуации) и самому изучать основы программирования (как работает компилятор/интерпретатор, что для него лучше и почему).

Стримы кодеров — зачем их смотрят и почему они популярны

В кино редко показывают работу с кодом — обычно вы видите экран программиста всего пару секунд, а потом камера переключается на что-нибудь более привлекательное. В интернете все обстоит иначе — тысячи людей готовы часами смотреть, как кто-нибудь пишет код. В 2014 году открылся специальный сайт Livecoding.tv (сейчас — LiveEdu), посвященный подобным трансляциям. Рассказываем историю его создания и объясняем, почему кодерские стримы пользуется популярностью.

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

Кто проводит такие стримы

Стримеры Livecoding.tv делятся на две категории. К первой относятся интроверты, которые сидят в темной комнате и молча пишут код, лишь иногда бормоча что-то в микрофон (например, slateytv). Во вторую категорию входят экстраверты, которые постоянно болтают и приводят на стрим гостей или своего домашнего питомца. Вот, например, стример dogweather пишет код, попивая пиво на кухне, где полно людей.

А вот мексиканский студент под ником codehamster делает домашнюю работу по программированию. Для стороннего наблюдателя такой стрим покажется чушью — подумаешь, кто-то делает уроки. Но для codehamster это все равно, что заниматься в библиотеке, а не дома. Так возникает некое подобие социума.

Как возникла идея

Идею Livecoding.tv придумали в 2014 году двое предпринимателей Джейми Грин и Майкл Гарбэйд. Вскоре проект получил грант от акселератора European Pioneers и попал в летнюю программу акселератора Y Combinator. В 2020 сайт переименовался в LiveEdu, и на нем появились новые категории стримов, например, посвященные разработкам в области ИИ, дополненной и виртуальной реальности, а также криптовалюте. С момента запуска платформой воспользовалось более 1 миллиона человек из 194 стран, а более 13 тысяч стримеров создали там не менее 200 тысяч записей трансляций. Сайт монетизируется за счет рекламы и про-аккаунтов с подпиской в $9,99 в месяц.

Основатели Livecoding.tv. Фото: Wired

Грин и Гарбэйд не первые, кому пришла идея платформы для кодерских стримов. Примерно в то же время, когда они запустили свой проект, на стриминговой площадке Twitch.tv появилась категория, посвященная стримам по разработке игр. Некоторые первые стримеры Livecoding.tv пришли именно с Twitch и привели с собой аудиторию геймеров. А кто-то, наоборот, ушел с геймерской платформы в поисках более подходящего комьюнити. «На Twitch тебя окружают геймеры и, честно говоря, среди них много троллей, — рассказал стример под ником jegas. — А на Livecoding твоя аудитория — это те, кого интересует программирование. Необязательно эксперты, но разбирающиеся люди. С ними проще общаться и шутить. Люди приходят на стрим ради программирования, а не чтобы оценить твои навыки и поиздеваться».

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

Эффективность работы на стриме

Не мешает ли программистам понимание, что за их работой наблюдают? Как оказалось, кому-то так действительно труднее работать. «Вне стрима я бы сделал работу гораздо быстрее, — признался стример jegas. — Но мне нравится общаться с аудиторией и помогать ей. Это здорово!». Иногда он берет гитару и играет на стриме по пять, десять, а иногда и 20 минут. Кто-то из зрителей специально просит его сыграть что-нибудь, а кто-то сразу же уходит со стрима.

Очевидно, что стримить — занятие не для всех. Но некоторые программисты говорят, что на трансляциях им удается лучше сосредоточиться на работе. Зрители не дадут оторваться от дела и заглянуть в Facebook. Кроме того, они могут даже заметить ошибку в коде и помочь исправить ее.

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

Кодинг – «новый черный». Платное и бесплатное обучение онлайн и оффлайн

Строго говоря, в конце 2013 года не уметь кодить – это вообще не круто. Поэтому пора что-то предпринимать в этом направлении. Для чего? Прежде всего, для того, чтобы быть способным эффективно осмыслить собственный онлайн проект, игру, сайт, приложение, программу или девайс. А может быть, и реализовать его – или прототип. Показать прототип продукта команде или инвесторам – это более конструктивный подход, нежели описание на словах или схемы.

Кодинг – « новый черный »

Через 10 лет кодинг наверняка станет настолько естественным навыком, что легко писать код будет так же естественно для подростков, как бегло читать и писать. Если не начинать сейчас, велик риск оказаться в малоперспективном положении, когда культурный разрыв между несколькими поколениями станет настолько велик, что разнесет современников по разным «векам».

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

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

  • Это колоссальные новые возможности и перспективы.
  • Миллионы людей на планете умеют это делать.
  • Весь Интернет, все современные девайсы, вся «умная» инфраструктура, в которую вписаны наши быт, работа и жизнь вообще, – все это создано этими несколькими миллионами людей: они реализовывают свои идеи, развивают цивилизацию и зарабатывают деньги (часто – более чем неплохие).
  • Если снять для себя психологические барьеры типа «это слишком сложно, я не смогу» и просто записаться на курсы или зарегистрироваться на платформе, шансы освоить программирование станут несколько выше.
  • Кодинг – « новый черный » и « новый английский», то есть уже естественный и обязательный скилл. Наверняка «пойдет» не с первого раза, но в целом, раз это доступно такому количеству людей в мире, можно упереться и освоить.

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

Оффлайн платно

Moscow Coding School (MCS)

Сайт : MosCoding.ru

«Кодинг – «новый черный»» – один из слоганов, которые вы первым делом увидите на сайте MosCoding.ru. Помимо прочего, призывают кодить, кодить и еще раз кодить, обещают предоставить кибер-турники для диджитал-воркаута, чтобы перековать хипстеров в хакеров .

Если серьезно, в Москве большое событие: на днях открылась кодинг-школа Moscow Coding School ( MCS ). Ее основатели – Кирилл Жвалов и Вадим Резвый. Партнеры школы : Dream Industries, W-O-S, SoundCloud, Look At Media и Innova Systems. Занятия будут проходить в многофункциональном пространстве DI Telegraph ( Dream Industries ) в здании Центрального Телеграфа. Уровень студентов – новички и специалисты, желающие повысить свой профессионализм. Обучать будут кодингу, веб- и мобайл-разработке. Moscow Coding School обещает стать модной школой для представителей креативных профессий (стартаперов, журналистов, блогеров, художников, дизайнеров и др.). В качестве хорошего бонуса – приятный и полезный нетворкинг. Начинают с трех курсов: «Основы HTML и CSS», «Динамичный веб с jQuery» и «Инструменты веб-девелопера».

  • «Основы HTML и CSS» (9 999 руб.). Преподаватель – Михаил Рейзлин, разработчик SoundCloud. Продолжительность – 4 дня по выходным, 3-часовые занятия с перерывом. С собой рекомендуют принести ноутбук с предустановленным браузером Google Chrome и текстовым редактором Sublime Text. В программе курса: веб-стандарты; состояние индустрии ; инструментарий разработчика ; отличия браузеров ; строительство и дизайн сайтов ; сетап рабочего пространства и создание первого сайта; HTML5, основные HTML-теги и элементы ; семантическая разметка ; изменение вида страниц при помощи CSS ; система селекторов элементов ; атрибуты ; позиционирование элементов на странице ; верстка макета из psd-файла; инструменты для работы с версткой ( Chrome Web Inspector , Firefox Debugging Tools ); веб-типографика (Google Fonts, Typekit) ; возможности CSS3 ; оптимизация сайта ; хостинг и DNS; Zen Coding (делать меньше и успевать больше); секреты продвинутого CSS-позиционирования; изолирование проблем методом исключения и др.

  • «Динамичный веб с jQuery» (9 999 руб.). Преподаватель – Роман Гордеев, Front — End разработчик проектов Third Place и Exchang.es (Dream Industries). Продолжительность – 4 дня по выходным (15, 16, 22, 23 февраля), 3-часовые занятия с перерывом. Для прохождения курса рекомендуется знать основы HTML/CSS. С собой – ноутбук с любой операционной системой и предустановленным браузером Google Chrome. В программе курса: JavaScript-библиотека jQuery; основы JavaScript; работа с селекторами; модель DOM; примеры эффектов и анимации; изменение веб-страниц с помощью консоли браузера; событийная модель браузера; изменения страницы в зависимости от действий пользователя; события мыши и клавиатуры; плагины jQuery; практическая работа.

  • «Инструменты веб-девелопера» (9 999 руб.). Преподаватель – Сергей Чикуенок, главный веб-технолог Innova Systems, создатель плагина Emmet.io. Продолжительность – 4 дня по выходным (1, 2, 8, 9 марта), 3-часовые занятия с перерывом. В программе курса: визуальные, текстовые и IDE-редакторы; обзор полезных онлайн инструментов; браузерные инструменты для отладки HTML, CSS и JavaScript; быстрый поиск ошибок в верстке; отладка и оптимизация JavaScript, поиск «медленных» мест веб-страницы; инструменты для «живого» редактирования; ознакомление с системами контроля версий на примере GitHub; подключение к разработке Open Source проектов; размещение своих сайтов на GitHub; шаблонизаторы и препроцессоры; сборка проекта перед запуском сайта; автоматическое тестирование проекта и автоматическая оптимизация. Соответственно, для прохождения курса рекомендуется владеть основами HTML/CSS.

На сайте MosСoding.ru можно подписаться на рассылку с информацией о достижениях школы и новых курсах. На данный момент все места на основополагающем курсе «Основы HTML и CSS » уже проданы, но огорчаться не стоит – наверняка в следующий раз будет даже лучше, программа может и уточниться с учетом опыта первого потока. Еще идет запись на два курса следующего уровня, а HTML и CSS можно изучить с помощью альтернативных инструментов и источников.

Онлайн и оффлайн платно

«Школа программирования»

Сайт : Prog-School.ru

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

На странице «Наши курсы» сайта «Школы программирования» найдется масса интересного примерно в том же ценовом сегменте. Например, интенсив «Основы программирования» : в течение двух недель учат онлайн, преподают специалисты из компаний Kaspersky и Microsoft . Сообщается о том, что некий объем знаний посредством этого курса уже получили 7 586 человек . Стоимость обучения – 9 700 рублей, может выпасть и день скидок. Выдают сертификат об окончании, помогают в трудоустройстве выпускников, дают гарантию эффективности (концепция «не понравится – вернем деньги»).

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

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

Скроллим дальше: достаточно подробно описана программа курса, над которой на протяжении трех лет работали 12 экспертов из Kaspersky Lab и Microsoft . Если говорить о времени и продолжительность, то формула курса – «222»: 2 недели, 2 занятия в неделю по 2 полных часа в день. Занятия проходят в онлайн формате по вторникам и пятницам (с 20:00 по московскому времени). Ближайший курс начнется 10 января. Кроме основного цикла обучения, студенты будут получать дополнительные видеолекции. Преподаватель курса – Дмитрий Лаврик, веб-разработчик, системный архитектор, руководитель интернет-проектов.

Мастер Йода рекомендует:  Анализ и отображение логов PHP

В рамках курса «Основы программирования» дают общее представление, знакомят с основными терминами и понятиями, различными языками и направлениями программирования, учат разрабатывать алгоритмы. Занятия предусматривают практику разработки. По окончании студенты смогут писать простые программы, получат материалы и инструкции для дальнейшего развития. Итого: 4 онлайн занятия в течение 2 недель, 5 дополнительных видеолекций, методические материалы и домашние задания по каждому уроку, сертификат об окончании, видеозаписи занятий и доступ в Клуб разработчиков для получения реального опыта. Как проходят занятия, показывает, в частности, это видео.

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

  • Java. Базовый курс.
  • Android. Уровень 1. Разработка под мобильные устройства.
  • Android. Уровень 2. Профессиональная разработка приложений.
  • Objective C. Уровень 1. Программирование под iPhone и iPad.
  • Objective C. Уровень 2. Профессиональная разработка приложений и игр.
  • HTML и CSS. Основы создания сайтов.
  • HTML5 и CSS3. Современные средства веб-разработки.
  • PHP. Уровень 1. Основы веб-разработки.
  • PHP. Уровень 2. Профессиональная веб-разработка.
  • JavaScript. Интерактивные веб-приложения.
  • MySQL. Основы теории баз данных.
  • C#. Базовый курс.
  • Web-дизайн. От новичка до профи.
  • Photoshop. Растровая графика для начинающих.
  • Python. Разработка веб-приложений.
  • 1C. Предприятие 8.2. Программирование и конфигурирование
  • C++. Базовый курс.
  • С++. Управление памятью.
  • SEO. Оптимизация и продвижение сайтов.
  • Linux. Администрирование и конфигурирование.
  • Английский язык для IT-специалистов.
  • Microsoft Excel. Уровень 1. Работа с MS Excel 2013/2010/2007.

Не факт, что вам потребуется изучить все 23 – и, соответственно, выделить средства на каждый из них (хотя знаний много не бывает). Но пакет курсов « удачно » разделен на темы и уровни в бизнесовом контексте и «больно» – в контексте оплаты: «половинка» языка так же бесполезна, как и незнание важных составляющих программирования. Курсы продаются и разными упаковками со скидками. Имеет смысл покликать по разным курсам и примерно посчитать, на какую сумму нужно рассчитывать для достижения необходимого минимума или максимума знаний и навыков. К примеру, курсы «HTML и CSS. Основы создания сайтов», «MySQL. Основы теории баз данных» в онлайн формате стоят 10 970 рублей (есть разные варианты форматов). Пробное занятие стоит 300 рублей. Онлайн курс «HTML5 и CSS3. Современные средства Web-разработки» стоит 12 370 рублей; «Java. Базовый курс» (онлайн) – 11 970 рублей и т. д.

Онлайн, бесплатно и самостоятельно

А можно все-таки бесплатно? Можно. Предполагается, что мотивация у вас есть и она не иссякнет без осознания, что вы заплатили некую сумму и на этой неделе у вас занятия в такое-то время. Учиться программированию в эпоху развитого Интернета можно и самостоятельно. Что касается выбора языка, то их обычно учат для чего-то конкретного, исходя из интересов и целей. Например, в процессе изучения языка C можно понять принципы программирования. Ruby сейчас – мейнстрим, на этом языке выходит много проектов, поскольку язык прост и лаконичен, а удобная платформа для разработки веб-проектов (фреймворк Ruby on Rails) активно помогает разработчику в решении задач, связанных с безопасностью и работой с базой данных.

Найти самые разные кодинг-уроки в Сети не составит труда: поисковик сразу выдает множество вариантов онлайн уроков, в том числе в видеоформате. Есть и спектр бесплатных HTML -редакторов для практики во время обучения: онлайновых ( 1, 2 , 3 , 4 и т. д.) и для загрузки – можно выбрать оптимальный для себя. HTML-редактор облегчает создание веб-страниц. Среди его функций: выделение однотипных участков кода, быстрая вставка тегов и возможности отладки. Хороший HTML-редактор сэкономит много часов даже опытному разработчику. При желании базовые знания можно получить и самостоятельно, формируя собственный курс по программам популярных школ и курсов. В принципе, это неплохой вариант и для подготовки к поступлению в школу кодинга: когда понимание основ уже есть, можно будет сосредоточиться на практических советах преподавателя и задать ему дельные вопросы. На специальных англоязычных и русскоязычных платформах есть уже готовые, грамотно составленные бесплатные курсы – и это отличный вариант, позволяющий получать знания высокого уровня от экспертов и развивать навыки в своем режиме.

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

Анатолий Макаревич: «Единственный способ научиться программировать – это программировать»

Анатолий Макаревич

Ведущий Ruby-разработчик в Evrone


– Единственный способ научиться программировать – это программировать, то есть чтение какой-либо литературы без практики не принесет результата. Я программирую на Ruby и могу дать советы по изучению этого языка. Начать нужно с самого простого – TryRuby.org. Это интерактивный самоучитель, который работает прямо в браузере. То есть для того, чтобы начать программировать, не нужно ничего устанавливать. Я советовал этот сайт знакомым парням и девушкам – и все доходили до конца без проблем. Дальше можно выбрать один из следующих ресурсов: Сodeschool.com, Teamtreehouse.com, Сodecademy.com, Сoursera.org, СodeForces.ru. Первые три – онлайн школы программирования, где вы будете смотреть лекции, а после проходить тесты и решать прикладные задачи. Coursera же дает более академические знания, которых как раз недостает ребятам, которые умеют делать сайты, но не знают, как работает алгоритм сортировки массива. CodeForces – это русский проект, автоматическая система проверки задач, отличный ресурс для того, чтобы набить руку в применении алгоритмов.

Фото: Игнат Соловей

Codecademy

Сайт: Codecademy . com

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

На Codecademy можно бесплатно учить JavaScript, HTML/CSS, PHP, Python, Ruby, APIs. Часть сайта русифицирована, но довольно малая. Выпадающее меню выбора языков есть, но в основном даже «на русском» все – на английском. Полный список курсов можно посмотреть здесь .

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

Насколько реалистично научиться чему-то самостоятельно с помощью сервиса? Имеет смысл сходить в раздел Success Stories («Истории успеха»).

Интересно, что платформа Codecademy – не только про учиться, но и про учить кодить: любой желающий может стать автором курса.

Udacity

Сайт : Udacity.com

На образовательной платформе Udacity множество англоязычных кодинг — курсов :

Обучение происходит посредством видеоуроков в личном кабинете. Прогресс-бар отражает степень освоения курса. Платформа Udacity создана на базе Стэнфордского университета.

Treehouse

Сайт: Teamtreehouse.com

На Treehouse обучение также проходит в видеоформате – это 1000 уроков по программированию, веб-дизайну и технологическому предпринимательству. Можно получить базовые знания, научиться создавать сайты, приложения для iPhone или Android, изучить языки (например, Ruby on Rails).

У Treehouse есть свой YouTube-канал , на который стоит подписаться. Вообще обучение на Treehouse стоит $250-490 в год, но есть и бесплатный проект платформы – Code Racer: если ваш английский пока не настолько хорош, чтобы получить настоящие знания и навыки за обозначенные суммы, разумно присмотреться к free -проекту.

Code School

Сайт: CodeSchool.com

На платформе Code School, которая учит кодить под девизом «Learn by Doing» («Обучайся, действуя»), есть и база (5-уровневые курсы HTML/CSS, Ruby, JavaScript и др. с 15-минутными видеолекциями, упражнениями, эмуляцией результата и фидбэком), и « фишка » – геймификация кодинг-обучения. Это, к примеру, награждение бейджами за успешно выполненные задания и забавные курсы вроде Rails for Zombies («Рельсы для Зомби»): вы программируете то, что вас интересует и развлекает – и, соответственно, мотивирует.

Читайте также

Иллюстрация обложки: Alejandro Escamilla

Гайд для начинающих стримеров: как я перестал бояться и полюбил монитор.

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

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

Чтобы избавить вас от лишних проблем я постарался собрать в этой статье все что знаю — благо успешно полтора года занимался сим прекрасным делом. Хватит лишних слов — поехали!

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

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

Большинство современных процессоров (даже те, что в ноутбуках) вполне справляются с нагрузкой, особенно если речь идет не о современных ААА-проектах. Тут ведь кроме нагрузки от стрима вмешивается ещё и сама игра, и даже если по отдельности все идет прекрасно, то запустив все вместе можно получить на выходе отличные лаги.

Немножко примеров: ваш покорный слуга использует Intel Core i7-3770K — этого хватает, чтобы тянуть какую угодно нагрузку вплоть до больших разрешений вроде 1920:1080 и 60 кадров в секунду. Хотя на относительно современных образцах «прекрасной» оптимизации я ничего не тестил, да.
Чуть более бюджетный вариант — Intel Core i5-3570K. Уже не позволит совершенно наплевательски относиться к настройкам и придется иногда смотреть, где тормозит, а где нет, и может где-то снижать настройки. Но в большинстве случаев – отличный выбор.

С интернетом все гораздо проще – стабильное соединение, да и все в основном. Разумеется, канал должен быть достаточно большим. Хотя бы 1 мегабит в секунду, хотя сам я умудрялся стримить и при меньших скоростях – правда в режиме майнкрафта и пошаговой стратегии. Это не проблема, если вы стримите пошаговые стратегии и Minecraft.

Ну и конечно не забывайте про звук. Хватает обычно и обычной гарнитуры в наушниках. Я одно время пользовался продукцией Razer, но слишком уж часто она давала сбой, хотя, быть может, дело там в моих кривых руках.
Самое важное в этом деле чтобы звук был относительно «чистым». Ваш голос не должны перебивать посторонние шумы и фон не должен быть слишком громким. Именно это главный критерий для выбора гарнитуры.

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

В СНГ выбор достаточно мелкий. Хотя он и в мире не сильно то и большой. Смотрим:

Twitch.tv – самый большой стримерский портал вообще в мире, YouTube для стримеров. Очень удобный интерфейс сайта, много народа, но и при всем при этом проблемы тоже есть. Первая: почему-то у некоторых зрителей Твич может безбожно лагать просто так, но с этим можно бороться часто обновляя плеер – рано или поздно он направит на сервер поближе. Со второй проблемой бороться сложнее: задержка изображения, которая может иногда доходить до минуты и больше. Понятное дело, что интерактивное общение с чатом в таком случае затруднительно.

CyberGame.tv – сайт уже чисто российский, сервера расположены в Москве. Задержка минимальна, лаги тоже редки (если конечно вы не живете на Дальнем востоке). И все было бы хорошо… Но у сайта большие проблемы с сохранением VoDов (Video on Demand) – записей стримов, которые создаются по их окончании. На Твиче они исправно сохраняются по нажатию кнопочки стоп, скачиваются, загружаются на Ютуб. На Кибергейме же запись может появиться когда угодно. А иногда и вовсе не появиться. Делайте запись непосредственно на жесткий диск, если собираетесь стримить на этот плеер — будет меньше проблем с пропажами.

GoodGame.ru – в отличии от вышеперечисленных сайтов не только предоставляет плеер и чаты, но и сам по себе является информационным порталом с отдельным коммьюнити. На Твиче и Кибергейме почти бесполезно искать аудиторию, если стримить только на них. На Гудгейме же есть шанс, что пробегающий глазами по списку стримов зритель заинтересуется именно вашим. Задержки минимальны, записи, правда, не сохраняются в принципе (возможно уже исправлено, я давно не интересовался этим сайтом).

ПОСТОЯННЫЕ ТЕХНИЧЕСКИЕ ПРОБЛЕМЫ.
Делаешь большой стрим, долго к нему готовишься – упс, у нас сломался сервер, целый час ваши зрители будут видеть лагодром! Захотел включить только вышедший эксклюзив – извините, вас таких слишком много, сервер лежит.
И утром, и днем, и глубокой ночью никто не застрахован от того, что сервер Гудгейма задумается о вопросах жизни, вселенной и всего остального. Да, он у них головастый. Но стримерам и зрителям от этого не легче.

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

Вот она – святая святых!
То, что делает стрим стримом. Та магия, которая из введенных в поля чисел и букв заставляет оживать картинки на экране у других людей. Был бы я пещерным человеком, то уже начал бы поклоняться этому.
А ещё ниже будет очень много текста и очень много картинок. Но под спойлерами. Так что готовьтесь.

Для запуска трансляции необходимо скачать одну из программ, обеспечивающих весь процесс кодирования и передачи изображения и звука. Таких существует две: Open Broadcaster Software и Xsplit.

Сразу пару слов о второй: программа эта, в отличие от OBS, платная, и стоит довольно больших денег. По сравнению с аналогом, она имеет чуть больше функционала, но при этом грузит процессор сильнее. Именно из-за её платности в этом гайде я не скажу ничего о настройке стрима в ней – он, все-таки, для начинающих, и тех, кто не планирует развивать это дело дальше маленького хобби.

Первым делом, наш путь лежит в настройки (1), раздел «Трансляция» (2). Выбираем тот плеер, на котором зарегистрировались (3) и вводим всю необходимую информацию: сервер, на который будет отправляться информация (4) и особый «ключ» (5). На каждом сайте он находится в специфичном месте, но заметном. Ключ — именно та вещь, через которую программа будет определять, на какой именно плеер отправлять материалы. Поэтому не передавайте его никому другому, если не хотите, чтобы под вашим аккаунтом стримили совершенно другие люди. Если хотите, в этом же разделе можете установить путь для сохранения записи вашего стрима на жесткий диск. Если переключить режим с прямого эфира на локальную запись, то стрим не будет выходить онлайн, а сразу записываться на компьютере. Полезно для теста новых настроек или проверки захватов.

Дальше переходим в раздел «Кодирование». Выбор кодировщика определяет, что именно будет нагружаться из вашей системы для обработки информации. X264 (1) – это стандартный, дефолтный путь через процессор, и в большинстве случаев стоит работать через него. Но если ваш плеер слабоват, то можно попробовать стримить через Quick Sync и Nvidia NVENC (2) – в этом случае обработкой будет заниматься видеокарта. Обычно помогает, но это все равно способ так себе, и использовать стоит только в крайнем случае – все-таки видеокарта у вас обычно и так занята, а уж с нынешней оптимизацией в большинстве игр… К тому же, для разблокировки второго необходимо, чтобы технология поддерживалась видеокартой (и, соответственно, была необходимой фирмы). Для первого же нужно изрядно потанцевать с бубном. Необходимые пляски и песнопения можно посмотреть вот здесь

Максимальный битрейт (3) – вот, что будет определять итоговое качество вашего стрима. Чем выше битрейт — тем меньше распадается на пиксели изображение, отправляемое на плеер, но и тем больше нагрузка на вашу систему. А ещё и на интернет-канал зрителей. При высоких значениях есть вероятность, что у человека включившего плеер изображение будет подгружаться медленнее, чем оно отправляется, приводя в итоге к подгрузкам и лагам. Так что, настройка битрейта — процесс весьма тонкий и железных значений тут нет. Есть общие рекомендации для определенных видео-разрешений, чтобы отправляемое изображение им соответствовало.

При 1280*720 рекомендуется ставить значения от 1000 до 2000-2500. Меньше – майнкрафт из любой игры, больше – разница будет незаметна. Для 1920*1080 – от 2500 до 4000. Правда в последнем случае может произойти та самая ситуация, когда качество будет слишком большим для зрителей. Обычно в таких случаях спасает переключение качества, но выдается оно для стримера далеко не сразу. У каждого плеера свои специфичные условия для получения этой кнопочки. Если у вас её нет, хорошим тоном будет стримить в 720р, чтобы как можно больше людей могли с комфортом смотреть ваш стрим.

Битрейт аудио (4) оставляйте в большинстве случаев на дефолтных 128. Знавал я таких «советчиков», которые предлагали ставить всегда максимально возможное. Ну пожалуйста, никто не запрещает, кроме здравого смысла. Повышенный битрейт аудио будет заметен только если вы стримите живую музыку и прочие редкие случаи, когда максимальное качество будет слышно только при повышении битрейта аудио. В остальных случаях — пустой расход мощностей и разница звука будет абсолютно незаметна.

Коль речь зашла о разрешении – переходим в раздел «Видео». Выставляете то разрешение (1), которое будет захватываться программой (рекомендуется ставить то, которое у вас на мониторе максимальное). К слову – лучше бы, чтобы разрешение было у вас 16:9. Именно в таком формате идут все плееры, и любое отклонение от него будет приводить к «кинематографичным» черным полосам сбоку или снизу. Не будьте как авторы The Evil Within, пожалуйста. Если избавиться совсем никак не выходит (ну не тот формат монитора, а играть в окне не хочется) – есть вариант забить полосы каким-нибудь оформлением. Картинки в тему стрима, ссылочки на вконтакт\твиттер и т.д. – что угодно, но лишь бы не черные полосы. Они раздражают людей, правда. Если у вас слишком большое разрешение – его можно масштабировать (2) с помощью одноименного пункта. Например, захватываться будет положенное 1080р, но уже самой программой «сужаться» до 720р, и в таком уже качестве отправляться на плеер. Очень полезный пункт для тех, у кого нет переключения качества на плеере.

В разделе «Аудио» следует задержаться, если у вас больше одного микрофона, а вам нужен конкретный.

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

Вылезаем из настроек. Теперь нам нужно захватить само изображение. Под большим экраном (на который будет выводиться то изображение, что вы настроили при запуске или предпросмотре стрима) и левее от кнопок настройки и запусков находятся две таблицы. Самая левая – сцены (1), правая – источники (2). Сцена — это изображение, которое будет отправляться на плеер, источники же — её составные элементы.

Пример: нам нужно вывести на экран изображение игры. Создаем сцену «GameName», кликая правой кнопкой мыши по левой таблице. Выбираем источник, кликнув ей же (пкм) по правой таблице. В случае игры — это «Окно» (1) или «Игра» (2). Там используются разные способы захвата поступающего изображения, если один из них не срабатывает — просто попробуйте другой. Выбираем необходимое окно или процесс (3), нажимаем ок, и — вуаля! — изображение захвачено и мы видим его на большом экране. Не видите? Значит что-то сделано неправильно, используйте другой способ захвата или проверьте, правильно ли указан объект для захвата.

Если захочется добавить какое-нибудь изображение прямо на экран – к списку источников добавляем его через модуль «Изображение» (1). Раз – и поверх игры у нас расположен прекрасный анимешный арт о боги Хаоса, зачем я выбрал именно этот

Но тут нам захотелось, чтобы у нас была заглушка в виде картинки, которая закрывала бы изображение, когда зрителям лучше не видеть, что происходит на экране – например ваш бравый капитан Шепард вот-вот уединится с лейтенантом Кортезом. Можно сделать изображение через источник и держать его слоем за игрой, чтобы потом по необходимости вручную «поднять» его поверх.

Но гораздо удобнее будет, если вы создадите отдельную сцену «ImageName» и с помощью правого клика по названию сцены выберете опцию «Выбрать клавишу», (1) и, собственно, назначите эту клавишу (2). Не используйте только те, что часто будут использоваться в самой игре, это вообще касается любых «биндов» настроек.

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

Как вести стрим

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

Мастер Йода рекомендует:  HTTP в сравнении с HTTPS и SEO

1. Умейте говорить не только об игре. Слушать постоянные «ну а теперь давайте зайдем в этот коридор, ух ты, какие красивые центаврианские крыски, давайте их побьем» очень скучно и неинтересно. Умейте находить отвлеченные темы, расскажите о происхождении этих центаврианских крысок. В долгих перерывах между экшеном на экране не стесняйтесь рассказывать какие-нибудь удивительные истории — просто для того, чтобы зрители не заскучали. И всегда, всегда реагируйте на вопросы зрителей. Стрим тем и отличается от летс-плея, что здесь ведущий может общаться с людьми в реальном времени (с поправкой на задержки), и люди рассчитывают, что так оно и будет.
2. Второй пункт вытекает прямо из первого – умейте находить баланс между комментированием игрового процесса и сторонними размышлениями. Особенно, если игра какая-нибудь интересная и с лихо закрученным сюжетом – не перебивайте персонажей во время разговоров. Можете пояснять, что случилось, и куда вас направили. Постоянные отрывы от происходящего на экране раздражают точно так же, как и постоянное сосредоточение на нем.
3. Стримьте не в одиночку. Этот пункт я вынес в основном из просмотров трансляций самого StopGame с традиционным разделением ролей между ведущими. Это действительно очень удобно – сокомментатор может помогать с чтением чатов или комментариев, раздавать советы и просто вести диалог с ведущим на различные темы. Молчание — золото, но на стриме вы все-таки должны разговаривать, чтобы, повторюсь, зритель не скучал.
4. Будьте вежливы. Здесь, по-моему, все очевидно. Но если кто-то начал оскорблять вас посредством чата или просто нести ахинею – можно и ответить. Порядок все-таки должен оставаться порядочным. Никита Сергеевич, спасибо за уроки афоризмов.
5. Ну и самое главное – будьте интересным. Кроме того, чтобы просто запускать видео, вы можете подготовить и сценарий предстоящего стрима. Сделать его посвященным какой-нибудь тематике (строительство цивилизаций в Украине например), подготовить какие-нибудь небольшие видюшки, которые вставлялись бы где-нибудь по ходу дела. Хорошо будет показывать какой-нибудь челлендж на стриме, или просто мастер-класс игры. Запустить трансляцию по вышедшей в Стиме новинке — тоже хорошая идея. Делайте что угодно – главное, чтобы это выглядело качественно и интересно.

Ну и просто маленькие наблюдения:
Без разнообразия в выборе материала для трансляции вы постепенно теряете аудиторию (исключения бывают).

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

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

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

Автор: LordSerket
Редактор текста: purpleSyrup

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

Подробная инструкция, которая поможет вам писать хороший код.

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

1. Самостоятельно

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

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

Платформа с бесплатными курсами по веб-разработке freeCodeCamp

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

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

Обязательно поставьте перед собой цель создать свой проект и постоянно работайте над ним.

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

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

Сервис вопросов и ответов на технологические темы «Тостер»

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

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

2. С помощью ментора

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

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

3. У преподавателей «живых» курсов

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

Популярные русскоязычные онлайн-площадки, которые занимаются системной подготовкой программистов: «Нетология», GeekBrains и Loftschool.

Если предпочитаете заниматься очно, можете поискать образовательные центры, которые обучают программированию в вашем населённом пункте. К сожалению, такие заведения чаще всего присутствуют только в больших городах. В качестве примера можно привести компьютерную академию «ШАГ», у которой есть филиалы в нескольких странах.

4. В университете

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

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

Как выбрать направление и язык

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

  1. Веб-разработка. Популярные языки: JavaScript, PHP, Python, Ruby.
  2. Мобильная разработка. Популярные языки: Java, Swift.
  3. Разработка игр и программ для настольных компьютеров. Популярные языки: C++, C#, C.
  4. Big Data, машинное обучение. Популярные языки: Python, R, Scala.

На что обратить внимание при выборе

Чтобы сделать правильный выбор направления и, в частности, языка, учитывайте следующие факторы: сложность освоения и количество обучающих материалов в Сети, ваши личные предпочтения (что именно хотите разрабатывать) и востребованность языка на рынке труда.

График востребованности языков на международном рынке труда / research.hackerrank.com

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

Если не можете определиться

Если вы в замешательстве, присмотритесь к JavaScript — языку, на котором написан почти весь веб. Многие организации и программисты советуют новичкам выбирать именно этот язык в качестве первого.

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

  1. JavaScript относительно легко освоить. А чтобы написать что-то и запустить на этом языке, достаточно иметь редактор кода и браузер.
  2. JavaScript — самый востребованный язык на международном рынке труда и у него большие перспективы. В экосистему JavaScript инвестируют крупные компании вроде Google, Microsoft и Facebook.
  3. У JavaScript очень широкая сфера применения: от сайтов и браузерных игр до мобильных приложений.

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

Что ещё должен знать программист: математика и английский?

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

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

Как получить первый опыт и первую работу

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

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

  1. Выполните несколько заказов на биржах фриланса. Это могут быть «Фрилансим» или Upwork. Предлагайте свои услуги бесплатно, тогда к вам придут первые заказчики.
  2. Найдите единомышленников и создайте с ними общий проект. Люди объединяются для таких целей почти на каждой образовательной площадке, где есть курсы по программированию.
  3. Выберите курсы, организатор которых помогает с трудоустройством. Например, в GeekBrains после обучения открывается доступ к стажировкам от разных компаний, в том числе — оплачиваемым. GeekUniversity и «ШАГ» гарантируют трудоустройство своим выпускникам.

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

С чего начать изучение веб кодинга?

Хочется немного научиться разбираться в веб-программировании — а начать с чего — не знаю.
Конечно я все-таки хочу быть мего-кодером не питаю иллюзий к тому, что смогу что-то стоящее сделать, но для себя было-бы неплохо немного разбираться в структуре и «тесте», из которого «сделан» сайт/CMS.

Я так понимаю начинать с фреймворков типа Yii, Коханы смысла нет без понимания «механики» работы хотя бы PHP ?
Собственно тогда с чего начать изучение? С HTML, PHP, JS, .NET?

В общем подскажите откуда копать и в каком направлении.
А там уже будем разбираться, где искать полезную инфу ;0

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

11.06.2014, 23:29

С чего начать изучение web-технологий
Подскажите пожалуйста с чего начать изучение web-технологий? С каких учебников, языков.

Скажите что делать новичку ! С чего начать изучение» вебкрафта» =)
Привет, хочу начать создавать такие сайты на подобие этого https://schastye.com/restaurants Что.

С чего начинать изучение PHP?
По сабжу. Многие здесь пишут тонны кода, изобретая велосипед снова и снова. А я, когда начинал.

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

С чего начать создание форума на php?
#Всем доброго времени суток! #Подскажите с чего начать создание форума на php? #И что почитать.

12.06.2014, 01:45 2

ivashenco, начните с верстки (HTML, CSS). Дальше выбор падает между JS или PHP (+ MySQL). Разница между ними в том, что JS используется со стороны клиента, а PHP со стороны сервера.
Что касается «полезной инфы», — читайте книги. Например, здесь приведен список книг: Учебники по PHP

Когда изучите основы, — пытайтесь делать свои «велосипеды». Например, Гостевую книгу.

12.06.2014, 07:37 3 12.06.2014, 13:18 [ТС] 4

Спасибо ребята. Тогда еще пару десятков вопросов. Как считаете, есть смысл изучать ХТМЛ и КСС по htmlbook.ru ? Все таки учебники это хорошо, но там не меняются данные (в отличии от сайтов, где то что вчера было актуально — сегодня удаляют из-за устаревания). А так же что скажите на счет javascript.ru ? По моему достойный ресурс + обновляется по актуальности материал.
И еще, может подскажите полезный ресурс про пхп?

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

«Мы предложим президенту пройти базовый курс по HTML»: интервью с создателями Moscow Coding School

Иван Мин

Через 10 лет навыки программирования будут так же необходимы, как и знание английского языка сейчас. По крайней мере, так считают создатели образовательного стартапа Moscow Coding School, который с помощью лучших работников индустрии преподает основы кодинга всем желающим в стенах DI Telegraph. Зачем президенту базовый курс по HTML, когда нам понадобятся технологические костыли и что общего у алгоритмов и гармонии — T&P поговорили с Вадимом Резвым и Кириллом Жваловым, создателями MCS.

— Кодинг настолько легкая штука, что его могут выучить все? Что делать мне, если я тотальный гуманитарий? Что я буду реально в состоянии сделать после MCS?

— Научно доказано, что разделение людей на гуманитариев и математиков — иллюзия. Все мы в детстве собирали лего и играли в стратегии. Просто наши выскочки-одноклассники, уделавшие нас по математике, в свое время убили в нас желание идти по пути изучения точных наук. Если бы мы оказались в окружении менее талантливых «математиков», то наш математический потенциал раскрылся бы намного ярче. Например, один из нас в свое время выиграл школьную олимпиаду по алгебре, обучаясь в специализированном баскетбольном классе, но затем проиграл в финале телешоу «Умницы и Умники» сегодняшним медиагуру — основателям LAM Василию Эсманову и Алексею Аметову. Мы не выдумываем — почитайте новую книгу Мальколма Гладуэлла «Давид и Голиаф».

«Кодить, просто чтоб кодить, потому что это модно — неверно. Понимание алгоритмов и систем приводит к гармонии с окружающим миром и природой»

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

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

— Какие навыки кодинга пригодятся в повседневной жизни? Чему учат алгоритмы и системы?

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

— Вы встречались с фразой Дугласа Рашкофа «Программируй или будешь программируемым». Что думаете об этом?

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

— Современная экономика строится на разделении труда, не стоит ли оставить кодинг профессиональным программистам?

— Совсем недавно любого человека, интересовавшегося компьютерами, называли «компьютерщик». Тех, у кого был интернет в конце 90-х — начале нулевых называли «интернетчик». Но где сегодня эти определения, когда компьютеры у каждого на ладони, а интернет проник всюду? Кажется, что с «программистом» может выйти то же самое. Разделение на любителей и профессионалов, конечно, никуда не денется, но общий процент тех, кто будет связан с конструированием основанных на коде разного рода решений, будет гораздо больше.

— С чего началась MSC?

— Moscow Coding School трансформировалась из нашего увлечения идеями фильма «Секрет», книгами Паоло Коэльо, лекциями Экхарта Толле и скринкастами Джеффри Уэя. Мы давно следим за деятельностью независимых американских школ, предлагающих кодинг-курсы, интенсивы и буткемпы. Сами всегда дрейфовали рядом с этой индустрией: оба до недавнего времени поднимали проекты в вебе и — один в , второй в . Благодаря этому опыту, осознать неизбежность массового освоения программирования для нас было вопросом времени, и в прошлом году мы наконец-то созрели до того, чтобы открыть собственную кодинг-школу близкого нам американского формата в любимом городе.

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

«Наши преподаватели отобраны нами вручную, как листики чая Dilmah»

— Как вы относитесь к вроде Codeacademy и почему решили делать офлайн?

— Мы, безусловно, респектим подобные онлайновые образовательные сервисы, сами на них порой залипаем и вообще считаем их отличной стартовой площадкой для первоначального знакомства с любым языком. Такой easy-формат ценен тем, что быстро вовлекает новичков в написание кода и делает это, как нам нравится — через практику и фан. Однако эффективность более продвинутых онлайн-курсов является предметом дебатов. Та же Coursera рапортует о том, что до конца их средний курс проходят лишь 10% пользователей. Очевидно, что причина кроется в отсутствии реального общения, групповой мотивации и непосредственного фидбэка от живого преподавателя здесь и сейчас — все это пока не удалось заменить исключительно виртуальным обучением, да и вряд ли когда-либо удастся, исходя из социальной природы человеческого существа.

Вообще же, разделение на офлайн и онлайн в 2014 некорректно. Особенно в современном образовательном формате. На занятиях в MCS сложно провести четкую черту между онлайном и офлайном — наши преподаватели активно задействуют облачные решения (CodePen, GitHub, JsBin и другие), помогающие ученикам в наблюдать за созданием кода преподавателем хоть с проектора, хоть из вкладок своих браузеров, мгновенно видеть результат собственных манипуляций и шэрить выполненные задания для проверки и помощи. У всех ноутбуки с быстрым интернетом, а не 96-листовые тетради с фотками героев «Элен и ребята» на обложке. Возвращаясь к чисто онлайн-форматам, мы сейчас экспериментируем с iTunes U и думаем в будущем разместить там часть материалов с наших самых популярных курсов.

— Кто преподает в вашей школе? Почему именно они?

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

Случись завтра олимпиада по программированию, то вот кто шел бы в костюмах Bosco на открытии: Миша Рейзлин из SoundCloud, Роман Гордеев из Dream Industries, Слава Баласанов (он же Slava), ведущие веб-инженеры W-O-S Мика Налбандян и Артем Леготин, победитель PayPal Battle Hack Сергей Пронин из Empatika, Антон Домашнев, Никита Комарков и Борис Горячев из Look At Media, Роман Гарин из Hyperboloid, разработчик Glitché Борис Головнев. Нести флаг доверили бы упомянутому выше Сергею Чикуенку. Все это наши преподаватели.

— Если я программист, нужно ли мне идти в MCS или это все только для новичков?

— Большинство наших курсов ориентированы именно на новичков, но есть и суперинтересные курсы для более продвинутой аудитории. Любой программист является профессионалом лишь в отдельных узких областях, соответственно, во всем остальном его можно назвать новичком. Например, для всех практикующих JavaScript у нас готов курс от диджитал-гуру Славы Баласанова — он учит их делать собственные сингл-пейджевые веб-приложения на основе изощренных джаваскрипт-фреймворков Angular JS и Node.js.

— Как вы представляете себе жизнь через 10 лет, в 2024 году, человека, который не понимает код? Можете описать проблемы, с которым он столкнется?

— Если он при этом сможет обеспечивать себя, то проблем у него никаких не будет. Возьмем в качестве примера рэпера типа Дрейка — он сможет поднимать на концертах, альбомах и рекламе и не напрягаться. Он сможет позволить себе технологические костыли в виде классной команды приближенных разработчиков, которая сделает для него свою вселенную на Oculus Rift. Максимум, что у него будет — это легкий дискомфорт от ощущения своей технологической беспомощности. Но не у всех такая благополучная карма.

«Если же нам позвонит президент, то прежде всего мы предложим ему пройти наш базовый курс по HTML и CSS»

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

Добавить комментарий