И чтобы ваше движение было более стремительным и целенаправленным – разберем семь технологий, которые являются базовыми и необходимыми в работе разработчиков, владеющими Python, на любой позиции от engineering до backend.
1. Алгоритмы
Для эффективного и быстрого решения задач при работе с большим количеством данных нужны алгоритмы. Алгоритмизация – очень важная вещь в работе программиста. Все владеют этим навыком на разном уровне, однако владеть базовыми вещами должен каждый. В этой связи профессионалы советуют прочесть книгу Адитья Бхаргава «Грокаем алгоритмы», в ней можно найти очень многое, что пригодится в работе:
- определение алгоритмической сложности,
- понятие об О-нотации,
- правила оценки сложности алгоритма,
- виды алгоритмов сортировок и их особенности.
2. SQL и базы данных
Среды, где хранятся все необходимые данные – это очень простое для понимания, но и очень важное. Чтобы грамотно работать с ними нужно ориентироваться в таких вещах как:
- правила и особенности использования базы данных реляционного типа,
- правилах использования NOSQL,
- команды для создания и управления таблицей,
- разные условия при работе с выборками по колонкам.
3. Агрегационные функции
Прежде всего важно разобраться с count, average, groupby и sum, понимать, как функционируют и для чего используются. Заучивать все агрегационные функции необязательно. Очень пригодится и метод join. Если же вы хотите стать асом SQL, разберитесь и с оконными функциями.
4. Рекурсия
Рекурсию можно заменять на цикл и наоборот. Но, как правило, писать рекурсию намного сложнее, как и поддерживать ее. Впрочем, имеют место быть ситуации, когда в реализации сложнее именно цикл, тогда на помощь придет вызывающая сама себя функция.
Если предупредить возможный риск ошибки максимальной глубины и не обращать внимания на затраты памяти, то рекурсию можно применять даже в работе алгоритмами.
5. Алгоритмы на графах
Графы это абстрактное изображение соединений между разными группами посредствам точек и линий. Точка является вершиной графа, а линия – ребром, соединяющим две эти точки. Количество ребер определяет степень вершины.
Алгоритмы на графах – это тот же граф, который удовлетворяет операциям алгоритма. Для ориентирования во всех этих процессах следует изучить поиск в ширину и глубину, а также версию Дейкстри. Стандартным примером поиска в ширину или глубину является создание даже самого элементарного файлового менеджера и необходимость в определенных файлах. Чтобы ускорить процессы и не осуществлять поиск вручную, достаточно изучить алгоритмы на графах.
6. Структуры данных
Для оптимального хранения данных приходится использовать структуры данных. Чтобы работать с ними, требуется знание следующих аспектов:
- хеш-таблицы,
- графы и массивы,
- множество и связанные списки,
- стеки, очереди и деки.
7. Git
По мнению профессионалов, Git – это must-have при работе с большими проектами и выполнении задач вместе с другими разработчиками. Утилита позволяет отслеживать и фиксировать все изменения, внесенные по ходу работы, что исключает риск потери какой-то части кода. Git – абсолютный лидер по популярности среди современных систем управления версиями. Чтобы эффективно его использовать надо изучить:
- разные типы команд – от add до merge и rebase,
- виды и правила создания репозиториев,
- создание коммитов,
- работу с ветвями.