...и уже готовлюсь к следующему выступлению! Хочу поделиться тем, как готовился ко вчерашней лекции и тем, какие у меня планы.
Часто, особенно в продакшен среде, мы сталкиваемся с плохим кодом. Возникают вопросы: "Зачем написали такой код?", "Почему всё так плохо?", "Почему я должен с этим работать?" и много других.
PS: Большое спасибо всем, кто вчера пришёл оффлайн
PPS: Если вам интересно почитать презентацию с выступления тоже пишите в лс
#мысли #мой_путь
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤1🔥1🦄1👾1
На днях мне сказали, что посты очень длинные. Держите короткий полезно-пост 👇
Сайт рефакторинг гуру. Это один из самых полезных источников знаний, обязательно сохраните себе! А ещё его автор написал книгу из этого поста.
PS: Ставьте плюс в комментарии, если у вас есть код, который надо отрефакторить➕
#python_полезности #находки
Сайт рефакторинг гуру. Это один из самых полезных источников знаний, обязательно сохраните себе! А ещё его автор написал книгу из этого поста.
PS: Ставьте плюс в комментарии, если у вас есть код, который надо отрефакторить
#python_полезности #находки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥1🤔1👾1
Что нужно сделать, как только вы вышли на новую работу?
— Обновить резюме!
Рассказываю почему важно регулярно ходить на собеседования, даже если вы попали в компанию мечты и будете работать в ней до конца жизни
"Безопасный" вариант: добавьте сразу новую компанию в свой опыт и раз в неделю записывайте свои задачи /достижения / успехи. Так вы сможете сказать, что просто стараетесь следить за своим развитием в компании, а не ищите новую работу
Регулярные собеседования помогут понять, где вы на рынке труда и сколько стоите. Получив оффер с ЗП в два раза выше текущей, вы точно получите прилив уверенности.
А какие лайфхаки есть у вас?
#мысли #мудрость_на_каждый_день #мой_путь
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤2🔥1👾1
У нас в компании, основная метрика для оценки работы продукта это то, сколько рекомендаций приняли пользователи. Мы предлагаем 10 продуктов, пользователь принимает 9 - значит мы работаем с эффективностью в 90%. При этом, получается интересная ситуация:
Статистика: принято + 99; не принято + 1
Статистика: принято + 0 ; не принято + 1 (старая)
Статистика: принято + 0 ; не принято + 1
В конце месяца у нас статистика: не принято 30 рекомендаций, а принято 99. Получается эффективность рекомендаций меньше 80%. Если бы было соотношение 98 принятых и 2 непринятые, то за месяц это уже 60%. Получается, одна не принятая рекомендация эквивалентна 30 принятым.
Казалось бы - это плохой подход и он нигде не пригодиться, однако я нашёл, где его применить.
Получается, по статистике HH, 120 000 рублей получают разработчики с уровнями миддл и сеньор, а на самом деле это может быть планка джуна. Для миддла эта планка вообще меньше нижней границы
#мысли
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🤔2🔥1👾1
1. Что произойдёт при запуске кода ниже?
x1 = [1, 2, 3]
x2 = [1, 2, 3]
print(x1 == x2)
print(x1 is x2)
True и False.== и is и когда они показывают одинаковый результат, а когда разный.x1 и x2, привести пример, когда это важно.2. Что такое словарь (dict)?:
O(1).3. Написать класс SqueredNumber для такого примера:
a = SqueredNumber(3)
print(a) # 9
print(isinstance(int, a)) # True
На самом деле вопрос про разницу между
__ init __ и __ new __.4. Сделать код ревью:
def return_first_from_iterator(predicat, objects=[]):
matching_objects = (obj for obj in objects if predicat(object))
if matching_objects:
object = matching_objects[0]
return object
else:
return None
На самом деле интересуют знания про генераторы и их работу. Тут пригодится метод
next. То, что значением по умолчанию нельзя ставить ставить пустой список - знает каждый кто пишет на питоне, ведь так? 5. Передать данные из одного процесса в другой.
На этот вопрос я ответил не очень хорошо, поскольку уже год работаю только с асинхронным программированием. Однако, теоретическое понимание аспектов конкурентного программирования нужно всем. В этом вопросе помогут концепции (не зависит от языка)
pipes, shared memory и queues.В целом, вопросы были среди тех тем, что я выделил в своём материале "50 вопросов с Python собеседования". Если у вас ещё нет этих вопросов, или вы переживаете из-за будущих интервью - пишите в личку!
PS: Да, у меня было всего 5 вопросов, на которые я отвечал целый час. Иногда чересчур подробные ответы могут помочь вам избежать неудобных вопросов. Ведь время интервью не ограничено. Но с другой стороны, могут попросить пройти дополнительный собес.
#python_полезности #мой_путь
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7👍4🤔4👾1
Короткий полезно-пост из книги по подготовке к интервью. ✨
Сама книга про подготовку к проектированию систем, но советы применимы и к другим видам интервью. Про книгу будет обзор, как только её дочитаю.🔜
#мудрость_на_каждый_день
Сама книга про подготовку к проектированию систем, но советы применимы и к другим видам интервью. Про книгу будет обзор, как только её дочитаю.
#мудрость_на_каждый_день
Please open Telegram to view this post
VIEW IN TELEGRAM
Совершëнное лучше совершенного ✨
В школе я учился на художественном направлении, а после школы изучал дизайн и типографику.
В дизайн-среде черезвычайно популярна цитата из книги «Марк Цукерберг» за авторстром Джорджа Бима: «Совершëнное лучше совершенного».
Дизайнерам, с зачастую ярко выраженным перфекционизмом, эта цитата действительно подходит идеально. К разработчикам, впрочем, тоже.
Не надо делать всё идеально, сделайте достаточно хорошо. Можно сделать задачу на 99% и этого будет достаточно - оставшийся процент может потребовать ресурсов больше, чем 99% сделанных.⭐️
В одном из прошлых постов я писал, что в любом репозитории должен быть readme, но лучше репозиторий без него, чем вообще никакой✅
Ставьте единорожку, если любите недоделывать дела из-за перфекционизма!🦄
#мысли
В школе я учился на художественном направлении, а после школы изучал дизайн и типографику.
В дизайн-среде черезвычайно популярна цитата из книги «Марк Цукерберг» за авторстром Джорджа Бима: «Совершëнное лучше совершенного».
Дизайнерам, с зачастую ярко выраженным перфекционизмом, эта цитата действительно подходит идеально. К разработчикам, впрочем, тоже.
Не надо делать всё идеально, сделайте достаточно хорошо. Можно сделать задачу на 99% и этого будет достаточно - оставшийся процент может потребовать ресурсов больше, чем 99% сделанных.
В одном из прошлых постов я писал, что в любом репозитории должен быть readme, но лучше репозиторий без него, чем вообще никакой
Ставьте единорожку, если любите недоделывать дела из-за перфекционизма!
#мысли
Please open Telegram to view this post
VIEW IN TELEGRAM
🪝 Ловись, Джун, и большой и маленький!
На одном из последних собесов меня спросили, кем я себя считаю: Джуном, Мидлом или Сеньором. Тут отлично подойдёт замечание Гриши (ставь единорога если знаешь, о ком речь): «Этап с позицией Джуна надо вообще убрать».❌
Интересно, что:
Вам, как сотруднику, платят меньше с учётом того, что вы специалист низкого уровня. Вы должны были получить какие-то «преимущества», но только в теории.💵
Представьте это как сделку: вы получите зарплату ниже, а взамен вас должны научить, прикрепить наставника, дать задачи более лёгкого уровня. Но вы не получите ничего из этого, вы просто будете получать меньшую зарплату. Причём до уровня миддла вы дорастёте за 2-3 месяца, как раз время испытательного срока, только вот ни грейд, ни зарплату вам не поднимут.
🕯 Аргумент про более лёгкие задачи в целом достаточно странный, потому что количество задач у бизнеса ограничено и более того, если бизнесу что-то нужно, то вопроса «у нас есть тот, кто сможет это сделать?» - не будет. Кому-то придётся разбираться с задачей в любом случае. А в первые два-три месяца работы даже от сеньора не ждут быстрого выполнения задач. Ведь ему надо «вкатиться» в проект, понять, что вообще происходит и т.д.
📎 Так что быть Джуном - это ловушка, на которую нельзя клевать. А если вы понимаете, что вам реально не хватает навыков, и до миддла ещё нужен рост - пишите в личку.
#мудрость_на_каждый_день #мысли
На одном из последних собесов меня спросили, кем я себя считаю: Джуном, Мидлом или Сеньором. Тут отлично подойдёт замечание Гриши (ставь единорога если знаешь, о ком речь): «Этап с позицией Джуна надо вообще убрать».
Интересно, что:
Позиция Джуна выгодна только работодателю.
Вам, как сотруднику, платят меньше с учётом того, что вы специалист низкого уровня. Вы должны были получить какие-то «преимущества», но только в теории.
Представьте это как сделку: вы получите зарплату ниже, а взамен вас должны научить, прикрепить наставника, дать задачи более лёгкого уровня. Но вы не получите ничего из этого, вы просто будете получать меньшую зарплату. Причём до уровня миддла вы дорастёте за 2-3 месяца, как раз время испытательного срока, только вот ни грейд, ни зарплату вам не поднимут.
#мудрость_на_каждый_день #мысли
Please open Telegram to view this post
VIEW IN TELEGRAM
Как известно, дисциплина важнее мотивации. Иногда очень сложно заставить себя что-то делать, а когда ты работаешь в IT - отсутствие дисциплины и лень - самые главные враги. Вот несколько идей, которые использую я и мои знакомые, когда мотивации и сил на работу нет.
Часто мы ищем причины чтобы делать что-то. У вас есть задача, которая принесёт вам зарплату /навыки / опыт. Если не получается найти причины её сделать, то попробуйте найти причины её не делать. Эти причины могут оказаться настолько глупыми, вроде "я устану" или "мне придётся встать с дивана", что вам легко будет начать делать эту задачу. Помните: самое сложное начать, продолжать проще.
Геймифицируйте процесс, если вы любите игры - это поможет вам с задачей. Представьте задачу как квест или серию квестов. Как будто решение текущей задачи поможет спасти принцессу в замке или победить дракона. Иногда задачу нужно разбить на серию задач, и тогда решение каждой принесёт вам заряд эндорфинов и будет проще решить всю задачу.
Работайте не больше 25-40 минут, делая перерывы по 10-15 минут. Мозгу нужен отдых, а отдохнув, он работает гораздо лучше. Человек моргает 15 раз в минуту, потому что мозг не может воспринимать информацию бесконечным потоком. В среднем, человек может быть продуктивен всего 4-5 часов в день, так что делайте перерывы. Я стараюсь во время перерыва не делать вообще ничего, тогда мозгу становится скучно, и проще включиться в работу снова.
А какие методы обмана своего мозга для включения в работу посоветуете вы?
#мудрость_на_каждый_день
Please open Telegram to view this post
VIEW IN TELEGRAM
Предлагаю немного отвлечься от рабочих дел и решить небольшую задачку. Если справитесь, то вам точно нужно быть разработчиком!
У нас есть две сковороды, чтобы жарить котлеты для бургера. Каждую котлету нужно пожарить по одной минуте с каждой стороны. Сколько минимально времени нужно для жарки трёх котлет?
#мемы
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔2 2 2 2
Сколько минимально времени нужно для жарки трёх котлет?
Anonymous Quiz
4%
1 минута
4%
2 минуты
46%
3 минуты
35%
4 минуты
2%
5 минут
9%
6 минут
Недавно я выступал в Школе 21 и пообещал поделиться инсайтами, о которых я рассказывал во время выступления. Это первый пост про инсайты ООП.
В разработке часто используются два термина:
Для создания кода, который легко поддерживать, не стоит писать одно и то-же несколько раз. Самый популярный пример, когда мы выносим в отдельную функцию какой-то функционал, который используется в нескольких местах программы.
Благодаря этому подходу у нас меньше кода, соответственно меньше ошибок. В случае внесения изменений, их нужно вносить только в одном месте.
Второй подход гласит, что разрабатываемые нами системы необходимо делать простыми. Поскольку простой код проще поддерживать и понимать, то и ошибок становится меньше. Для этого нужно не усложнять конструкции. Если мы можем разбить какую либо функциональность на части, то каждую лучше реализовать отдельно.
Это всё хорошо, но...
Please open Telegram to view this post
VIEW IN TELEGRAM
Друзья, хочу поделиться подборкой свежих отзывов о моих карьерных консультациях⚡️
Спасибо вам за качественную обратную связь. Получать искренние и позитивные отзывы - вдвойне приятно!❤️
В одном из следующих постов я планирую раскрыть лайфхаки, которые помогут вам составить резюме так, чтобы его конверсия увеличилась в 2 раза. Не выключайте уведомления канала и следите за постами. Впереди у нас ещё много интересного! 🔥
А если вы чувствуете, что пока не готовы к собесам или хотите проверить свои силы - пишите мне в личку @pysage
Спасибо вам за качественную обратную связь. Получать искренние и позитивные отзывы - вдвойне приятно!
В одном из следующих постов я планирую раскрыть лайфхаки, которые помогут вам составить резюме так, чтобы его конверсия увеличилась в 2 раза. Не выключайте уведомления канала и следите за постами. Впереди у нас ещё много интересного! 🔥
А если вы чувствуете, что пока не готовы к собесам или хотите проверить свои силы - пишите мне в личку @pysage
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Предлагаю немного размять мозги перед следующими тремя выходными и подумать, что же не так с кодом на картинке. Или всё так? Пишите свои версии в комментариях
Please open Telegram to view this post
VIEW IN TELEGRAM
Код выше работает, но всё ли с ним хорошо?
Anonymous Poll
20%
Работает? Значит всё ок.
60%
Вопрос то с подвохом, что-то тут не то!
20%
Написал в комментариях, что не так
24 февраля приглашаю тебя на лекцию "Как получить оффер Х2" 🔥
Мы уже обсудили темы: «Как стать миддлом за год с нуля» и «Какие страшные тайны скрывает ООП», а скоро обсудим «Как делать код-ревью и улучшать код».
🫥 В этот раз тема тоже очень интересная. Расскажу про то, как получить оффер Х2 от текущей зарплаты и проходить собеседования на грейд выше, чем у вас сейчас. Особенно актуально тем, кто ещё не работают.
Вот краткое содержание выступления:
🟠 Моя история 3-ёх офферов за 9 месяцев.
🟠 Секреты любого технического интервью.
🟠 Как поднять свой технический грейд.
🟠 Разберём реальные вопросы с моего последнего собеседования.
А ещё будет розыгрыш подарков и интерактивная игра, для тех, кто придёт на выступление лично. Жду тебя в эту субботу, 24.02, в московской школе 21⚡️
Мы уже обсудили темы: «Как стать миддлом за год с нуля» и «Какие страшные тайны скрывает ООП», а скоро обсудим «Как делать код-ревью и улучшать код».
Вот краткое содержание выступления:
А ещё будет розыгрыш подарков и интерактивная игра, для тех, кто придёт на выступление лично. Жду тебя в эту субботу, 24.02, в московской школе 21
Please open Telegram to view this post
VIEW IN TELEGRAM
🚀 Моё выступление начнётся уже через 20 минут!
Жду тебя на лекции "Как получить оффер Х2". Напоминаю, что у тех, кто придёт лично, будет возможность выиграть подарок 🎁
Жду тебя на лекции "Как получить оффер Х2". Напоминаю, что у тех, кто придёт лично, будет возможность выиграть подарок 🎁
Выступление прошло супер! 🥳
Спасибо всем, кто пришёл лично! Победители, не забудьте написать мне в личку👍
Помогите выбрать тему следующего выступления:
Спасибо всем, кто пришёл лично! Победители, не забудьте написать мне в личку
Помогите выбрать тему следующего выступления:
Please open Telegram to view this post
VIEW IN TELEGRAM
Тема следующего выступления:
Anonymous Poll
45%
Как делать код ревью, улучшать качество кода и проводить рефакторинг?
55%
Для работы нужен опыт, для опыта работа. Что делать?
Сегодня продолжаем изучать тайны ООП. А если вы пропустили предыдущий пост - обязательно читайте.
Мы определили проблему. Задача: "не повторять один и тот же код и сделать код простым". Для решения этой задачи мы воспользуемся Наследованием.
Мы разработали персонажа для игры. Пока всё просто и понятно. У нас есть класс, который выполняет определённые действия.
Мы хотим добавить классы
Warrior и Archer с общей реализацией всего, кроме метода атаки. Стоит вынести общие методы в общий класс. Для этого мы воспользуемся механизмом наследования:Наследование позволяет нам объединить схожие части в один класс.
Мы создали абстрактный класс, который является лишь каркасом. Абстрактный класс не может использоваться самостоятельно. Каждый из классов наследников может использовать как общие методы, так и уникальные методы для каждого из них.
Расширим классы, добавив новый метод специальной атаки. Так как этот метод имеет уникальную реализацию у каждого класса, то реализация должна быть внутри класса наследника. В абстрактном классе мы добавляем абстрактный метод.
Если мы хотим добавить класс
Paladin расширяющий Warrior, то проблем не будет. Мы добавляем уникальный дополнительный метод в новый класс. Paladin сможет использовать как новый метод, так и все методы Warrior.В случае с
TrainingDummy всё сложнее. Те методы, которые этот класс не может использовать мы обязаны переопределить, добавив вызов ошибки, что будет сложно поддерживать!Наследование не просто позволяет нам удобно объединять общее поведение. Любые исключения приведут к большим изменениям. В итоге, каждое изменение приводит к дорогому рефакторингу. Изменения "верхних" классов приводят к изменениям всех "нижних" классов.
Наследование требует объединить общие детали в один класс!
Какие есть альтернативы - знают те, кто был на выступлении. А ты знаешь? Пиши об этом в комментарии!
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM