Pull to refresh
27
0
Михаил Мельник @mike114

User

Send message

Я провёл более 600 технических интервью — и вот пять проблемных мест, которые я заметил у кандидатов

Reading time9 min
Views49K
Недавно я провёл 600-е собеседование на interviewing.io (IIO). Хотелось бы поделиться опытом, рассказать, как я подхожу к интервью, и пролить свет на типичные проблемы у кандидатов. Каждый интервьюер на IIO индивидуален, поэтому ваши результаты могут отличаться. У нас на платформе сформировалось замечательное сообщество, где каждый работает над улучшением своих знаний, навыков и результатов интервью.

Пробное интервью на interviewing.io


Мы оцениваем людей по трём четырёхбалльным шкалам. Оценка «один» означает плохой результат, а «четыре» — очень хороший. Я обычно вначале даю кандидату три балла, а затем прибавляю/отнимаю очки по мере интервью.

Каждый интервьюер отдаёт предпочтение какому-то одному аспекту. Лично я проявляю некоторую предвзятость в сторону скиллов «общение» («коммуникация») и «решение проблем», которые мы обсудим ниже.
Читать дальше →

Про новинки в .NET 5 и C# 9.0

Reading time21 min
Views86K
Добрый день.

В нашей компании .NET используется с самого его рождения. У нас в продуктиве работают решения, написанные на всех версиях фреймворка: от самой первой и до последней на сегодняшний день .NET Core 3.1.

История .NET, за которой мы пристально следим всё это время, творится на глазах: версия .NET 5, которую планируют релизить в ноябре, только что вышла в виде Release Candidate 2. Нас давно предупреждали, что пятая версия будет эпохальной: с нею закончится .NET-шизофрения, когда существовали две ветки фреймворка: классический и Core. Теперь они сольются в экстазе, и будет один сплошной .NET.

Вышедший RC2 уже можно начинать полноценно использовать – никаких новых изменений перед релизом больше не ожидается, будет только фикс найденных багов. Более того: на RC2 уже работает официальный сайт, посвящённый .NET.

А мы представляем вам обзор новшеств в .NET 5 и C# 9. Вся информация с примерами кода взята из официального блога разработчиков платформы .NET (а также ещё из массы источников) и проверена лично.
Читать дальше →

Квантовая теория. Вселенная из волн вероятностей

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

image Что будет, если по аналогии с двущелевым опытом, все пространство на пути частицы до экрана будет заполнено щелями?
Читать дальше →

Эта упущенная переменная может стать ключом к пандемии

Reading time19 min
Views44K
Проект «Онтол» — это гибридная человеко-машинная сеть коллективного мышления, которая на выходе выдает структурированную, отфильтрованную и верифицированную информацию по самым значимым вопросам (присоединяйтесь к новостному каналу в телеграм). Предлагаем вашему вниманию перевод статьи, под которой «подписался» один из самых влиятельных инвесторов Кремниевой долины Пол Грэм.

image

Есть что-то странное в этой коронавирусной пандемии. Даже после нескольких месяцев обширных исследований, проведенных мировым научным сообществом, многие вопросы остаются открытыми. Почему, например, именно в северной части Италии смертей было намного больше, чем в других частях страны? 25 000 смертей (из 36 000) пришлись всего на три смежных региона на севере Италии. В Ломбардии умерло около 17 000 человек. Почти все эти смерти пришлись на первые месяцы после вспышки. Что произошло в апреле в Гуаякиле (Эквадор), когда большое количество людей умерло настолько быстро, что их тела были брошены на тротуарах и улицах? Почему весной 2020 года на столь небольшое число городов пришлась значительная доля смертей во всем мире, в то время как многие другие города с аналогичной плотностью, погодой, возрастным распределением и характером поездок избежали такой участи? Чему мы можем действительно научиться у Швеции, ситуацию в которой одновременно называют и большим успехом (из-за низкого числа случаев заболевших и умерших) и провалом (из-за высокой смертности в начале пандемии) при том, что в Европе уже начинается вторая волна? Почему широко обсуждаемые ранее прогнозы властей Японии не оправдались? Подобных странных примеров становится все больше.

За последние девять месяцев я слышал много объяснений различий в траекториях распространения: погода, доли пожилого населения, витамин D, прежний иммунитет, коллективный иммунитет – ни одно из них не объясняет ни периода, ни масштаба этих колебаний.
Читать дальше →

AnLinux: простой способ установить Linux-окружение на Android-телефон без рута

Reading time3 min
Views174K


Любой телефон или планшет, работающий на Android, — это устройство, которое управляется ОС Linux. Да, очень модифицированной ОС, но все же основа Android — ядро Linux. Но, к сожалению, для большинства телефонов опция «снести Android и поставить дистрибутив по своему вкусу» недоступна.

Поэтому, если хочется Linux на телефоне, приходится покупать специализированные гаджеты вроде PinePhone, о котором мы уже писали в одной из статей. Но есть еще один способ получить Linux-окружение практически на любом смартфоне, причем без root-доступа. Поможет в этом инсталлятор, который называется AnLinux.
Читать дальше →

Не нужно делать из фреймворков культ — они не настолько сложны, чтобы делить людей на React и Angular разработчиков

Reading time6 min
Views21K


Недавно меня позвали гостем в «Тяжелое утро с Holy.js», чтобы хорошенько пропесочить за мою статью про глупцов-фронтендеров. Мы обстоятельно поговорили, и один из аргументов был такой — если наши js фреймворки жрут неоправданно много на простых задачах — просто не используй их. Если тебе просто надо порендерить четыре формы, то тебе не нужен ни реакт, ни тайпскрипт, ни вебпак — ничего. Создаешь три файлика .html, .css и .js — вот тебе и приложение.

Ничего не надо никуда билдить, никакого стат анализа, и никакой прожорливой и тормозной ноды на твоей машине — все быстро и просто. Так можно строить и достаточно большие приложения — ведь тот же vs code вполне себе может тайпчекать твой js. Другие проблемы, которые можно решать большими фронтенд инструментами во-первых часто выдуманы их создателями, а во вторых если и создают большую боль — то только на действительно больших приложениях.
Читать дальше →

За двумя мобильными сервисами: HMS и GMS в одном приложении

Reading time10 min
Views8.1K


Привет, Хабр! Меня зовут Андрей, я делаю приложение «Кошелёк» для Android. Уже больше полугода мы помогаем пользователям смартфонов Huawei оплачивать покупки банковскими картами бесконтактно — через NFC. Для этого нам потребовалось добавить поддержку HMS: Push Kit, Map Kit и Safety Detect. Под катом я расскажу, какие проблемы нам пришлось решать при разработке, почему именно так и что из этого вышло, а также поделюсь тестовым проектом для более быстрого погружения в тему.
Читать дальше →

Никто не умеет управлять программистами — и все придумывают костыли, вместо решений

Reading time6 min
Views31K


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

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

Если коротко — все ещё хуже, чем выглядело со стороны.
Читать дальше →

Балансировка красно-чёрных деревьев — Три случая

Reading time3 min
Views54K
Двоичные деревья поиска — эта структура данных для хранения элементов с возможностью быстрого поиска. Идея проста и гениальна: «меньше – налево, больше – направо». На этом простота заканчивается и начинаются сложные вопросы балансировки дерева, чтобы оно не превратилось в длинную ветку.




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


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

Бесшовные A/B-обновления в Android: как они устроены

Reading time6 min
Views23K
image

Всем привет. В SberDevices наша команда занимается разработкой различных железок и прошивок для них на базе AOSP.

Начиная с Android 8 (у некоторых вендоров с 7.1) в системе появился новый механизм накатки OTA-обновлений, т. н. Seamless A/B OTA Updates — бесшовные обновления. В этом посте я опишу общие принципы его работы, рассмотрю механизм с точки зрения разработчика, а также проведу сравнение со старым (будем его называть recovery-based) подходом применения обновлений. Всё нижесказанное будет справедливо только для чистого AOSP, т. к. конкретная реализация зависит от вендора.
Читать дальше →

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

Reading time5 min
Views63K


Мне нравятся пост-ковидные правила игры. Добрая половина вакансий — удаленка. Мы больше не ищем в описании слова «гибкий график» — это теперь само собой разумеется. Никому не придет в голову заставить программиста строго сидеть за компом от 9 утра до шести вечера. Боссы теперь уважают наше время и личное пространство. И нам все еще очень хорошо платят.

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

Когда я первый раз получил оффер на ремоут, я так и подумал. В том, как офис пожирает лишнее время очень простая арифметика — конкретно на работу тратишь часа четыре, еще четыре ты страдаешь фигней, два тратишь на дорогу и час вычеркиваешь из каждого утра — он хоть и свободный, но бесполезный. Около восьми часов ты должен спать. У тебя остается всего пять часов на свои дела по дому и общение с семьей. Это ничтожно мало — ведь ты ещё обычно и зверски устал, когда вернулся.
Читать дальше →

Alt: City Online. Как я в одиночку создавал «Gta Online» для мобильных устройств. Часть 1

Reading time6 min
Views17K
Возможно ли в здравом уме замахнуться на подобный проект в одного, и надо ли оно вообще? Спойлер: да (длинный пост с картинками и видео).


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

История изобретения флешки в лицах и занимательных фактах

Reading time16 min
Views28K

Случаи, когда изобретатель создает сложное электротехническое устройство с нуля, полагаясь при этом исключительно на собственные изыскания, чрезвычайно редки. Как правило, те или иные девайсы рождаются на стыке сразу нескольких технологий и стандартов, созданных разными людьми в разное время. Для примера возьмем банальную флешку. Это портативный носитель данных, выполненный на базе энергонезависимой памяти NAND и оснащенный встроенным USB-портом, который используется для подключения накопителя к клиентскому устройству. Таким образом, чтобы понять, как подобный девайс в принципе мог появиться на рынке, необходимо проследить историю изобретения не только самих чипов памяти, но и соответствующего интерфейса, без которого привычных нам флешек попросту бы не существовало. Давайте же попробуем это сделать.
Читать дальше →

Программисту. 10 ценных GitHub-репозиториев

Reading time3 min
Views46K
GitHub — это платформа, дающая программистам отличные инструменты для организации работы над кодом. Но в GitHub-репозиториях, помимо кода, можно найти массу ценных учебных материалов. Я, например, занимаюсь разработкой ПО и постоянно ищу репозитории, которые могут чем-то мне пригодиться. Вот 10 моих любимых GitHub-проектов.


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

Симуляция подъёмной силы Ньютона методом частиц на CUDA

Reading time22 min
Views15K

https://www.youtube.com/playlist?list=PLwr8DnSlIMg0KABru36pg4CvbfkhBofAi


Как-то на Хабре мне попалась довольно любопытная статья “Научно-технические мифы, часть 1. Почему летают самолёты?”. Статья довольно подробно описывает, какие проблемы возникают при попытке объяснить подъёмную силу крыльев через закон Бернулли или модель подъёмной силы Ньютона (Newtonian lift). И хотя статья предлагает другие объяснения, мне бы всё же хотелось остановиться на модели Ньютона подробнее. Да, модель Ньютона не полна и имеет допущения, но она даёт более точное и интуитивное описание явлений, чем закон Бернулли.


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


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


Перед тем как мы начнём, я бы хотел сразу обозначить, что это статься не о физике самой модели. Эта статья о GPGPU-программировании. Мы не будем рассматривать физические свойства самой модели, потому что она груба и не подходит для настоящих расчётов. И всё же, эта неточная модель даёт куда более интуитивное описание явления подъёмной силы, чем закон Бернулли.

Движок, который смог: как Chromium удалось захватить 90% рынка браузеров

Reading time14 min
Views62K

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

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

У веб-сообщества есть достаточно причин опасаться отсутствия браузерного разнообразия. После того, как Internet Explorer захватил в начале 2000-х долю 90% от рынка браузеров, для выпуска нового браузера его разработчикам потребовалась добрая половина десятилетия. В тот период развитие веба остановилось, и начали возникать проблемы с безопасностью. Из-за этого веб стал хуже, поэтому мы часто стремимся к тому, чтобы браузеры конкурировали, а не монополизировали веб.
Читать дальше →

Жизнь под давлением: как устроены водонапорные башни

Reading time10 min
Views74K
Этим летом в городе Слободском Кировской области частнику продали местную достопримечательность — водонапорную башню, которую больше ста лет назад возвел знаменитый вятский архитектор Иван Чарушин. В советское время в ней располагались магазины, а в начале 2000-х работало местное телевидение. Новый владелец планирует открыть там музей, а часть помещений перепрофилировать под гостиничные номера.

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

Читать дальше →
Привет, Хабр! Мы – GetCourse, SaaS-платформа для онлайн-школ. В прошлом посте мы поговорили об устройстве онлайн-школ. Сегодня хотим затронуть технический аспект нашей работы и рассказать о задачах, которые перед собой ставим и считаем достаточно сложными.

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

Полируем UI в Android: StateListAnimator

Reading time5 min
Views6.7K
Привет, Хабр! В преддверии старта курса «Android Developer. Professional» мы подготовили для вас перевод еще одного интересного материала.




Большую часть времени разработки нашего Android-приложения мы тратим отнюдь не на работу над пользовательским интерфейсом — мы просто накидываем вьюх и начинаем писать код. Я заметил, что большинство из нас не особо заботится о пользовательском интерфейсе. И я считаю, что это в корне неправильно. Разработчики мобильных приложений должны заботиться также и о UI/UX. Я не говорю «будьте экспертом в мобильном UI», но вы должны понимать язык дизайна и его концепции.

Ранее я написал статью о тенях в материальном дизайне и получил много хороших отзывов. Я хочу поблагодарить всех вас. «Освоение теней в Android» рассказывает о высоте (elevation) и тени (shadow) в Android. Там же я показал, как дополнял ими свою UI библиотеку с открытым исходным кодом. (Scaling Layout).

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

Отчаянный поиск квадрокруга

Reading time19 min
Views31K

Поиск таинственной математики, на которой основана фигура в iOS




Это история о том, как один инженер Figma искал идеальный ответ на программистскую задачу.



В знаменитом интервью 1972 года Чарльз Имз кратко ответил на несколько фундаментальных вопросов о природе дизайна. Отвечая на первый вопрос, он определил дизайн как «план компоновки элементов для достижения определённой цели».

Остальные ответы тоже очень лаконичны, вплоть до метафор. Но когда Имза спросили о роли ограничений дизайна, он остановился и выдал самый длинный и самый продуманный ответ за всё интервью: «Один из немногих эффективных ключей к проблеме дизайна — это способность дизайнера распознавать как можно больше ограничений; его готовность и энтузиазм к работе в этих ограничениях».

Хотя я не дизайнер по профессии — я разработчик Figma, веб-инструмента совместного проектирования — несложно заметить, что замечания Имза относятся и к моей работе. Вместо элементов UI я компоную выраженные в коде математические концепции для создания инструментов и функций. И ограничения времени, простоты, поддержки и даже эстетики играют похожую доминирующую роль в моей работе.
Читать дальше →

Information

Rating
Does not participate
Location
New South Wales, Австралия
Date of birth
Registered
Activity