• Выгореть. Восстановиться. Начать сначала. Или нет?

    П — Я поеду в Таиланд на 2 недели.
    А — Природу смотреть?
    П — Женщин иметь.
    А — Выгорел?
    П — Выгорел.

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

    image
    Читать дальше →
  • Как проектировать большие и сложные веб-таблицы

    • Перевод
    image

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

    В этом случае дизайнер сталкивается со многими проблемами. Например, сопоставление дизайна с существующими фронт-енд фреймворками или борьба с «неудобными» данными, которые разрушают макет. Мы преодолеем эти проблемы с помощью следующих шагов: систематизируем потребности, станем атомарными и определим взаимодействие.
    Читать дальше →
  • Как стать лучшим в мире в какой-то нише

    • Перевод


    Комбинация хорошо развитых навыков сделает вас уникальным, даже если по каждому из них вы далеко не гений


    Давайте подумаем, что нужно, чтобы стать игроком НБА. Большинство профессиональных баскетболистов оттачивали мастерство практически с младенчества. Годы бесконечных тренировок, сборов и игр помогли им отработать различные важные в этом спорте навыки: броски, ведение мяча, пасы, защита и так далее.

    Как вы можете себе представить, вероятность стать игроком НБА очень низкая: всего есть 30 команд по 15 игроков в каждой, что дает в общей сложности около 450 человек — не так уж много, особенно если учесть, что в молодежный баскетбол играет более полумиллиона ребят. Несложные подсчеты показывают, что меньше чем один из тысячи становится профессионалом.


    Источник: Томас Пуэйо

    Так что давайте будем реалистами: вы не попадете в НБА, не станете ни президентом, ни величайшим писателем в мире, ни лучшим шахматистом, ни самым искусным оратором. Вы никогда не станете лучшим в мире в каком-либо конкретном навыке: всегда найдется кто-то, кто выкладывается больше, у кого лучше генетические данные, кому больше везет (или всё сразу).


    Большинство людей (в синей области) слабо владеют конкретным навыком. Если немного постараться, вы быстро попадете в 10% лучших (зеленая область). Но как только вы присоединились к этой элите, двигаться дальше становится всё сложнее, потому что ваши конкуренты всё чаще — люди, глубоко преданные этому делу.

    Пытаться стать лучшим в одном деле — не самый разумный путь к успеху. Лучше приложить усилия в освоении сочетания навыков. То есть, решением является комбинирование навыков — концепция, популяризируемая Скоттом Адамсом. Принцип ее работы следующий.

    Переведено в Alconost
    Читать дальше →
  • Английский для собеседований в IT-компании: что нужно для старта карьеры?

      Собеседование на английском — дело непростое. Но хорошее планирование и подготовка ключевых моментов сделают этот процесс более приятным и безобидным.


      Читать дальше →
    • Почему они мне не перезвонили-6, или будь внимателен, юзернейм

      Когда почти год назад я писал статью "Как экономить свое и чужое время на собеседованиях, или немножко о заблуждениях HR", я исходил из предположения о добропорядочности и заинтересованности двух сторон в длительном сотрудничестве (взаимный выигрыш, win-win, вот это все).

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

      • если работник в целом еще остается заинтересован в найме на своих или хотя бы приемлимых условиях (хотя в Харькове и Краснодаре есть дополнительные опции);
      • то HR со стороны работодателя может быть в этом совершенно не заинтересован.

      TL:DR Дальше про интересные старые и новые методы оптимизации до, во время и после интервью и, как всегда, поток сознания. Можно не читать и сразу минусовать.


      Читать дальше →
    • Перестаньте заниматься не своей работой

        Вы легко отзываетесь на просьбу помочь? Вам не трудно сделать пару лишних задач? Вы молча переделываете не очень хорошую работу за коллегами или подчинёнными? Скорее всего, ваша рабочая нагрузка заставляет вас «перегреваться». 

        Нередко в малом бизнесе мы занимаемся всем подряд, не замечая того: тестовый сервер будет перезапущен, о чём мы сами и сообщим в чате клиенту вместо инженера; баннер повесить — да погоди, у меня есть доступ к админке, готово; код аналитики — да давай я тебе Tag Manager повешу и покажу, как через него любые теги размещать; вот тут в выгрузке были подозрительные пики и провалы, я тебе сделал дополнительную детализацию… Особенно тяжело ситуация обстоит в компаниях, которые активно работают по заявкам клиентов, и каждый сотрудник берёт в работу самые разноплановые задачи. Как итог: усталость, выгорание, ошибки и завалы собственных невыполненных задач. Знакомо? Давайте искать причины и выходы под катом.

        Читать дальше →
      • Нетривиальная расстановка элементов на flexbox без media-запросов

        Казалось бы, какой пост может быть о CSS Flexbox в 2019 году? Верстальщики уже несколько лет активно используют данную технологию, и все тайны должны быть разгаданы.

        Однако, недавно у меня возникло стойкое ощущение, что нужно поделиться одним нетривиальным и, на мой взгляд, полезным приёмом, связанным с flexbox. Написать пост побудил тот факт, что ни один знакомый (из учеников, верстальщиков и просто людей, близких к web), не смог решить задачку, связанную с flexbox, хотя на это нужно всего 4-6 строк.
        Читать дальше →
      • Эволюция самого популярного инструмента любого разработчика (в Visual Studio)

        В любой среде разработки есть инструмент с названием «Output». Нет нужды описывать что он делает, поскольку абсолютно все разработчики его используют в своей работе ежедневно. Он прост и консервативен.

        По сути не менялся десятилетиями и до этих пор выглядит как то так:


        Текст, текст и еще раз текст. Много текста...

        Даже в этом крошечном примере не сразу видно где строка с ошибкой. Для того чтобы это понять, нужно приложить усилия и потратить время. Просто потому что нужно читать текст и искать в нем слова “error”, “exception” или “warning”. Программисту искать, а заказчику платить за потраченное на это время.
        Читать дальше →
      • Проектирование интернет-магазина для SEO: (теория + чеклист)

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

        Статья разбита на две части.
        Теория: о том, что в принципе можно учесть в SEO интернет-магазина и как это работает.
        Чек-лист: 80 пунктов, по которым легко проверить, насколько удобно будет продвигать ваш сайт после разработки

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

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

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

          Читать дальше →
        • 5 заповедей TypeScript-разработчика

          • Перевод

          image


          Всё больше и больше проектов и команд используют TypeScript. Однако просто применять TypeScript и выжимать из него максимум пользы — это очень разные вещи.


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

          Читать дальше →
        • Руководство по логированию в Node.js

          • Перевод

          Первая задача, с которой чаще всего сталкиваются разработчики, начинающие программировать на JavaScript, – как регистрировать события в журнале консоли с помощью метода console.log. В поисках информации по отладке кода на JavaScript вы найдёте сотни статей в блогах, а также инструкций на StackOverflow, советующих «просто» вывести данные в консоль через метод console.log. Это настолько распространённая практика, что пришлось ввести правила для контроля качества кода, подобные no-console, чтобы не оставлять случайные записи из журнала в коде для продакшена. Но что делать, если нужно специально зарегистрировать какое-нибудь событие, чтобы предоставить дополнительную информацию?

          В этой статье рассматриваются различные ситуации, в которых требуется вести логи; показывается разница между методами console.log и console.error в Node.js и демонстрируется, как передать функцию логирования библиотекам, не перегружая пользовательскую консоль.
          Читать дальше →
          • +38
          • 11,3k
          • 6
        • Оптимизация запросов базы данных на примере B2B сервиса для строителей

            Как вырасти в 10 раз под количеству запросов к БД не переезжая на более производительный сервер и сохранить работоспособность системы? Я расскажу, как мы боролись с падением производительности нашей базы данных, как оптимизировали SQL запросы, чтобы обслуживать как можно больше пользователей и не повышать расходы на вычислительные ресурсы.
            Читать дальше →
          • Подборка полезных слайдов от Джулии Эванс

            • Перевод
            Перевели новую порцию слайдов. Права доступа в Unix, файловые дескрипторы, потоки, магия proc. И на закуску пара советов о том, как общаться, когда ты не согласен. А вдруг пригодятся =)



            Читать дальше →
          • Делаем действительно умный поиск: пошаговый гайд

              Поиск в корпоративной информационной системе — уже от самой этой фразы вязнет во рту. Хорошо если он вообще есть, о положительном user experience можно даже не задумываться. Как перевернуть отношение пользователей, избалованных поисковыми системами, и создать быстрый, точный, понимающий с полуслова продукт? Надо взять хороший кусок Elasticsearch, горсть интеллектуальных сервисов и замешать их по этому гайду.


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


              При этом сама фраза «Умный поиск» уже превратилась в баззворд и используется к месту и нет. Что же такого должна делать поисковая система, чтобы её можно было считать умной? Ультимативно это можно описать как выдачу результата, который на самом деле нужен пользователю, даже если этот результат не совсем соответствует тексту запроса. Популярные поисковые системы вроде Google и Яндекс идут дальше и не просто находят нужную информацию, а напрямую отвечают на вопросы пользователя.

              Окей, сразу на ультимативное решение замахиваться не будем, но что можно сделать чтобы приблизить обычный полнотекстовый поиск к умному?

              Читать дальше →
              • +21
              • 5,3k
              • 3
            • Тепловая карта кликов — как пользователи ведут себя на сайте

                Сегодня у нас в руках множество инструментов, исследований и статей по ux/ui и том как сайт будут читать и идентифицировать.


                Но главный вопрос остаётся открытым.


                А знаете ли именно вы, куда пользователи вашего (или сделанного вами) сайта тыкают?



                Сегодня поговорим о кнопках


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

                Читать дальше →
              • Это Спарта

                  Эта публикация — про то, как программист помогает создавать суррогаты.

                  Суррогат – это когда сделали не то, что нужно бизнесу. Или не так, как нужно бизнесу.

                  Суррогаты – это самое страшное зло, происходящее сейчас с российским бизнесом и государственным управлением. Суррогаты – это лучший в мире киллер эффективности. Что особенно приятно, мы, программисты, на этот раз не в стороне – мы на самой оси зла.

                  С чего все начинается


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

                  Программист, допустим, толковый – он понимает, что предлагаемая доработка – суррогат.

                  Вариантов развития событий много, я приведу некоторые из них:
                  1. Программист говорит: согласуй с моим или своим начальником, тогда сделаю;
                  2. Программист говорит: напиши мне задачу/поручение/служебную записку, на бумаге или в информационной системе;
                  Читать дальше →
                • 10 проблем, которые я решил напоминалками на смартфоне

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

                    Возможно, вы задумаетесь о чём-то важном, читая этот список.

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

                    О чём нужно помнить, чтобы жизнь была удобнее и полноценнее?
                    Читать дальше →
                  • Пять ошибок, которые я допустил как ведущий разработчик

                    Ведущий разработчик — не зря «ведущий». Эту фраза была услышана на одной из конференций по IT-менеджменту и вызвала вопрос, а почему собственно «не зря»? Именно этот вопрос и подтолкнул меня написать эту статью.

                    image

                    Оценивая свой опыт, могу сказать, что основные характеристики ведущего разработчика можно свести к 3 пунктам:

                    • Думает не только о своей грядке, но и обо всем огороде (это ключевое качество). Готов выстраивать стандарты и следить за их исполнением.
                    • Отлично знает свой язык и фреймворк, превосходно разбирается в архитектуре, имеет солидный опыт работы за плечами. «Солидность» не обязательно означает время проведенное за клавиатурой, важно количество и качество написанных проектов.
                    • Хочет и может аргументированно доносить свое мнение, отстаивать его и искать компромисс при необходимости.

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

                    Одной из сильнейших его сторон является целостная картина мира, в которой совершенно точно определено, что такое хорошо и что такое плохо. Это позволяет быстро принимать решения и без колебаний воплощать их в жизнь. Эта уверенность заразительна и позволяет завоевать авторитет в глазах менеджеров, у которых уже не все так просто и понятно. Ведь кроме технических «лучше», «надежнее» и «быстрее», на уровне менеджмента появляются всякие «заказчик не захочет», «инвестор не оценит» и всевозможные «Вася обидится». Когда менеджер слышит «нет, тут нужно делать только так, потому что 1, 2 и 3» — он вздыхает с облегчением. Выбор становится очевиден и ответственность падает с его плеч.

                    Чуть более года назад я ушел с позиции ведущего разработчика окончательно и решил сделать небольшую ретроспективу своих самых досадных ошибок. Итак:

                    Ошибка номер 1. Оверменеджмент


                    Читать дальше →
                  • Топ ошибок со стороны разработки при работе с PostgreSQL

                      HighLoad++ существует давно, и про работу с PostgreSQL мы говорим регулярно. Но у разработчиков все равно из месяца в месяц, из года в год возникают одни и те же проблемы. Когда в маленьких компаниях без DBA в штате случаются ошибки в работе с базами данных, в этом нет ничего удивительного. В крупных компаниях тоже нужны БД, и даже при отлаженных процессах все равно случаются ошибки, и базы падают. Неважно, какого размера компания — ошибки все равно бывают, БД периодически обваливаются, рушатся.



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


                      О спикере: Алексей Лесовский (lesovsky) начинал системным администратором Linux. От задач виртуализации и систем мониторинга постепенно пришел к PostgreSQL. Сейчас PostgreSQL DBA в Data Egret — консалтинговой компании, которая работает с большим количеством разных проектов и видит много примеров повторяющихся проблем. Это ссылка на презентацию доклада на HighLoad++ 2018.
                      Читать дальше →
                      • +75
                      • 22,4k
                      • 8