• Хакатон как лекарство от творческой скуки

      image

      10 лет назад SEMrush начинался как стартап двух SEO-шников. Сегодня продукт предлагает около 40 инструментов для digital-маркетолога, и произошло это благодаря тому, что в команде всегда поощрялись новые идеи. Поддержание такой среды, в которой идеи драйвят процесс развития – одна из главных задач компании.

      Творчество вне рабочей недели


      Чтобы творчество не ограничивалось рамками рабочего распорядка, мы проводим небольшие «встряски»: мероприятия, которые помогают взбодрить людей, пробуждают в них стартаперский дух и мотивируют мыслить нестандартно.

      В 2016 и 2017 мы провели Неделю Инноваций. Участники делились на команды и создавали инструменты для решения внутренних задач. Каждый выбирал сам, над чем ему интереснее работать: над ботом, подсказывающим, сколько дней отпуска осталось, или над сервисом для создания визиток. Но такой формат получался несколько затянутым, и мы решили попробовать что-то новое.

      В этом году мы сократили сроки до выходных и подняли ставки: новенький iPhone X получал каждый участник победившей команды. Но что важнее – на этот раз целевой аудиторией проектов мы сделали наших клиентов. Это добавило командам ответственности и мотивации создать по-настоящему крутой продукт, который сделает профессиональную жизнь маркетологов проще.

      Наш хакатон


      Разработчики, UX-дизайнеры, аналитики и маркетологи объединились, чтобы воплотить в жизнь свои задумки. Итого у нас было 60 часов работы и 30 участников в 7 командах. Помня о Неделях Инноваций, мы знали, что у команд может не все пойти гладко. Однако в этот раз все дошли до конца и успели зарелизиться к понедельнику. Итак, вот результаты рабочих выходных наших ребят.
      Читать дальше →
    • Исчезающие фреймворки

      • Перевод
      Этот пятничный пост посвящен переводу интересной статьи, вышедшей вчера на Medium. Решил осваивать для себя новый жанр переводов, поэтому прошу сильно не пинать, если где-то что-то не так. А по возможности даже уведомлять об ошибках и опечатках в личку.

      Спасибо и хорошего прочтения!

      Читать дальше →
    • Привычки на службе у разработчика

      Первые шаги в карьере пройдены. Вы уже смело можете носить свитер, бороду и работать удаленно.

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


      Читать дальше →
      • –8
      • 2,1k
      • 3
    • Подборка свежих книг по Python для тех, кто только собрался его изучать

        image

        Всегда есть множество поводов выпустить книгу про IT и программирование. Взлетел курс биткоина — на рынке появляется десяток блокбастеров про технологию блокчейна и майнинг. Машина на Go обыграла человека в какую-нибудь интеллектуальную игру — получите кипу «самых полных руководств» по гугловскому языку.

        Но есть темы вечные. Одна из них — Python. Оно и понятно, язык прекрасно подойдёт тем, кто с программированием не знаком вовсе; изучить все основные библиотеки можно за пару недель, а возможности практически не ограничены. Автор блога GeekBrains Илья Бубнов заглянул на электронные полки магазина Amazon, чтобы посмотреть, что полезного было выпущено или перевыпущено по Python в первой половине 2018 года.
        Читать дальше →
        • +20
        • 12,1k
        • 4
      • Играй, но проверяй: как движок обсчитывает дизайнера



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

          Немного Делфи, и как из 60 процентов сделать 213
        • Swift 4.1: почему Apple переименовала flatMap в compactMap

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

          Меня зовут Александр Зимин, я iOS-разработчик в Badoo. Это перевод статьи моего коллеги Швиба, в которой он рассказал, что из себя представляла функция flatMap в Swift и почему одну из её перегрузок переименовали в compactMap. Статья полезна как для понимания процессов, происходящих в репозитории Swift и его эволюции, так и для общего развития.



          В функциональном программировании есть чёткое определение того, что должна представлять собой функция flatMap. Метод flatMap берёт список и преобразующую функцию (которая для каждого преобразования ожидает получить ноль или больше значений), применяет её к каждому элементу списка и создаёт единый (flattened) список. Такое поведение отличается от простой функции map, которая применяет преобразование к каждому значению и для каждого преобразования ожидает получить только одно значение.
          Читать дальше →
        • Ой, у вас баннер убежал!

          Ну. И что?
          Реклама
        • Создание шаблонов в IDE от Jetbrains

          • Tutorial

          Вступление


          Сегодня я хочу привести небольшой обзор-туториал темплейтов в ИСР от Jetbrains. Приведенные ниже примеры будут реализованы на Java в Intellij IDEA, но механизм создания одинаков и для других языков и продуктов компании. Думаю все программирующие в данной IDE пользовались встроенными шаблонами. Например когда вы пишете fori, нажимаете TAB или ENTER и у вас появляется цикл for в котором нужно указать имя переменной и условие, а остальной код генерируется за вас.

          for (int i = 0; i < ; i++) {   
                                         
          }    

          Или же знакомый всем java-программистам sout -> System.out.println(). Так вот, в Intellij есть поддержка создания своих шаблонов кода. На удивление не нашёл практически никакой инфы на русском и довольно мало на английском(благо есть неплохая документация) когда наткнулся на эту фичу, хотя это сильно ускоряет и помогает в разработке. И сейчас когда дошли руки решил написать небольшую статью об этом. Возможно опытным программистам она мало чем поможет, они и сами смогут разобраться во всём или же уже давно это юзают, но для всех остальных считаю вполне подойдёт. Итак приступим.
          Читать дальше →
        • РИТ++, Tech RaDarts и все-все-все

            Всем привет! РИТ++ отгремел, время подводить итоги и стремиться дальше. Как показал опрос, проведенный организаторами фестиваля, большинство участников приехали туда, чтобы расширить кругозор, найти новые инструменты, технологии, идеи и вдохновение. Под катом рассказываю о знаниях и практиках, которыми делились на РИТ++ 2018 мои коллеги, зачем устраивать соревнование по дартсу на стенде и при чём здесь технологический радар.


            Читать дальше →
          • 25 ошибок начинающего программиста

            • Перевод

            Научитесь выявлять их. Выработайте привычки избегать их.


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

            От переводчика


            Иногда бывает трудно объяснить простыми словами казалось бы банальные вещи: зачем использовать гит, в чем фишка инкапсуляции, зачем писать тесты, как планировать свой код, рефакторить чужой и т.д. Мне показалось, что в этой статье компактно собраны важные «гуманитарные» аспекты программирования. Что-то вроде морального кодекса, ориентира и мотиватора в принятии решений, связанных с написанием кода.

            Как бы это смешно не звучало, я работал над этим текстом с середины марта, стараясь подобрать подходящие формулировки и упростить для восприятия. Ещё пару дней воевал с хабра-редактором. Поэтому, если вы найдёте недочёты, прошу не винить меня в нерадении, а оповестить, я их сразу же исправлю. Я думал украсить статью картинками, но решил, что это только раздует её до совсем неприличных размеров. Приятного чтения.
            Читать дальше →
          • Конкуренция в сервлетах

            • Перевод
            Всем привет!

            Мы запускаем седьмой поток курса «Разработчик Java». Больше, чем за год существования этого курса он дорабатывался, оттачивался, добавлялось новое, что выходило за это время. Этот же поток отличается от остальных тем, что мы ввели новую систему ступеней разбив курс на три части и чуть увеличив его общую длительность. Так что теперь не надо будет выбиваться из сил пять месяцев подряд для получения сертификата, а спокойно выбрать периоды по два месяца и пройти обучения. Но это лирика, вернёмся к нашей традиции о разных полезностях предшествующих запуску курса.

            Поехали.

            1. Обзор


            Контейнер Java-сервлетов (или веб-сервер) многопоточен: одновременно может выполняться несколько запросов к одному сервлету. Поэтому при написании сервлета необходимо учитывать конкуренцию.

            Как мы уже говорили ранее, создается один и только один экземпляр сервлета, и для каждого нового запроса Servlet Container создает новый поток для выполнения doGet() или doPost() методов сервлета.

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

            2. Обзор потоков


            Читать дальше →
          Самое читаемое