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

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

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

  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 — большой ассортимент.

25 сайтов с задачами для программистов

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

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

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

Найдите то, что вас вдохновляет, именно вас.

Источник: Библиотека программиста

Комментарии

НАПИШИТЕ НАМ

Напишите нам по любому вопросу, мы постараемся ответить как можно быстрее

Sending
или

Введите данные:

или    

Forgot your details?

или

Create Account

X

Спасибо!

Теперь редакторы в курсе.