Хотел написать мнение о статьях «99% программистов не умеют писать код» и «Почему программисты не умеют программировать», однако они оказались просто кликбейтом, и на самом деле пользы в них никакой нет.
В статьях рассуждали про типовые задачи на собеседованиях, вроде «FizzBuzz» и валидации скобок, так что я решил рассказать, как я решаю алгоритмы.
* не усложняй. Не надо валидировать данные, иметь научную степень или кровь дракона для решения задачи 🐉
* проверь. Для любого алгоритма нужно несколько вариантов входных-выходных данных, чтобы понять, как оно работает.
1 до n и иттерировать по нему, проверяя каждое число.* не ломай голову. Если идей нет совсем, то стоит погуглить, спросить совета или почитать гороскоп. Чтобы эффективно решать алгоритмы надо знать их, в противном случае не получится решать их эффективно
Перебрать числа от 1 до n:
если число делится на 3:
то "Fizz"
если число делится на 5:
то "Buzz"
если оба:
"FizzBuzz"
иначе:
текущее число
#мудрость_на_каждый_день #python_полезности
Please open Telegram to view this post
VIEW IN TELEGRAM
🦄5👍3👾1
Хватит быть джуном!😊
👆Так говорит нам Kent C. Dodds, автор этой статьи.
Что вы делали, когда впервые пришли на каток? Пошли в специальную секцию для детей и занимались там несколько лет? Нет, скорее всего такой секции даже нет, вы просто начинаете кататься.
⛸ Конечно, первые несколько посещений вам будет сложно. Но сколько времени потребуется, чтобы кататься с теми, кто занимается несколько лет? Разумеется, вы не станете профессионалом, но чтобы просто научиться кататься с другими, вам не потребуется много времени. Так же можно сказать и про множество других тем.
➡️ Сразу к делу: что делать?
🟠 Перестаньте быть Джуном! Начинайте решать задачи более высокого уровня, посмотрите что делают коллеги, попросите вас добавить на созвон, записывайте, что говорят сеньоры в вашей компании.
🟠 Проведите митинг. Технологии меняются каждый день. Вот сайт, где считают, сколько дней прошло с выхода последнего фреймворка для js. Сейчас там цифра 0! Найдите новый инструмент и расскажите о нём коллегам, друзьям, сообществу. Запишитесь на открытые выступления по теме, которая вам интересна. Стесняетесь? Напишите мне в личку и расскажите о том, что вас вдохновляет!
🟠 Добавьте себе в резюме новый опыт, придумайте проект, подробно его распишите и расскажите о нём на собеседовании. Не обязательно искать работу для этого, даже без оффера это будет интересный опыт.
🟠 Никто не знает, сколько времени должно пройти между Junior и Middle позициями, так что станьте мидлом уже сегодня!
Ставьте🦄 , если вы больше не джун :)
#мудрость_на_каждый_день #мысли #python_полезности
👆Так говорит нам Kent C. Dodds, автор этой статьи.
Что вы делали, когда впервые пришли на каток? Пошли в специальную секцию для детей и занимались там несколько лет? Нет, скорее всего такой секции даже нет, вы просто начинаете кататься.
Ставьте
#мудрость_на_каждый_день #мысли #python_полезности
Please open Telegram to view this post
VIEW IN TELEGRAM
🦄6🔥2👍1🤔1
На днях мне сказали, что посты очень длинные. Держите короткий полезно-пост 👇
Сайт рефакторинг гуру. Это один из самых полезных источников знаний, обязательно сохраните себе! А ещё его автор написал книгу из этого поста.
PS: Ставьте плюс в комментарии, если у вас есть код, который надо отрефакторить➕
#python_полезности #находки
Сайт рефакторинг гуру. Это один из самых полезных источников знаний, обязательно сохраните себе! А ещё его автор написал книгу из этого поста.
PS: Ставьте плюс в комментарии, если у вас есть код, который надо отрефакторить
#python_полезности #находки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥1🤔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
Делюсь первой из них в сегодняшней истории! Хотите остальные? Ставьте
🍰 #it #python_полезности #просто_о_сложном
Please open Telegram to view this post
VIEW IN TELEGRAM
На днях решал задачу на литкоде. Сама задачка максимально простая: среди полученного списка чисел есть такие, которые встречаются чаще остальных, нужно вернуть эти числа.
Я написал решение, в котором перебираю отсортированный массив и считаю, сколько вхождений в строку каждого числа. Если текущее число встречается чаще, чем прошлое, то его и сохраняем. Вот код:
class Solution:
def majorityElement(self, nums: List[int]) -> int:
nums.sort()
max_seen = 0
max_seen_num = nums[0]
current_streak = 0
prev_num = nums[0]
for num in nums:
if num == prev_num:
current_streak += 1
else:
current_streak = 1
prev_num = num
if current_streak > max_seen:
max_seen = current_streak
max_seen_num = num
return max_seen_num
Казалось, что тут даже нечего обсуждать, но я решил сократить решение. Если у нас будет всего два уникальных числа, то те числа, которых больше, должны занять больше половины всего списка. Таким образом, достаточно вернуть центральный элемент отсортированного массива. И используя анонимные функции, можно написать даже так:
class Solution:
majorityElement = lambda _, nums: sorted(nums)[len(nums)//2]
(bytes('浩潰瑲猠慴楴瑳捩ੳ‽灯湥∨獵牥漮瑵Ⱒ✠❷潦楬敮椠瑳楤㩮 †渠浵敢彲捯畣敲据獥㴠搠晥畡瑬楤瑣氨浡摢㩡〠††畮獭㴠氠獩⡴慭⡰湩ⱴ氠湩獲牴灩⤨ㅛⴺ崱献汰瑩✨✬⤩††灵数‽敬⡮畮獭⼯㈠ †映牯渠浵敢湩渠浵㩳 †††渠浵敢彲捯畣敲据獥湛浵敢嵲⬠‽††††晩渠浵敢彲捯畣敲据獥湛浵敢嵲㸠甠灰牥††††††牰湩⡴畮扭牥 楦敬昽††††††牢慥੫硥瑩〨','u16')[2:])"Что вообще тут происходит!?"
import statistics
class Solution:
def majorityElement(self, nums: list[int]) -> int:
return statistics.mode(nums)
🍰 #it #python #алгоритмы
Please open Telegram to view this post
VIEW IN TELEGRAM
Продолжаем делится алгоритмами в истории! Сегодня алгоритм двух указателей.
Хотите остальные? Ставьте
🍰 #it #python_полезности #просто_о_сложном #алгоритмы
Please open Telegram to view this post
VIEW IN TELEGRAM
Если вы работаете на устройствах с MacOS, то наверняка вы тоже испытывали проблемы при использовании Docker. Необходимость запуска докера через десктоп приложение, большое потребление памяти, а на корпоративных устройствах его вообще удаляют... Есть решение!
brew install orbstack🍰 #it #python_полезности #находки
Please open Telegram to view this post
VIEW IN TELEGRAM
Я устал, помогите пожалуйста! 😶
Я очень люблю пить чай. Чайник стоит на кухне и для удобства я сделал кнопку включения чайника в другой комнате. Так получилось, что кнопок три и только одна включает чайник. Другие две ничего не делают. Я никак не могу запомнить, какая кнопка включает чайник. Каждый раз приходится по очереди включать каждую и идти проверять😜
Наверняка есть решение лучше? Одновременно можно включить только одну кнопку👇
🍰 #it #python_полезности #it_загадка
Я очень люблю пить чай. Чайник стоит на кухне и для удобства я сделал кнопку включения чайника в другой комнате. Так получилось, что кнопок три и только одна включает чайник. Другие две ничего не делают. Я никак не могу запомнить, какая кнопка включает чайник. Каждый раз приходится по очереди включать каждую и идти проверять
Наверняка есть решение лучше? Одновременно можно включить только одну кнопку
🍰 #it #python_полезности #it_загадка
Please open Telegram to view this post
VIEW IN TELEGRAM
📚 Рубрика: «Книжная полка разработчика»
Чем может быть полезна самая известная книга в дизайн-сообществе разработчику? Автор отвечает в самой книге:
🔜 Прочитал «Дизайн привычных вещей» от автора Дона Нормана. Я хотел прочитать эту книгу ещё 10 лет назад, а первое издание книги вышло в 1988 году (!). Казалось бы: книга уже устарела, написана психологом для дизайнеров, причём тут технические специалисты? Рассказываю 💋
🔺 У вас когда-нибудь было такое, что вы не можете открыть дверь с первого раза? Хотите потянуть, а её надо толкать вперёд, или вообще нажать на кнопку, чтобы дверь сама открылась? Дон Норман не стал скрывать чувства и написал множество статей о ситуациях, когда вроде привычная вещь оказывалась настоящим квестом. Такие ситуации даже получили название "дверь Нормана". Эти статьи и стали фундаментом его книги «Дизайн привычных вещей». Это великолепная книга о том, как делать продукты для людей.
Я рекомендую эту книгу тем, кто:
🟡 не понимает, как развиваться не только в технических навыках
🟡 умеет решать технические задачи, но не думает о том, как его результаты влияют на пользователей
🟡 прошёл дизайн-интервью и хочет развиваться дальше
В одном посте невозможно описать мой восторг от книги, ведь только список используемой литературы в ней занимает 14 страниц! Просто доверьтесь и добавьте книгу на книжную полку🙂
📚 Обновлённый список обязательных к прочтению книг:
🟢 До выхода на работу:
• Грокаем алгоритмы
• Карьера программиста
🟢 После выхода на работу:
• Паттерны проектирования
• Подготовка к сложному интервью
🟢 Чтобы поднять грейд:
• Дизайн привычных вещей
• Книга с кабанчиком
• Погружение в рефакторинг
🍰 #книжная_полка #it #python_полезности
Чем может быть полезна самая известная книга в дизайн-сообществе разработчику? Автор отвечает в самой книге:
Производство хорошего продукта требует гораздо большего, чем одни только хорошие технические навыки.
Я рекомендую эту книгу тем, кто:
В одном посте невозможно описать мой восторг от книги, ведь только список используемой литературы в ней занимает 14 страниц! Просто доверьтесь и добавьте книгу на книжную полку
📚 Обновлённый список обязательных к прочтению книг:
• Грокаем алгоритмы
• Карьера программиста
• Паттерны проектирования
• Подготовка к сложному интервью
• Дизайн привычных вещей
• Книга с кабанчиком
• Погружение в рефакторинг
🍰 #книжная_полка #it #python_полезности
Please open Telegram to view this post
VIEW IN TELEGRAM
📚 Рубрика: «Книжная полка разработчика»
Разработчику нужно прокачивать не только хард-скиллы, но и "софты"! Про мягкие навыки написано уже много материалов, а я даже провёл несколько выступлений. Отдельно выделяют софт-навыки для разработчиков(выступления Андрея Смирнова про софт-скиллы для разработчиков) . Исследований, статей и книг так много, что уже сложно разобраться. Удивительным совпадением я нашёл самую полезную книгу!
🔜 Прочитал «Как оставаться человеком на работе» от издательства HBR. Эта книга самая лучшая из всех, что я читал, и лучшая работа HBR. Издание HBR на основании лучших (141) материалов написали эту книгу про эмоциональный интеллект и я рекомендую её прочитать! Рассказываю почему💋
🫥 Книга разделена на 6 частей, по навыкам, необходимых лидеру. В статьях и на выступлениях для разработчиков мы обычно слышим про "обучаемость", "самостоятельность" и т.д. Мнения, что разработчику нужны "осознанность" и "эмпатия" - я не встречал.
Если вы работаете на начальных позициях, навыки из этой книги могут показаться не нужными. Можно подумать, что эта книга полезна только управленцам или владельцам бизнеса - тем, у кого много подчинённых. По моему мнению, эта книга полезна для всех.💎
⭐ Раскрытие этих тем мне понравилось больше всего:
- Как определить что такое счастье и достичь его?
- Как правильно отдыхать и почему это важно?
- Что делать, если подчинённые не слышат тебя и делают всё не правильно?
💘 Каждая глава книги основана на исследованиях, статьях и книгах от издателя. В любой момент можно обратиться к источнику, а в самой книге нам показывают выводы и мнение автора. Над книгой работало 64 автора и указан 141 источник. Кроме того, в ней часто приводятся интервью. Каждая глава заставляет задуматься и порефлексировать, из-за этого я читал эту книгу почти 5 лет!
👍 Рекомендую почитать, если вы достигли момента, когда у вас уже есть подчинённые или вы не понимаете, как достичь счастья. Эта книга - лучший инструмент погружения в тему эмоционального интеллекта, даже если вы никогда не интересовались им.
📚 Обновлённый список обязательных к прочтению книг разработчику:
🟢 До выхода на работу:
• Грокаем алгоритмы
• Карьера программиста
🟢 После выхода на работу:
• Паттерны проектирования
• Подготовка к сложному интервью
🟢 Чтобы поднять грейд:
• Дизайн привычных вещей
• Книга с кабанчиком
• Погружение в рефакторинг
🟢 Лидерство и личностный рост:
• Как оставаться человеком на работе
Делитесь в комментариях, сколько из этих книг вы уже прочитали, и чем они вам помогли в работе👇
🍰 #книжная_полка #it #python_полезности
Разработчику нужно прокачивать не только хард-скиллы, но и "софты"! Про мягкие навыки написано уже много материалов, а я даже провёл несколько выступлений. Отдельно выделяют софт-навыки для разработчиков
Если вы работаете на начальных позициях, навыки из этой книги могут показаться не нужными. Можно подумать, что эта книга полезна только управленцам или владельцам бизнеса - тем, у кого много подчинённых. По моему мнению, эта книга полезна для всех.
- Как определить что такое счастье и достичь его?
- Как правильно отдыхать и почему это важно?
- Что делать, если подчинённые не слышат тебя и делают всё не правильно?
📚 Обновлённый список обязательных к прочтению книг разработчику:
• Грокаем алгоритмы
• Карьера программиста
• Паттерны проектирования
• Подготовка к сложному интервью
• Дизайн привычных вещей
• Книга с кабанчиком
• Погружение в рефакторинг
• Как оставаться человеком на работе
Делитесь в комментариях, сколько из этих книг вы уже прочитали, и чем они вам помогли в работе
🍰 #книжная_полка #it #python_полезности
Please open Telegram to view this post
VIEW IN TELEGRAM