В одном из прошлых постов про запахи мы поговорили про необоснованную сложность. Сейчас поговорим об её производной.
Цикломатическая сложность, или когнитивная сложность, — это отдельная метрика оценки нашего кода. Она есть в каждом языке и даже по умолчанию включена в нашем линтере. Ну а также я как-то давно делился книжкой от Sonar, где они круто разложили по полочкам. Книгу советую, кста.
Давайте проще. Отбрасывая все математические приколы, цикломатическая сложность — это метрика сложности кода, которая коррелирует с вероятностью появления ошибок. А значит и напрямую с качеством нашего кода.
Чтобы уменьшить сложность нашего кода нужно разбивать функций в более мелкие и управляемые блоки.
Интересные ресурсы:
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Программисты больше не нужны
Вчера в нашем чате сеньор разраб из гугла рассказывал как проводил собес сеньора из apple и как тот максимально провалил собес по SwiftUI и UIKit. Аккуратно под это событие вышел подкаст с принципал инженером из Apple, который дает комменты про Google.
Вкратце:
🟣 гугл делает кучу ненужных продуктов, поэтому многие разрабы делают много ненужного
🟣 все компании нанимают разрабов, которые умеют переучиваться.
🟣 Не важно, на каких языках ты пишешь, но важно, что если не хочешь учить новые языки — ты никому не нужен
🟣 Гугл не нанимает программистов. Гугл нанимает умников, которые умеют программировать.
🟣 Нельзя выучить литкод. Задача на интервью через литкод понять как ты умеешь решать пазлы
🟣 Гугл не нанимает узких специалистов
Вчера в нашем чате сеньор разраб из гугла рассказывал как проводил собес сеньора из apple и как тот максимально провалил собес по SwiftUI и UIKit. Аккуратно под это событие вышел подкаст с принципал инженером из Apple, который дает комменты про Google.
Вкратце:
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Секреты бигтеха от Principal Engineer в Apple. Максим Страхов | Team Lead Talks Ep.38
Попадая в бигтех, некоторые люди теряются, потому что не понимают, что от них ожидают в этих компаниях. Это происходит даже с лучшими инженерами. Наш гость — Максим Страхов работает в Apple на должности Principal Engineer. Максим объясняет людям особенности…
Приступаю к углубленному анализу Swift Concurrency. В этой статье мы вкратце познакомимся с Actors и порешаем классические задачи.
В чате мы уже расширили формат "задач дня". Добавили на рефакторинг простых блоков кода с помощью Swift Concurrency. В будущем разберем больше задач и разных решений.
Ну а сейчас я потихоньку и тезисно формулирую статьи в базе знаний, но больше фокусируюсь на практике. В этой статье разобрал несколько примеров:
Дальше будет больше задач, где разберем как сделать дебаунсеры и тротлы, рефреш токены и другие рабочие примеры
Please open Telegram to view this post
VIEW IN TELEGRAM
Coding Interview University
Крутейший материал для подготовки к кодинг-интервью. Судя по описанию изначально автор делал для себя список полезных тем для развития скиллов по алгоритмам, а потом это выросло в огромную базу знаний, которая помогла ему получить оффер в Амазон.
Это многомесячный план обучения, чтобы пройти подготовку в крупные FAANG компании. По заверениям автора это полноценная замена университета, но в отличии от инфоцыганщины он сразу предупреждает что нужно время, усидтчивость и терпение.
Крутейший материал для подготовки к кодинг-интервью. Судя по описанию изначально автор делал для себя список полезных тем для развития скиллов по алгоритмам, а потом это выросло в огромную базу знаний, которая помогла ему получить оффер в Амазон.
Это многомесячный план обучения, чтобы пройти подготовку в крупные FAANG компании. По заверениям автора это полноценная замена университета, но в отличии от инфоцыганщины он сразу предупреждает что нужно время, усидтчивость и терпение.
GitHub
GitHub - jwasham/coding-interview-university: A complete computer science study plan to become a software engineer.
A complete computer science study plan to become a software engineer. - jwasham/coding-interview-university
1 17 2
Записали новое видео-воркшоп про Tuist. Модуляризация — это сложная и популярная вещь. При правильной готовки она может сильно сэкономить ресурсы, повлиять не только на скорость проекта, но и на качество кода. А также сэкономить ресурсы на переиспользование кодовой базы.
В этом выпуске ведущий iOS инженер рассказал как переводил проекты на туист и с чем столкнулся.
Детально пробежались по:
Вышло плотно и может быть когда-нибудь сделаем вторую часть.
Please open Telegram to view this post
VIEW IN TELEGRAM
Как находить решения в алгоритмах
Частая проблема новичков, которые только начинают практиковать решение алгосов, — это зубрежка. Я даже кекнул с того самого сообщества накрутчиков, которые устроили забастовку алгособесам и решили зазабурить все решения... Видимо надеясь, что таким образом хакнут алгособесы...
Но без десятки и сотни часов практики это не получится. Сейчас я провожу только алгоритмические собесы. Оцениваю не только иосеров, но и всех остальных. Секция алгоритмов не привязана к конкретному языку. На ней не оценивают синтаксис, знание библиотек. На ней оценивают как кандидат мыслит, какие идеи он генерирует, как часто ошибается и какие корнер-кейсы может найти.
Я уже много раз говорил, что уже 7 из 10 инженеров могут дать рабочее решение. Где только рабочее не будет главным. Важно эффективное.
Условно, есть задача написать функцию, которая принимает массив отсортированных чисел и нужно отдать такой же отсортированный массив квадратов этих чисел. Все просто, можно пройти линейно и просто умножить каждое число на себя. Но это решение не подойдет. Потому что вы не подумали о краевом кейсе, когда могут быть отрицательные числа. Приходит в голову другое решение: умножить каждое число на себя и отсортировать. Но это решение тоже не очень, так как нужно уложиться в сложность O(n), а сортировака O(nlogn). И таких деталей множество. Нужно их все учесть желательно без подсказок.
В нашем чате недавно спрашивали у сильных программистов "Как вы эффективно решаете задачи?". На что они ответили "Все приходит с практикой и к каждой задачи нужно просто подобрать нужную структуру данных и алгоритм, не выдумывая ничего нового".
Вот как раз такую статью я и нашел.
Частая проблема новичков, которые только начинают практиковать решение алгосов, — это зубрежка. Я даже кекнул с того самого сообщества накрутчиков, которые устроили забастовку алгособесам и решили зазабурить все решения... Видимо надеясь, что таким образом хакнут алгособесы...
Но без десятки и сотни часов практики это не получится. Сейчас я провожу только алгоритмические собесы. Оцениваю не только иосеров, но и всех остальных. Секция алгоритмов не привязана к конкретному языку. На ней не оценивают синтаксис, знание библиотек. На ней оценивают как кандидат мыслит, какие идеи он генерирует, как часто ошибается и какие корнер-кейсы может найти.
Я уже много раз говорил, что уже 7 из 10 инженеров могут дать рабочее решение. Где только рабочее не будет главным. Важно эффективное.
Условно, есть задача написать функцию, которая принимает массив отсортированных чисел и нужно отдать такой же отсортированный массив квадратов этих чисел. Все просто, можно пройти линейно и просто умножить каждое число на себя. Но это решение не подойдет. Потому что вы не подумали о краевом кейсе, когда могут быть отрицательные числа. Приходит в голову другое решение: умножить каждое число на себя и отсортировать. Но это решение тоже не очень, так как нужно уложиться в сложность O(n), а сортировака O(nlogn). И таких деталей множество. Нужно их все учесть желательно без подсказок.
В нашем чате недавно спрашивали у сильных программистов "Как вы эффективно решаете задачи?". На что они ответили "Все приходит с практикой и к каждой задачи нужно просто подобрать нужную структуру данных и алгоритм, не выдумывая ничего нового".
Вот как раз такую статью я и нашел.
Topcoder
How To Find a Solution
Discuss this article in the forums.
Introduction
Straight-forward problems that don’t require a special tech
Introduction
Straight-forward problems that don’t require a special tech
«Нас заменит не ИИ, а люди, кто эффективней им пользуется»
Эту фразу сказал директор Яндекса. Она емкая и предельно точная.
Уже неделю учусь активно промтить и использовать ИИ для повседневных задач. Не только в работе, но и дома, обучении.
Задаю себе вопрос почему же долго оттягивал знакомство. Задаю модели роли и обогащаю деталями, запрашиваю советы.
Удивляюсь, насколько глубоко и стремительно этот инструмент вошел в повседневную жизнь.
Огромное заблуждение, что чатгпт выдает одинаковый ответ всем. Все зависит от рук, навыков, слов и знаний оператора, который ведет диалог с машиной.
Я знаю владельцев бизнеса, кто с помощью ии тестирует успешные гипотезы. Знаю художников, кто улучшает свои картины. Знаю программистов, кто избавляется от рутины.
Стоит ли бояться ИИ? Нет. Стоит ли бояться людей? Да.
Расскажите, какие курсы по промтингу вы уже прошли или собираетесь.
Эту фразу сказал директор Яндекса. Она емкая и предельно точная.
Уже неделю учусь активно промтить и использовать ИИ для повседневных задач. Не только в работе, но и дома, обучении.
Задаю себе вопрос почему же долго оттягивал знакомство. Задаю модели роли и обогащаю деталями, запрашиваю советы.
Удивляюсь, насколько глубоко и стремительно этот инструмент вошел в повседневную жизнь.
Огромное заблуждение, что чатгпт выдает одинаковый ответ всем. Все зависит от рук, навыков, слов и знаний оператора, который ведет диалог с машиной.
Я знаю владельцев бизнеса, кто с помощью ии тестирует успешные гипотезы. Знаю художников, кто улучшает свои картины. Знаю программистов, кто избавляется от рутины.
Стоит ли бояться ИИ? Нет. Стоит ли бояться людей? Да.
Расскажите, какие курсы по промтингу вы уже прошли или собираетесь.
Telegram
Подкаст Свободный слот
Нас заменит не ИИ, а коллеги, которые научились с ним лучше работать
— Андрей Себрант, директор по стратегическому маркетингу Яндекса, профессор ИТМО и гость 9 выпуска нашего подкаста «Свободный слот».
🎤Обсудили ИИ со всех сторон:
– как мы используем ИИ…
— Андрей Себрант, директор по стратегическому маркетингу Яндекса, профессор ИТМО и гость 9 выпуска нашего подкаста «Свободный слот».
🎤Обсудили ИИ со всех сторон:
– как мы используем ИИ…
Список полезных инструментов для индивидуального плана развития
Я фанат развития. Обожаю рпг, стратегии и не понимаю игры без таких механик. Возможно, я унаследовал эти черты от семьи учителей, где ежедневные упражнения считаются необходимостью. Возможно, наша ит-среда требует постоянных изменений. Хотя может быть я сюда и пришел за этим.
В IT без плана развития сложно. Просто бездумно развиваться исходя из требований собесов — самоубийственная миссия. Собесы часто оторваны от реальности и могут завести не туда или ввести в заблуждение. Поэтому важно выстроить карту с учетом движения рынка. А также компании, в которой ты работаешь, и её места на рынке.
Развитие это долгий путь. Где нужно много сил, времени и дисциплины. У меня скоро день рождения и каждый год я основательно меняю свой роадмап развития, который веду еще с 2013 года. Ставлю годовые цели, выбираю ветки куда расти.
В этом году хочу улучшить свой процесс и настроить его максимально ответственно. Сделать полноценный шаблон. Поэтому изучил много разных книг и статей, поговорил с коллегами.
Собрал, на мой взгляд, самые полезные инструменты для составления ИПР:
🟣 Windrose Avito. Отличная матрица с детальным описанием открытых грейдов и их обязанностей. Что что, а лучше Авито пока никто не придумал похожие матрицы, успешно их внедрил и применяет. А уж тем более не открыл их публично.
🟣 Шаблон ИПР от Qiwi. Еще один инструмент от руководителя групп разработки Авито с детальными советами. Как минимум я лично убедился в эффективности этого инструмента, где множество разрабов выросло в своих навыках.
🟣 Книга "The Software Engineer's Guidebook". Очень подробный сборник универсальных советов для бигтехов и стартапов.
Ну а вы тоже делитесь интересными ресурсами.
Я фанат развития. Обожаю рпг, стратегии и не понимаю игры без таких механик. Возможно, я унаследовал эти черты от семьи учителей, где ежедневные упражнения считаются необходимостью. Возможно, наша ит-среда требует постоянных изменений. Хотя может быть я сюда и пришел за этим.
В IT без плана развития сложно. Просто бездумно развиваться исходя из требований собесов — самоубийственная миссия. Собесы часто оторваны от реальности и могут завести не туда или ввести в заблуждение. Поэтому важно выстроить карту с учетом движения рынка. А также компании, в которой ты работаешь, и её места на рынке.
Развитие это долгий путь. Где нужно много сил, времени и дисциплины. У меня скоро день рождения и каждый год я основательно меняю свой роадмап развития, который веду еще с 2013 года. Ставлю годовые цели, выбираю ветки куда расти.
В этом году хочу улучшить свой процесс и настроить его максимально ответственно. Сделать полноценный шаблон. Поэтому изучил много разных книг и статей, поговорил с коллегами.
Собрал, на мой взгляд, самые полезные инструменты для составления ИПР:
Ну а вы тоже делитесь интересными ресурсами.
Please open Telegram to view this post
VIEW IN TELEGRAM
Google Docs
Avito Public Windrose Template
This media is not supported in your browser
VIEW IN TELEGRAM
Вообще забавно что самый смышленный банк оказался ВТБ.
Их браузеру Луна уже пару лет. И когда через него пытаетесь войти в лк банка, то запускается нативный код
Гении обхода санкций. Тут прям целое искусство
Их браузеру Луна уже пару лет. И когда через него пытаетесь войти в лк банка, то запускается нативный код
Гении обхода санкций. Тут прям целое искусство
Debounce — очень частая задача везде. От собеса, до реальной практики. Недавно помогал одной компании делать тестовое и в нем ожидал, что кандидат применит дебаунсер.
Концепция простая. Каждый раз вызывая какой-то код дебаунсер ограничивает вызов функции за определенный период. Это очень важно в поисковиках или оплатах, где приходится заботиться об этом.
В этой статье я сделал реализацию на почти всех популярных вариациях:
Please open Telegram to view this post
VIEW IN TELEGRAM
Все чаще слышу от бизнеса, как многие разработчики отказываются принимать офферы из-за BDUI. Где объем задач на нем > 80%. Кого-то даже бизнес просит сделать рекламные доклады как крут BDUI.
Пришли бы вы на проект, где только бы пришлось работать с BDUI?
Пришли бы вы на проект, где только бы пришлось работать с BDUI?
Anonymous Poll
15%
Да, мне ок
20%
Да, но за прайс выше рынка
6%
Да, был опыт, все ок
18%
Нет, опыта нет. Не хочу
7%
Нет, опыт был. Не понравился
10%
Нет, когда-нибудь потом
25%
Да кто ваш такой этот BDUI?
Please open Telegram to view this post
VIEW IN TELEGRAM
Стартапы vs бигтехи
Наш любимый блогер выпустил статью, где делится мнением в какую компанию стоит идти и зачем. Тема выбора стартапа и бигтехов очень горячая. Мы тоже в чате регулярно ее поднимаем. Есть много инженеров, кто устает работать в большой системе маленьким винтиком и уходит в небольшие стартапы. А также и наборот.
Я часто говорил своим менти, что не стоит романтизировать работу в какой-то компании. У нас даже был опыт с одним. Он самоучка, где мы долго готовилсь в ВК, получил оффер, но спустя пару месяцев он дико разочаровался в найме и ушел делать свои продукты. Где уже 3 года успешно занимается этим и даже собрал штат, где делает продукты на заказ.
Так что если вас еще куда-то не взяли, то это не повод расстраиваться или опускаться в самооценки до грязных накруток или читерства. Быть может вы сильны и талантливы в другом
В этой статье хорошо расписано что ожидать от разных компаний
Наш любимый блогер выпустил статью, где делится мнением в какую компанию стоит идти и зачем. Тема выбора стартапа и бигтехов очень горячая. Мы тоже в чате регулярно ее поднимаем. Есть много инженеров, кто устает работать в большой системе маленьким винтиком и уходит в небольшие стартапы. А также и наборот.
Я часто говорил своим менти, что не стоит романтизировать работу в какой-то компании. У нас даже был опыт с одним. Он самоучка, где мы долго готовилсь в ВК, получил оффер, но спустя пару месяцев он дико разочаровался в найме и ушел делать свои продукты. Где уже 3 года успешно занимается этим и даже собрал штат, где делает продукты на заказ.
Так что если вас еще куда-то не взяли, то это не повод расстраиваться или опускаться в самооценки до грязных накруток или читерства. Быть может вы сильны и талантливы в другом
В этой статье хорошо расписано что ожидать от разных компаний
Swiftrocks
Working at startups vs large companies
Working at a large company like Apple or Google is a common goal in the tech industry. But are they a good fit for you?
This media is not supported in your browser
VIEW IN TELEGRAM
Rocket Sim
Купил подписку на инструмент, о котором слышу уже года два. Удобный дебагер, который помогает с частыми задачами:
🟣 анализ трафика (если лень запускать снифферы)
🟣 дизайн ревью верстки
🟣 симуляция локации
🟣 Быстрая настройка доступов апки
🟣 Пуши и диплинки
Я пока еще не пользовался с целью улучшения перфоманса и полностью не прощупал инструмент. Поэтому можете поделиться в каких задачах он вам уже помог и какая функция для вас более полезная.
Купил подписку на инструмент, о котором слышу уже года два. Удобный дебагер, который помогает с частыми задачами:
Я пока еще не пользовался с целью улучшения перфоманса и полностью не прощупал инструмент. Поэтому можете поделиться в каких задачах он вам уже помог и какая функция для вас более полезная.
Please open Telegram to view this post
VIEW IN TELEGRAM
Всегда ходите на собеседования
Мы привыкли о чем-то задумываться, лишь когда петух клюнет в жопу. Начиная от здоровья и заканчивая работой. Сложно сказать когда появился совет "проходить собесы каждый n-месяцев". Уж точно, до появления айфонов. Но он всегда актуальный. Это как регулярный чекап. Плюс в чат, если тоже на него забиваешь.
Иногда я хожу на собесы. Встречаю тех, кто меня читает. Да и в нашем чате уже не так много людей, кто попадали друг другу на собес. Мобилка очень маленькая.
Автор статьи рассказывает почему IC8 инженер из Меты посоветовал ему всегда быть "острым":
🟣 Карьерный рост не говорит о рыночной стоимости. Все долгие годы вы просидели на одном месте и вдруг узнали, что ту должность, что у вас сейчас, была готова предложить только одна компания.
🟣 Искать работу лучше, пока есть текущая. Даже для того чтобы убедиться, что текущее место лучше рыночных предложений.
🟣 Всегда нужно иметь на руках несколько предложений. Так вы увеличиваете шансы улучшить условия.
🟣 Некоторые навыки, как эффективное решение алгоритмов, можно прокачать только усердной подготовкой. Чем больше времени между собесами, тем сложнее все вспоминать.
Ну а лучшие материалы для подготовки и чат с практикующими разрабами из всех компаний мира тут😬
Мы привыкли о чем-то задумываться, лишь когда петух клюнет в жопу. Начиная от здоровья и заканчивая работой. Сложно сказать когда появился совет "проходить собесы каждый n-месяцев". Уж точно, до появления айфонов. Но он всегда актуальный. Это как регулярный чекап. Плюс в чат, если тоже на него забиваешь.
Иногда я хожу на собесы. Встречаю тех, кто меня читает. Да и в нашем чате уже не так много людей, кто попадали друг другу на собес. Мобилка очень маленькая.
Автор статьи рассказывает почему IC8 инженер из Меты посоветовал ему всегда быть "острым":
Ну а лучшие материалы для подготовки и чат с практикующими разрабами из всех компаний мира тут
Please open Telegram to view this post
VIEW IN TELEGRAM
www.developing.dev
Staying Sharp
Why Interview Even When You’re Happy
Как часто вы ходите по собеседованиям?
Anonymous Poll
5%
Каждый месяц
9%
Каждые 3-6 месяцев
10%
Каждые 6-12 месяцев
14%
Каждый 1-2 года
12%
Раз в два года
36%
Очень не часто
14%
Никто не был
Не ходите часто по собеседованиям
В противовес предыдущему посту я хочу поделиться своими и чужими мыслями почему не стоит часто ходить на собесы. Основано на реальных данных.
🟣 Все меньше вакансий. Если вы часто ходите на интервью, а еще и не подготовившись, то упустите возможность попасть в хорошую команду/компанию своей безответственность.
Рынок вакансий все меньше, а значит и выбора.
🟣 Вас забанят. Компании замораживают ваш статус на полгода/год и повторно пройти интервью нельзя.
Это особенно критично при внезапной потери работы.
🟣 Рост внутри компании лучше. Выражу непопулярное мнение, но не всегда скачки по компаниям это хорошо. Чаще новое место может быть всего на 10-15% больше от текущего бюджета. Задачи, процесс и коллектив хуже. На долгосрочной дистанции это скорее проигрыш, а не победа. Прыгая туда сюда, в поисках себя, можно потерять драгоценное время. Начать разгоняться и быстро остановиться, заново собирая ресурсы и вникая в работу.
А если вы работаете не на галере, то лучше держаться за хорошее место.
🟣 сфокусируйся на развитии. Вечно готовиться к собесам очень плохая затея, ведь есть рабочие задачи и профессиональные пути.
Навык прохождения собеседований никак не связан с постоянным и долгосрочным перформингом. Когда у тебя 6мес.-1 год опыта в компаниях, то скорее всего ты мало чему научился и быстро сменил место работы как только тебя раскусили
В противовес предыдущему посту я хочу поделиться своими и чужими мыслями почему не стоит часто ходить на собесы. Основано на реальных данных.
Рынок вакансий все меньше, а значит и выбора.
Это особенно критично при внезапной потери работы.
А если вы работаете не на галере, то лучше держаться за хорошее место.
Навык прохождения собеседований никак не связан с постоянным и долгосрочным перформингом. Когда у тебя 6мес.-1 год опыта в компаниях, то скорее всего ты мало чему научился и быстро сменил место работы как только тебя раскусили
Please open Telegram to view this post
VIEW IN TELEGRAM