Pull to refresh
26
0
olegi @olegi

Пользователь

Send message

Подготовка к собеседованиям в IT-гиганты: как я преодолела проклятье алгоритмического собеседования

Reading time12 min
Views208K

Дисклеймер:


Я не программирую с трёх лет, не знаю наизусть Кнута, не являюсь призёром олимпиад по информатике и чемпионатов по спортивному программированию, не училась в MIT. У меня за плечами образование по информатике и 6 лет опыта в коммерческой разработке. И до недавнего времени я не могла пройти дальше первого технического скрининга в IT-гиганты из FAANG (Facebook, Amazon, Apple, Netflix, Google и подобные), хотя предпринимала несколько попыток. 

Но теперь всё изменилось, я получила несколько офферов и хочу поделиться опытом, как можно к этому прийти. Речь пойдёт о позиции Software Engineer в европейских офисах перечисленных компаний.
Читать дальше →

Почему Wi-Fi не будет работать, как планировалось, и зачем знать, каким телефоном пользуется сотрудник

Reading time15 min
Views181K


Привет!

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

Для разминки — небольшая задачка. Представьте себе беспроводную сеть Wi-Fi, состоящую из точки доступа (AP) и двух одинаковых клиентских устройств (STA1 и STA2).

Читаем надписи на коробках:
AP: 1733,3 Мбит/c
STA1, STA2: 866,7 Мбит/c

Внимание, вопрос. Оба клиента одновременно начинают загружать с сервера большой файл. На какую пропускную способность может рассчитывать каждое из устройств?
Читать дальше →

Где порешать реальные задачи для кандидатов в Яндекc: тренировка на Codeforces и разбор

Reading time43 min
Views77K
Хабр, это снова я, Алексей Рак (фото не мое). В прошлом году, помимо основной работы, мне довелось стать одним из авторов задач для кандидатов в Яндекс. Сегодня наша команда впервые за долгое время публикует на Хабре реальные задачи для разработчиков, которые устраиваются в компанию. Эти задачи использовались до февраля 2020 года при отборе на стажировку для бэкендеров. Решения проверял компьютер. Сейчас кандидатам достаются похожие задания.

Разборы и код сознательно спрятаны в спойлеры. Если вы готовитесь к собеседованиям в большие IT-компании, попробуйте решить одну или несколько задач, прежде чем смотреть разбор. Отправить решение для проверки можно на Codeforces — ответ придёт сразу же (ссылка на Codeforces и примечание). Код представлен на Python, C++ и Java. Важно: авторский «олимпиадный» код не предназначен для продакшена, он написан исходя из того, что система будет проверять его автоматически.
Читать дальше →

Собеседование: Swift. Вопросы и ответы

Reading time13 min
Views61K
Языку программирования Swift всего четыре года, но он уже становится основным языком разработки для iOS. Развиваясь до версии 5.0, Swift превратился в сложный и мощный язык, отвечающий как объектно-ориентированной, так и функциональной парадигме. И с каждым новым релизом в нем добавляется еще больше возможностей.

Но насколько хорошо вы на самом деле знаете Swift? В этой статье вы найдете примеры вопросов для собеседования по Swift.

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

Redux Toolkit больше не нужен?

Reading time6 min
Views18K
Проблема огромного количества boilerplate-кода при использовании Redux известна всем, каждый ее решает как может. И мы на разных проектах использовали разные костыли и велосипеды, не теряя при этом надежду найти что-то стандартизированное и удобное. Чуть больше года назад мы отчаялись в своих поисках и всерьез взялись за решение проблемы. Что из этого получилось — описано ниже.
Читать дальше →

Смотри меня полностью: выжимаем максимум из live video на мобильных платформах

Reading time20 min
Views22K


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

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

Разберём это на примере конкретных приложений: мобильного клиента «Одноклассников» (где видео воспроизводят) и OK Live (где трансляции стримят с телефона в 1080p). Здесь не будет мастер-классов о том, как по ссылке проиграть видео, с примерами кода. Рассказ пойдёт о том, как видео выглядит изнутри, и как, зная общую архитектуру видеоплееров и видеостриминга, можно разобраться в любой системе и сделать её лучше.

В основе материала — расшифровка доклада Александра Тоболя(@alatobol) и Ивана Григорьева(@ivan_a) с конференции Mobius.



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

Эффективное использование libdispatch

Reading time8 min
Views2.5K
(Прим.перев.: автор оригинального материала — пользователь github и twitter Thomas @tclementdev. Ниже в переводе сохранено повествование от первого лица, которое использует автор.)

Думаю, что большинство разработчиков использует libdispatch неэффективно из-за того как её представили сообществу, а также из-за запутанной документации и API. Я пришел к этой мысли после чтения обсуждения «concurrency» в рассылке посвященной развитию Swift (swift-evolution). Особенно просвещают сообщения от Пьера Хабузит (Pierre Habouzit — занимается поддержкой libdispatch в Apple):
Читать дальше →

На пути к удачному проекту: 11 советов для эффективного общения с клиентом и командой

Reading time8 min
Views17K
Здравствуйте! Я работаю проектным менеджером около года. Одни проекты складывались удачно — подводные камни не топили продукт, и теперь он живёт и развивается. Другие сопровождались непрофессиональным поведением и глупыми ошибками.

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

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


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

Дайджест интересных материалов для мобильного разработчика #282 (14 — 20 января)

Reading time3 min
Views6.7K
В нашем новом дайджесте карта доверия к мобильным SDK, реки пользовательских данных, интерфейсы и юзабилити, определяющий отчет App Annie об экономике мобильных приложений и многое другое!

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

Распознавание рентгеновских снимков: precision = 0.84, recall = 0.96. А нужны ли нам еще врачи?

Reading time5 min
Views17K


В последнее время все чаще обсуждается применение AI в медицине. И, конечно, область медицины, которая прямо напрашивается для такого применения это областей диагностики.

Кажется, и раньше можно было применять экспертные системы и алгоритмы классификации к задачам постановки диагноза. Однако, есть одна область AI, которая добилась наибольших успехов в последние годы, а именно область распознавания изображений и сверточные нейронные сети. На некоторых тестах алгоритмы AI в распознавании картинок превзошли человека. Вот два примера: Large Scale Visual Recognition Challenge и German Traffic Sign Recognition Benchmark.

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

Если вы подумываете начать писать на Go, то вот что вам следует знать

Reading time11 min
Views70K
Ваш любимый питомец пишет на Go и получает больше вас, а вы ещё нет? Не теряйте времени… Такая мысль может родиться у читателя от обилия статей по Go. Некоторым даже компании предлагают переучиться на этот язык. И, если вы хоть раз задумывались освоить язык, то я хочу вас предостеречь. Вернее показать странные вещи, попробовать объяснить зачем они и потом вы уже сами сделаете вывод нужен ли вам Go.

Го - это портируемый Си
Поехали...

Неуловимая проблема тайминга кадров

Reading time13 min
Views159K

Технический директор Croteam Ален Ладавач, участвовавший в разработке Serious Sam и Talos Principle, рассказывает, как ему удалось найти причину торможения графики даже на самых мощных машинах.

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

Т-т-тормоза


Вы с нетерпением ждали следующей части вашей любимой серии видеоигр для PC и она наконец вышла. На этот раз вы хотите насладиться ею во всей полноте, поэтому потратили деньги и время на тщательную подготовку. Вы заменили процессор, поставили сверхсовременную видеокарту, добавили ещё ОЗУ — чёрт возьми, даже купили RAID на SSD. Игра должна быть плавной с самой заставки.

Предзаказ наконец разблокирован и вы только что завершили установку. В нервном предвкушении вы впервые запускаете игру. Пока всё хорошо — она работает с частотой 60 кадров в секунду. Или, по крайней мере, так сообщает счётчик кадров тюнера GPU. Но что-то не так. Вы делаете мышью резкие, хаотичные движения. Стрейфитесь влево-вправо, и тут игра… начинает тормозить! Блин, да как такое возможно? Как она может тормозить при 60 кадрах в секунду?

Если такое с вами никогда не случалось, то это может показаться смешным. Но если вы их испытали, то, скорее всего, ненавидите тормоза всей душой. Тормоза в играх. Это не старый добрый «лаг». Не низкая частота кадров. Это просто «тормоза», происходящие при высоких частотах кадров на идеальных, супербыстрых машинах. Что это, откуда они взялись и как от них избавиться? Позвольте мне рассказать вам историю…

Недостатки фриланса. Личный опыт

Reading time6 min
Views72K


UPD: в этом посте отражено субъективное мнение автора в 2018-ом году. Сейчас я работаю над своим проектом в сфере обучения облачным технологиям.

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

Развалившись в гамаке, на берегу острова Бора Бора, ты неспешно рисуешь скетч или отрабатываешь навыки js-ниндзя.

В левой руке махито, в правой мулат(ка). И основным обременяющим занятием есть поход к банкомату.

Может так и бывает, но уж точно не у меня. Поэтому, проработав 12 лет на фрилансе (около 11,000 часов), внезапно, я задумался — а что дальше? А почему я топчусь на месте то. Пусть у единиц, но получается расти дальше, расширять базу клиентов, основывать компании, интересно жить в конце концов.

Поэтому этот пост с СЕО-шным названием будет именно о том, что не так во фрилансе со «своей колокольни». Во-первых самоанализа ради. А во-вторых для того парня из офиса, который мылится работать на себя, да все никак… За 12 лет много опыта накопилось, есть чем поделиться. Много примеров из опыта.
Читать дальше →

Пишем свой протокол поверх UDP

Reading time24 min
Views44K
Первые прямые трансляции с места событий появились в России почти 70 лет назад и вели их из передвижной телевизионной станции (ПТС), которая внешне походила на «троллейбус» и позволяла вести эфиры не из студии. А всего лишь три года назад Periscope позволил вместо «троллейбуса» использовать мобильный телефон.

Но это приложение имело ряд проблем, связанных, например, с задержками в эфирах, с невозможностью смотреть трансляции в высоком качестве и т.д.


Еще через полгода, летом 2016, Одноклассники запустили свое мобильное приложение OK Live для стриминга, в котором постарались решить эти проблемы.

Александр Тоболь отвечает за техническую часть видео в Одноклассниках и на Highload++ 2017 рассказал про то, как писать свой UDP протокол, и зачем это может потребоваться.

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


Говорят, что надо всегда начинать с архитектуры и ТЗ — якобы без этого нельзя! Так и сделаем.

Будьте осторожны, — Байкал-Т1! Или история одного проекта с попыткой применения «импортозамещения»

Reading time8 min
Views161K
«Эффективные» менеджеры и поставщики компонентов могут смело проигнорировать этот материал. Эта заметка — для разработчиков аппаратуры, которые уже смотрят, или только собираются смотреть в сторону процессора Байкал-Т1. Так сказать, «информация к размышлению» о реальной истории общения с фирмой Байкал Электроникс (БЭ) и что в результате получилось из прикладного проекта с попыткой применения «импортозамещения».

Итак, все по порядку…
Читать дальше →

Кто такие радиолюбители-коротковолновики

Reading time13 min
Views69K

И почему вы (не) захотите стать одним из нас


Радиолюбители-связисты (HAM radio operators) – отдельная каста в мире энтузиастов электроники (electronics), о тайной жизни которых среднестатистическому паяльщику и ардуиностроителю известно мало. Далее по тексту словами «радиолюбитель», «радиоаматор» будут называться именно радиолюбители-связисты.

image

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

UPDATED: Амплифицированные memcached DDoS-атаки на 500 Гбит/с прокатились по всей Европе

Reading time2 min
Views34K


Давным-давно в далеком-далеком git-репозитории Брайаном Акером был сделан коммит, внедряющий замечательную фичу прослушивания UDP трафика в установке memcached по умолчанию.

А между 23 и 27 февраля 2018 года по всей Европе прокатилась волна memcached-амплифицированных DDoS атак.
Читать дальше →

Redux-form. Когда работать с формами просто

Reading time6 min
Views69K
Думаю, большинство знает схему работы библиотеки redux: view → action → middlewares → reducers → state → view

Подробности здесь.

Хочу представить вашему вниманию библиотеку, которая работает по тому же принципу для форм.

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

Как HBO делала приложение Not Hotdog для сериала «Кремниевая долина»

Reading time23 min
Views24K


Сериал HBO «Кремниевая долина» выпустил настоящее приложение ИИ, которое распознаёт хотдоги и не-хотдоги, как приложение в четвёртом эпизоде четвёртогого сезона (приложение сейчас доступно для Android, а также для iOS!)

Чтобы добиться этого, мы разработали специальную нейронную архитектуру, которая работает непосредственно на вашем телефоне, и обучили её с помощью TensorFlow, Keras и Nvidia GPU.

Российские студенты доминируют на олимпиадах по программированию и американские студенты этому не удивлены

Reading time4 min
Views41K


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

В чем причина?
Читать дальше →

Information

Rating
Does not participate
Location
Москва и Московская обл., Россия
Registered
Activity