Как стать автором
Обновить
27
0
Алексей Рожков @ar2code

Android Teamlead

Отправить сообщение

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

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров41K

Я всегда знал, что если отвлекать человека во время работы, это вредит делу. Но до конца не осознавал, насколько это серьёзная проблема. Особенно для разработчиков ПО.

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

Читать далее
Всего голосов 54: ↑46 и ↓8+44
Комментарии86

Как перестать бояться Proguard и начать жить

Время на прочтение12 мин
Количество просмотров60K


Здравствуйте, я Android разработчик и я больше не боюсь ProGuard...


Обычно, об этой утилите вспоминают, когда сталкиваются с dalvik dex-limit issue или с требованием улучшить безопасность приложения. К сожалению, правильно настроить Proguard удается далеко не с первого раза. Я часто наблюдал, как многие, сломав проект, выключают Proguard и включают поддержку Mulditex и каждый раз немножечко грустил по этому поводу, ведь Proguard помогает как сократить размер приложения, так и повысить его производительность.


В итоге, я решил написать статью, в которую смогу поместить всю полезную информацию, которую я узнал за несколько лет работы с Proguard и которая могла бы помочь как совсем новичкам, так и тем, кто уже что-то знает.

Читать дальше →
Всего голосов 18: ↑18 и ↓0+18
Комментарии12

Как я изучал структуры данных и алгоритмы для собеседования в FAANG

Время на прочтение12 мин
Количество просмотров63K
Продолжая тему устройства в FAANG, которую уже мы поднимали в нашем блоге, и специально к старту нового потока нашего курса по алгоритмам сегодня делюсь описанием пути Эско Обонга, старшего инженера-программиста Uber.

Эта история началась в 2015 году, когда стартап, к которому я присоединился как «сотрудник-основатель», закрылся через шесть месяцев после первого раунда инвестиций, и я искал новую работу. Первое моё собеседование было с  Codecademy, где на этапе телефонного разговора меня заверили: «Не волнуйтесь, мы не задаём сумасшедших вопросов об алгоритмах или что-то в этом роде». И я им поверил…


Приятного чтения!
Всего голосов 46: ↑40 и ↓6+49
Комментарии71

Собеседование в Яндекс: театр абсурда :/

Время на прочтение14 мин
Количество просмотров528K

Привет, Хабр!

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

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

Как вы думаете, что делают рекрутеры, когда видят "Alexandr, NOT OPEN FOR WORK"? Правильно, пишут "Алексей, рассматриваете вариант работать в X?" Я обычно игнорирую это, но тут мне предложили попытать счастья с Яндекс.Лавкой, и я не смог пройти мимо - интересно было, смогу ли я устроиться куда-нибудь, когда введут великий российский файерволл. К тому же за последние 3 года я проходил только два интервью, и мне показалось, что я не в теме, что нынче требуется индустрии. Блин, я оказался и вправду не в теме. И вы, скорей всего, тоже - об этом и статья.

Читать далее
Всего голосов 531: ↑504 и ↓27+610
Комментарии1270

Жадные алгоритмы

Время на прочтение4 мин
Количество просмотров191K
ДеньгиДоброго времени суток, хабр! Сегодня я бы хотел рассказать про жадные алгоритмы.

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

Думаю, каждый программист в своей жизни хотя бы раз написал жадину, может быть, даже не задумываясь об этом. Что же это такое? Добро пожаловать под кат.
Читать дальше →
Всего голосов 106: ↑100 и ↓6+94
Комментарии17

О динамическом программировании на пальцах

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров30K

Как динамическое программирование может упростить нашу жизнь? Как можно оптимизировать решение задач?

Сегодня мы разберем динамическое программирование на пальцах с примерами на Python!

Усаживайтесь поудобнее, леди и джентльмены!

Вперед!
Всего голосов 20: ↑15 и ↓5+14
Комментарии17

С алгоритмами в духе LeetCode на собеседованиях пора кончать

Время на прочтение6 мин
Количество просмотров67K
Современная разработка охватывает широкий диапазон от работы с алгоритмами до системного дизайна. По большей части разработка ПО укладывается в эти рамки. Основная масса разработчиков занимается созданием приложений, что ближе с системному дизайну, чем к низкоуровневым алгоритмам.

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

Такой подход основан на идее, что, если человек знаком с алгоритмами и системным дизайном, то и на разработку приложений ему хватит способностей. Это спорное утверждение. Создание приложений требует обширного набора навыков. Они не нарабатываются сотнями часов заучивания паттернов в решениях задач на алгоритмы. Да и рассматриванием сильно упрощенных версий системного дизайна Netflix, Uber или Twitter Threads делу не поможешь. Навыки разработки приложений оттачиваются путем… ну, разработки приложений. Но часто на технических собеседованиях они даже не принимаются в расчет.
Читать дальше →
Всего голосов 116: ↑105 и ↓11+126
Комментарии397

Керниган и Пайк были правы: делай что-то одно и делай это хорошо

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров27K
Роб Пайк и Брайан Керниган

В октябре 1984 года два идеолога опубликовали радикальный манифест… ну, или что-то вроде того.

Легенды computer science Брайан Керниган и Роб Пайк сформулировали в Program Design in the UNIX Environment паттерн архитектуры ПО, за сохранение которого оба боролись долгие годы.

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

Старые программы покрываются коркой сомнительных фич.

Суть статьи часто сводят к аббревиатуре DOTADIW, или «Do One Thing And Do It Well» («Делайте что-то одно и делайте это хорошо»). В Unix и его потомках есть множество программ, в которых воплощена эта мантра: ls просто создаёт список файлов, cat просто выводит содержимое файлов, grep просто фильтрует данные, wc просто подсчитывает слова и так далее. У каждой программы есть несколько опций, меняющих её поведение, но не слишком сильно. Например: wc можно сконфигурировать для подсчёта строк или слов, но не для подсчёта количества абзацев или вхождений какой-то фразы.

Мощь Unix, защищаемая Керниганом и Пайком, заключалась в возможности соединения этих простых программ в цепочку для создания сложных поведений. Зачем добавлять сопоставление регулярных выражений в wc, если с этим уже способна справиться grep?
Читать дальше →
Всего голосов 45: ↑41 и ↓4+57
Комментарии45

Менеджмент сосредотачивается

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров10K

image


В июле журнал Forbes собрал лидеров своего рейтинга «30 до 30» на конференцию. На неё съехались предприниматели, топ-менеджеры, деятели спорта, науки и искусства, представители медиасферы, добившиеся финансового успеха к 30 годам. Содержание докладов было частично опубликовано и представляет немалый интерес.


О чём была конференция


Красной нитью через статью проходит мысль «работать некому». Её повторяют на все лады:

Читать дальше →
Всего голосов 39: ↑35 и ↓4+40
Комментарии40

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

Уровень сложностиПростой
Время на прочтение12 мин
Количество просмотров5.5K

Статья о реалиях и перспективах использования ChatGPT для автоматизации написания Java кода на конкретном примере и несколько выводов и тезисов, как ChatGPT изменит рынок разработки.

Давайте разберёмся с этим :)
Всего голосов 11: ↑6 и ↓5+1
Комментарии10

Осознанная оптимизация Compose

Уровень сложностиСредний
Время на прочтение29 мин
Количество просмотров43K

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

Наша команда Ozon Seller также столкнулась с этой проблемой. Мы решили собрать воедино все советы и наработки по написанию оптимизированного Compose-кода. Активное применение этих советов при оптимизации существующих экранов и написании новых существенно улучшило наши метрики: длительность лага по отношению к длительности скролла (hitch rate; чем меньше, тем лучше) экранов со списками упала в среднем с 15-19 % до 5-7 % (на 90-м перцентиле). Все эти советы и наработки мы описали в этой статье. Она будет полезна и начинающим, и опытным разработчикам, в ней подробно описаны оптимизации и механизмы Compose, а также рассказано про слабо задокументированных особенности и исправления ошибок, которые есть в других статьях. Давайте же начнём.

Читать далее
Всего голосов 37: ↑37 и ↓0+37
Комментарии15

Три важных качества CTO, о которых я не догадывался, пока был разработчиком

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров39K

Я начинал карьеру как фронтенд-разработчик и прошел по всем стандартным этапам: от джуниора до сеньора и тимлида, потом стал руководителем отдела. И дальше, конечно, планировал стать CTO — Chief Technical Officer. И только через несколько лет узнал, что мои представления о том, какие навыки нужны на этой должности, были далеки от реальности.

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

Читать далее
Всего голосов 95: ↑91 и ↓4+106
Комментарии65

Где и как можно ускорить приложение на Android

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров7.7K

Привет! Я Александр Попсуенко, руководитель инфраструктурной команды мобилок Маркета. Сегодня я хочу рассказать, как мы ускоряли наше приложение на Android.

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

Пост рекомендуется к прочтению:

— мобильным разработчикам и техлидам, чтобы почерпнуть идеи для реализации метрик и ускорения приложений;

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

— UX‑дизайнерам, чтобы удостовериться, что мобильные приложения должны быть быстрыми и в это нужно вкладываться.

Почерпнуть, осознать, удостовериться
Всего голосов 23: ↑23 и ↓0+23
Комментарии9

Эксклюзив: детализация уровней сотрудников Shopify. Часть 1

Уровень сложностиПростой
Время на прочтение14 мин
Количество просмотров5.5K

Shopify — это один из крупнейших конкурентов Amazon в сфере онлайн‑ритейла. В компании работает около 10 000 человек. Shopify, в отличие от Amazon — централизованной торговой площадки, предлагает коммерческим структурам платформу для создания их собственных онлайн‑магазинов и веб‑сайтов. Shopify — это одна из крупнейших технологических организаций, в которой применяется полностью удалённый режим работы. Она перешла к такой модели в начале 2020 года. Это — одна из последних компаний такого размера, которая не переводит сотрудников обратно в офисы. По крайней мере — пока не переводит.

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

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

Читать далее
Всего голосов 10: ↑9 и ↓1+16
Комментарии2

Как заставить программистов пахать? 5 неочевидных советов

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров78K

Для начало придется забыть слово заставить. Задача помочь сотрудникам полюбить зарабатывать вам деньги.

Меня зовут Слава. Я создал и развалил сеть ночных клубов, прошел 300 собеседований на маркетолога, проработал как подрядчик и сотрудник в более 50 компаниях. Сейчас занимаюсь системным маркетингом.

Там, где я работал, были разные системы управления, но всегда работал один и тот же принцип.

Читать далее
Всего голосов 156: ↑135 и ↓21+136
Комментарии283

Организационные структуры. Виды, характеристики, отличия

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров13K

Основатель «Магнита» Сергей Галицкий однажды сказал в интервью: «Чтобы управлять компанией на 11 000 магазинов и 300 000 сотрудников, нужно соблюдать принцип, что у каждого человека не более прямых 7 подчиненных, и выстраивать такими "ячейками" структуру управления».

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

Тема эта довольно обширная и мы попробуем охватить её в нескольких материалах — сегодня сделаем обзор типов организационных структур и заглянем в историю этого вопроса.

Читать далее
Всего голосов 7: ↑6 и ↓1+6
Комментарии3

Цена ошибки: как экономия приводит к повышенным тратам

Время на прочтение10 мин
Количество просмотров4.8K

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

Экономия затрагивает самые разные сферы проекта и специалистов. В этой статье рассмотрим обеспечение качества (QA). Бизнес нередко считает, что тестирование – та часть проекта, на которой можно сэкономить, что за качество должны отвечать разработчики, а QA-специалистов иногда можно и не привлекать. Наш коллега Андрей на конкретных примерах покажет, к каким последствиям приводят наиболее популярные случаи экономии на QA.

Читать далее
Всего голосов 9: ↑8 и ↓1+9
Комментарии1

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

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров35K

Многим известен эффект стеклянного потолка, когда действия есть, а результата нет. Кажется, еще чуть‑чуть и все изменится: бизнес попрет, мастерство выйдет на новый уровень, доходы увеличатся, но несмотря на все усилия — ничего не меняется. Почему?

Читать далее
Всего голосов 49: ↑46 и ↓3+57
Комментарии48

Покажи мне свой Git, и я скажу, кто ты

Время на прочтение15 мин
Количество просмотров37K

Можно ли с помощью GitHub анализировать работу, не заглядывая в монитор сотрудника — без скриншотов и тайм-трекеров?

Я Александр Кириллов, технический директор компании Evrone. Больше 20 лет я посвятил разработке. В этой статье поделюсь с вами опытом, который собрал за время работы с распределенными командами. Расскажу о том, как, не нарушая приватность разработчиков, следить за качеством работы на проектах и отслеживать нежелательные паттерны с помощью метрик в Jira и Git.

Читать далее
Всего голосов 63: ↑53 и ↓10+53
Комментарии26

Код ревью с учётом человеческих слабостей

Время на прочтение7 мин
Количество просмотров11K

Проверка кода (code review) — отличный инструмент для повышения качества кода, но он не учитывает один факт: отправляют и просматривают код люди, а они устают, теряют сосредоточенность, ленятся, да и просто испытывают эмоции в самые неожиданные моменты.

Поэтому хочу представить свое видение хороших и плохих практик код ревью с учётом человеческих особенностей.

Читать далее
Всего голосов 24: ↑22 и ↓2+23
Комментарии7
1

Информация

В рейтинге
Не участвует
Откуда
Россия
Зарегистрирован
Активность