Основные возможности платформы Hexlet не доступны в вашем браузере. Пожалуйста, обновитесь.
Блог Хекслета
Обучение
23 февраля 2017, Kirill Mokevnin

ОбучениеЛовушки обучения

Во время обучения бывают ситуации, когда ожидания не совпадают с реальностью и вы не видите нужного результата. Причин может быть масса, но среди них выделяется группа, связанная с когнитивными искажениями. Вот об этой группе мы и поговорим.

Читать дальше →
28 октября 2016, Александр Шакун

ОбучениеКак задавать вопросы на околотехнические темы так, чтобы быстрее получать качественные ответы

Итак, вы изучаете программирование. Это замечательно! И как правило в процессе изучения, и в процессе работы у вас возникает много вопросов. Способов получить ответы на эти вопросы существует несколько:

Читать дальше →
16 октября 2016, Андрей Романов

ОбучениеЧетыре ошибки новичков в программировании

Всем привет! Меня зовут Андрей, я фронтенд-разработчик в RAMBLER&Co, ранее в Иннове. Программированием я занимаюсь около года, до этого около двух лет занимался HTML-вёрсткой. Расскажу о том, какие ошибки я совершил за эти три года, чтобы вы (если вы новичок) их не повторяли.

Ошибка №1: изучение основ языка вместо основ программирования

Свой путь в веб-разработке я начинал с книги по HTML/CSS, которую мне дал почитать знакомый программист. В конце книги был дополнительный раздел с основами языка JavaScript. Разумеется, я начал его читать и ничего не понял. Помню как увидел пример простого цикла for (var i = 0; i < 10; i++) и долго недоумевал, как это вообще работает. В итоге у меня сложилось неправильное впечатление о языке: я решил, что JS ужасный язык и его нельзя изучать.

Читать дальше →
12 октября 2016, Арбатский Артём

ОбучениеЭдди Османи о том, как изучать современный JavaScript

Несколько дней назад вышла юмористическая (но наполненная болью и страданиями автора) статья “На что похоже изучение JavaScript в 2016г.”

В одном из комментариев к статье засветился сам Addy Osmani, один из ведущих JavaScript разработчиков в мире. Далее идет текст его ответа в вольном переводе:

Я полностью понимаю ваше отчаяние :)

Я советую людям, изучающим экосистему JavaScript придерживаться такого подхода: сперва сделай это, потом сделай это правильно, потом сделай это лучше.

Читать дальше →
10 сентября 2016, Kirill Mokevnin

ОбучениеПодстановочная модель вычислений

Нам часто пишут о том, что сложно понять, в каком порядке выполняется код и как, в целом, происходит процесс вычисления. Например:

Здравствуйте! Сначала прошел задание, а затем у меня появился вопрос. Проверка strings.toUpperCase(char) === char сначала переводит символ в верхний регистр, а потом сравнивает с ним же? Или происходит просто проверка без перевода? По логике кода происходит второй вариант, но все же хочу уточнить, т.к. согласно учебника .toUpperCase() именно переводит в верхний регистр.

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

Читать дальше →
22 августа 2016, Kirill Mokevnin

ОбучениеРазбор решения задачи "Вес Хемминга"

function hammingWeight($weight)
{
    $array = str_split(decbin($weight));
    $amount = 0;
    foreach ($array as $value) {
        $amount += $value;
    }
    return $amount;
}
  • Понятно ли с первого взгляда что делает функция (основываясь на содержимом)?
  • Попробуйте воспроизвести определение понятия "Вес Хемминга" глядя только на код
Читать дальше →
15 августа 2016, Александр Лагода

ОбучениеГрань между "как" и "зачем"

Со временем, в процессе обучения, у каждого наступает такой момент, когда ты перестаешь расширять интерфейс и реализовывать родительский класс, а упоминание названия какого-либо фреймворка не вызывает у тебя вопрос "как ты там сказал? а что это?". Скорее всего ты уже даже скачал этот самый фреймворк и запилил на нем трехстраничный сайт, где, без шуток, даже регистрация работает! По завершении, в качестве фаталити, собственноручно и без подглядывания в мануал запушил это все на гитхаб и теперь почиваешь на лаврах. Вопрос "как" для задач, которые на данном этапе ты считаешь актуальными, не такой частый гость для тебя.

В этой заметке я хочу рассказать о проблемах, с которыми я столкнулся на данном этапе обучения и как Хекслет начинает помогать мне в их решении. Почему начинает, а не уже помог? Потому-что речь пойдет о только недавно запущенном нововведении на Хекслете, именуемом "Проекты". Если коротко, то это работа над (внезапно) небольшим проектом под руководством опытных разработчиков в течение одной-двух недель. У нас ушло две недели, а писали мы консольное приложение.

Читать дальше →
30 июля 2016, Арбатский Артём

Обучение10 советов о том, как более эффективно учиться на Хекслете

Здесь я собрал 10 коротких заметок о том, что помогает мне эффективнее учиться на хекслете и других курсах. Возможно, что-то из этого будет полезным и для вас.

  1. Во время просмотра урока я набираю код из видео себе в обычный .md файл, этот код и служит конспектом урока, если что-то нужно особо отметить, то пишу короткий комментарий.
  2. Бывает такое, что открываешь задание к уроку, и вообще не понятно, что от тебя требуется и как это решать. Что можно сделать, чтобы разобраться в задании:
    • Прочитать код в файле с тестами, построчно, и разобраться, что конкретно происходит в каждой строке, какой создается объект, какой метод вызывается, к какой переменной обращаются, какие условия проверяются в тестах.
    • Почитать вопросы-ответы к этому уроку, возможно у кого-то эти вопросы уже возникали.
    • Есть задания, где за вас написано уже много кода, и в нем достаточно непросто разобраться. Здесь можно на бумаге составить для себя схему классов, методов, свойств, чтобы лучше понять, как это работает.
    • Если разобраться никак не получается, добро пожаловать в слак чат Хекслета, там вам ответят и помогут выполнить задание.
  3. Советы по дебагу своего кода. Если в целом понятно, как делать упражнение, но тесты никак не проходят, вылетает какая-то непонятная ошибка ит.п.
    • Вы можете в любом месте своего кода проверять значения переменных через var_dump, print_r (PHP), console.log(JS). В код тестов тоже можно дописывать проверки, или свои тесты. Это бывает очень полезно.
    • Часто ошибки бывают из за того, что функция возвращает не то, что ожидалось. Например, строку вместо массива, ит.п. В этом случае тоже пригодится var_dump, чтобы проверить.
    • Если вылетает какая-то конкретная ошибка, загуглите ее, посмотрите, в какой строке программы она возникает, и проверьте значения переменных до ее возникновения.
  4. Если смотрите урок или делаете практику, и совершенно ничего не понятно, пора сделать перерыв. Информация в уроках не сложная, просто она новая и часто необычная, мозгу нужно время (и иногда достаточно большое), чтобы выстроить какие-то новые связи. Через это ощущение “ничего не понимаю” я проходил очень много раз, через некоторое время придет понимание, и ориентироваться в теме будет гораздо легче.
  5. Иногда, когда мне надоедает тема, я люблю перепрыгнуть на какой-то другой язык программирования, например если у вас затык в PHP стэке, можно пройти несколько уроков курса Ruby, или Java, это помогает как-то освежить восприятие и потом вернуться с новыми силами.
  6. Иногда использую hard-mode - не читаю само задание и руководствуюсь только тестами, бывает довольно интересно попробовать так пройти практику.
  7. Если вы по какой-то причине надолго забрасывали обучение, то вернуться может быть непросто, иногда смотришь на код задания, которое выполнял полгода назад и не понимаешь, что тут вообще происходит. В этом случае я просто начинаю проходить уроки так, как будто вообще не проходил этот курс, полностью смотрю все видео начиная с первого, сбрасываю прогресс упражнений, даже не читая свой старый код, и делаю заново.
  8. Параллельно с курсами хекслета можно и нужно читать книги по программированию, лично я лучше понимаю тему, когда узнаю ее из нескольких источников. Для PHP это Зандстра “Объекты, шаблоны и методики программирования”, по JavaScript читаю Н.Закас “JavaScript для профессиональных разработчиков”.
  9. Очень выручает вот этот плагин для гугл хрома, использую его для любых обучающих видео, потому что их всегда хочется ускорить: https://chrome.google.com/webstore/detail/video-speed-controller/nffaoalbilbmmfgbnbgppjihopabppdk?hl=en, им можно ускорять/замедлять практически любые видео. Хекслетовские видео смотрю примерно на скорости 1.20-1.30, больше уже сложно воспринимать.
  10. Еще юзаю плагин Block Site, у меня там собраны всякие пожиратели времени вроде новостных сайтов и соц.сетей, и стоит переадресация по умолчанию на хекслет :) https://chrome.google.com/webstore/detail/block-site/eiimnmioipafcokbfikbljfdeojpcgbh
Читать дальше →