Заключение

Читатель, изучивший пособие до этого места и выполнивший практикум, прошёл путь от подхода «скрипт работает, не трогать» до осознанного инженерного отношения к научному коду.

В пособии были рассмотрены инструменты и помощники, устройство Linux и Python, алгоритмы и структуры данных, практики разработки, обработка данных и обучение моделей, ускорение кода и чтение чужих проектов. Ни одна из тем не закрыта полностью: каждая глава могла бы стать отдельной книгой, а некоторые уже стали; соответствующие издания приведены в списке литературы.

Дальнейшие шаги, которые следует предпринять:

  1. Писать код каждый день. Навык разработки, как и владение математическим аппаратом, поддерживается только упражнением. Целесообразно автоматизировать рутину, ежедневно отнимающую время: обработку логов, построение графиков к отчётам, запуск расчётов.
  2. Читать чужой код. Исходники NumPy, SciPy или любого другого используемого инструмента являются лучшей школой стиля.
  3. Отдавать код на ревью и проводить ревью самостоятельно. Взгляд коллеги экономит недели отладки.
  4. Публиковать проекты в открытом доступе. Публичный репозиторий с оформленным README и тестами становится резюме и вкладом в научное сообщество.
  5. Возвращаться к этому пособию. Многие главы (профилирование, базы данных, CUDA) становятся востребованными только при появлении задачи, в которой без них не обойтись.

Наука сегодня основана на программном обеспечении. Телескопы, ускорители, томографы и детекторы управляются кодом, а открытия делаются в данных, которые необходимо уметь обработать. Этим умением и должен обладать читатель настоящего пособия.

Вопросы, опечатки и предложения можно направлять в issues на GitHub.