• Ежегодно LinkedIn публикует списки «мягких» и «твёрдых» навыков, которые необходимы для продвижения по карьерной лестнице и востребованы рынком. В 2020 году в топ soft skills вошли креативность, убедительность и умение работать в команде, а самыми важными hard skills стали облачные вычисления и аналитическое мышление. А мы вместе с «Яндекс.Практикумом» решили узнать у нашей аудитории, как увеличивают свою суперсилу IT-специалисты, какие навыки нужны, чтобы котироваться на рынке, и как учиться новому в сфере своих компетенций. Результатами опроса мы поделимся в отдельном посте, а пока... погнали?
    Пройти опрос
  • Ежедневные сложности сениор-разработчика

    • Translation


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

    1. Планёрки


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

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

    Однако митинги и сосредоточенность — настоящие враги. Я уже сбился со счёту, сколько раз мой планировщик отвлекал меня, сообщая, что через 15 минут мне нужно явиться на планёрку, пока я пытался разобраться в сложной концепции, которую недавно придумал. Разумеется, я заранее знал, что будет планёрка. Когда я смотрел своё расписание в понедельник, чтобы оценить время, которое у меня будет на написание кода на этой неделе, у меня не было никаких сомнений: мои рабочие дни заполнены совещаниями.

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

    И знаете что? Эти знания в основном передаются на совещаниях. Поймите меня правильно, само по себе это хорошо.

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

    Настала пора ещё одного совещания.
    Читать дальше →
  • Абстракции в глазах смотрящего

    • Translation

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

    К сожалению, маловероятно, что эти споры будут когда-нибудь решены, по одной простой причине — универсального правильного ответа не существует. Простота кода в глазах смотрящего. Точнее, она сильно зависит от способности читающего воспринимать абстракции. То, что одному кажется чрезвычайным усложнением, идеально выразительно и понятно для другого. И оба имеют полное право на восхваление/порицание кода, а любые изменения идут одному из них в ущерб.
    Читать дальше →
    • +20
    • 3.6k
    • 2
  • Как побеждать в компьютерных играх [3]: теперь полная книга



      Мы наконец-то довыкладывали книгу «Играй на победу» известного киберспортсмена и гейм-дизайнера Дэвида Сирлина. Ниже — выжимка самого интересного из третьей части и ссылки на полные главы (очень много букв).

      В этой части: про стили игроков (найдите себя), про оптимальное поведение на турнирах, и про то, какие навыки нужны, чтобы стать №1 в игре. Плюс что делать в том маловероятном случае, когда вы уже мировой чемпион.
      Читать дальше →
    • Каспаров – Deep Thought. Игра в одни ворота


        История о нашумевшем противостоянии Каспарова с детищем IBM уже затрагивалась на GeekTimes Хабре. Мой комментарий хоть и набрал приличное количество плюсов, содержит несколько существенных неточностей, которые я уже исправить, увы, не в силах. Дабы внести ясность и расставить все точки над ё, было решено написать более подробную статью про этот знаковый матч. Однако в творческом процессе выяснилось, что затронутая тема гораздо обширнее, многограннее и интереснее, и охватывает куда больший период времени. А посему статья про матч 1997 года органично трансформировалась в серию публикаций о незаурядных победах и поражениях 13-го чемпиона мира в борьбе с искусственным разумом на протяжении 15 лет.
        С чего же всё начиналось
        • +71
        • 17.2k
        • 8
      • CAGR как проклятие специалистов, или ошибки прогнозирования экспоненциальных процессов


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

          • «У телефона слишком много недостатков, чтобы его можно было серьезно рассматривать, как средство коммуникации. Устройство не представляет для нас никакой ценности», — писали специалисты Western Union, тогда крупнейшей телеграфной компании в 1876 году. 
          • «У радио нет будущего. Летательные аппараты тяжелее воздуха невозможны. Рентгенография окажется обманом», — зажигал Уильям Томсон лорд Кельвин в 1899, и можно, конечно, шутить, что британские ученые зажигали еще в XIX веке, но мы еще долго будем измерять температуру в Кельвинах, и сомневаться в том, что многоуважаемый лорд был хорошим физиком, причин нет. 
          • «Кто, черт возьми, захочет слышать, как актеры говорят?», — говорил про звуковое кино Гарри Ворнер, основавший Warner Brothers в 1927, один из лучших экспертов по кино того времени. 
          • «Нет причин, по которым кому-то нужен домашний компьютер», — Кен Олсон, основатель корпорации Digital Equipment в 1977, незадолго до взлета домашних компьютеров…
          • В наше время ничего не поменялось: «Нет никаких шансов, что iPhone получит значительную долю рынка», — писал в USA Today гендиректор Microsoft Стив Балмер в апреле 2007 перед триумфальным взлетом смартфонов.

          Можно было бы радостно потешаться над этими прогнозами, если бы ваш покорный слуга сам, например, не ошибался довольно серьезно в своей области. И если бы не видел, как массово ошибаются многие и многие эксперты. В общем, наблюдается классическое «никогда такого не было, и вот опять». И опять. И опять. Более того, эксперты и специалисты обречены на ошибки во многих случаях. Особенно когда дело касается проклятых экспоненциальных процессов. 
          Кому интересно, добро пожаловать под кат!
        • Задача о трех горах, неуловимая теория ума и проблема периодизации детского развития



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

            Ребенку предъявляется макет с тремя горами. Он имеет возможность рассмотреть его со всех сторон. Потом ребенка сажают на стул с одной стороны от макета, с другой стороны усаживается кукла. Экспериментатор показывает ребенку фотографии макета в четырех разных ракурсах и спрашивает, что видит кукла.

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

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

            Откуда взялась эта ошибка?
            Читать дальше →
          • 15 когнитивных искажений

              Люди сталкиваются с большим объёмом информации, часть из которой достоверна, а часть освещает интересующую область односторонне, а иногда и сознательно искажённо.

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



              Начнём с того, что люди не всегда мыслят рационально. Это данность, которая обусловлена принципами работы нашего интеллекта, выработанными в процессе эволюции. Условно, представим разум, разделённый на две Системы. Устройство разума не так однозначно, но описанное упрощение позволит понять причины искажений. Первая система генерирует решения и гипотезы быстро «если коснёмся горячего предмета, то отдёрнем руку». Вторая, принимает решения путём логических рассуждений. Первая Система генерирует гипотезы, а вторая принимает их или отвергает. Такой способ мышления медленный и энергозатратный. Логическое рассуждение используется людьми реже и требует больших усилий. Это причина большинства когнитивных искажений.

              Так, галочка «по умолчанию согласен» позволила увеличить количество согласных на донорство до 86% в Швеции, тогда как в Дании, где при получении прав нужно самостоятельно ставить согласие, т. е. принимать осознанный выбор, количество согласных на донорство 4%.
              Читать дальше →
            • Литература на выходные: легкое чтение для технарей

                Летом мы публиковали подборку книг, в которой не было справочников или руководств по алгоритмам. Она состояла из литературы для чтения в свободное время — для расширения кругозора. В качестве продолжения мы подобрали научную фантастику, книги о технологическом будущем человечества и другие издания, написанные специалистами для специалистов.

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

                  С произведениями в жанре киберпанк знаком каждый — новые книги, кино и сериалы об антиутопическом мире технологий будущего появляются каждый год. Однако киберпанк — не единственный жанр современной фантастики. Расскажем о направлениях в искусстве, которые предлагают ему самые разные альтернативы и заставляют авторов-фантастов обращаться к самым неожиданным темам — от традиций народов Африки до «культуры шопинга».

                  Читать дальше →
                • Многопоточность в .NET: когда не хватает производительности



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

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

                    Под катом — видео и расшифровка моего доклада с конференции DotNext, где я разбираю несколько примеров, когда использование средств из стандартной библиотеки .NET (Task.Delay, SemaphoreSlim, ConcurrentDictionary) привело к просадкам производительности, и предлагаю решения, заточенные под конкретные задачи и лишённые этих недостатков.
                    Читать дальше →
                  • C++ против C#



                      Всем известно, что нет ничего глупее споров «какой язык лучше». Например, лучше для чего? Разные языки успешны в разных нишах — и бессмысленно делать категоричные выводы, не учитывая это.

                      Но что получится, если обратиться к опытным специалистам, которые сами всё это понимают, и попросить их всё-таки устроить холивар «C++ vs C#»? Оказывается, можно узнать много любопытных деталей. Слово «кроссплатформенный» можно по-своему применить к обоим языкам, но что это значит на практике? Активно ли сейчас развивается С++? Ломал ли C# когда-либо обратную совместимость? Ответы могут быть очевидны для тех, кто уже глубоко погружён в оба языка сразу, но таких людей немного — а все остальные узнают что-то новое.

                      Со стороны C++ поучаствовал Сергей sermp Платонов — председатель программного комитета конференции C++ Russia. Сторону C# представлял Анатолий Кулаков — он входит и в ПК конференции DotNext, и в число лидеров DotNetRu. А ведущим дискуссии, в жизни которого сосуществуют оба этих мира, стал Дмитрий mezastel Нестерук.

                      Читать дальше →
                    • «Освоить F# не сложнее, чем Entity Framework или WPF»: интервью со Скоттом Влашиным



                        Кого расспрашивать про F#, как не человека, посвятившего этому языку подробный сайт? Скотт Влашин создал ресурс «F# for Fun and Profit», знакомый многим хабравчанам: на Хабре переводили оттуда и серию статей «Функциональное мышление», и статью «Железнодорожно-ориентированное программирование».

                        А в ноябре он выступит в Москве на нашей конференции DotNext с докладом «The power of composition». И в преддверии этого выступления мы расспросили его про F# и вообще функциональное программирование.
                        Читать дальше →
                      • Мат слоном и конём. Метод TWIX


                          Ушенина (на фото слева, играет белыми) — Гиря (на фото справа, играет чёрными). Ничья.
                          Гран-При среди женщин, 4-й тур
                          6 мая 2013 года, Женева


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

                          Имея на две фигуры меньше, она нашла остроумный способ добиться ничьей с чемпионкой мира (на тот момент) Анной Ушениной. Ольга просто разменяла всё, что только можно и свела партию к эндшпилю «король + слон + конь VS король». Украинская шахматистка полсотни ходов безуспешно пыталась заматовать вражеского короля, после чего результат партии был признан ничейным.

                          Обидная ничья существенно повлияла на результат Ушениной в турнире. Она заняла 5-6 место, а выигрыш позволил бы разделить бронзу (3-5 место).
                          А если бы знала метод TWIX - всё было бы иначе
                        • Ctrl-Alt-Del: запланированное устаревание программистов

                          • Translation


                          Каждый год на нью-йоркской конференции PyGotham собирается около 600 программистов. Организаторы знают, что IT-индустрия представлена в основном белыми и мужчинами, поэтому прилагают особые усилия, чтобы собрать разнообразную линейку докладчиков. Они продвигают это мероприятие в списках рассылок для женщин и цветных, проводят семинары, всячески их заманивают. Все докладчики заполняют опросник, а организаторы отслеживают ежегодную статистику по демографическому разнообразию конференции.

                          Я работаю в комитете конференции, и по окончании нынешнего PyGotham понял, что не приложил никаких усилий для устранения недопредставленности одной конкретной демографической группы: пожилых кодеров. По сравнению с недопредставленностью женщин и меньшинств в сфере технологий, обычно ускользает от внимания дефицит программистов в возрасте за сорок. В Нью-Йорке для них нет ни встреч, ни списков рассылки, ни известных организаций, представляющих их интересы. В следующем году я обязательно буду искать возрастных программистов для выступления на PyGotham. Но пока я не знаю, где их искать.
                          Читать дальше →
                        • Спорт для программиста второй свежести

                            Около 30 лет назад я написал свою первую программу. Примерно тогда же впервые взял в руки штангу. Около 30 дней назад были приобретены PlayStation и PS VR.



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

                            Читать дальше →
                          • Почему Senior Developer'ы не могут устроиться на работу

                            • Translation


                            Сначала о том, как 5 месяцев назад я проходил собеседование на работу. Меня посоветовал друг, и прошло уже немало времени, с момента как я ответил рекрутеру. Я был поражён, как сильно весь процесс изменился за последние 5 лет.


                            После первичного созвона меня отправили на сторонний сайт (HackerRank), чтобы я решил три небольших задачки за 1 час. Для меня это был первый подобный опыт. Первые две задачки были простыми, но третья оказалась посложней. Когда время подошло к концу, моё решение не проходило все тесты, а только где-то 8 из 10 необходимых.

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

                              В этой статье я расскажу о том, как проект, в котором я работаю, превращался из большого монолита в набор микросервисов.

                              Проект начал свою историю довольно давно, в начале 2000. Первые версии были написаны на Visual Basic 6. С течением времени стало понятно, что разработку на этом языке в будущем будет сложно поддерживать, так как IDE и сам язык развиваются слабо. В конце 2000-х было решено переходить на более перспективный C#. Новая версия писалась параллельно с доработкой старой, постепенно все больше кода было на .NET. Backend на C# изначально ориентировался на сервисную архитектуру, однако при разработке использовались общие библиотеки с логикой, да и запускались сервисы в едином процессе. Получилось приложение, которое мы называли «сервисный монолит».

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

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


                              Читать дальше →
                              • +22
                              • 12.4k
                              • 3