Как стать автором
Обновить

Компания Хекслет временно не ведёт блог на Хабре

Сначала показывать

Новые лекции, курсы, скидки и другие обновления

Время на прочтение2 мин
Количество просмотров12K
Привет, Хабр!

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


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


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

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

Читать дальше →
Всего голосов 17: ↑15 и ↓2+13
Комментарии2

Какие страны и языки программирования чаще побеждают в игре для программистов CodeBattle?

Время на прочтение1 мин
Количество просмотров34K
Привет, Хабр!

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

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

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

Читать дальше →
Всего голосов 38: ↑31 и ↓7+24
Комментарии52

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

Время на прочтение1 мин
Количество просмотров22K
Привет, Хабр!

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

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

Читать дальше →
Всего голосов 28: ↑18 и ↓10+8
Комментарии20

Что такое RESTful на самом деле

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

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

Читать дальше →
Всего голосов 40: ↑37 и ↓3+34
Комментарии103

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

Время на прочтение3 мин
Количество просмотров42K


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

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

Курс затрагивает навигацию, работу с файловой системой, пейджеры, перенаправления и потоки, историю, псевдонимы и другие аспекты работы с Bash, которыми должен владеть любой уважающий себя программист.
Читать дальше →
Всего голосов 21: ↑20 и ↓1+19
Комментарии29

Забейте на ORM

Время на прочтение5 мин
Количество просмотров17K
Привет, Хабр!

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

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

* * *

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

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

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

Технические собеседования: советы

Время на прочтение5 мин
Количество просмотров38K
Привет, Хабр!

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

От себя хочу добавить, что не смотря на полезность этих советов, если описанный здесь человек — это не вы, то не нужно стараться эмулировать его.
Читать дальше →
Всего голосов 29: ↑22 и ↓7+15
Комментарии46

Обновленный Codebattle: игра для программистов

Время на прочтение2 мин
Количество просмотров28K
Привет, Хабр!



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

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

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

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

Подробности под катом →
Читать дальше →
Всего голосов 24: ↑21 и ↓3+18
Комментарии59

Codebattle: игра для программистов

Время на прочтение1 мин
Количество просмотров41K
Привет, Хабрахабр!

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

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


Читать дальше →
Всего голосов 35: ↑31 и ↓4+27
Комментарии58

Flux в картинках

Время на прочтение5 мин
Количество просмотров48K
Нам в Хекслете нравится ReactJS и Flux. Нам кажется, что это правильное направления развития. Мы любим функциональное программирование и чистые функции, и когда сложные архитектуры упрощаются за счет подходов, связанных с ними — это круто. По Реакту уже есть немало ресурсов в интернете, в том числе наш практический курс по React JS. Последний урок в этом курсе называется «Однонаправленное распространение данных», и там мы подходим к интересной теме, которая лежит в основе архитектуры Flux.

Flux это паттерн распространения даных в приложении. Flux и React выросли в стенах Фейсбука вместе. Многие используют их одновременно, но ничто не мешает использовать их по отдельности. Они были созданы для решения конкретной проблемы в Фейсбуке.

Мы используем React и Flux в своей браузерной среде разработки Hexlet IDE (она в опен-сорсе), в которой учащиеся выполняют практические задания. Flux одновременно очень популярен и очень непонятен для многих в мире веба. Сегодняшний перевод — попытка объяснить Flux на пальцах (ну, то есть картинках).

Проблема


Вначале нужно понять, какую проблему решает Flux.


Читать дальше →
Всего голосов 32: ↑30 и ↓2+28
Комментарии22

Я разработчик, но это не моя страсть

Время на прочтение9 мин
Количество просмотров33K
Привет, Хабр!

Команда нашего образовательного проекта Хекслет состоит из людей, которые любят программирование. Еще бы! Любим так, что последовательно выпускаем практические курсы для начинающих программистов (и не только начинающих на самом деле), при этом мы по-настоящему дорожим этим ремеслом, поэтому не любим курсы в стиле «принт, а теперь цикл, а это называется класс, животное-собака, поздравляю, кодинг это легко, правда?», а начинаем свои «Основы программирования» с абстракции, чистых функций, рекурсии и структур данных. Хотя, конечно, курсы «стань программистом за 2 недели» позволили бы заработать получить больше денег.

Испытывают ли разработчики Хекслета страсть к этой сфере — лучше спросить у каждого по отдельности. Но, думаю, вы встречали (возможно, вы сам такой?) по-настоящему страстных, полностью увлеченных своим делом разработчиков. Они готовы часами обсуждать фреймворки и технологии, художественным книгам они предпочитают книги о коде, фильмам и сериалам — доклады с конференций. Если при это они любят говорить и выступать, то становятся звездами митапов и конференций. А еще мы все знаем людей, которые начинают эту карьеру, потому что «программистам хорошо платят». Естественно, это два крайних обобщения, и в реальности люди в разной степени мотивированы разными целями и желаниями.

Считается, что хороший программист страстно любит свою работу. В вакансиях наряду с «гуру», «суперстар» и «ниндзя» часто встречается «… who is passionate about programming...» в качестве требования к кандидату. Сказать, что ты не очень-то кайфуешь от кодинга, но доволен работой и зарплатой, и на вас как минимум посмотрят косо. Однако, есть большая разница между «не испытывать страсть» и «ненавидеть и не хотеть».

Сегодняшний перевод эссе Антонина Януска посвящен программированию без страсти, программированию как исключительно работе. В наши дни подобное мнение это уже олдскул, чуть ли не архаизм. Сегодня не принято сильно отдалять работу от жизни. Но, возможно, вы увидите в этом мнении что-то близкое себе.

Я разработчик, но это не моя страсть


Я senior веб-разработчик в хьюстонском стартапе, и я должен вам кое в чём признаться. По моим наблюдениям, мало кто из разработчиков в таком признаётся.

Веб-разработка — не моя страсть.
Читать дальше →
Всего голосов 32: ↑26 и ↓6+20
Комментарии21

Как работают замыкания (под капотом) в JavaScript

Время на прочтение11 мин
Количество просмотров76K
Привет, Хабр!

Мы в Хекслете используем JavaScript не только для очевидных задач во фронтэнде, но и, например, для реализации браузерной среды разработки (наш опен-сорсный hexlet-ide) на React'е. У нас есть практический курс по JavaScript, и один из уроков там посвящен замыканиям. Это важная тема не столько в рамках JS, сколько в программировании вообще. Мы освещаем ее и в других курсах.

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


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

"use strict";
 
var myClosure = (function outerFunction() {
 
  var hidden = 1;
 
  return {
    inc: function innerFunction() {
      return hidden++;
    }
  };
 
}());
 
myClosure.inc();  // возвращает 1
myClosure.inc();  // возвращает 2
myClosure.inc();  // возвращает 3
 
// Ага, круто. А как это реализовано?
// И что происходит под капотом?
Читать дальше →
Всего голосов 54: ↑47 и ↓7+40
Комментарии11

Хекслет: новые курсы + вебинары про VIM, программирование, английский

Время на прочтение2 мин
Количество просмотров23K
Привет, Хабр!
Мы продолжаем публиковать образовательные материалы — новые курсы, и с недавнего времени, вебинары. Начнем со свежих курсов:

Цикл по PHP




  1. Введение в PHP
  2. PHP5: Императивное программирование

Eww, php! Нет, погодите. Это ведь Хекслет, поэтому под предлогом изучения мега-популярного языка мы рассказываем людям про SICP. Наш курс основан на SICP, и рассказывает о программировании, абстракциях, рекурсии, функциях высшего порядка. И никакого HTML и LAMP, это не «сделай свой первый сайт за 2 часа», это программирование. Первый курс будет продолжаться еще несколько недель, осталось покрыть такие темы как reduce, деревья, замыкания, внутреннее состояние и другие.
Читать дальше →
Всего голосов 22: ↑22 и ↓0+22
Комментарии13

Грязные секреты экспресс-курсов по программированию

Время на прочтение8 мин
Количество просмотров79K
Привет, Хабр!

Цель нашего образовательного проекта Хекслет — обучать программированию. Мы постоянно стараемся обратить внимание на то, что основы программирования, анализ и решение задач, понимание фундамента — это важно. Важнее, чем просто модный стек или технология. Поэтому наши курсы по PHP или Ruby основаны на SICP, а курс по базам данных на самом деле посвящен стандарту SQL-92, а не особенностям какого-нибудь MySQL.

В СНГ все активнее распространяется идея образовательных центров, где "можно стать программистом и устроиться на работу за 8 недель". На западе же — их сотни! Каждый обещает светлое будущее, многие твердят, что «любой может стать программистом». Обещают трудоустройство. На волне «coding is the new literacy» («кодинг это новая грамотность») тысячи людей записываются в так называемые «буткемпы». Это огромный бизнес, но, к сожалению, большинство таких буткемпов не готовит настоящих программистов.

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

Читать дальше →
Всего голосов 45: ↑27 и ↓18+9
Комментарии34

Как компьютеры складывают числа

Время на прочтение1 мин
Количество просмотров42K
Мы в Хекслете любим разрабатывать не только прикладные курсы, но и более фундаментальные (например, про алгоритмы или операционные системы). Но мы пока не спускались ниже уровня ОС в иерархии абстракций. А там, внутри, столько всего интересного! Для многих людей, да даже для многих профессиональных программистов остаются загадкой процессы, происходящие внутри микропроцессора, на уровне отдельных транзисторов.

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


Читать дальше →
Всего голосов 39: ↑38 и ↓1+37
Комментарии25

Практическое задание с разбором решения

Время на прочтение1 мин
Количество просмотров6.3K
Привет, Хабр!

Наш образовательный проект Хекслет продолжает развиваться. Мы готовим два важных изменения: 1 — вместо каталога разрозненных курсов мы будем публиковать «стеки», наборы последовательных курсов, готовящих специалистов в определенной области; 2 — добавляем элементы менторства и личного общения с преподавателями.

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

Всего голосов 14: ↑8 и ↓6+2
Комментарии2

Новые курсы на Хекслете: React, Ansible и другие

Время на прочтение2 мин
Количество просмотров16K
Привет, Хабр!

4 месяца назад мы писали о запуске бета-версии нового Хекслета — образовательной платформы для программистов с настоящей практикой в браузере. В ближайшие месяцы Хекслет выходит из беты, а сегодня я хочу рассказать о нескольких новых курсах. Но вначале вкратце об обновлениях сервиса:

  • Мы открыли публичный чат сообщества Хекслет в Слаке! Там можно общаться с другими юзерами и с преподавателями. Есть специальные каналы по отдельным курсам и темам, есть даже канал для изучения английского языка.
  • Оповещения о выходе новых уроков в ваших курсах теперь приходят на почту и появляются в уведомлениях на сайте.
  • На сайте теперь появляются запланированные курсы, которые находятся сейчас в разработке (подробнее о них ниже). На эти курсы можно подписаться заранее.
  • В разделе «Песочница» находятся бесплатные курсы в свободном формате от других пользователей Хекслета. Вы тоже можете создать свой практический курс!
  • За прохождения уроков начисляются баллы, а на главной странице можно видеть свою позицию в топе пользователей.

А теперь — новые курсы:

Основы Ansible




Системы управления конфигурацией и оркестрации – важные инструменты в арсенале современного разработчика и системного администратора. Цель этого курса – научиться работать с Ansible, популярным инструментом управления конфигурацией. Как мы писали ранее, Ansible активно используется при разработке и деплое Хекслета.
Читать дальше →
Всего голосов 33: ↑29 и ↓4+25
Комментарии12

Почему программировать так тяжело?

Время на прочтение7 мин
Количество просмотров132K
Привет, Хабр!

В феврале мы публиковали перевод крутой статьи "Почему научиться программировать так чертовски тяжело?", которую теперь показываем новичкам. Да, научиться программировать – это целая история, длинная, с кучей разных этапов, с эмоциональными взлетами и падениями. Мы все через это проходили (или еще проходим – так держать!).

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

Сегодня мы публикуем перевод заметки «Почему программировать так тяжело?». Тем, кто еще изучает основы программирования и разработки будет полезно узнать, что их ждет в будущем. А опытным разработчикам будет просто приятно взглянуть на реальность и покивать головой.




Много лет назад я думал, что программировать легко, но прошли годы, и я понял, что это не так. Всё из-за неверного восприятия того, что я считал программированием и того, какую работу выполняет программист.

Вначале я думал, что программировать – это только указывать компьютеру, что делать, эта часть процесса относительно лёгкая. После двадцати с лишним лет опыта, я действительно пришёл к выводу, что эта часть программирования достаточно лёгкая.
Читать дальше →
Всего голосов 89: ↑73 и ↓16+57
Комментарии111

Прототипы это объекты (и почему это важно)

Время на прочтение4 мин
Количество просмотров22K
JavaScript – один из главных языков нашего стека в Хекслете. Мы используем ReactJS и NodeJS в интерактивных частях платформы, и сделали вводный курс (более продвинутые – на подходе). Любовь к JS помогла опубликовать этот перевод хорошего эссе «Prototypes are Objects (and why that matters)».

Этот пост рассчитан на тех, кто знаком с объектами в JavaScript и знает, как прототип определяет поведение объекта, что такое функция-конструктор и как свойство .property конструктора относится к объекту, который он конструирует. Общее понимание синтаксиса ECMAScript 2015 тоже не помешает.

Мы всегда могли создать класс в JavaScript таким образом:
Читать дальше →
Всего голосов 17: ↑15 и ↓2+13
Комментарии11

Docker Workflow

Время на прочтение10 мин
Количество просмотров28K
Перевод инфраструктуры hexlet.io на Docker потребовал от нас определенных усилий. Мы отказались от многих старых подходов и инструментов, переосмыслили значение многих привычных вещей. То, что получилось в итоге, нам нравится. Самое главное – этот переход позволил сильно все упростить, унифицировать и сделать гораздо более поддерживаемым. В этой статье мы расскажем о той схеме для разворачивания инфраструктуры и деплоя, к которой в итоге пришли, а так же опишем плюсы и минусы данного подхода.
Читать дальше →
Всего голосов 23: ↑23 и ↓0+23
Комментарии17