Почему люди терпят неудачу при изучении языков программирования и как этого избежать

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

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

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

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

Звучит безумно, не правда ли?

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

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

Возникает резонный вопрос:

«КАК МОТИВИРОВАТЬ СЕБЯ И ПОДДЕРЖИВАТЬ СВОЙ НАСТРОЙ В ТЕЧЕНИИ ДОЛГОГО ВРЕМЕНИ, ЧТОБЫ ДОСТИЧЬ ЖЕЛАЕМОГО УСПЕХА И СТАТЬ РАЗРАБОТЧИКОМ?»

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

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

  • Учителя расскажут вам, что именно вы должны учить в данный момент времени
  • Школьный класс, или студенческая аудитория, которые вы посещаете — дисциплинируют вас
  • Различные сроки сдачи, тестирования и экзамены, заставляют своевременно получать и закреплять ваши знания
  • Ваши одногруппники поддерживают вас, ведь они получают те же знания и испытывают те же трудности, что и вы

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

Но как быть всем остальным?

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

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

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

В этом случае, я могу дать вам 6 советов, которые, я верю, помогут вам в этом:

Совет №1: выберите язык и учите его!

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

Попробуйте выбрать общие языки программирования (например, Python, Java, Ruby), а также узнать наиболее популярную структуру для этого языка (например, Ruby on Rails). Если вы хотите стать фронтенд разработчиком, то HTML, CSS, и JavaScript — языки, на которые вам прежде всего стоит обратить свое внимание. Если у вас есть время и силы, то также начните изучать один из фреймворков JS (например, React, Angular, Vue.js).

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

Совет №2: Придерживайтесь ежедневного графика

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

Совет № 3: Найдите себе подходящее рабочее место

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

Совет № 4: Определитесь с дедлайнами

Почти каждый учебный курс или программа, рассчитаны на определенную продолжительность в часах, которая требуется для успешного усвоения информации. FreeCodeCamp, Odin, Udemy — все они ограничивают свои учебные программы во времени.

Используйте их учебные программы в качестве примера, чтобы составить свой, индивидуальный график обучения. Если определенный раздел должен занимать у вас 20 часов для изучения, подумайте, включает ли в себя этот раздел время на практическую работу (например, кодирование) или нет. Если это так, просто добавьте 15% дополнительного времени. Если это не так, умножьте это время в 2–3 раза, потому что вы должны тратить гораздо больше времени на кодирование, чем на теоретическое изучение кода.

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

Совет № 5: Найдите себе партнера

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

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

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

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

Совет № 6: Найдите себе наставника

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

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

Вы готовы всерьез за это взяться?

 

ИСТОЧНИК

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

Комментарии

Страницы

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

Не путает

А фиг его знает. По нему выходит, что достаточно знать синтаксис русского (или др. языка), чтобы создавать бестселлеры.

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

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

А где ты там увидел "бестселлеры"?

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

Ну не знаю. Код пишут с  пользой. Пусть и не бестселлер. А графоман-программист -- это кто-то в голове Логика. Я не встречал графоманов в программировании. Может, мало жил.

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

Вот выложить полезное приложение -- это реально полезно.

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

Чет Майк на своей волне последнее время... ;)

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

Да фиг с ней, c волной. Пустое. Логик прав: писать простенькие вещи может каждый. Что в литературе, что в кодинге.

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

mike пишет:

Вот выложить полезное приложение -- это реально полезно.

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

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

Вообще-то обсуждаем не кодеров, а как учиться кодингу.

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

Польза вещь вторичная.

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

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

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

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

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

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

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

Страницы