• Конкурс, новые курсы и фичи (осенние новости Хекслета)

      Привет!


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



      иллюстрация из курса «Основы командной строки»


      Вот осенние новости.


      Конкурс историй


      Вы ищете работу? Возможно, свою первую работу программистом? Напишите интересную историю о том, как и почему вы стали изучать программирование, как выглядит ваш процесс обучения и роста. Авторы трёх историй, набравших больше всего «старов» (звёздочек) на Гитхабе, получат по году бесплатного обучения на Хекслете с проектами.


      (Проекты — это недельные интенсивы, где вы будете разрабатывать и публиковать полноценные приложения вместе с опытными менторами).


      Подробнее об условиях и призах → mystory.hexlet.io. А репозиторий с историями тут → github.com/Hexlet/our-stories.


      Новые курсы


      Вышел бесплатный курс, которого так не хватало многим пользователям, особенно тем, кто проходил первый проект: Основы командной строки.

      Читать дальше →
    • Code Basics: бесплатные практические уроки для новичков

        Привет, Хабр! Мы в Хекслете запустили в этом году открытый и бесплатный проект для новичков: code-basics.ru. Это интерактивные курсы с практикой, рассчитанные на тех, кто вообще никогда не программировал. Мы учим основам программирования и рассказываем про базовое устройство компьютеров.


        Сейчас доступен полный курс по PHP и первый модуль по JavaScript. На подходе Racket и Python. Весь исходный код платформы и самих уроков — в open source.


        Сегодня хочу рассказать немного о сути Code Basics, его внутренностях и технологическом стеке.


        Читать дальше →
      • Знакомство с командой курсов стека Java на Hexlet

          Привет, Хабраюзер. Мы давно хотели стать немного ближе к тебе. И сегодня столь длительно зреющая идея рассказать тебе более подробно о том: «кто и какие курсы Java стека на Хекслет делает» — воплотилась! Как думаю — стало понятно: мы расскажем Вам о курсах над которыми мы трудились последние пол года, включая самый последний курс который вот-вот начали записывать: Java для Web сервисов.


          Читать дальше →
        • Новый подкаст об информатике


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


            Недавно мы запустили новый проект – одноименный подкаст об информатике. Мысли, рассуждения и изучение идей информатики, математики и программирования. Ведущий – ваш покорный слуга. Пока вышло 3 выпуска, по выпуску в неделю. Продолжительность каждого – около 30 минут.


            1. Инструменты и искусственный глупый интеллект


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


            Слушать на SC / слушать на YT / скачать


            Читать дальше →
            • +25
            • 9,8k
            • 5
          • Новые практические курсы по JavaScript и ES6


              Привет, Хабр!


              Последние несколько месяцев мы в Хекслете работали над новыми курсами и обновлениями платформы. Сейчас на сайте доступно четыре "профессии", так мы называем последовательные программы обучения по разным направлениям, от новичка до джуниора. Одна из профессий окончена, а в остальных продолжают выходить новые курсы. Сегодня хочу рассказать про самое важное для нас сегодня направление — JavaScript, в частности профессию "Фронтэнд JS-программист".


              Мы пошли не стандартным путем "hello world, сделаем форму, добавим анимацию, изучим ООП", а взяли за основу подход к изучению программирования в целом, а не конкретно языка JavaScript. Язык же используется как инструмент решения задач и применения изученных концепций и идей. При это мы изучаем свежий стандарт ES6 и с самого начала знакомим учащихся с правильным окружениям и техниками: модули, пакетный менеджер, отладка, модульное тестирование.


              Вот как выглядит программа обучения:


              1. Жизнь программиста. Про профессию, виды компаний и виды разработки.
              2. Основы программирования. Фундамент: кодинг, ошибки, отладка, функции, побочные эффекты, типы данных. И, конечно, базовые штуки вроде чисел, строк, условий и т.д.
              3. JS: подготовка к работе. Установка и настройка окружения — node, npm, atom.
              4. JS: Составные данные. Как из простых типов данных составлять более сложные. Абстракция от чисел до объектов.
              5. Bash: Основы командной строки.
              6. JS: Последовательности. Пишем свой генератор HTML и изучаем filter, map, reduce.
              7. JS: Программирование, управляемое данными. Типы, сообщения, ООП и TDD.
              Читать дальше →
            • Как нанимают программистов. Интервью с Катериной Гавриловой из DigitalHR

                Рекрутеров редко спрашивают про то, как устроена их работа: обычно на собеседованиях кандидатам интереснее узнавать про проекты, куда они будут выходить. Оно и правильно. Но в одну пятницу CEO DigitalHR Катя Гаврилова в интервью с Hexlet отвечала на поток вопросов от разработчиков: почему эйчары не перезванивают, как становятся рекрутерами и как они вообще ищут кандидатов. На некоторые темы так и не хватило времени, поэтому постараемся дать ответ здесь:


                ОБРАЗОВАНИЕ


                Если у кандидата есть высшее образование, но непрофильное?


                Разработчики — счастливые люди. Хотя бы потому, что у работодателей нет строгих требований к образованию кандидатов. Важны: опыт коммерческой разработки, владение определенным фреймворком, знание конкретной базы данных. Мы редко получаем запросы от компаний, чтобы кандидат заканчивал МГТУ, МИФИ или МАИ, но если запрос на высшее технического образование есть, эти вузы будут обязательно названы. Этот вопрос важен, если вы в будущем будете рассматривать релокацию, и вас будут приглашать работать заграницу. В этом случае важно, чтобы образование было профильным.


                ПРЕДЫДУЩИЙ РАБОТОДАТЕЛЬ


                Насколько важны рекомендации от других компаний?


                Очень важны. Из-за плохой рекомендации в лучшем случае с вами проведут дополнительные интервью, в худшем — не возьмут в компанию. Рекомендации обычно берут у нескольких компаний, чтобы не делать вывод только по одному отзыву. Вдруг какой-то руководитель или коллега решит отомстить кандидату по личным причинам? HR и рекрутеры очень любят брать отзывы у предыдущих клиентов. Например, если программист работал в студии и даст контакты клиентов, которым он разрабатывал проекты, это будет только в плюс.

                Читать дальше →
              • Алан Кэй, создатель ООП, про разработку, Лисп и ООП

                • Перевод
                image

                Если вы никогда не слышали про Алана Кэя, то как минимум слышали его знаменитые цитаты. Например, это высказывание 1971 года:
                The best way to predict the future is to invent it.
                Лучший способ предсказать будущее это изобрести его.


                У Алана очень яркая карьера в информатике. Он получил Премию Киото и Премию Тьюринга за работу над парадигмой объектно-ориентированного программирования. Он был одним из первопроходцев в области персональных компьютеров и графического интерфейса, он разработал Smalltalk — один из первых самых влиятельных языков программирования всех времен.

                У нас в Хекслете, особенно в чате, постоянно поднимается вопрос «что такое ООП» и «что имел ввиду Алан Кэй на самом деле». В этой заметке собраны интересные цитаты Алана о состоянии современной разработки, ООП и языке Лисп.
                Читать дальше →
              • 10 правил, которые позволяют NASA писать миллионы строк кода с минимальными ошибками

                • Перевод

                image
                Маргарет Гамильтон стоит рядом с написанным ей исходным кодом бортового компьютера «Аполлона»


                Лаборатория реактивного движения (Jet Propulsion Laboratory) — научно-исследовательский центр НАСА, ответственный за большинство беспилотных космических кораблей США. Там пишут много кода, и права на ошибку у них намного меньше, чем у обычных программистов.


                В JPL пишут на Си, и на их сайте есть документ "JPL Institutional Coding Standard", описывающий жесткие стандарты кодирования внутри организации. Они напоминают правила программирования для встроенных (embedded) систем и систем реального времени, с ограниченными ресурсами. Но многие из правил эти просто принципы хорошего программирования. Ограничение сложности, максимальное упрощение для последующего чтения кода и отладки, отсутствие побочных эффектов. Мы в Хекслете постоянно говорим об этом в вебинарах и, конечно, в самих курсах. Мы считаем очень важным как можно раньше поднимать эти темы, поэтому про функции и побочные эффекты начинаем говорить в самом первом курсе «Основы программирования», который рассчитан на новичков. Это бесплатный курс, кстати, и в нем есть практика на языке JavaScript.


                Спасибо хабраюзеру Boletus за важную поправку и дополнение:
                В 2006 году Gerard Holzmann с коллективом сформулировал 10 основных правил для JPL в документе «The Power of 10: Rules for Developing Safety-Critical Code». Они вошли в основу нынешнего стандарта, наряду с MISRA C и другими дополнениями. Статья в Википедии.


                Вот перевод этого списка.

                Читать дальше →
              • Нанимайте личность, а не набор навыков. Мои самые важные вопросы в собеседовании

                • Перевод

                Привет, Хабр!


                Недавно мы публиковали свои экспериментальные публичные собеседования. Конечно, это не совсем настоящие собеседования, потому что мы концентрировались на технических темах и почти не затрагивали личные качества человека. К тому же, собеседования проводились «в вакууме», без допущения о компании, проектах и команде, в которую кандидат пытается попасть. В сегодняшнем переводе рассматривается тема рекрутинга на основе личности, характера и доверия.


                Есть куча гайдов, помогающих провести собеседование. Они содержат множество полу-осмысленных микро-советов по основам психологии. Или просто набор, возможно, осмысленных вопросов для проверки разных навыков. Я прочитал много таких гайдов, книжку про техники проведения собеседований, и даже прошел специальный тренинг.


                У всех этих источников есть общая черта: ни один не сделал из меня более крутого собеседующего, и ничто не улучшило качество рекрутинга (это, конечно, не численная оценка, а мое личное ощущение). Ну, может, не все так плохо. Конечно, я изучил что-то новое и полезное, и стал задумываться о процессе собеседования глубже. Что, в итоге, очень хорошо.


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

                Читать дальше →
              • Бесплатные практические курсы по основам программирования на JavaScript

                  Привет, Хабр!

                  Мы на Хекслете закончили полный цикл курсов по обучению PHP-программистов и переключились на стек JavaScript. Первые два курса новой программы уже доступны, и они бесплатные!

                  Курс «Основы программирования» — это знакомство с миром разработки и языком JavaScript. Курс рассчитан на новичков без опыта в программировании, но будет полезен и многим практикующим программистам, потому что покрывает таки темы как рекурсивные и итеративные процессы, чистые функции и побочные эффекты, автоматические тесты и модульное тестирование.

                  Читать дальше →
                • Публичные собеседования на позицию веб-разработчика в прямом эфире

                    Привет, Хабр!

                    Мы в Хекслете делаем не только практические курсы по программированию, но и готовим людей к карьере программиста. Например, недавно запустили полную программу обучения «Профессия PHP-программист», куда входят основы программирования, частично книга СИКП, веб, базы данных, деплой, управление конфигурацией и многое другое, что мы считаем важным для настоящего разработчика. По завершению учебной программы мы помогаем людям получить первый опыт и устроиться на работу.

                    Важный аспект последнего шага это подготовка к собеседованиям. Мы знаем, что собеседования могут быть пугающими и сложными, поэтому решили предложить нашему активному сообществу (которое живет, в основном, в большом слак-чате) идею: публичные собеседования в прямом эфире!

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

                    Собеседование 1: Денис Кривощеков


                    Занимается фрилансом, изучает Ruby on Rails.

                    Читать дальше →
                  • Новые лекции, курсы, скидки и другие обновления

                      Привет, Хабр!

                      У нас на Хекслете кучка хороших новостей:
                      • Вышли новые вебинары
                      • Вышло несколько новых курсов (+ бесплатный!)
                      • Появилась скидка 50%
                      • Редактор кода стал в разы круче!
                      • Обновилась домашняя страница


                      Новые вебинары


                      Пару раз в месяц мы проводим бесплатные вебинары. Записи прошлых вебинаров публикуем на ютубе. Вот три последних:

                      Рабочее окружение и продуктивность
                      О настройке рабочего окружения, инструментах, софте, работе в команде и личной продуктивности. Расскажем про то, как налажена удаленная работа в команде Хекслета.

                      Читать дальше →
                      • +13
                      • 11,4k
                      • 2
                    • Какие страны и языки программирования чаще побеждают в игре для программистов CodeBattle?

                        Привет, Хабр!

                        В прошлом году мы запустили игру для программистов CodeBattle. Напомню, идея игры очень простая: вам и сопернику дается задача, вы решаете её на выбранном вами языке. Вы видите код соперника в реальном времени, результаты запуска тестов и можете общаться с ним и зрителями в чате. Кто первый решит задачу (удовлетворит тестам) — тот победил.

                        С тех пор были сыграны тысячи игр, и мы собрали интересную статистику. По состоянию на 31 декабря 2015 года, какие страны и какие языки программирования чаще побеждали?

                        Иными словами, мы наконец можем ответить на вопрос «какой язык круче?» :) Шучу-шучу, давайте не холиварить. Вот статистика за три последних месяца прошлого года:

                        Читать дальше →
                      • Почему сложно программировать UI и как выглядит идеальный фреймворк

                          Привет, Хабр!

                          Одна из сложных задач современной разработки — это программирование пользовательского интерфейса. С увеличением количества элементов сложность увеличивается нелинейно и совладать с огромным количеством вариантов, состояний и переходов становится практически невозможно. Фреймворки вроде Angular со своим двусторонним связыванием пытается решить эту проблему, но на фундаментальном уровне ничего не меняется.

                          Со-основатель, технический директор и главный учитель нашего образовательного проекта Хекслет Кирилл Мокевнин рассказывает про сложность программирования интерфейсов и каким образом можно совладать со сложностью если вы знакомы с одной базовой концепцией информатики. Заодно расскажет и покажет идеальный JS-фреймворк для программирования UI.

                          Читать дальше →
                        • Что такое RESTful на самом деле

                          • Перевод
                          А ваше приложение — RESTful? Чтобы ответить на этот вопрос нужно сначала разобраться что такое RESTful. Бытует мнение, что отдавать правильные коды ответов в HTTP — это уже RESTful. Или делать правильные идемпотентные HTTP-запросы — это вообще очень RESTful. Мы в Хекслете сделали практический курс по протоколу HTTP (отличия версий, отправка форм, аутентификация, куки и пр.), и в нем мы стараемся рассказать о правильном использовании запросов, но нужно понимать, что RESTful это не про HTTP, это вообще не про протоколы интернета. Современный веб и взаимодействие между браузером и сервером с помощью HTTP и URI могут удовлетворять принципам RESTful, а могут и не удовлетворять.

                          В сегодняшнем переводе — простое и понятное описание RESTful, и какой должна быть система, чтобы ее можно было так называть.

                          Читать дальше →
                        • Бесплатный практический курс по Bash и другие хорошие новости



                            Привет, Хабр!

                            Давно не писали про обновления в нашем образовательном проекте Хекслет, а тут как раз Новый год — самое время поделиться хорошими новостями. Мы сделали бесплатным популярный курс «Bash: Основы командной строки»! Это уникальный курс, потому что упражнения в нем (как и везде в Хекслете) выполняются в условиях, приближенных к боевым: вам доступен личный контейнер с root-доступом, в котором среди прочего запущена оболочка Bash.

                            Курс затрагивает навигацию, работу с файловой системой, пейджеры, перенаправления и потоки, историю, псевдонимы и другие аспекты работы с Bash, которыми должен владеть любой уважающий себя программист.
                            Читать дальше →
                          • Забейте на ORM

                            • Перевод
                            Привет, Хабр!

                            Мы в Хекслете учим людей программировать, но стараемся хитрить: например, под видом простого, на первый взгляд, курса по PHP, рассказываем людям про абстракции, рекурсии, функции первого класса, замыкании, свертку и вообще начинаем «Основы программирования» с МИТ'шного СИКПа, а не с классов и формочек. В этом и других курсах, а также в наших регулярных вебинарах рассказываем о функциональном программировании, о проблемах современных подходов и о главном зле: состоянии. В нашем чате постоянно поднимаются крупные дискуссии, в которых выясняется, что изменяемое состояние в разы повышает сложность в системе.

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

                            * * *

                            Я продвигаю функциональный подход в Ruby уже давно, и, хотя он включает в себя много различных методов и моделей, есть одна идея, одна фундаментальная идея, которая меняет всё: неизменяемость (иммутабельность).

                            Но что это вообще означает в Ruby? Запретить изменять любые объекты? Будет слишком медленно, так что — нет. Иммутабельно-ориентированный дизайн означает, что вы избегаете те интерфейсы, которые могут изменять объекты. Да, много методов в Руби изменяют состояние, но когда вы разрабатываете интерфейсы объектов, вы можете создавать их таким способом, что объекты не будут изменяться.

                            Использование неизменяемых объектов стало для меня шокирующим открытием. Одна из вещей, которую я понял после того открытия, это почему object-relational mapping (ORM) — плохая идея, и из-за нее у нас так много ненужной сложности.
                            Читать дальше →
                          • Технические собеседования: советы

                            • Перевод
                            Привет, Хабр!

                            У команды Хекслета немало опыта проведения технических собеседований. Мы делились опытом и советами в вебинаре «Собеседования: взгляд со стороны работодателя». А сегодня публикуем перевод статьи с советами от компании, которая помогает людям готовиться к собеседованиям.

                            От себя хочу добавить, что не смотря на полезность этих советов, если описанный здесь человек — это не вы, то не нужно стараться эмулировать его.
                            Читать дальше →
                          • Обновленный Codebattle: игра для программистов

                              Привет, Хабр!



                              Три недели назад мы (дружная команда образовательного проекта Хекслет) опубликовали пост про наш новый проект — игру для программистов Codebattle. Напомню, идея игры очень простая: вам и сопернику дается задача, вы решаете ее на выбранном вами языке. Вы видите код соперника в реальном времени, результаты запуска тестов и можете общаться с ним и зрителями в чате. Кто первый решит задачу (удовлетворит тестам) — тот победил.

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

                              Встречайте — обновленный Codebattle! Вкратце:

                              1. Хабраэффект нам не страшен (тьфу-тьфу-тьфу)
                              2. Читерить больше не получится (нельзя подогнать решение под тесты)
                              3. Добавлять языки стало проще (сейчас уже есть clojure, ruby, js, python, php, java, erlang)

                              Подробности под катом →
                              Читать дальше →
                            • Codebattle: игра для программистов

                                Привет, Хабрахабр!

                                Мы в Хекслете любим не только учиться и учить, но и развлекаться. Но развлекаться по-своему, по-программерски. Поэтому мы запустили Codebattle. Это игра для программистов.

                                Идея очень простая: вам и сопернику дается задача, вы решаете ее на выбранном вами языке. Вы видите код соперника в реальном времени, результаты запуска тестов и можете общаться с ним и зрителями в чате. Кто первый решит задачу (удовлетворит тестам) — тот победил.


                                Читать дальше →

                              Самое читаемое