3 года назад я решился сменить уютное место в сфере продажи, настройки и сервиса компьютерной техники на сферу программирования. Так как тогда я еще точно не знал, какой из языков мне придется по душе, то базовые знания решил обретать сразу в нескольких сферах. 1 января 2016 года я встретил в ранге безработного, с годовыми аккаунтами на JavaRush, Codeschool, Lynda и Tuts+, ну и небольшой финансовой подушкой, которая позволила бы мне весь 2016-й год провести за обучением.
Стоит только захотеть - 1
Первым в очереди у меня стоял JavaRush — еще до НГ я прошел доступные бесплатные уровни, что собственно и определило решение приобрести по акции доступ сразу на год. Обучение затянуло настолько, что уже 8-го февраля я отмечал взятие 30-го уровня. Из того, что понравилось и пригодилось в будущем отмечу следующее:
  • закрепление терминологии, полезной и в освоении других языков (типы и структуры данных, реализация принципов ООП на практике, пространства имен, модификаторы доступа, работа с БД и файловой системой, построение запросов и многое-многое другое);
  • обретение навыков работы в действительно хорошей IDE — IntelliJ IDEA, что впоследствии пригодилось в реальной работе с другими продуктами JetBrains (PHPStorm/WebStorm/PyCharm);
  • общая культура кода — как в плане логики и алгоритмической сложности, так и в визуальном оформлении (соблюдение code styles);
К сожалению (или к счастью) помимо Java, в марте 2016 я приступил и к курсам по веб-разработке (помимо упомянутого CodeSchool с их ветками по Javascript и его фреймворкам Angular/Ember, это были еще бесплатные тогда HtmlAcademy с неплохими азами по верстке, параллельно осваивал работу с Git и MySQL, в изучении последнего неплохо помогал Sql-ex). Да, так сложилось, что в конечном итоге я остановился на PHP (благодаря широко известным в СНГ курсам Игоря Борисова), но не на ставшем притчей во языцех CMS WordPress, а на вполне себе современных REST API решениях на базе Zend Framework 2 (поначалу), а затем и на Laravel 5.х. Зато пройдя такой извилистый путь можно комфортно использовать лучшие практики из той же Java в своих приложениях, благо что современный PHP (особенно с 7 версии) всё больше и больше её напоминает (взять хоть бы тот же type hinting в языке с изначально динамической слабой неявной типизацией, а уже в версии 7.4 и typed properties у классов могут появиться). А уж тем, кто успел поработать с Hibernate в Java, будет значительно легче осваивать ту же Doctrine ORM. Возвращаюсь к теме построения пути обучения и выбора качественных курсов и тому, что выделяет Javarush на фоне уже упомянутых CodeSchool (которые сейчас стали частью Pluralsight), Lynda (на базе которой строит свою образовательную платформу LinkedIn) и других. Самое главное для меня лично — это огромная практика решения задач с автоматизированной проверкой при более чем достаточной теоретический базе. Никакого сравнения с "посмотри видео и сделай так же". Видеоруководства хороши тогда, когда надо "подсмотреть" решение какой-то узкоспециализированной задачи или освоить малодокументированную библиотеку/API за короткое время. Но если перед человеком стоит задача сформировать фундаментальные основы знаний и освоить сразу несколько способов решения одних и тех же базовых проблем, чтобы затем выполнять их не задумываясь, как не задумываемся мы над печатаньем букв на клавиатуре или написание букв на листе бумаги — вот тогда Javarush незаменим. Не стоит забывать, что для многих также остро стоит проблема освоения англоязычных учебных материалов, поэтому для таких людей преимущества Javarush (особенно подборки теоретических материалов) только возрастут. Резюмируя одной фразой этот длинный отзыв о Javarush — "must have". Даже если вам не понравится в итоге язык Java, этот курс станет крепкой основой вашего дальнейшего развития. Он стоит как времени, которое вы на него потратите, так и денег, потому что лучшая инвестиция — это инвестиция в свои знания и умения. P.S. Немного о себе. Текущая специализация — REST API на Laravel + MySQL, активное использование сторонних сервисов в проектах (Amazon SES/Paypal/Stripe/web3.php/интеграция с календарями, построение очередей и т.п). Немного пришлось поработать с Angular/Vue (JS), даже пару месяцев с Django (Python). Для любителей статистики — 298 дней у меня заняло обучение ( от того дня, как ушел со старой работы и начал переучиваться), из них 42 дня прошли от момента первого высланного резюме до первого рабочего дня. И до сих пор я с благодарностью вспоминаю курс Javarush, как нечто укрепившее уверенность в собственных силах, систематизировавшее и поднявшее на новый уровень знания, ставшее первой ступенькой на долгом пути к душевному спокойствию и равновесию в новой сфере на новой работе. P.P.S. Обучение продолжаю, на повестке дня прохождение сертификации по Laravel в 2019-м и освоение Swift.