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

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

На деле нужно помнить всего три правила для успешной стратегии обучения:

  1. Идите к привычке, а не к цели
  2. Учёба в одиночку приносит страдания
  3. Создавайте

А теперь подробнее о каждом из пунктов.

1. Концентрируйтесь на построении привычек, а не на целях.

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

То же работает и с программированием. Если вы хотите стать веб-разработчиком за 21 день, ничего, кроме разочарования, вы не получите. Если вы скажете себе: «Мне нужно посвящать программированию 20-30 часов в неделю и заниматься этим ежедневно» (не «для того чтобы», а «потому что мне нравится это делать»), в конце концов вы достигнете цели, о которой даже не мечтали.

Здесь работает принцип постепенного увеличения нагрузки (да-да, как в спорте). Начинайте с 15 минут занятий программированием в день. Если почувствуете, что можете больше, увеличьте продолжительность до 20 минут. Не пытайтесь перепрыгнуть свои собственные возможности, устраивая 10-часовые марафоны кодинга — это может дать вам ложное чувство удовлетворения, но в итоге выльется в усталость.

Ваша цель: не ставить цель, а постепенно развиваться.

2. Учёба в одиночку = боль и страдания.

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

Опытный наставник

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

Сообщество единомышленников

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

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

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

3. Создавайте!

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

• Клон Digg;

• Приложение интернет-магазина (на Rails 4, совместная разработка);

• Приложение в стиле GeekSquad;

• Онлайн-класс;

• Приложение для изучения иностранных слов

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

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

4. Не вымирайте

Это секретный, четвёртый пункт, который доступен тем, кто дочитает пост до конца.

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

Когда-то давно я сказал, что 80% жизни — это показуха. Люди то и дело говорили мне, что хотят написать пьесу, или сценарий, или роман, и кое-кто даже сказал, что они сделали 80% из задуманного. Все остальные выпадали из обоймы, даже не начав. Они не начинали и не заканчивали, поэтому, стоит вам сделать это — начать писать сценарий или роман, вы уже на полпути к завершению. И это один из главных жизненных уроков. Все остальные уроки меня подводили.

Вуди Аллен


Ещё несколько советов, которые могут оказаться действительно полезными.

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

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

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

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

Участвуйте в конкурсах, олимпиадах, хакатонах.

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


(Чтобы посмотреть полностью, нажмите на картинку.)

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

Любой человек, приступающий к изучению чего-то нового, часто может столкнуться с ощущением фрустрации, неудачи, всё валится из рук, не хочется продолжать. Что действительно нужно новичку, так это минимум стараний и ожидания между написанием кода и его выполнением. Заставлять новичка ждать компиляции, как, например, в С, — это добровольно потерять будущего нового специалиста. А уж если новичку приходится компилировать на Mac OS X, где нужно установить Xcode, преодолеть все проблемы совместимости и прочесть половину интернета в поисках решения очередной ошибки компилятора — о каком удовольствии можно говорить?

Скриптовые языки вроде Python позволяют сразу же посмотреть на работу кода, неважно, на Windows вы или на Mac OS X. Да, и ещё важная деталь: чтобы начать работать на Python, пользователю достаточно просто зайти на вебсайт, скачать файл и запустить его. Куда уж дружелюбнее?

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

Собственно, именно поэтому тем, кто начинает программировать с нуля, рекомендуется начинать именно с Python.

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

Чтобы посмотреть полностью, нажмите на картинку.

Источник

Версия для печатиВерсия для печати
  • 1
  • 2
  • 3
  • 4
  • 5
Всего голосов: 2
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!

Комментарии

Аватар пользователя mike

Сколько можно об одном и том же. Если бы музыкантам хорошо платили, тоже бы такие статьи писались. На самом деле не всё так просто. Писал Прутков: "Хочешь стать счастливым -- стань им!" Так вот, этот принцип не переносится. Кому-то спорт в кайф, кому-то -- сколько ны не тренировался -- на разряд не сдаст. Честнее, надо быть, честнее.

Инфографику -- к какому языку идти -- в разных ипостасях перерисовывают друг у друга все, кому не лень. Забывая про базы данных, про языки разметки и многое другое.

Язык Питон? Он мне не понравился. Ничуть не проще плюсов. Его простота -- иллюзия. И тормозной впридачу. Хотя -- тоже путь в программирование. Как и Бейсик. :) Нет, всё-таки получше. :))

P.S. Внук занялся Питоном. Интересно, что получится.

+1
Аватар пользователя Petro46

Программистом может стать далеко не каждый. В среднем - 8-9 человек из ста в любой стране и в любом обществе. Это немного, учитывая то, что дороги в жизни выбираются по разным принципам и в связи с различными обстоятельствами. Музыкантом, в некотором смысле стать даже легче - есть училища, консерватории, разработаны подробнейшие методики обучения, дорожные карты, много грамотных учителей и преподавателей. Фактически, существует всемирная индустрия, где умеют и знают, как делать из людей музыкантов. В программировании этого нет. Курсы не в счет. 

Аватар пользователя Petro46

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

Аватар пользователя mike

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

Меня в основном минусуют. Но мне это, что по одному месту ветер.

Давненько что-то не было интервью с человеком, закончившим курсы и начавшим круто зарабатывать. :)

Аватар пользователя Petro46

mike пишет:

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

Да я давно заметил.

Давненько что-то не было интервью с человеком, закончившим курсы и начавшим круто зарабатывать. :)

Кто-то прорывался до 2014-го. Сейчас уже вряд-ли такое возможно.

Аватар пользователя lutchin

Программистом может стать далеко не каждый. В среднем - 8-9 человек из ста в любой стране и в любом обществе. Это немного, учитывая то, что дороги в жизни выбираются по разным принципам и в связи с различными обстоятельствами. Музыкантом, в некотором смысле стать даже легче - есть училища, консерватории, разработаны подробнейшие методики обучения, дорожные карты, много грамотных учителей и преподавателей. Фактически, существует всемирная индустрия, где умеют и знают, как делать из людей музыкантов. В программировании этого нет. Курсы не в счет. 

 

а каже БГУИР? и пр....

 

консерватории это хорошо...но если тебе медведь ухи оттоптал....то никакие консерватории не помогут...

+2
Аватар пользователя Petro46

lutchin пишет:

а каже БГУИР? и пр....

Не каждый выпускник БГУИР способен делать что-либо путное.

консерватории это хорошо...но если тебе медведь ухи оттоптал....то никакие консерватории не помогут...

Чувака с оттоптанным ухом в консерваторию не возьмут. Он не пройдет прослушивание. Может заниматься дома или на дорогостоящих курсах :-). 

-2