Содержание

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

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

С чего начать

Есть несколько вариантов развития событий, в результате которых человек становится программистом. Первый — родители-программисты, которые всему научили своих детей. Таким детям даже не нужно идти в университет. Второй вариант — модная профессия программиста. После школы нужно было выбрать, куда пойти учиться, и выбрали модное направление 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, он самый популярный. Вам нужно знать инструменты, с которыми вы работаете, операционную систему и среду разработки. И главный навык программиста — уметь гуглить. Без этого вы не проживёте.

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

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

С чего начать самостоятельное обучение и как не забросить после нескольких занятий

Ребята, мы вкладываем душу в AdMe.ru. Cпасибо за то,
что открываете эту красоту. Спасибо за вдохновение и мурашки.

Присоединяйтесь к нам в Facebook и ВКонтакте

Наполеон Бонапарт, Альберт Эйнштейн, Константин Циолковский, Томас Эдисон, Коко Шанель — яркие примеры того, как самообразование не только развивает личность, но и делает человека знаменитым. Самостоятельное получение знаний и навыков — это отнюдь не современная модная тенденция. Однако именно сейчас благодаря развитию технологий и возможности получать самую актуальную (даже по сравнению с традиционной системой обучения) информацию самообразование открывает перед человеком интереснейшие перспективы.

AdMe.ru узнал, при каких условиях самостоятельное обучение действительно работает и с помощью каких приемов возможно получить от него максимальную отдачу. Знакомство с этими принципами дает понимание, что начать заниматься самообразованием и получить от него стоящий результат — реально.

1. Ответьте честно самому себе: для чего вам так необходимо самообразование?

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

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

2. Между самоуверенностью и опытом выбирайте второе

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

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

3. Ищите мотивацию даже в мелочах и направляйте себя к цели

С чего начать самостоятельное обучение и как не забросить после нескольких занятий

Обучение программированию с нуля: с чего начать изучение в домашних условиях

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

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

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

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

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

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

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

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

В странах бывшего СССР основным языком программирования, преподаваемым в технических ВУЗах, был Бейсик.

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

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

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

В некоторой мере такая тенденция сохраняется и по сей день. Хотя в наше время количество профессионалов, занимающихся преподаванием, заметно возросло.

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

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

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

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



Рассмотрим особенности этого языка, делающего его оптимальным для изучения:

  • Простая для понимания основа – часть встроенных возможностей языка для простоты вынесена в отдельно подключаемые библиотеки. К таким элементам относится большая часть математических функций и методов для работы с файловой системой;
  • Оптимально подогнанная система типов – благодаря простому набору типов данных и строгой типизации уменьшается риск допущения ошибок в процессе написания программного кода;
  • Направленность C на процедурный тип программирования, при котором соблюдается четкая иерархия всех элементов кода;
  • Доступ к памяти машины с помощью указателей;
  • Минимальное количество поддерживаемых ключевых слов;
  • Поддержка области действия имен;
  • Поддержка пользовательских типов данных (объединения и структуры).

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

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

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


Вот несколько специализированных компиляторов с поддержкой языка C:

  • Microsoft Visual Studio – профессиональный инструмент, поддерживающий множество языков, в том числе и несколько серверных. Подойдет для новичков, если брать его «на вырост»:

  • Borland C++ — бесплатный компилятор, идеально подходящий для начинающего обучение. В отличие от предыдущего инструмента, отличается ясным и понятным интерфейсом. Поэтому его освоение не вызовет особых трудностей даже при самостоятельном освоении азов программирования:

  • Code::Blocks – бесплатная среда разработки, поддерживающая написание кода на нескольких языках. Средний по сложности освоения вариант:


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

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

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

  • Веб-программирование – здесь понадобятся знания PHP, CSS и HTML;
  • Разработка приложений под мобильную операционную систему Android – данная платформа построена на основе Java. Поэтому потребуется знание основ этого языка;
  • C# (си sharp) – дальний потомок C. На основе C# построена веб-технология ASP.net от Microsoft.


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

13 советов тем, кто изучает программирование самостоятельно →

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 и «ШАГ» гарантируют трудоустройство своим выпускникам.

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

Как запустить свой обучающий курс и начать на нём зарабатывать

20–21 марта в Москве состоится первая практическая конференция по онлайн-образованию EdmarketConf-2018. Экспертными знаниями в области создания обучающих продуктов поделятся самые известные российские образовательные бренды. А читатели Лайфхакера уже сегодня получат практические советы по запуску собственного обучающего курса от одного из ключевых спикеров конференции Алексея Полехина.

Алексей Полехин

Операционный директор университета IT-профессий «Нетология».

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

Выберите тему

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

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

Составьте черновик программы

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

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

Дайте короткое описание программы: какие темы в ней будут раскрыты и, главное, чему научится выпускник.

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

Оптимальный объём программы выглядит примерно следующим образом: 3–5 тематических блоков по 2–4 занятия в каждом. Суммарно оптимальный объём курса начального уровня — 10–12 занятий по два часа для гуманитарных тем и по часу для сложных технических и математических занятий.

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

Создайте посадочную страницу

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

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

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

Начните работу над материалами

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

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

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

Работая над презентациями к занятиям, старайтесь останавливать себя в желании втиснуть в лекцию всё, что вы знаете по теме. Это самая частая ошибка!

Помните, что объём информации, который вы даёте студентам, далеко не равен объёму информации, которую они усваивают.

Чтобы прикинуть, сколько времени у вас займёт урок по готовой презентации, рассчитайте время исходя из соотношения «один слайд — 2 минуты». Таким образом, лекция на 1 час должна состоять из 20–25 слайдов. Не забывайте о времени на вопросы и общение со студентами!

Позаботьтесь о техническом обеспечении

На рынке существует достаточное количество LMS (learning management system), которые вы можете выбрать в качестве платформы для своего курса. Но все они в том или ином виде требуют настройки, адаптации, интеграции с другими сервисами, поэтому, пока вы можете обходиться без них, пользуйтесь хорошо знакомыми инструментами. Это может быть как Google Docs, так и любой привычный вам таск-менеджер.

Одно занятие может включать в себя ссылку на видео (или ссылку на будущий вебинар), дополнительные материалы в виде презентаций и статей, тесты, описание практического задания, опросник со сбором обратной связи. Может быть что-то ещё, но всё это можно реализовать в Google Docs либо в карточках Trello и Basecamp. Не усложняйте на первом этапе представление личного кабинета студента.

Вам понадобится вебинарная платформа. Webinar.ru или Clickmeeting.com — оба сервиса работают отлично, выбирайте любой. Если вы не собираетесь отправлять каждому студенту письмо вручную, вам понадобится сервис по работе с рассылками. Подойдёт практически любой. Например, Getresponse.ru с простым и понятным любому новичку интерфейсом.

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

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

Подготовьтесь к вебинару

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

Подготовка к первому занятию

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

Ссылки на вебинар стоит отправить за пару часов до его старта и обязательно за 10–15 минут до его начала. Так вы обеспечите максимальную явку. Отправлять ссылку за день нет никакого смысла.

Картинка

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

Однотонный фон — это не обсуждается. Даже не вздумайте выходить в эфир на фоне бытовых интерьеров или офисного стеллажа.

Кадр

Убедитесь, что камера установлена у вас примерно на уровне глаз. Для этого можно использовать специальную подставку под ноутбук или просто подложить под него стопку журналов или книг. Постарайтесь сделать кадр с вами приближенным к телевизионному: между вашей макушкой и верхним краем кадра должен быть небольшой промежуток. Именно небольшой! А нижняя кромка кадра должна проходить посередине грудной клетки.

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

Тест связи

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

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

Проверьте также скорость соединения. Для ведения обычного вебинара с презентацией она должна быть на уровне 2–3 Мб/с. Если вы планируете делать демонстрацию рабочего стола, то 4–5 Мб/с. Также советую для проведения вебинара подключиться к интернету по кабелю. Это даст дополнительные гарантии стабильности.

Ведение вебинара

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

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

Ведите сообщества

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

Заранее продумайте контент-план для вашего закрытого сообщества.

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

Когда у вас будет стабильно проходить набор за набором и вам придётся следить уже не за одной, а сразу за несколькими группами в Facebook, начните пользоваться сервисами отложенного постинга. Вы заносите в них материалы своего контент-плана, указываете желаемые даты публикации и больше не беспокоитесь о материалах вашей закрытой группы. Очень удобно! Для начала можно использовать простой и удобный сервис Kuku.io, вам должно хватить его бесплатных возможностей на первое время.

Подготовьте практические задания

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

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

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

Предусмотрите дипломный проект

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

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

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

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

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

Помните о ваших «адвокатах»

В любой группе всегда есть особо вовлечённые в учебный процесс студенты. Попробуйте подружиться с ними. В случае успеха вашей программы обучения вы сможете предложить им принять участие в будущих наборах в качестве наставников для новых студентов. Также они смогут помочь вам с рутинными делами по сопровождению программы. Это отличный пример win-win-отношений.

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

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

Что дальше

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

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


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

попасть на EdmarketСonf-2018

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


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

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

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

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

А у меня для вас есть три истории из моей жизни. Просто три истории.

История первая — ламер

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

Так вот как-то один из «богов» подозвал меня к монитору и спросил: «Так сможешь?». И показал прогу, которая ждала, когда пользователь введёт в командной строке любой символ, а потом поворачивала его на 90 градусов. Я был ошеломлен.

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

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

История вторая — первый шифр

Идея пришла внезапно. Пришла так, что не смог заснуть и сел кодить. Из шифров тогда я знал только про пляшущих человечков из Шерлока Холмса (а это класс 8 или 9, занимался программированием полгода-год). Мне захотелось написать шифр, чтобы нельзя было так просто его вскрыть простым анализом.

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

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

История третья — триумф BASIC`а

Я уже 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 "~{[email protected](~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.
Алан Кэй делится яркой идеей об идеях. Архитектура, математика, обучение, программирование и много ещё интересного.

10 способов научиться программировать самостоятельно | Статья

25 апреля 2015, 09:30

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

Читать далее

Фото: lifehacker.com.au

Выбранное направление в учёбе будет зависеть в большей степени от  того, почему именно вы хотите научиться программировать и сколько времени вы готовы уделять этому процессу. Если вы хотите стать программистом, первое что следует сделать — это записаться на профессиональные курсы (Google скомпилировал список навыков и курсов для тех, кто хочет стать инженерами-программистами). Если вы хотите создавать игры и веб-сайты для развлечения в свободное время, лучшим выбором являются интерактивные курсы. Bloc создал сравнительную таблицу курсов в зависимости от загрузки, стоимости и причины изучения программирования.

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

Язык, с которого стоит начать, зависит от причины изучения. (К примеру, если вы хотите создать приложение под iOS, вам лучше начать с изучения Swift). Если вы со всей серьёзностью отнеслись к намерению программировать, можно начать с языка C. Хотя выбрав Python, вам будет проще влиться в струю программирования. Приводим инфографику для сравнения нескольких популярных языков программирования.

Независимо от выбора языка или метода обучения, вам следует начать с самого начала. Когда Дэвид Сински (David Sinsky) научился программировать за восемь недель, он, к примеру, потратил одни выходные на изучение основ Python, а другие — на Django. Взяв учебник, он удалял написанный код и снова проходил обучающий материал с нуля. Начните с основ и будьте терпеливы к себе. Взяв первый проект в программировании, разделите его на несколько этапов. И если один из способов обучения вам не подходит, не опускайте руки — попробуйте другой.

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

Бесплатные онлайн тренинги и проекты (Codecademy, Hour of Code и др.) могут помочь вам в написании первой программы. Учебные пособия от Khan Academy, Codecademy, Code.org и других познакомят с основами программирования и всем необходимым для создания игры, сайта или другого проекта. Найдите нужный источник в зависимости от языка программирования, воспользовавшись Bento. Это хорошая отправная точка, однако дальнейшее обучение вам нужно взять на себя.

Онлайн-курсы по программированию предполагают более обширную образовательную подготовку по сравнению с сайтами, предлагающами онлайн-тренинги по одному языку. Такие курсы предназначены для обучения основным навыкам в течение нескольких месяцев на занятиях университетского уровня. Я большой поклонник гарвардского онлайн-курса CS50 (его можно пройти бесплатно). Существуют также другие возможности. Вы даже можете получить образование университетского уровня, выбрав один из 15 онлайн-курсов.

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

Иногда лучшим способом обучения являются игры. В то время, как многие учебники по программированию обучают вас программировать простые либо сложные игры, некоторые обучающие сайты сами являются играми: Code Combat и CodinGame — инструменты, используя которые вы можете весело провести время.

Сообщество программистов полно людей, готовых помочь следующему поколению программистов. Hack.pledge() — сайт, который поможет вам найти наставника. Либо вы сами можете стать наставником для кого-то другого. Преподавание изученного поможет вам лучше запомнить информацию.

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




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

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