Telegram Group & Telegram Channel
# Минимальные знания Software Engineering для Data Scientist 1/3

## Git
Интерактивный туториал
Краткий курс по Git от Github
Git (или другая VCS) каждый день использует любой адекватный программист. Стоит инвестировать время не только в заучивание трех команд, а в понимание принципа работы. К счастью основы изучаются за пару вечеров, а большего и не надо. DS должно быть не сложно понять идею, ведь про графы и деревья вы наверное слышали. Только не используйте никаких GUI клиентов для Git по крайней мере пока учитесь! Например надо понимать разницу между git add и git commit, но GUI клиенты часто заменяют их одной кнопкой.

## Linux
The Linux command line for beginners
Если вы работаете из под Windows, то как можно быстрее бросайте это дело (если у вас уже Mac или Linux, то этот пункт можете пропустить). Считайте, что Python разработки под Windows не бывает. Не умея пользоваться линуксом вы беспомощны. Как слезть с иглы: поставьте себе Ubuntu и работайте только из под нее, а Windows оставьте для игр. Я бы не советовал пользоваться WSL, потому что это полумера, но и это подойдет как крайний вариант. Главное, чтобы вас не пугали фразы уровня “зайди на VPS по ssh по ключу, прокинь симлинк для этой штуки.” Иначе вы в большинстве команд будете тем парнем, которому надо постоянно помогать.

## Библиотеки и зависимости в Python
Python virtual environments: A Primer
Обязательное чтение про менеджмент библиотек и зависимостей в Python. Вы должны быть способны разрабатывать несколько DS проектов с конфликтующими зависимостями (один требует pytorch v1.12, второй v1.4) без использования Anaconda. Так не обязательно делать, но вы должны быть способны. Для вас не должно быть проблемой сделать так, чтобы проект запускался с одинаковыми версиями библиотек у вас, у вашего коллеги и на сервере.

## Практический Python
The Hitchiker’s Guide to Python
Чтение о практическом применении Python. Бесплатная, короткая и по делу написанная книга.

Особенное внимание:
Глава про структуру кода
Содержит очень важную информацию про модули и пакеты в Python (так же см. официальную документацию).
Для закрепления: взять любой свой проект и красиво разбить его на модули.
Глава про стиль кода
Стиль кода это недооцененная (особенно среди DS), но очень важная вещь. От умения писать код зависит, будут ваши коллеги плевать вам в чай или нет. Умение писать читабельный код сэкономит вам уйму времени даже если вы только прототипируете модели и вам никогда не придется поддерживать проекты. Решая Kaggle вы бы скорее хотели искать ошибки в коде или пробовать новые варианты решения?
Прочитали один раз - пишете код лучше, чем большинство DS. Бесплатное преимущество!
Для закрепления: написать любую программу максимально красиво. Достаточно даже задачи с Leetcode. Хороший критерий успеха: вы отложили код на две недели, вернулись и все еще понимаете, что в нем происходит.
Глава про тесты и гайд для pytest
Способность писать тесты отличает дилетанта от программиста. Знание о том, как писать тесты, навсегда меняет подход к написанию любого кода: просто понимаешь, какой код более вероятно содержит скрытые косяки. Минус: паранойя навсегда, потому узнаешь, что весь код без покрытия автотестами сломан. Это очень важно даже если вы только учить модели. Если ваш код невозможно затащить в прод, то вы беспомощны и возможно даже бесполезны.
Для закрепления: покрыть тестами свою программу. Бонусные очки, если вы покрываете тестами ML решение, потому что это довольно нетривиальная задача.

## Читаем код
Узнав про то, что такое модульный и читабельный код, изучаем его экземпляры в дикой природе. Просто читаем, вникаем что и откуда берется, задаем себе вопросы: “почему здесь так?”, “что это такое?”, “зачем это здесь?” Это симуляция ситуации, когда вам нужно работать с кодом коллеги. Только в реальной жизни код не будет хорошим.
Советую исходный код этой небольшой библиотеки для табличек: https://github.com/jazzband/tablib
Более продвинутый уровень, если в библиотеке выше уже все понятно: https://github.com/pallets/flask



group-telegram.com/boris_again/1482
Create:
Last Update:

# Минимальные знания Software Engineering для Data Scientist 1/3

## Git
Интерактивный туториал
Краткий курс по Git от Github
Git (или другая VCS) каждый день использует любой адекватный программист. Стоит инвестировать время не только в заучивание трех команд, а в понимание принципа работы. К счастью основы изучаются за пару вечеров, а большего и не надо. DS должно быть не сложно понять идею, ведь про графы и деревья вы наверное слышали. Только не используйте никаких GUI клиентов для Git по крайней мере пока учитесь! Например надо понимать разницу между git add и git commit, но GUI клиенты часто заменяют их одной кнопкой.

## Linux
The Linux command line for beginners
Если вы работаете из под Windows, то как можно быстрее бросайте это дело (если у вас уже Mac или Linux, то этот пункт можете пропустить). Считайте, что Python разработки под Windows не бывает. Не умея пользоваться линуксом вы беспомощны. Как слезть с иглы: поставьте себе Ubuntu и работайте только из под нее, а Windows оставьте для игр. Я бы не советовал пользоваться WSL, потому что это полумера, но и это подойдет как крайний вариант. Главное, чтобы вас не пугали фразы уровня “зайди на VPS по ssh по ключу, прокинь симлинк для этой штуки.” Иначе вы в большинстве команд будете тем парнем, которому надо постоянно помогать.

## Библиотеки и зависимости в Python
Python virtual environments: A Primer
Обязательное чтение про менеджмент библиотек и зависимостей в Python. Вы должны быть способны разрабатывать несколько DS проектов с конфликтующими зависимостями (один требует pytorch v1.12, второй v1.4) без использования Anaconda. Так не обязательно делать, но вы должны быть способны. Для вас не должно быть проблемой сделать так, чтобы проект запускался с одинаковыми версиями библиотек у вас, у вашего коллеги и на сервере.

## Практический Python
The Hitchiker’s Guide to Python
Чтение о практическом применении Python. Бесплатная, короткая и по делу написанная книга.

Особенное внимание:
Глава про структуру кода
Содержит очень важную информацию про модули и пакеты в Python (так же см. официальную документацию).
Для закрепления: взять любой свой проект и красиво разбить его на модули.
Глава про стиль кода
Стиль кода это недооцененная (особенно среди DS), но очень важная вещь. От умения писать код зависит, будут ваши коллеги плевать вам в чай или нет. Умение писать читабельный код сэкономит вам уйму времени даже если вы только прототипируете модели и вам никогда не придется поддерживать проекты. Решая Kaggle вы бы скорее хотели искать ошибки в коде или пробовать новые варианты решения?
Прочитали один раз - пишете код лучше, чем большинство DS. Бесплатное преимущество!
Для закрепления: написать любую программу максимально красиво. Достаточно даже задачи с Leetcode. Хороший критерий успеха: вы отложили код на две недели, вернулись и все еще понимаете, что в нем происходит.
Глава про тесты и гайд для pytest
Способность писать тесты отличает дилетанта от программиста. Знание о том, как писать тесты, навсегда меняет подход к написанию любого кода: просто понимаешь, какой код более вероятно содержит скрытые косяки. Минус: паранойя навсегда, потому узнаешь, что весь код без покрытия автотестами сломан. Это очень важно даже если вы только учить модели. Если ваш код невозможно затащить в прод, то вы беспомощны и возможно даже бесполезны.
Для закрепления: покрыть тестами свою программу. Бонусные очки, если вы покрываете тестами ML решение, потому что это довольно нетривиальная задача.

## Читаем код
Узнав про то, что такое модульный и читабельный код, изучаем его экземпляры в дикой природе. Просто читаем, вникаем что и откуда берется, задаем себе вопросы: “почему здесь так?”, “что это такое?”, “зачем это здесь?” Это симуляция ситуации, когда вам нужно работать с кодом коллеги. Только в реальной жизни код не будет хорошим.
Советую исходный код этой небольшой библиотеки для табличек: https://github.com/jazzband/tablib
Более продвинутый уровень, если в библиотеке выше уже все понятно: https://github.com/pallets/flask

BY Борис опять


Warning: Undefined variable $i in /var/www/group-telegram/post.php on line 260

Share with your friend now:
group-telegram.com/boris_again/1482

View MORE
Open in Telegram


Telegram | DID YOU KNOW?

Date: |

Following this, Sebi, in an order passed in January 2022, established that the administrators of a Telegram channel having a large subscriber base enticed the subscribers to act upon recommendations that were circulated by those administrators on the channel, leading to significant price and volume impact in various scrips. "Russians are really disconnected from the reality of what happening to their country," Andrey said. "So Telegram has become essential for understanding what's going on to the Russian-speaking world." "The result is on this photo: fiery 'greetings' to the invaders," the Security Service of Ukraine wrote alongside a photo showing several military vehicles among plumes of black smoke. Ukrainian forces have since put up a strong resistance to the Russian troops amid the war that has left hundreds of Ukrainian civilians, including children, dead, according to the United Nations. Ukrainian and international officials have accused Russia of targeting civilian populations with shelling and bombardments. He said that since his platform does not have the capacity to check all channels, it may restrict some in Russia and Ukraine "for the duration of the conflict," but then reversed course hours later after many users complained that Telegram was an important source of information.
from de


Telegram Борис опять
FROM American