5 алгоритмических задач с технических собеседований 🔥
Давненько мы не решали с Вами алгоритмические задачки! А зря, ведь это очень популярный класс вопросов на собеседованиях для любых языков программирования.
Мы предлагаем Вам самостоятельно решить 5 задач с технических собеседований. Пишите решение в комментариях или присылайте в чат 👉🏻 https://news.1rj.ru/str/itresume_chat.
А тем, кто быстро справится 👉🏻 еще одна интересная задачка с разбором
Давненько мы не решали с Вами алгоритмические задачки! А зря, ведь это очень популярный класс вопросов на собеседованиях для любых языков программирования.
Мы предлагаем Вам самостоятельно решить 5 задач с технических собеседований. Пишите решение в комментариях или присылайте в чат 👉🏻 https://news.1rj.ru/str/itresume_chat.
А тем, кто быстро справится 👉🏻 еще одна интересная задачка с разбором
GROK IT!
❓Задача по Python: Как из dic получить ('a', 'b', 'c')?
Правильный ответ раскроем завтра 😏
В чате IT Resume 👉🏻 https://news.1rj.ru/str/itresume_chat еще больше интересных задач по программированию, Data Science и анализу данных
#grokit #grokit_python
❓Задача по Python: Как из dic получить ('a', 'b', 'c')?
Правильный ответ раскроем завтра 😏
В чате IT Resume 👉🏻 https://news.1rj.ru/str/itresume_chat еще больше интересных задач по программированию, Data Science и анализу данных
#grokit #grokit_python
Как из dic получить ('a', 'b', 'c')?
Anonymous Quiz
22%
list(zip(dic))
28%
list(zip(*dic))
10%
*list(zip(*dic))
40%
Ни один из вариантов
GROK IT! Ответ на задачу про оператор распаковки и функцию zip 🔔
Ответ ищите в карточках 😉
Ссылка на чат 👉🏻 https://news.1rj.ru/str/itresume\_chat, где еще больше интересных задач по программированию, Data Science и анализу данных!
О том, как еще можно использовать оператор читайте в нашей статье. Про оператор zip у нас тоже есть статья, где вы найдете 7 неочевидных способов использования оператора 😉
#grokit #grokit_python
Ответ ищите в карточках 😉
Ссылка на чат 👉🏻 https://news.1rj.ru/str/itresume\_chat, где еще больше интересных задач по программированию, Data Science и анализу данных!
О том, как еще можно использовать оператор читайте в нашей статье. Про оператор zip у нас тоже есть статья, где вы найдете 7 неочевидных способов использования оператора 😉
#grokit #grokit_python
Друзья, расскажите, как Вы организовываете свой код? 👨💻
Кто-то разбивает на модули, кто-то использует классы, но хранит все в одном файле, кто-то вообще работает только с функциями. Ну а есть и такие, кто напрочь игнорирует принцип DRY (Dont’t repeat yourself) и по несколько раз повторяет один и тот же код, вместо того, чтобы использовать хотя бы функции.
А как делаете Вы? 😏
Кто-то разбивает на модули, кто-то использует классы, но хранит все в одном файле, кто-то вообще работает только с функциями. Ну а есть и такие, кто напрочь игнорирует принцип DRY (Dont’t repeat yourself) и по несколько раз повторяет один и тот же код, вместо того, чтобы использовать хотя бы функции.
А как делаете Вы? 😏
Как Вы организовываете свой код?
Anonymous Poll
58%
Работаю с функциями
23%
Разбиваю на классы
38%
Дроблю на модули
11%
Разбиваю, но все держу в одном файле
18%
Вообще пишу сплошным полотном
⚙️ Зачем нужны конфиги в Python и как работать с ними правильно?
Конфиги - необходимый атрибут в любом проекте, хотя некоторые программисты недооценивают их важность. С помощью конфигов удобно хранить данные доступов, прописывать пути до папок/логов и т.д.
Ок, то что конфиги нужны - вопросов нет. Но как с ними лучше работать? Существует большое количество мнений по этому поводу, но мы в своих проектах привыкли пользоваться .ini-файлами и библиотекой configparser. Такой подход снимает кучу головной боли - один раз мы прописываем все в конфиге и на все оставшееся время вообще забываем про него.
✅ Кстати, совет: если над проектом работает сразу несколько человек, то можно добавить конфиг в gitignore, чтобы у каждого была своя локальная копия с нужными настройками. Тогда конфиг не будет перезатираться при каждом git pull.
А как у вас обстоят дела с конфигами? Используете их или по-старинке храните все прямо в коде?)
Конфиги - необходимый атрибут в любом проекте, хотя некоторые программисты недооценивают их важность. С помощью конфигов удобно хранить данные доступов, прописывать пути до папок/логов и т.д.
Ок, то что конфиги нужны - вопросов нет. Но как с ними лучше работать? Существует большое количество мнений по этому поводу, но мы в своих проектах привыкли пользоваться .ini-файлами и библиотекой configparser. Такой подход снимает кучу головной боли - один раз мы прописываем все в конфиге и на все оставшееся время вообще забываем про него.
✅ Кстати, совет: если над проектом работает сразу несколько человек, то можно добавить конфиг в gitignore, чтобы у каждого была своя локальная копия с нужными настройками. Тогда конфиг не будет перезатираться при каждом git pull.
А как у вас обстоят дела с конфигами? Используете их или по-старинке храните все прямо в коде?)
Самый спорный шаблон ООП: Singleton 🧐
Singleton (или Одиночка) - один из самых известных и, в то же время, спорных паттернов ООП. Это порождающий паттерн проектирования, который гарантирует, что у класса есть только один экземпляр, и предоставляет к нему глобальную точку доступа.
Другими словами, представьте, что Вы создали объект, а через некоторое время пытаетесь создать новый экземпляр. Но Синглтон вернет Вам ранее созданный объект, а не создаст новый.
💥 Пример из жизни: Правительство страны. Одновременно не может быть несколько правительств (предполагается, что это так :) ). При этом не важно, кто сидит в Правительстве - оно все равно в единственном экземпляре.
Синглтон, например, используют:
✓ При создании подключения к БД (чтобы из разных частей программы был один доступ к БД)
✓ При открытии файла для чтения/записи
Спорность этого паттерна в том, что у него есть ряд существенных недостатков:
✘ Синглтон нарушает принцип единственной ответственности класса (Single Responsibility Principle, SRP) - такой класс не только выполняет свой функционал, но еще и контролирует количество экземпляров
✘ Зачастую Singleton применяется там, где не должен, и закрывает собой дыры плохого дизайна
✘ Одиночка очень плохо работает в многопоточных программах из-за проблем с доступом
✘ Синглтон сложен в тестировании кода
Однако, иногда все же довольно удобно использовать этот паттерн, если нужно гарантировать единственность экземпляра класса. Помимо этого, он позволяет реализовать отложенную инициализацию. Например, нет необходимости в самом начале открывать соединение с БД и постоянно держать его закрытым. Его можно открыть в нужный момент, создав объект, а потом открывать-закрывать по мере необходимости.
Singleton (или Одиночка) - один из самых известных и, в то же время, спорных паттернов ООП. Это порождающий паттерн проектирования, который гарантирует, что у класса есть только один экземпляр, и предоставляет к нему глобальную точку доступа.
Другими словами, представьте, что Вы создали объект, а через некоторое время пытаетесь создать новый экземпляр. Но Синглтон вернет Вам ранее созданный объект, а не создаст новый.
💥 Пример из жизни: Правительство страны. Одновременно не может быть несколько правительств (предполагается, что это так :) ). При этом не важно, кто сидит в Правительстве - оно все равно в единственном экземпляре.
Синглтон, например, используют:
✓ При создании подключения к БД (чтобы из разных частей программы был один доступ к БД)
✓ При открытии файла для чтения/записи
Спорность этого паттерна в том, что у него есть ряд существенных недостатков:
✘ Синглтон нарушает принцип единственной ответственности класса (Single Responsibility Principle, SRP) - такой класс не только выполняет свой функционал, но еще и контролирует количество экземпляров
✘ Зачастую Singleton применяется там, где не должен, и закрывает собой дыры плохого дизайна
✘ Одиночка очень плохо работает в многопоточных программах из-за проблем с доступом
✘ Синглтон сложен в тестировании кода
Однако, иногда все же довольно удобно использовать этот паттерн, если нужно гарантировать единственность экземпляра класса. Помимо этого, он позволяет реализовать отложенную инициализацию. Например, нет необходимости в самом начале открывать соединение с БД и постоянно держать его закрытым. Его можно открыть в нужный момент, создав объект, а потом открывать-закрывать по мере необходимости.