Итак, в июне прошлого года я прошла бесплатные курсы на Хекслет. Но тогда я все еще продолжала сомневаться, надо ли мне продолжать обучение. Для сомнений было две причины: 1) все-таки веб-разработка немного "не мое" направление, хотя я и понимаю, что это, наверное, самый простой путь "входа в IT", так как сайтики нужны всем и всегда. Но вот как-то "душа не лежит". Возможно, сказывается немного негативный опыт от одного моего простенького проекта 12 лет назад, когда собственно сам сайт, точнее его заготовку, я сделала буквально за несколько дней, а потом пару недель пыталась "подогнать" его под весь "зоопарк" браузеров (и уже тогда поняла, что IE - это зло ) ). Тогда мне это показалось слишком скучным и нудным, в общем, "не зашло". 2) Вторая причина - хоть и весьма небольшие, но для меня все-таки значимые ежемесячные траты. Тем более что весь свой денежный лимит на обучение я только-только потратила на курсы по 3Ds Max, и в ближайшее время свободных средств не предвиделось. Собственно, исходя из этого я и решила еще немного "погулять" по сети в поисках бесплатных ресурсов.
Поскольку на Хекслете немного ознакомилась с JavaScript, то решила посмотреть немного freeCodeCamp. Заодно HTML и СSS повторила, хотя бы базовые основы. В JS дошла там до раздела "Functional Programming", какие-то там задания повыполняла, но поняла, что теории катастрофически не хватает. То есть выполнить задания там не так уж и сложно, в приниципе чаще всего хватает приведенных примеров. Но не хватает именно понимания того, как все это работает, и в итоге в голове все равно мало что остается, да и без понимания принципов дальше продвигаться становится все сложнее. Ну и куча просмотренных по ходу изучения абсолютно не систематизированных материалов (видео, статей и т.д.), от которых в голове был просто кавардак.
Дальше решила все-таки вспомнить когда-то нежно любимый С (кстати, единственная тетрадь с конспектами лекций из универа, которая прожила со мной все эти годы - как раз по курсу операционных систем и языку С). Просмотрела конспекты, нашла несколько книг. Нашла CodeBlocks - что-то вроде IDE для С/С++, порешала небольшие задачки из книг. Потом нашла курс от того же Тимофея Хирьянова "Курс молодого бойца" (как я поняла, для поступающих на МФТИ), там прилагался сайтик с практическими заданиями, сделала все задания оттуда. Попробовала порешать задачки по гарвардскому курсу CS50, но они зачем-то там добавили какие-то свои функции, которые надо использовать вместо стандартных Си-шных, разбираться с этим было сложнее, чем написать ту же задачку на стандартных функциях, так что далеко я там не продвинулась. Хотя лекции их смотреть было очень весело )). Бесплатных курсов по С (да и не только бесплатных) на самом деле очень мало, посмотрела немного видео по С++, поняла, что с пониманием ООП у меня совсем все плохо (возможно видео были "продвинутого уровня", не по азам).
Хотела присмотреться к Java. Хотя он мне кажется слишком "монструозным" с его синтаксисом, а я человек достаточно ленивый, и писать десять строчек кода ради одной, которая собственно и должна решать задачу - это для меня слишком. Но тем не менее хотела пройти 10 уровней на javarush, которые якобы они предоставляют бесплатно, чтобы "попробовать, что это за зверь такой". Но тут меня ждал маленький облом - бесплатным оказался только один уровень. Платить подписку я не собиралась, да и отзывы по ресурсу были не очень, якобы все равно всю теорию придется искать самой, а это опять же встает вопрос поиска хорошего ресурса с теорией, потому что информации много, но не вся она хорошего качества.
В итоге решила "потрогать" немножко Python (благо на CodeBasics его прошла, и он очень даже "приглянулся"). И вот тут, что называется, "понеслось". По Python есть достаточно много информации именно для новичка. Посмотрела их, повторила курс на CodeBasics. Зарегилась на codewars, порешала там немного задачек (правда, поначалу решались они "по-сишному", и каждый раз после просмотра других решений было удивление - "а что, так можно было"? И каждый раз Python все больше и больше начинал нравиться, прежде всего своей лаконичностью и какой-то особой "магией" кода. Потом были задачки с pythontutor, на мой взгляд - хороший ресурс именно для новичка, с теорией и достаточно интересными задачками. Была прочитана книга Майкла Доусона "Программируем на Python", теперь вот в списке того, что хочется сделать - повторить те игрушки, которые он там реализует (где бы только время еще найти). В общем, Python меня покорил. Понимаю, что там еще куча всяких "подводных камней", до которых я пока что просто "не доросла". Но писать на нем - это просто удовольствие.
Порешав вот так вот простенькие задачки, я поняла, что хочу все же не синтаксис изучать и решать отвлеченные простые задачки, а погрузиться, так сказать, в глубину процесса. К тому моменту я уже читала slack, статьи, смотрела старые вебинары. И хотя я большую часть на тот момент не понимала, было очень много незнакомых слов, упоминание всяких веб-технологий, которые меня до сих пор страшат, все же решилась и в декабре месяце оформила подписку на Хекслет. Так начались "студенческие будни". Курс по Python показался довольно простым, тем более что на тот момент испытаний в нем было совсем мало. После его прохождения (до ООП, его тогда тоже еще не было), я решила все-таки переключится на JS, поскольку все говорили о том, что он действительно сложный, и что там "мозги кипят". Но тут Кирилл решил пожалеть бедных студентов и упростил курс. Так что "жесткач" я пошла ловить уже после прохождения новых курсов, и возможно по-этому было уже не так страшно и сложно, хотя поломать голову иногда приходилось. На данный момент осталось три курса по backend-JS, дорешать добавленные за последнее время испытания в пройденных курсах (что-то их много накидали в последнее время), а потом вернуться к полюбившемуся Python. С проектами пока засада, оплатила только один, но пока не могу решить, делать его на Python или на JS. Все же для меня пока самой сложной темой из всего остается настройка окружения (ну, это кроме всех этих интернет-технологий).
Что я хотела сказать этим постом? Что можно достаточно долго блуждать в интернете, сегодня там действительно очень много бесплатной информации по любому ЯП и по любой теме. Проблема лишь в том, чтобы найти структурированную и действительно хорошую информацию. А для этого как раз и нужны такие курсы как Хекслет, где все дается последовательно, и в то же время взаимосвязано. И я на данный момент не жалею, что оформила подписку именно на Хекслет.
Как проходит мое обучение на Хекслет, что мне помогает в запоминании материала и в решении упражнений - это все тема для отдельного поста. Постараюсь об этом написать, возможно, кому-то помогут мои методы. А пока что я могу сказать только одно. Хекслет - это школа и сообщество для тех, кто действительно хочет погрузиться в мир программирования по-настоящему, кто хочет понять, "как это все работает внутри", а не просто запомнить, как применять те или иные конструкции ЯП в тех или иных ситуациях. Это качественно отличает вас от других платформ, и я очень рада, что вы продолжаете работать именно в таком ключе, не пытаясь "догонять" другие платформы по количеству студентов, или по облегчению подачи материала. Да, иногда обучение - это больно, иногда часами приходиться сидеть над кодом. Но в качестве вознаграждения - "зеленый свет" на тестах и всплеск адреналина от того, что ты прошел это испытание. И желание двигаться дальше, делать больше и решать все более сложные задачи. Этот путь бесконечен. Но в то же время бесконечно интересен и увлекателен, а поэтому его бесконечность манит идти все дальше и дальше.
В общем, я иду дальше.