Нет прогресса в изучении. ЧЯДНТ?
Если после несколько месяцев за книгами, с клавиатурой, в обнимку с монитором знаешь не больше, чем раньше.
Речь, прежде всего, идёт об изучении веб-технологий по ускоренной программе типа «C++ за 21 день» или «с нуля до джуниора за пару месяцев», есть такие книги и курсы в интернет. Не хочу расстраивать, но ни двух месяцев, ни тем более 21 дня не получится.
Откуда у тебя уверенность в установленном тобой сроке изучения? Может быть тебя просто где-то соврали, ввели в заблуждение, и даже не один раз, и не два. Моя оценка на изучение новой технологии — полтора года. Да, что-то будешь знать уже завтра. Но свободно ориентироваться, сравнивать, принимать обдуманные решения и придумывать новое, исходя из полученных знаний — это получится делать только через полтора года.
Мой расчёт такой, на примере задачи «Выучиться на веб-разработчика»:
Один курс «Разработка на (сюда подставить язык программирования)» от центра «Специалист» занимает, если не ошибаюсь, 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), то есть поставь зарубку на будущее, и продолжай целенаправленно двигаться дальше по плану. Если слишком часто менять курс, то будешь крутиться на месте.
Вот тут более подробно о том, что делать если что-то мешает осуществить план.
P.S. В ВУЗе курс могут растянуть на полгода, а толку ещё меньше. А вот интенсивный краткосрочный курс, особенно под руководством персонального ментора, может значительно ускорить изучение.
P.P.S. Можете смеяться, но я до сих пор ничего толком и не прочитал про HTML5. В общих чертах знаю, нахватался там, сям.
CSS3 для меня полон открытий.
EcmaScript — просто какое-то иностранное слово.
AngularJS и Aurelia — это ведь про веб, ага?
Go вроде компилять надо, ммм?
У Ruby красивый логотип.
Оказывается, скоро PHP 5.4 перестанет подддерживаться, буквально вот уже последние дни тикают и пора бы мигрировать на свежие версии.
Расстроен ли я? Да. Но руки не опускаю. Мой план ещё достигнут. Возможно, когда я закончу свой план, какой-нибудь JumpAndRun придёт на место Go, а я тут-как-тут и до пятницы совершенно свободен!
Pingback: Цель недостижима? | Блог о веб-разработке и веб-технологиях()
Pingback: Какие книги посоветуете начинающему … | Блог о веб-разработке и веб-технологиях()