Code Monkey home page Code Monkey logo

treasury's Introduction

Манифест

  1. Учиться нужно асинхронно: в работу нужно брать не огромную тему (например изучить весь Python или теорию баз данных), а набирать из разных направлений понемногу маленьких тем / вопросов в проработку: чуть-чуть из Python, чуть-чуть из SQL и так далее.
  2. Обязательно освоить работу с Git, Debugger и научиться писать простейшие тесты.
  3. Заниматься регулярно!
  4. Решать (или пытаться решить) в день хотя бы 1 задачку с leetcode или аналогичного сайта.
  5. Соблюдать режим труда и отдыха.
  6. Не бояться просить помощи во всех доступных источниках, если пришлось столкнуться с проблемой, которую не получается решить за вменяемое время.

Избранные статьи на Хабр

  • Почему твоя мама ещё не прогает? - Хабр
  • Хватит клепать псевдопрограммистов, или «Горшочек — не в IT!» - Хабр
  • Генераторы для самых маленьких - Хабр
  • Введение в асинхронное программирование на Python - Хабр
  • Асинхронный Python: различные формы конкурентности - Хабр
  • Типовые ошибки Python-разработчиков на собеседованиях - Хабр
  • Как работает память в Python - Хабр
  • Рецепт полезного код-ревью от разработчика из Яндекса - Хабр
  • Как устроен GIL? - Хабр
  • Действительно ли Python GIL уже мёртв? - Хабр

Переводы на Хабр по технологиям

Избранные курсы

Избранные книги

  • Ч.Петцольд - Код. Тайный язык информатики - базовая книга для понимания того, как работают компьютеры.
  • М.Лутц - Изучаем Python (2 тома) - базовые книги по Python
  • М.Лутц - Программирование на Python - читать только после базовых томов
  • А.Бхаргава - Грокаем алгоритмы - базовая книга по алгоритмам и структурам данных
  • А.Швец - Погружение в паттерны проектирования - базовая книга по паттернам для новичков. Читать только после книг по алгоритмам и программированию.
  • Л.Ромальо - Python. К вершинам мастерства - читать только после книг по программированию.
  • С.Дасгупта, Х.Пападимитриу, У.Вазирани - Алгоритмы - жёсткая книга про алгоритмы, но очень крутая. Читать только после всего остального.
  • Python для сетевых инженеров — Документация Python для сетевых инженеров 3.0
  • Э.Шоу - Внутреннее устройство CPython
  • К. Нгуен - Полное руководство параллельного программирования на Python http://onreader.mdl.ru/MasteringConcurrencyInPython/content/index.html
  • Д.Хеллман - Стандартная библиотека Python

Избранные видео

Избранные сайты для решения задач

Вопросы, часто встречающиеся на собеседованиях

Python:

  1. Что такое интерпретируемый язык? Что такое интерпретатор и как он работает в Python?
  2. Что такое статическая и динамическая типизация и в чем это проявляется в Python?
  3. Какие типы данных в Python вам известны?
  4. Чем кортеж отличается от списка?
  5. В каких случаях лучше использовать кортеж, а в каких - список?
  6. Как вы объясните человеку, что такое множество?
  7. Что такое словари и как они работают?
  8. Как работают типы данных хэшмап, связанный список, двусвязный список, массив?
  9. Что такое О (о-большое)? Зачем и как используется?
  10. Какая сложность вставки, извлечения, поиска элементов в словаре и списке?
  11. Что такое функции и зачем они нужны?
  12. Какие бывают аргументы у функций?
  13. Что такое распаковка коллекций?
  14. Что такое исключения? Какие они бывают? Как их использовать?
  15. Что такое ООП? На каких концепциях стоит ООП?
  16. Объяснить понятие класса и объекта (экземпляра).
  17. Что такое инкапсуляция? Накодить пример.
  18. Что такое наследование? Накодить пример.
  19. Бывает ли в Python множественное наследование? Как ты относишься к этому факту?
  20. Если у нескольких классов-родителей есть методы с одинаковыми названиями, то какой из них будет вызван в наследнике?
  21. Что такое полиморфизм? Накодить пример.
  22. Что такое staticmethod?
  23. Чем staticmethod отличается от простой функции?
  24. Когда будем использовать staticmethod, а когда простую функцию?
  25. Что такое classmethod? В чём его особенности? Когда применяется?
  26. Что такое магические методы и за что они отвечают?
  27. Что такое конструктор объектов в Python и из чего он состоит и как работает?
  28. Почему в методе init есть аргумент self?
  29. Что такое приватные и защищенные атрибуты? Как они работают?
  30. Можно ли получить доступ к приватным атрибутам в Python?
  31. Что такое менеджер контекста, зачем он нужен?
  32. Какие способы конкурентного выполнения программ в Python бывают?
  33. Что такое GIL и как он работает?
  34. В каких случаях GIL не работает?
  35. Что такое сборщик мусора и как он работает?
  36. Что такое потоки и процессы? Чем отличается поток от процесса?
  37. Что такое системный вызов fork?
  38. Какие существуют способы синхронизации процессов и потоков?
  39. Как передавать информацию из одного процесса в другой?
  40. Что такое эффект гонок? Как с ним бороться?
  41. Что такое асинхронность?
  42. Что такое event loop и как он работает?
  43. Сколько потоков и процессов работает во время асинхронного выполнения кода?
  44. Для каких задач стоит использовать потоки, для каких - процессы, а для каких - асинхронность?

Git

  1. Что это такое и зачем он нужен?
  2. Что такое local и remote репозитории?
  3. Что такое commit?
  4. Что такое ветка?
  5. Что такое pull-request / merge-request?
  6. Что такое merge?
  7. Что такое rebase?
  8. Что такое pull?
  9. Чем rebase отличается от merge?
  10. Что такое конфликты? Почему они возникают и как их разрешать?
  11. Уметь пользоваться командами: clone, commit, push, pull, merge, rebase

Docker

  1. Что такое контейнеризация? Зачем она нужна?
  2. Чем контейнер отличается от виртуальной машины?
  3. Что такое образ?
  4. Что такое том?
  5. Что такое сеть контейнера?
  6. Какие виды сетей бывают?
  7. Зачем нужен docker-compose?

Базы данных

  1. Что такое базы данных и для чего они нужны?
  2. Какие типы баз данных бывают?
  3. Чем РСУБД отличаются от NoSQL БД?
  4. Какие достоинства и недостатки есть у РСУБД и NoSQL?
  5. Приведите примеры РСУБД и NoSQL БД.
  6. Что такое BASE и ACID?
  7. Как понять, какую базу данных нужно использовать в проекте?
  8. Что такое индексы? Зачем они нужны? Как они работают?
  9. Какие популярные виды индексов существуют?
  10. Что такое транзакции? Зачем они нужны?
  11. Какие виды изолирования транзакций бывают?
  12. Что такое профилирование запросов?

SQL

  1. Что такое JOIN'ы и какие они бывают?
  2. Что такое оконные функции и как они работают?

Backend

  1. Что такое протокол передачи данных?
  2. Что такое HTTP? Чем отличается HTTPS?
  3. Какие другие протоколы передачи данных, кроме HTTP(S) вы знаете? Как они работают?
  4. Что такое API?
  5. Что такое REST и RESTfull API?

Тестирование

  1. Что такое тестирование и зачем оно нужно?
  2. Какие виды тестов вы знаете? Что каждый из видов тестов подразумевает под собой?
  3. Какие библиотеки для написания тестов используются?
  4. Что такое фикстура в pytest?

Кодинг:

  1. Написать пример произвольного менеджера контекста.
  2. Реализовать паттерн проектирования синглтон.
  3. Реализовать паттерн проектирования декоратор.
  4. Решить несколько задач.Уметь оценить алгоритмическую сложность решения.

Задача на временные метки

Есть список событий:

[
            {
                "dt": "2022-02-23 04:35:27.353366",
                "event": "start"
            },
            {
                "dt": "2022-02-23 04:35:34.654153",
                "event": "stop"
            },
            {
                "dt": "2022-02-23 04:38:34.382548",
                "event": "start"
            },
            {
                "dt": "2022-02-23 04:38:39.637583",
                "event": "stop"
            }
]

В этом списке последовательно лежат события типа START и STOP, а также их временные метки. События лежат последовательно: после START всегда идёт STOP и наоборот. Задача:

  1. Написать функцию, которая возвращает количество часов, выпадающее на промежуток соответствующих событий START - STOP за указанную дату.
  2. Возвращать количество часов за диапазон дат.
  3. Возвращать количество часов за текущий день, неделю, месяц, год.

treasury's People

Contributors

luchanos avatar iosakurov avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.