На пути к программированию. Рубежи, которые нужно взять

«Стать разработчиком под силу каждому. Научить писать код можно любого человека», - считает Павел Вейник, Java-разработчик, ментор школы программирования ITStart. Во время обучения программированию студент проходит несколько важных рубежей. Тот, кто преодолеет все – найдет себя в IT. Павел Вейник рассказал про этапы и сложности, которые поджидают студентов на пути к программированию. 

Первый этап – постановка цели и мотивация

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

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

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

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

Этап осознания занимает не менее полугода.

Второй этап – развитие абстрактного мышления 

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

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

Этап работы над мышление занимает от недели до месяца.

Третий этап – испытание временем 

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

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

Если человек не принял обучение программированию как часть жизни, он начинает относиться к нему спустя рукава. В таком случае я говорю: «Если не ответишь правильно с трех раз - выгоняю». Почти все берут себя в руки находят ответ  с первого раза, потому что мотивация есть, за обучение заплачены деньги и просто так уходить не хочется. Это – единственная ситуация, когда я поддерживаю в человеке мотивацию.

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

Этап испытания временем продолжается несколько месяцев.

Четвертый этап – испытание завершением

 

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

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

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

Этап поиска работы занимает до полугода.

«Нет большего удовлетворения, чем своя программа». Истории успеха Алексея и Олега

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

Алексей Тарасенко: «Идя на курсы, я хотел начать карьеру программиста. Сейчас работаю Java-разработчиком. Сначала Павел задал мне несколько прямых вопросов: «Вы уверены, что хотите пройти курс программирования? Зачем вам java?» Пришлось серьезно думать о том, что хочу делать и кем хочу стать. Программирование мне не всегда приносило удовольствие, приходилось много заниматься, читать иностранную литературу и ломать голову над простыми алгоритмами. Иногда слышал следующее: «Ты перемудрил, переделывай». Но нет большего удовлетворения, чем работающая программа, которую вы сами написали! 

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

Олег Воронович: «До того как решил заниматься разработкой, я около пяти лет работал инженером по компьютерным сетям. Я давно уже хотел освоить какой-то язык программирования, но останавливало только осознание того, что не справлюсь сам. На обучение тратил все свое свободное время, все вечера и выходные. Павел мне сбрасывал задания, я высылал ему решения на проверку, задавал вопросы. Меня сразу же затянуло и сложно не было. Единственная трудность заключалась в нехватке времени: нужно было сначала отработать, а потом прийти домой и еще учиться. На протяжении долгого времени такой ритм выматывает. Но материал давался мне легко. 

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

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

Версия для печатиВерсия для печати

Рубрики: 

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

Комментарии

Страницы

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

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

Ага. А стать конструктором, художником или музыкантом?

Вторая распространенная ошибка в постановке цели – человек идет в программирование не для того, чтобы что-то сделать, а бежит от своей профессии

А первая ошибка? Подскажу: кэш. Она же и вторая. Чего уж там.

Еще одна категория людей, которые ходят на IT-курсы – это ребята, которые любят посещать  курсы.

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

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

Теплее. И что же?

...нужно научиться читать то, что написано, а не придумывать свои ассоциации

Вздор. Именно их и надо развивать. Тем более, что далее:

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

Читаем дальше.

Этап работы над мышление занимает от недели до месяца.

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

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

Вот это верно. Особенно от заказчика.

...Я говорю: «Если не ответишь правильно с трех раз - выгоняю»

А деньги вернуть -- не?

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

Не верю.

Я мог бы гордиться этим учеником, но работу он так и не смог найти

Имхо бесполезно искать статистику, сколько человек нашли работу после курсов Вейника. Ну, минимум двое нашли. И дали интервью. :)

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

 

 

 

+1

А первая ошибка? Подскажу: кэш. Она же и вторая. Чего уж там.

Такое чувство, что у всех поголовно нет денег на курсы. Не надо глупостей  

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

Такое чувство, что у всех поголовно нет денег на курсы.

См. его цену. С  НОСА! Что б я так жил.

Не надо глупостей.

Глупость -- это платить деньги за то, что и так лежит в Инете. ДАРОМ.

Кстати, Вейник об этом и сам в предыдущем интервью сообщал.

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

Зачем читать? Зачем на пианино играть? На баяне? 

Вот - мама сказала - и ... научились!

Так и с программированием. - Просто надо пойти и научиться - и не задавать таких вопросов вовсе!

Умеешь писать - стань программистом. (С)

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

Верное замечание. но - Логике учат в школе в течении 11 лет (С)

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

 

 

mike пишет:

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

Ага. А стать конструктором, художником или музыкантом?

Для этого нужен талант. А вот:

Программист - это писание текста плюс Логика (изучает в течении 11 лет в школе) (С)

 

mike пишет:

Такое чувство, что у всех поголовно нет денег на курсы.

См. его цену. С  НОСА! Что б я так жил.

Да, за эти деньги можно купить холодильник! (С)

Не надо глупостей.

Глупость -- это платить деньги за то, что и так лежит в Инете. ДАРОМ.

Кстати, Вейник об этом и сам в предыдущем интервью сообщал.

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


 

 

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

 <<Рано или поздно мои ученики обнаруживают, что я даю им меньше информации, чем мог бы, для решение некоторых задач. Делаю это сознательно, потому что работа разработчика – это постоянное докапывание до сути, и если я буду предоставлять всю информацию, как люди смогут сами изучить новую технологию? С этим мои студенты, как правило, быстро мирятся.>>

 

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

+2

mrby пишет:

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

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

-1

Страницы