Показаны сообщения с ярлыком обучение. Показать все сообщения
Показаны сообщения с ярлыком обучение. Показать все сообщения

22 апреля 2024 г.

Отзыв на курс "Основы Javascript" от Хекслет

В начале апреля мне в рекомендациях Ютуба попалось видео, где девушка рассказывала, как она мучительно пыталась обучаться фронтенду и целый месяц проходила бесплатный курс от Хекслет по основам javascript. Меня заинтересовал этот курс и я решил "тряхнуть стариной" и посмотреть, что же он из себя представляет, чему может научить меня и самое главное - чему он учит начинающих программистов. 

Курс рассчитан на 50 часов, но мне удалось его "заспидранить" за 5 часов и чтобы не пропадать впустую потраченным часам, я решил написать свои впечатления. Сам по себе Хекслет у меня был на относительное хорошем счету в ранге школ с онлайн-обучением после профильных школ от Яндекса (ШАД, Школа разработки интерфейсов - именно оттуда Яндекс не боится нанимать выпускников, а учиться там очень сложно). Худшими я считаю крупные школы (Скиллбокс, Нетология, Гикбрейнc и прочие конвейеры по подготовке недоучек) и туда же с недавних пор можно причислить Яндекс.Практикум, который "штампует" программистов на потоке, а бесполезность их курсов сравнялась с Скиллбокс. Мой опыт: 1,5 года самостоятельного обучения, десятки пройденных курсов по javascript, фронтенду, фреймворкам и бэкенду, тысячи просмотренных видеороликов на Ютубе по фронтенду и другим технологиям (которые знаний особых не добавляют, но расширяют кругозор). 

Что понравилось: удобная песочница с полноценной браузерной версией VS Code (тут спасибо разработчикам из Microsoft, что сделали эту технологию открытой и бесплатной для всех). Песочница представляет собой linux контейнер, с доступом к полноценному терминалу, правда сам контейнер выходить в интернет не может (это было бы совсем уж небезопасно), поэтому установить с помощью npm нужные пакеты невозможно. Ученик пишет полноценный код в редакторе с автодополнением (хотя оно у стандартного VS Code не сказать чтобы полезное) и запускает тесты, после полного прохождения которых задание засчитывается. Код из тестов можно спокойно просмотреть, а при желании можно полностью скопировать себе все файлы на компьютер и с помощью node запускать проект локально. 

Что не понравилось: белая тема в разделе "теории", в то время как редактор кода в тёмной теме. Такое ощущение, что ребята из Хекслет не в курсе, что программисты светлые темы не любят и что на дворе 2024 год и темной темой обязано обладать каждое уважающее себя и пользователей приложение. Не понравилось, что сайт сильно тормозил. Понятное дело, что когда подготавливается контейнер, то это занимает время и подождать 20 секунд для выполнения 5-минутного задания не проблема, но у меня тормозил вообще весь сайт даже при выполнении тестов. Не знаю с чем это было связано. Сами тесты так себе, периодически я был не согласен с трактовкой ответов, но сами тесты провалить невозможно - отвечать можно бесконечное число раз перебором. 


А теперь к самому основному: к качеству контента. Как мне кажется, базовый вводный курс для новичка в программировании (конкретно в javascript) должен для онлайн-школы решать две задачи: подготовить его к полноценным курсам, к полноценному обучению и прорекламировать это самое обучение, завлечь в цепкие лапки, чтобы он купил очень недешёвый курс на профессию фронтендера (он стоит более 100 тысяч рублей, даже если применять различные скидки, которые онлайн-школы раздают направо и налево для завлечения), но самое главное он отнимет у вас почти 10 месяцев на обучение. Ну так вот: он эти задачи не решает. Спустя 5 часов я решил, что "ну его на фиг, учиться программировать самому лучше, я бы здесь обучение не купил". 

Не проблема, что из этого вводного курса я вообще не узнал вообще ничего нового (я и не должен был после 1,5 лет самообучения), а в том, что оно максимально душное. Очень краткая, минималистичная теория (но написана она хорошо, проблем с пониманием не было), никаких видеороликов, которые очень помогли бы настоящим новичкам, даже иллюстраций в тексте по минимуму. В курсе по JS зачем-то встречаются основы алгоритмов (это для людей, которые a +b в функции выводили в прошлом задании), не объясняется нормально концепция переменной и вообще многие фундаментальные вещи языка программирования затронуты максимально поверхностно, либо вообще не затронуты объекты и прочие сложные структуры данных (справедливости ради по ним есть отдельный курс). В конце каждой главы дан список с материалами для ознакомления, но если добросовестный ученик пойдет их все изучать, то он рискует "провалиться в кроличью нору" и никогда не вернуться, что и произошло с девушкой из ролика с Ютуба, которая вела конспект в тетрадке и всё туда записывала. Тут я вспомнил лекции в HTML Academy и как они объясняли JS на лекциях по 2,5 часа - вот это было прямо монументально, но новичку там будет максимально скучно. 

Мне же было прямо душно проходить задания, так что один раз на нудной задачке (про шифровку, где надо было два символа в строке менять местами) я считерил и дал задание ChatGPT 3.5 её мне решить. Она с третьей попытки это сделала.  

Не советую верить рекламе про трудоустройство и возврат денег - на этот счёт в договоре есть масса условий и оговорок

Я вовсе не хочу сказать, что вводный курс от Хекслет совсем плох и никуда не годится - вовсе нет, он вполне даёт понять, что такое язык программирования javascript, пописать код, но это даже не основы, а меньше 10% того, что в дальнейшем понадобится для полноценной работы. Видел я курсы намного хуже за которые ещё и деньги просят (тут же всё бесплатно), видел интересные курсы на Ютубе на несколько часов, которые дают информации гораздо больше. Большое преимущество Хекслета в том, что всё уже настроено, работает у тебя в браузере и настроены тесты, которые проверяют работу написанного тобой кода (правда их ошибки могут быть непонятны новичку, там работает обычный jest). 

Кому бы я рекомендовал бесплатный курс Хекслет по основам программирования? Пожалуй только тем, кто уже что-то умеет, чтобы освежить знания или выучить что-то новое по быстрому. Например, у них есть вводные курсы по Python и Go, и мне как фронтенд разработчику они были бы интересны. Для совсем новичков советую начать с Ютуба или со скаченных с торрентов курсов с лекциями, но в любом случае продолжать обучение намного эффективнее под присмотром грамотного ментора. Я бы не советовал покупать прямо полноценные курсы (только если вам государство не списывает полностью их стоимость или если вам нужен формальный сертификат о завершении), а сначала получить мотивацию, самостоятельно сделать пару учебных проектов и тестовых заданий (не беда, если ничего не получится в итоге), покрутиться в сообществе программистов (дискорд, телеграм-чаты) и на каком-то этапе нанять ментора, который оценит ваш уровень, будет вас наставлять и проверять как вы развиваетесь. Если повезёт, то ментор вас и на первую работу устроит. В целом это будет дешевле, чем платить за годовой курс, который научит вас только основам профессии, а этих основ, к сожалению, сейчас крайне мало для устройства на работу. Стал я хуже относиться к самому Хекслету? Вовсе нет, мне нравится их подход к обучению, их канал на Ютубе и качество материала тоже на уровне. Всё написанное выше это лишь мотиватор, чтобы задуматься о собственном обучении айти и что-то скорректировать в планах. 

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

 P.S.: в плане советов по обучению и повышения эффективности, я могу доверять опыту Германа Севастьянова, так как его школа завязана на получение денег после трудоустройства учеников на работу программиста (хотя это кабальная практика и я её советую избегать). Вот ещё одно хорошее видео, где всё по делу рассказывается об "вкатывании" во фронтенд и о стратегии обучения, а так же о том, как найти себе ментора.

20 апреля 2021 г.

Организация базы знаний в Notion

С тех пор как я начал профессионально учиться фронтенду, у меня сразу же возникла необходимость собирать информацию и систематизировать. Первое время я пытался это делать по старинке в каких-то текстовых документах, в браузере Vivaldi в закладках (для меня было большим разочарованием что сохранённые папки со ссылками просто так не перенести в другой браузер), в файле в Google Docs, Google Keep, но затем я понял что объёмы и разнообразие информации начали расти лавинообразно и нужно более профессиональное, а не кустарное решение. Раньше я недоумённо смотрел на пользователей Evernote и прочих продвинутых "записных книжек", но теперь начал понимать их боль от тех проблем, которые они решали. Ныне Evernote это, по разным причинам, умирающий сервис (ранее он был крайне популярен и даже был монополистом на рынке) и я очень не советую вам им начинать пользоваться сейчас. К счастью, есть альтернативы этому сервису. 

Веб-сайт Notion

Другой, набирающий популярность сервис хранения информации под названием Notion как раз в 2020 году стал бесплатным. Точнее сделал бесплатный тариф с ограничениями, но который прекрасно подходит для персонального использования большинством пользователей. Я решил попробовать этот модный сервис и с удивлением обнаружил через месяц, что регулярно пользуюсь этой онлайновой записной книжкой, а моя "база знаний" выросла до нескольких десятков страниц с различной информацией. Я теперь без Notion как без рук и всегда записываю что-то новое во время просмотра лекций или после просмотра роликов по программированию на Ютубе. Кроме того я храню там записи о будущих покупках, просто какие-то напоминания, идеи, ну то есть использую как обычную записную книжку, как это делали люди на протяжении всей истории человечества. Просто сейчас у нас есть возможность делать это намного проще и эффективнее.

Что же такое Notion? Это облачная записная книжка с простым и удобным интерфейсом, который позволяет быстро создавать записи, в том числе очень сложные по структуре (типа таблицы, базы данных, вики или списка дел), загружать картинки, файлы, оформлять документы и структурировать информацию по разделам. Работа происходит в вебе, но конечно же у Notion имеется приложение для смартфонов и для десктопа - без этого сейчас никуда. Вы можете не только оформлять страницы для себя, но и расшаривать их для правок/комментариев других пользователей сервиса (до 5 пользователей в бесплатной версии) и конечно же вы можете выставлять оформленные страницы для просмотра в интернете всем желающим, при этом запрещая или разрешая индексацию страницы поисковиками. Например, вы можете выставить для всех базу знаний (список ресурсов) или описать подробную вакансию для программиста, приложив там же тестовое задание, картинки или файлы (такое использование я вижу всё чаще). 

Вообще, Notion сейчас набирает большую популярность именно у программистов. Некоторые увиденные мной базы данных в Notion просто поражают воображение. Есть ли аналоги у этого сервиса? Конечно же, их невероятно много, в том числе полностью open source решения, решения для локального использования через файлы с разметкой markdown, решения, где вам нужно будет разворачивать собственный облачный сервис (если вы не доверяете корпорациям), закрытые решения с собственными базами данных и приложениями. Например, встроенная программа для заметок Notes на MacOS очень проста и заслужила свою популярность у пользователей. Ну и самый очевидный аналог компьютерных заметок это ведение заметок в блокноте (в реальном блокноте с помощью ручки). Вы удивитесь, но многие профессиональные программисты не расстаются с блокнотом или тетрадью, куда записывают текущие задачи или конспекты лекций. Но я считаю, что Notion самый простой и красивый сервис, который не требует установки чего-то дополнительного, а работает прямо в браузере. Именно по этому пути не хотел долгое время идти Evernote и в итоге проиграл гонку более молодым стартапам. Но облачные сервисы, наряду с преимуществами, имеют недостатки: вы доверяете личную, зачастую секретную информацию стороннему сервису и полагаетесь на его надёжность и защищенность. А с надёжностью бывают проблемы, я уже пару раз сталкивался с ситуацией, когда сервера Notion сильно тормозили или даже были недоступны, а в это время ты сидел как без рук без своей записной книжки. Это особенно критично, если ваша работа зависит от информации в Notion, так что в этом случае десктопное приложение с локальной базой данных может вас спасти.

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

Update после 24 февраля 2022 года: никто не думал, что это случится, никто не предполагал такое радикальное развитие событий, но всё-таки это случилось. Иностранные компании начали массово уходить из России и появляются сообщения, что Notion блокирует российские аккаунты. Советую обратить внимание на бесплатные open source аналоги, которые работают с компьютера пользователя типа Joplin или базы знаний Obsidian, которая тоже имеет функции совместной работы.

13 апреля 2020 г.

Мой личный чёрный список онлайн-преподавателей курсов по программированию

За последний год я проделал путь от изучения вёрстки (снова в школу) до разработки небольших приложения на React, Vue или Svelte (последний фреймворк мне особенно понравился за свою простоту и лаконичность, но возможно я напишу о нём в другой раз). Прошедшие этот путь программисты были правы: информации по веб-разработке в интернете просто океан. Но тут встаёт другая проблема - проблема выбора. Как выбрать знающего преподавателя, хорошие курсы и не утонуть в море информации? Неужели стоит забегать на торрент-трекер или Udemy и качать/скупать все курсы, которые ты видишь по своей тематике? Конечно же нет. 
Размышления
Спустя пару месяцев непрерывного просмотра видеоуроков у меня появились свои фавориты, а с ростом навыков и получением знания появилось мнение о тех преподавателей, которых стоит избегать из-за невысокого уровня контента. Нижеизложенный список моё личное субъективное мнение, я не могу по каждому их курсу писать докладную с их ошибками (а ошибки бывают у всех преподавателей) и ни в коем случае не хочу повредить их бизнесу. Если они не понравились мне, то возможно именно вам понравится их подача материала и они научат вас чему-то новому, а после их курсов вы найдёте работу. Большинство из этих курсов я не досмотрел дальше начала, какие-то смотрел выборочно, так что возможно я ошибаюсь и в остальных частях лекций всё круто и замечательно (хотя это сомнительно, если видно как "лектор" начинает путаться в терминологии в самом начале). Кроме того я смотрел старые лекции, которые я нашёл в условно "свободном" доступе (привет пиратам), а в новой программе они могли уже подтянуть свои знания и качество материала. А ещё я видел курсы иностранных преподавателей (как бесплатные на Ютубе, так и платные лекции) и наши отечественные преподаватели по сравнению с ними далеко не на высоте. Кстати, вот вам ещё одно важное отличие "так себе преподавателя" от профессионала: у последнего все лекции проводятся в режиме онлайн - он не продаёт свои видеозаписи. 
  1. Webformyself. Помню начал смотреть их курс по javascript и каждые 30 секунд исправлял лектора. Мне это очень быстро надоело. После этого травмирующего опыта я избегаю изучать какие-либо их учебные материалы. А ещё у них адский дизайн сайта, в то время как они предлагают научить верстать. Научитесь и сверстайте себе сайт сами, в конце концов. 
  2. Типичный верстальщик Анна Блок. Приятная девушка, которая ведёт одноименный youtube-канал и паблик в ВК. Я смотрел её курсы по вёрстке и боже, какая же там нудная подача материала практически без объяснений и погружения в суть процесса. Впрочем это не отменяет того факта, что Анна опытный верстальщик и умеет этим зарабатывать деньги на фрилансе. У неё популярный канал на Ютубе и телеграмм-чат, где помогают новичкам научиться верстать.
  3. Иван Петриченко. Тут вроде и с подачей материала всё нормально (говорит бодро, в темах не плавает), без воды и только практические знания для работы. Тут другая проблема: Иван застрял на уровне типичного фрилансера с биржи и это очень заметно. Крайне мало теории и глубины погружения, а без этого нормально javascript не понять и учёба превращается в зубрёжку магических кодов. Javascript и так не самый понятный язык программирования в мире, чтобы такое прощать. Вообще многие часто жалуются на преподавателей платных курсов из онлайн-школ, что мол у них в лекциях очень много воды и они искусственно растягивают хронометраж, чтобы слупить побольше денег. Это вовсе не так и многим людям действительно нужны 2-х-часовые лекции, чтобы понять и усвоить все нюансы какой-то темы. 
  4. Алекс Лущенко. У него очень много недостатков: он мало знает сам (для преподавателя и программиста), даёт поверхностные знания, плавает в основах, часто ошибается на своих лекциях (его код не работает, либо устарел лет на 5), но он хотя бы не боится открыто признаться в этом. С другой стороны зачем вам преподаватель, который сам не очень в предметной области? Я посмотрел целиком его курс "Практический javascript" и половину лекций просто сидел с фейспалмом (сейчас на его Ютуб-канале доступна бесплатна вторая версия курса). Ещё он украинец (не подумайте что это плохо, а я очень уважаю украинских программистов) и с русским языком у него иногда проблемы. Вообще среди преподавателей и фрилансеров очень много людей с Украины, потому что в этой стране IT-отрасль очень развита на всех уровнях от начинающих фрилансеров до солидных аутсорс-контор. Некоторым нравятся мотивирующие видео Лущенко о том, как стать программистом. 
  5. Владилен Минин. Есть мнение, что весь его учебный материал это пересказ сайта Ильи Кантора и других преподавателей у которых он невозбранно позаимствовал контент. Неоднократно был замечен в поверхностном пересказе официальной документации и в переделанных чужих учебных проектах (грех многих айти-ютуберов, которым лень заморачиваться с уникальным контентом). Лично я бросил его смотреть после того, как он упорно в начале курса называл React фреймворком, а это библиотека. Это было в старых версиях лекций и в новых курсах он самые дикие ляпы исправляет, что однако не слишком повышает ценность знаний, которые он доносит. А ещё он путает компиляцию и транспиляцию (через Babel) и таких оговорок у него огромное количество. Минин публикует мотивирующие видеоролики на Ютубе в духе "если вы несчастливы, то просто станьте счастливыми", а к таким мотиваторам и прочим инфобизнесменам я отношусь с подозрением, однако у него есть очень много действительно полезных роликов на Ютубе по технической тематике, где можно быстро почерпнуть массу базовой информации, если вам лень читать официальную документацию. По уровню навыков он чуть выше всех вышеперечисленных преподавателей, которые обеспечивают подготовку на уровне "трейни" (в конце концов Минин работал в аутсорсинговой компании, где решал самые разные задачи клиентов и делал это очень быстро, как того требовали заказчики). Наплодил чудовищное количество разных роликов по самым "хайповым" технологиям, так что если вы будете что-то искать по тематике Javascript на Ютубе, то обязательное наткнётесь на его видеоролик. Вот Илья Климов, чей профессионализм и опыт в разработке известен всем, делает часовой разбор одного из курсов Минина, после конфликта с ним. 
  6. Все курсы от компании Skillbox. Они активно рекламируются почти у всех ютуберов, но их курсы полны воды, а ученики очень часто оставляют отрицательные отзывы. Их курсы предлагают со скидкой, но поверьте, на той же Udemy вы найдёте зачастую намного более качественные и интересные курсы за меньшую стоимость. Проблема только в том, что на Udemy большинство качественных курсов на английском языке. 
  7. "Masters of Code" за воровство чужого материала и полное непонимание того, как преподносить информацию. Мало того, что он (или они) взял чужой курс на английском языке про Typescript и дословно перевели на русский язык, так там ещё ничего и не видно на экране (ну можно ведь было догадаться увеличить размер шрифтов в редакторе кода?). Да, они предлагают курс за копейки (13$) и перевод на русский внушительного курса это тоже серьёзная работа, но так обманывать всё равно нельзя. Кстати, по такому же принципу работают некоторые "школы IT" - не попадитесь на мошенников. 
  8. "Диджитализируй!". Данного блогера советуют многие другие ютуберы-программисты, но я смотрел его курсы, много его видеороликов и мне показалось, что его знания в курсе довольно поверхностные. Но как развлекательный контент, почему бы и нет. 
  9. ...список будет дополняться по возможности.
Веб-разработчик за работой
Если есть список учебных материалов, которых я стараюсь избегать, то очевидно есть и качественный контент от профессиональных преподавателей, которых любо дорого смотреть. Тут опять же всё очень субъективно. Не хотелось бы, чтобы это всё было похоже на рекламу (тем более я всеми руками за бесплатные материалы), но я заметил, что учебный материал крупных онлайн-школ сделан действительно профессионально, подробно и там преподают очень опытные лекторы, у которых за плечами годы практической работы в крупных компаниях, а не годы фриланса с однотипными задачами (извините, ребята). Моя любимая онлайн-школа это HTML Academy. Я прошёл все их бесплатные курсы, потом пересмотрел лекции платных интенсивов и теперь мечтаю выиграть бесплатный интенсив и пройти его по настоящему с учебным проектом и наставниками. А Вадим Макеев даже стал моим кумиром в вёрстке. Рекомендую к просмотру его канал, многочисленные лекции (наберите в поиска на Ютубе "Вадим Макеев") и подкаст с новостями. Вообще, профессиональные школы очевидно выигрывают в качестве преподавания у фрилансеров, некоторые из которых просто решили "склепать по-быстрому" курсы в дополнении к своей основной работе в надежде на прибыль. К сожалению, учебные курсы приносят очень мало денег своим авторам, особенно в России. Преподавание это больше про призвание, а не про заработок огромных денег, если конечно вы не Тони Роббинс. Кроме того, могу сказать, что я с опаской отношусь к курсам на Udemy, потому что мусора там тоже предостаточно, а своих покупателей они привлекают безумными распродажами по -95% (там все курсы таким образом продаются, так что не вздумайте что-то покупать по полной стоимости без скидки). 
В список хороших преподавателей могу добавить людей, по которым видно, что они не просто преподают, а реально работают в компании, стартапе или постоянно практикуют свои навыки. Например открыл для себя недавно курсы Антона Ларичева (видеозаписи стоят не очень дорого) и видно, что человек работает в качестве фуллстека и погружен в тему современной разработки. Ещё мне хвалили Михаила Непомнящего за доходчивые объяснения основ Javascript. Он много лет работает преподавателем, так что имеет опыт в донесении знаний до слушателей, подача его мне нравится, но курсы у него в основном начального уровня. 
Я долго не хотел писать этот пост, но решил, что моим знаниям после просмотра сотен часов видеокурсов не стоит пропадать и я их должен систематизировать хотя бы для себя. Надеюсь упомянутые преподаватели и их фанаты не прибегут разбираться в мой уютный бложик, потому что всё сказанное здесь это моё субъективно мнение, составленное зачастую после 30 минут или часа просмотра лекций (и я их зачастую не покупал, так что не могу рассказать про платную поддержку и дополнительное менторство), и всё это наверняка недостаточно для оценки профессиональных навыков конкретного преподавателя и качества целого курса. Учтите, что зачастую к обучающим курсам идут услуги в виде доступа к совместному чату с преподавателем и проверка ваших домашних заданий, а это уже совсем не то же самое, что просмотр лекций, коих в интернете действительно полно. 

P.S.: Дополнение про HTML Academy, откуда ушло много старых преподавателей, в том числе и Вадим Макеев, который уехал из России, а основатель школы Александр Першин уже давно лично не появляется на вебинарах. Сильно ли это ударило по качеству материала? Я смотрел их курсы по вёрстке за 2021 год и они довольно сильно переработаны, появились новые темы про флексы и гриды, убраны неактуальные темы, подача стала местами бодрее, так что я всё равно рекомендовал бы их и сейчас. Кроме того они очень сильно переработали курсы по Javascript, наконец начали преподавать React. Не реклама, просто мне их подача материала и основательность очень нравится - там не учат как использовать конкретные операторы языка программирования, там учат архитектуре, структуре данных и как разработать что-то новое. 

P.P.S: вот мой рейтинг онлайн-школ сейчас, когда познакомился с некоторыми поближе (чистая субъективщина, не кидайте тряпками):
Яндекс.Практикум - сложно, круто, качественно, дорого. Только для мотивированных специалистов и желающих таковыми стать, для зачисления на курсы надо сдавать тестовое задание (которое местами тянет на тестовое в веб-студию). Единственный диплом, который не стыдно показать работодателю. 
Скиллбокс, Гикбрейнс и прочие школы, которые на потоке клепают курсы и тысячами выпускают недоучек - поверхностно, плохо, некачественно, цена от средней к высокой, плюс невероятное количество скандалов, когда они отказывались возвращать деньги. Синоним плохого качества в айти-образовании, выпускников этих курсов зачастую очень не любят на собеседованиях и намеренно "опускают". 
Hexlet - что-то среднее между Я.Практимумом и большими онлайн-школами, есть годные курсы. Там же рядом маленькие школы, некоторые из которых ведут занятия в оффлайне или по модели "буткемп", но такое обучение не всем подходит. 
RS School - полностью бесплатная школа от EPAM, которая держится только на волонтёрах. Учиться действительно можно бесплатно, обучение тяжелое, необходимо знать английский язык. С вас будут требовать домашние задания, много отправлять в Гугл и документацию, а так же отчислят за неуспеваемость. От полностью автономных проектов по самообучению типа FreeСodeСamp отличается тем, что ваш код будет проверять человек, а не бездушные автотесты, вы будете общаться с ментором. 

Полезное видео на 4 часа (используется нецензурная лексика). В нём рассказывают про признаки инфоцыган (не обязательно относительно онлайн-школ программирования) и по этим признакам вы легко опознаете людей, которые "льют вам в уши". 

24 июня 2019 г.

Волшебный мир веб-разработки

MacBook это символ успешного разработчика
У меня в личной жизни внезапно образовалось достаточное количество свободного времени и наблюдая крайне печальное состояние промышленности в Российской Федерации, я решил осуществить свою давнюю мечту - овладеть профессией веб-разработчика, дабы в будущем иметь возможность заниматься фрилансом. Тесно соприкоснувшись с темой веб-разработки, я понял что просто не будет и интернет за эти десять лет (именно тогда я полноценно пытался самообучаться дизайну и вёрстке сайтов) прошёл невероятный путь.
"Миллениалы" придумали новые модные названия для веб-разработчиков: фронтендер и бэкендер. Фронтендер верстает сайт из макета, который нарисовал ему профессиональный дизайнер, добавляет различные нехитрые скрипты на javascript (так что программировать уметь надо) и возможно прикручивает вёрстку в CMS. Бэкендер же отвечает за движок сайта и работу с базами данных, а также он задирает нос и считает себя настоящим программистом, а не как эти "формошлёпы". Если ещё 5 лет назад можно было научиться верстать на HTML5 и выучить CSS, чтобы гордо называться верстальщиком, то сейчас это базовые навыки с которыми не найти работу ни в одной веб-студии, потому что сама по себе вёрстка мало кому нужна. Стек технологий, необходимых для современной разработки сайтов, невероятно разросся и верстальщик теперь немного программист, а программист при необходимости может сам верстать с макета и делать интерфейс. А вот в наше время можно было "нарезать" сайт и сверстать на таблицах...
Вот краткая выжимка знаний и советов, которые я постиг за месяц упорного домашнего обучения:

  1. Visual Studio Code теперь самый популярный редактор кода, который покрывает 90% задач всех фронтендеров. Atom популярностью не пользуется из-за своей глючности и медлительности, на Sublime Text сидят только старые веб-разработчики, которые просто привыкли к этому "блокноту" за годы использования. 
  2. Без ненавистного Adobe Photoshop при работе с макетами никуда. Это де факто стандарт в отрасли. Да, появились очень классные альтернативы, вроде платных онлайн-сервисов Avocode, Zeppelin или Figma, но они больше рассчитаны на быструю разработку мобильных интерфейсов, а не на макеты сайтов. И хотя они декларируют поддержку psd, с мало-мальски сложными макетами однозначно будут проблемы. Не говоря уже о том, что они неправильно читают параметры текстовых слоёв и не отображают/отключают наложенные эффекты. Ребята, которые создали Sketch для Mac OS, профукали огромнейший рынок, не желая переносить свой продукт в web или на Windows. Где достать "Фотошоп"? К сожалению, ценовая политика компании Adobe оставляет мало вариантов для таких новичков как я. Хотя для студентов они дают скидки и длительные триальные сроки.
  3. Интернет у нас теперь очень даже векторный и гипертекстовой, так что формат векторной графики SVG используется повсеместно. Хорошим тоном будет в связке с Photoshop иметь на компьютере открытый редактор векторной графики Inkscape, чтобы открывать и редактировать такие файлы. Ну или пару стрелочек нарисовать, если ничто прекрасное вам не чуждо. 
  4. Профессиональное обучение на онлайн-курсах стоит достаточно дорого: от 12000 - 20000 рублей и выше, про продвинутый уровень знаний (за который обычно платят компании, а не сам программист) я вообще молчу. Вы можете сказать, что я скачаю на торрентах любые лекции (и это так, они там есть), любые книжки и буду учиться сам. На курсах вы платите не за сами лекции (вместо них можете прочитать кучу статей по теме бесплатно), а за работу наставников с вами, за работу над ошибками и оценку ваших реальных знаний. Я никого не призывают бежать и записываться на какие-либо курсы, но обучаясь самостоятельно, некоторых знаний вы не получите. Не говоря уже о возможности по незнанию получить "неправильные знания и натренировать плохие практики". 
  5. Человеческий мозг способен адекватно воспринимать новую информацию не более 4 часов, затем начинается резкое падение эффективности. 
  6. Без практики ваши знания ничего не стоят. 80% вашего обучения должна занимать практика, а 20% изучение теории и лекций. Именно это самая ценная вещь на онлайн-курсах, которую вы не скачаете на торрентах: там вас будут всячески пинать, давать и проверять домашние задания, указывать где подтянуть знания. 
  7. Будьте готовы к тому, что каждые 2 года меняются технологии разработки сайтов: отмирают старые браузеры, появляются новые фреймворки и методы вёрстки. Будьте готовы учить новое. Эх, а ведь я реально помню те времена, когда страницы верстали таблицами и только-только переходили на "дивы". А сейчас на верстающих только "дивами" будут смотреть косо - сейчас в моде флексбоксы. 
  8. В интернете имеется множество бесплатных шаблонов в psd, которые вы можете скачать, сверстать и сделать из них портфолио. И конечно же Chrome DevTools (который открывается по F12) и аналогичный инструмент разработчика в Firefox это классные штуки: постоянно смотрите код сайтов, которые вас заинтересовали, чтобы понять как сделана та или иная вещь, или где верстальщики облажались (частенько встречаются детские ошибки). 
    Страница начинающего разработчика
  9. На биржах фрилансеров новичку работу найти крайне трудно. Как я уже и говорил, просто вёрстку заказывают редко, а если заказывают, то эти простенькие заказы перехватывают мастера, которые естественно сделают её очень быстро и качественно. Имеются биржи для совершенных новичков типа Work-Zilla, но если вы почитаете отзывы, то там будет масса негативных. Кроме того эта биржа дерёт 15% с выполненного заказа, накладывает ограничение на вывод денег и требует оплаты подписки каждый месяц. А ещё обнуляет вам рейтинг со временем. В общем, там вы в прямом смысле будете работать за еду на неадекватных заказчиков, которые хотят полноценный сайт за 1000 рублей. Раньше был иностранный Upwork, но он теперь платный, да и туда не пробиться из-за индусов. 
  10. Я выучил крутые понятия: семантическая вёрстка, адаптивная вёрстка, флексбокс, гриды, pixel perfect, кроссбраузерность. Без реальных знаний этих вещей с вами даже не будут разговаривать как с верстальщиком.
  11. Вы удивитесь, но Internet Explorer ещё не помер. 11-я версия этого "замечательного" браузера, который похоронили сами создатели из Microsoft, ещё жива и входит в понятие, которое называется "кроссбраузерность" (а иногда требуется обеспечить соответствие макета и работу сайта в китайских мобильных браузерах и Opera Mini, где не работает половина современных технологий веба). И IE 11 обязательно поломает вам вёрстку, потому что он отличается от браузеров на Chromium и Gecko (Firefox). 
    Начав верстать, вам очень скоро захочется установить второй монитор. Это рабочая необходимость
  12. Soft Skills работают как и раньше (со времён неандертальцев). А именно: умение общаться с заказчиком, рекламировать себя, искать клиентов там, где не додумаются ваши многочисленные конкуренты -  всё это поможет вам найти работу и получать стабильный доход. Ну или поможет просить денег на еду около церкви с помощью "продающих текстов" на картонке (грустная шутка).
  13. Вся актуальная и самая качественная информация по технологиям HTML и CSS только на английском языке, так что базовый английский это необходимость (если честно, ещё не встречал разработчика, который не понимал бы английский от слова совсем - некоторые на этапе обучения пользуются онлайн-словарями, профессионалы учат с репетиторами). Эту информацию часто (плохо) переводят и выкладывают на платформу блогов Medium, а потом воруют всякие ютуберы, которых я смотреть не рекомендую (годных среди русскоязычных блоггеров-разработчиков по тематике фронтенда не очень много). Ах да, никогда не смотрите видеоролики Гоши Дударя - это такой Тимур Сидельников от мира программирования. Фрилансеры очень любят вести каналы на Ютубе, так как это отличная реклама их навыков, но вот учат ли они правильным вещам... это большой вопрос. За многие вещи, которые они запросто показывают в своих видео, вас обругают тимлиды в веб-студиях. 
  14. В провинции работы для веб-разработчиков крайне мало и ниша занята давно работающими веб-студиями разного калибра (видел студию из одного человека и из трёх человек, которые умеют натягивать дизайн на Wordpress и максимум работать с jQuery). 
  15. Кстати, если вы научитесь "натягивать дизайн" на Wordpress, ModX, Joomla и другие популярные CMS, то возможно не умрёте с голода, потому что спрос на такую работу очень большой. Доля сайтов на Wordpress в мире постоянно падает, но их всё равно около 40%. 
  16. Подавляющее большинство веб-разработчиков (как и пользователей) сидят на Windows и не имеют крутых мониторов 4K, так что Retina и вёрстка для Safari это мало кому нужная экзотика. Зато доля пользователей, которые заходят на сайт с мобильных устройств, может быть больше 60%, поэтому ваш сайт обязан правильно работать и хорошо выглядеть на смартфонах и планшетах. 
  17. Время! Некоторые считают, что вёрстку можно досконально изучить за 2 месяца и ещё до полугода потратить на изучение основа javascript, средств автоматизации и популярного фреймворка. В любом случае это безумие считать, что вот сейчас вы быстренько выучитесь и пойдёте зарабатывать своими знаниями деньги. Объём материала для получения статуса "джуниор веб-разработчик" - 2000 часов лекций и практики.
    CM Storm QuickFire Rapid-i выгляди очень брутально
  18. Профессиональные программисты обожают механические клавиатуры, но как же они громко стучат ночью (у меня cherry mx black)! Берите клавиатуру на cherry mx red, чтобы было хоть немного потише. Не знаю насколько можно верить всяким топам клавиатур в интернете, но чаще всего в качестве первой механической клавиатуры советуют Cooler Master Storm QuickFire Rapid. Правда это не очень крутой бренд среди клавиатур и отсутствие цифрового блока напрягает (а фронтендерам надо вводить цифры часто), но это довольно старая модель клавиатуры и её можно найти в России по цене 4500 рублей. Впрочем за 5000 рублей уже можно подобрать себе нормальную клавиатуру на понравившихся переключателях. 
Путь фронтендера очень сложен и тернист, знания устаревают и требуют обновления почти каждый год (с выходом новой версии используемого фреймворка). Но лично мне это занятие нравится и было бы круто, если бы полученные мной знания ещё и оплачивались, позволив сменить мою нынешнюю профессию на новую. Дорогу осилит идущий. 

23 декабря 2017 г.

Обучение программированию в современных реалиях

Этот пост будет больше ностальгическим, чем обзором современных языков программирования и многочисленных курсов обучения программированию, которым забит интернет.
Учиться программированию я начинал в школе на старых советских машинах (что-то там "Электроника"), которые естественно были скопированы с иностранных образцов и на которых были установлены адаптированные версии примитивных операционных систем и язык программирования Basic в версии от рижских разработчиков. Удивительно, но нам так же преподавали язык С, который мне сразу понравился своей простотой и лаконичностью больше Basic.
На дворе были голодные лихие 90-е, но наша школа получила возможность закупить компьютеры "двойки" и "четвёрки" с цветными экранами (до этого мы довольствовались монохромными экранами) на которых красовался Volkov Commander. Так мы вступили в эпоху Borland Turbo Pascal, который остаётся в наших школах и Вузах до сих пор одним из лидирующих языков для обучения основам программирования. Pacal был сложнее в освоении по сравнению с Basic, зато предоставлял массу новых возможностей типа чтения и записи в файл, и даже позволял писать программы для работы в графическом режиме.
Развитие ИТ-отрасли в стране шло, но с массой нюансов, которые были схожи с тем, что происходило в странах с развивающейся экономикой типа Индии или Китая. Основные особенности нашего ИТ:

  • "Ворованные" дистрибутивы программ. Вся страна сидела на нелицензионном Delphi, что, кстати, и помогло ему стать чрезвычайно популярным. Про Windows и говорить нечего. 
  • Устаревший парк компьютеров, потому что запчасти для компьютеров в те времена стоили весьма дорого и еще в 2010 году я встречал "пузатые" ЭЛТ-мониторы и программы, работающие в DOS-режиме. 
  • Повсеместного Интернета не было, как и официальной тех.поддержки со стороны иностранных разработчиков. 

Только к 2008 году я наконец получил безлимитный доступ к интернету и обратил внимание на развивающуюся отрасль web-дизайна и web-программирования. Это сейчас мы рассуждаем про фронтенд и бэкенд, а тогда было круто писать на PHP вперемешку с HTML и даже использовать технологию Flash для "мультимедийности", что сейчас выглядит как безумие. А Javascript тогда использовали для проверки полей ввода и эффекта "падающих снежинок" на новый год. В мире браузеров творилось непотребство: балом правил неубиваемый Internet Explorer и работали скрипты (да и сайты) через пень колоду в разных браузерах. Это сейчас у нас победил Google Chrome и разработчики договорились о кроссплатформенности.
Раньше книги этого издательства были самыми желанными
Вернёмся к программированию. Обучение программирование тогда происходило достаточно просто, выбора особого не было - ты качал из интернета книжку по интересующему тебя языку программирования в формате PDF и начинал её читать. Книг на русском языке было очень мало и они появлялись с опозданием в годы. О профильных курсах можно было только мечтать. Продвинутые программисты, которые знали английский язык, искали информацию в иностранном интернете и это всегда было лучше (да и сейчас это отличный "скилл" для начинающего программиста). Ну а дальше мы шли по тяжёлой кривой обучения: изучение, практика, отработка ошибок, гугление проблем в интернете и на профильных форумах, где собирались программисты. К сожалению, любой навык бесполезен, если вы его просто изучили и никак не стали использовать в реальной жизни. То есть недостаточно выучить язык программирования, если вы не будете в нём совершенствоваться каждый день, а для этого надо работать по специальности и применять полученные знания. В России с работой в ИТ-отрасли всегда были проблемы и это только относительно недавно у программистов появилась возможность работать удалённо, в качестве фрилансера, да и сам информационный бизнес переживает подъём, несмотря на то, что государство пытается вставлять палки в колёса и регулировать его.
Специальные курсы по Ruby on Rails для девушек
В 2017 году, конечно же, ситуация с обучением программированию совершенно отличается от того времени, когда в школе учился я. Появилось такое огромное количество новых языков программирования, технологий и средств разработки, что глаза просто разбегаются. Более того, подавляющая часть этих инструментов и технологий абсолютно бесплатна. У корпораций считается хорошим тоном предоставлять новичкам свои инструменты для обучения бесплатно. Так корпорация Microsoft отдаёт свою флагманскую IDE Visual Studio безвозмездно, а простых и бесплатных редакторов кода для самых различных языков программирования просто трудно пересчитать. Скачивание и установка редактора кода для обучения какому-нибудь Python занимает минут 15 в относительно неопытных руках.
Кроме текстовой информации по обучению программированию, в интернете имеется огромное количество видеозаписей и целых видеокурсов с лекциями. Я был удивлён, но по аналогии с игровыми стримерами (на Twitch), в интернете имеются стримеры-программисты, которые транслируют и комментируют свою работу.
Дорогой ноутбук от Apple для обучения программированию покупать не обязательно
Сейчас у нас имеется огромное количество онлайн-курсов разного уровня продвинутости и качества. Есть бесплатные видеогайды на Ютубе от таких же начинающих программистов, но я бы не советовал обращаться к ним, потому что неправильные знания это ещё хуже чем просто незнание. Например обучиться Python у профессиональных преподавателей вообще не проблема  и это даже не потребует от вас денежных вложений - только времени на регистрацию на сайте, просмотр лекций и выполнение тестовых упражнений. Удивляет, что на фоне такого разнообразия технологий и возможностей, в наших школах и Вузах до сих пор пытаются обучать на "Паскале" по старым учебным планам, утверждённых наверное ещё в прошлом веке. Кстати, сам "Паскаль" давно шагнул вперёд и отечественные программисты разработали специальную современную версию с поддержкой .NET.
Я по хорошему завидую современному поколению, которые получают доступ к такому интересному занятию как программирование и имеют возможность работать на современных компьютерах и не только на них (смартфоны, VR, программирование под Linux). Главное не упустить эти возможности и не распылять свои ресурсы на неважные вещи.