Нет прогресса в изучении. ЧЯДНТ?

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

Речь, прежде всего, идёт об изучении веб-технологий по ускоренной программе типа «C++ за 21 день» или «с нуля до джуниора за пару месяцев», есть такие книги и курсы в интернет. Не хочу расстраивать, но ни двух месяцев, ни тем более 21 дня не получится.

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

Everybody lies

Everybody lies

Мой расчёт такой, на примере задачи «Выучиться на веб-разработчика»:

Один курс «Разработка на (сюда подставить язык программирования)» от центра «Специалист» занимает, если не ошибаюсь, 60-80 часов. Если бы ты пошёл на онлайн-курсы «Специалиста», то через полтора месяца интенсивных занятий окончил бы этот курс. Если бы ты уже был штатный специалист по веб-разработке и у тебя были бы более опытные коллеги, то все теоретические и практические занятия можно было бы освоить за обычные две недели, то есть за 10 рабочих дней по 8 часов в день, как мы обычно на работе работаем.

Но при недостатке средств, желания или времени, курс проходят самостоятельно по какой-нибудь книге или видео-курсам, не очень интенсивно. Скажем, по часу, вечером после учёбы или работы. Иногда вообще заниматься не хочется, выходной или хандра. И вот уже 60-80 часов растягиваются на 2-3 месяца. В итоге вроде как освоил (сюда подставить язык программирования), но ощущение, что ничего не изменилось. На личном примере и на примере большого количества других программистов, это проявляется так:

  • новая задача вызывает ступор, если её точного решения не было в пройденном курсе
  • трудно даже представить решение, отличающееся от учебного курса
  • кажется, что основное время уходит на поиск простейшего решения в google, stackoverflow и на профильных сайтах
  • не зовут на высокооплачиваемую работу, ну или никак не можешь пройти собеседование

Не пугайся, сохраняй выдержку.

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

Ещё нужно учесть, что для веб-разработки мало знать один язык программирования, нужно пройти ещё дополнительно 3-4 курса. 3 месяца * 4 курса = год. С учётом времени на эксперименты и практику, получается полтора года на освоение специальности junior web developer.
Одному своему курсанту я показал вот этот список: Skills for Front-End Developers — он сказал, что это слишком долго и бросил. С тех пор прошло 3 года. Если ему вдруг захочется ещё раз попробовать, то начинать почти с начала. Но есть те, кто согласились с таким планом и сроками — и теперь они уже устроились на работу. Николай, Ольга, Дима — это вам. Дайте пять!

Не отчаивайся по поводу недостаточной скорости. Просто иди вперёд.

Ещё одно заблуждение — «устроюсь на работу и изучение новых технологий ускорится». Нет, не ускорится. С точки зрения формулы «S = v * t  (расстояние равно произведению скорости и времени)» скорость будет та же, а время возможно увеличится, в результате расстояние возможно будет больше.
Почему «возможно»?
Во-первых, мозг будет работать с той же эффективностью. Времени на практику будет больше, но на теорию времени могут не дать. Один из моих работодателей, когда мне срочно пришлось переучиваться на ASP.NET и C#, сказал: «Мы тебя взяли работать, а не учиться, учись в свободное время, книги вон там на полочке возьми». То есть опять вечером или по выходным, урывками, нестабильно, медленно.
Во-вторых, практические задачи могут вообще не пересекаться с тем, что хочется изучить. Я три года работал на Zend Framework, а KnockoutJS и Yii изучал в свободное время, потому что никто не собирался переписывать проект на другом фреймворке.
В-третьих, редкий работодатель вкладывается в развитие программистов. Это бесперспективно. Вот мнение одного из директоров крупной конторы, занимающейся дистрибуцией софта: «Хороших менеджеров и продажников надо воспитывать, тренировать, они станут лучше деньги зарабатывать для меня, а программисты — их очень много; если один не тянет, то можно с определёнными убытками взять другого, более эффективного; если один не знает или не умеет, то за порогом десять тех, кто его заменит; они ж ещё норовят и сбежать сразу после обучения». Профессиональным развитием разработчиков занимаются только в очень крупных конторах, чтобы удержать и без того уже классных специалистов. А обычно мы всё сами, сами…
В-четвёртых, это касается фрилансеров — вы будете делать те проекты, что у вас уже хорошо получается. Редкий работодатель берёт неопытного программиста, слабо знакомого с технологией. Работодатели внимательно смотрят на портфолио, изучают уже выполненные работы, внимательно следят за исполнителем сразу после начала проекта и в случае любой неуверенности — отказывают. Поэтому изучать то, чего нет в портфолио, придётся в своё личное время. Повторюсь: вечером или по выходным, урывками, нестабильно, медленно.

Не рассчитывай на то, что тебя научат. Не надейся, что тебе помогут учиться быстрее. Всё сам, медленно, но верно.

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

Time is infinite

P.S. В ВУЗе курс могут растянуть на полгода, а толку ещё меньше. А вот интенсивный краткосрочный курс, особенно под руководством персонального ментора, может значительно ускорить изучение.

P.P.S. Можете смеяться, но я до сих пор ничего толком и не прочитал про HTML5. В общих чертах знаю, нахватался там, сям.
CSS3 для меня полон открытий.
EcmaScript — просто какое-то иностранное слово.
AngularJS и Aurelia — это ведь про веб, ага?
Go вроде компилять надо, ммм?
У Ruby красивый логотип.
Оказывается, скоро PHP 5.4 перестанет подддерживаться, буквально вот уже последние дни тикают и пора бы мигрировать на свежие версии.

html5 logo css3 logo angularjs logo aurelia logo golang logo ruby logophp logo

Расстроен ли я? Да. Но руки не опускаю. Мой план ещё достигнут. Возможно, когда я закончу свой план, какой-нибудь JumpAndRun придёт на место Go, а я тут-как-тут и до пятницы совершенно свободен!

webmentor.pro Программы поддержки при изучении проектирования и разработки веб-приложений, новых языков программирования и веб-технологий.
Опросник по стеку технологий для веб-разработчика Быстрая оценка текущего уровня знаний. Графики личного профессионального роста. Виджеты для портфолио. Рекоментации по эффективному повышению уровня знаний.

Павел Волынцев

Уже более 15 лет занимаюсь разработкой веб-проектов. Fullstack Senior Developer. IT евангелист — доношу свет знаний об информационных технологиях. Профессиональные цели: Дать людям возможность дать людям больше.

Читайте также:

  • Pingback: Цель недостижима? | Блог о веб-разработке и веб-технологиях()

  • Pingback: Какие книги посоветуете начинающему … | Блог о веб-разработке и веб-технологиях()

  • Alexander

    Грустная статья. К сожалению реалии таковы, что приходиться тратить на программирование 14-16 часов в день, чтобы удержаться в профессии. Даже в выходные когда казалось бы нужно отдохнуть, развеяться, заняться спортом, приходиться изучать материал, который необходим для проекта на работе(очередной язык или фрэймворк). Если этого не делать, то тебя просто вышвырнут, а на твое место легко найдут замену. Из за того что программирование теперь настолько популярно, ценность разработчиков не так высока как раньше и чтобы быть на плаву необходимо вкалывать как проклятый, во вред здоровью, личной жизни и всему остальному.

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

    • Что изучаешь так самоотверженно? Какая технология тебя мучает?