{"id":24737739,"url":"https://github.com/epogrebnyak/r-python-julia-book","last_synced_at":"2026-04-18T01:31:37.959Z","repository":{"id":96549350,"uuid":"371068030","full_name":"epogrebnyak/r-python-julia-book","owner":"epogrebnyak","description":"Why choose - learn them all: R, Python and Julia for economic and financial datasets.","archived":false,"fork":false,"pushed_at":"2021-05-30T14:54:24.000Z","size":55,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-12-22T19:54:15.779Z","etag":null,"topics":["julia","python","r"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/epogrebnyak.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-05-26T14:42:18.000Z","updated_at":"2021-05-30T14:54:26.000Z","dependencies_parsed_at":"2023-03-25T15:05:18.253Z","dependency_job_id":null,"html_url":"https://github.com/epogrebnyak/r-python-julia-book","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/epogrebnyak/r-python-julia-book","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epogrebnyak%2Fr-python-julia-book","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epogrebnyak%2Fr-python-julia-book/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epogrebnyak%2Fr-python-julia-book/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epogrebnyak%2Fr-python-julia-book/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/epogrebnyak","download_url":"https://codeload.github.com/epogrebnyak/r-python-julia-book/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/epogrebnyak%2Fr-python-julia-book/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31953509,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T00:39:45.007Z","status":"ssl_error","status_checked_at":"2026-04-18T00:39:20.671Z","response_time":62,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["julia","python","r"],"created_at":"2025-01-27T22:09:11.737Z","updated_at":"2026-04-18T01:31:37.931Z","avatar_url":"https://github.com/epogrebnyak.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# r-python-julia-book\n\n\u003e Why choose, learn them all: R, Python and Julia for economics and finance.\n\nThis draft is based on our experience in teaching various computational courses \nto economics and finance students at Russian universities: NES, HSE, GSOM SPBU and Finec MGIMO.\n\nBelow we are writing the draft in Russian, but as we taught some courses in English, \nso there may be an English version too. \n\nOur programming language preferences:\n\n- Evgeniy: Python first, used R before, tried Julia and moderately influenced by Haskell\n- Marcel: R first, migrating to Python\n\n## Book goals\n\nGoal #1 is to collect good references in one place, so that we can provide \nbackground reading to the students before class more easily.  \nHope the references would make a fair guide for self-study too.\n\nGoal #2 is avoid repeating common stuff (how to start Python, etc) and move \nmore quickly to fruitful domain area tasks - econ/finance datasets and reproducible research.\n\nSubtask for #1 and 2: provide more modularuty for the computational courses, avoid\nteaching everything in one shot - installing python, syntax, libraries, machine learning\nand a little cool neural net all in one course.  \n\nGoal #3 is to lower the barriers in learning programming and foster a\nculture that celebrates small credible wins and stimulates problem-solving \nin iterations, also allows teamwork. \n\nGoal #4 is to make economists better programmers (git, shell, tests) and\nmore competitive as \"data scientists\" or \"data engineers\" in the job market.\n\nGoal/claim #5 - learning R AND Python AND Julia AND some other cool programming language\n(like Rust, perhaps) is better than wasting time on \"which language is better for me in 2021\".\n\nHidden aspiration (#6) - can we teach probability, stats and metrics as code-first \ndisciplines? Starting from I have got a list of numbers - what can I do next?\n\n## Admired peer publications\n\n- [Quantecon](https://quantecon.org/) - a pioneer in using both Python and Julia for teaching in parallel \n- [Jesús Fernández-Villaverde](https://www.sas.upenn.edu/~jesusfv/teaching.html) - detailed intro to computing for economists \n- [SciPy Lectures](https://scipy-lectures.org/) - ML explained simply, a gem.\n\n# Что? Зачем? Для кого?\n\nВводный курс для экономистов \"Основы программирования и анализа данных на R, Python и Julia\".\n\nОсновная идея - собрать в одном месте материалы по обучению программированию \nпо минимум двум языкам - R и Python, и, по возможности, Julia. \n\nМы делаем акцент на применении этих языков в области экономики и финансов. \n\nДля каких обучающихся эти материалы?\n\n1. начинаю изучать Python или R \"с нуля\" - до этого не программировал(а)  \n2. знаком(а) с одним языком программирования и хочу попробовать другой\n3. хочу работать с экономическими и финансовыми данными и моделями\n4. заинтересован(а) улушить качество своего кода, навыки и процессы работы с данными и кодом\n\nДля преподавателей эти материалы полезны в случае, если:\n\n- вы хотите ввести R, Python и Julia в свои курсы, которые пока читаются без них\n  и вам нужны ссылки на базовые материалы и отдельные примеры упражнений\n- вы сами работете с R, Python и Julia и хотите вовлечь в эту работу больше коллег - материалы \n  помогут рассказать о базовых вещах, не пересказывая их много раз\n- хотите перейти с одного языка программирования на другой\n\nВведение\n========\n\n#### Языки программирования (ЯП):\n\n- Зачем нам столько языков программирования?\n  - [сравним их](https://benchmarksgame-team.pages.debian.net/benchmarksgame/index.html)  \n  - [где еще можно посмотреть разный код](https://rosettacode.org/wiki/Rosetta_Code)\n  - объектные и функциональные, статическая и динамическая типизация и легко ли живется компилятору\n- История количественных вычислений от Matlab и Eview до tidyverse, tensorflow и Julia  \n- Так ли плох Excel?\n\nExtra links:\n\n- [Рахим - Мысли и методы - история Lisp, в двух частях](https://soundcloud.com/mimpod/episode_56?in=mimpod/sets/all_episodes)\n- [Rust Crash Course by Brad Traversy](https://www.youtube.com/watch?v=zF34dRivLOw)\n\n\n#### Личный путь:\n\n- Барьеры в изучении програмирования и как их обойти \n- Эконометрика vs машинное обучение vs data science\n- Рынок труда - вакансии со знанием R (есть), Python (есть), Julia (их нет)\n\n#### Обзорные видео // Overview videos:\n\n- [Overview and History of R](https://www.youtube.com/watch?v=STihTnVSZnI)\n- [The Story of Python by Guido van Rossum](https://www.youtube.com/watch?v=J0Aq44Pze-w)\n- Julia:\n  - [Edelman](https://www.youtube.com/watch?v=rZS2LGiurKY)  \n  - [Karpinski](https://www.youtube.com/watch?v=DRKKAFYM9yo\u0026t=23s) \n  - [Bezanson](https://www.youtube.com/watch?v=W6I1zQ16_44) \n  - [Shah](https://www.youtube.com/watch?v=cLFfTE2KWrk)\n\nExtra links:\n\n- [Why Python is huge in finance? by Daniel Roos](https://www.youtube.com/watch?v=kBwOy-6CtAQ\u0026t=1299s)\n- [Sargent - Economic models](https://www.youtube.com/watch?v=0Mf_LvwxFqY)\n\nJulia:\n\n- [Язык Julia - сравнение простых программ с Python и C](https://www.youtube.com/watch?v=5sdrltkxm2Q)\n- [Intro to Julia tutorial (version 1.0)](https://www.youtube.com/watch?v=8h8rQyEpiZA)\n- [How We Wrote a Textbook using Julia](https://www.youtube.com/watch?v=ofWy5kaZU3g)\n- [When compiler technology meets Market Risk Management](https://www.youtube.com/watch?v=4vDub-yoX1E\u0026list=PLP8iPy9hna6Tl2UHTrm4jnIYrLkIcAROR\u0026index=12)\n\n\nЧасть 1. До программирования\n============================\n\nИдеи программирования:\n\n- как работает компьютер\n- как работает интернет\n- что такое компьютерная программа\n- программирование как problem-solving\n\nЧто пригодится разработчику:\n\n- командная строка\n- файловая система, пути, названия файлов\n- текстовый редактор\n- git/github\n- markdown\n- удаленная машина\n- отличия операционных систем\n\nУстановка R, Pyton, Julia:\n\n- почему сложно и что может пойти не так\n- удаленный доступ (Colab и аналоги)\n- установить на своем компьютере\n- библиотеки и пакетные менеджеры\n- сборки RStudio / Anaconda, феномен \"одной компании на язык програмирования\"\n- виртуальные окуржения (venv)\n\nСкрипт, модуль, пакет\n\nНоутбуки\n\n- ноутбук Jupyter\n- сервис Google Colab\n- другие ноутбуки и сервисы (Pluto.jl)\n\nЧасть 2. Язык программирования\n==============================\n\nБазовые возможности языка - синтаксис и стандартная библиотека.\n\n#### Комментарий\n\nСложности:\n\n- синтаксис это еще не программирование, нужны структуры данных и алгоритмы \n- связь с привычными для студента приложениями - офисными, web, другими \n- \"вэбчик это не программирование\"\n\nНа примере Python - много языков в одном:\n\n- функции, давать ли объекты\n- pandas вообще не похож на pure python\n- async/await \n- pattern matching\n- \"раньше можно было рассказать python за 2 дня, сейчас нет\"\n\n#### Привет, мир!\n\n```python.exe -c \"print('Hello, world!')\"```\n\nЗадание - разберем, как эта программа работает:\n\n- что такое `python.exe`, где он находится, как нам удалось его запустить?\n- где сама программа?\n- какие части есть у этой программы?\n- куда она выведен результат работы программы?\n- как может быть модифицирована эта программма?\n- что может пойти не так?\n\n```\n!echo \"print('Hello, world!')\" \u003e hello.py\n!cat hello.py\n!python hello.py\n```\n\n#### Значения (value) и выражения (expression)\n\nТипы данных:\n\n- целое число (`int`)\n- действительное число (`float`)\n- строка (`str`)\n\nУпраженение: каких типов данных не хватает?\n\nВыражения: `2*2`, `\"Hi, \" + \"all!\"` \n\n#### Переменные \n\nОператор присваивания (это вам не игрушки, зачеркнуто) - это не математическое равенство. Глубокий смысл `\u003c-` в R.\n\n#### Структуры данных (containers)\n\nСтруктуры данных:\n\n- список (list) \n- словарь (dictionary)\n- кортеж (tuple)\n- набор (set)\n\nЧто с ними делать:\n\n- итерирование по элементам и распаковка\n- строка как список символов\n\nExtra:\n\n- хитрые структуры данных, которые экономисту знать обычно не положено\n- ссылки на курсы по data structures and algorithms\n- аннотации типов и mypy\n\n#### Управление\n\n- if/else\n- for/range\n- while\n- case / pattern matching \n\nCheckpoint: напишите код для инверсии (изменения порядка следования символов) строки.\n\n#### Функции\n\nФункции 1:\n\n- логика - зачем функция нужна, что делает?\n- откуда берутся функции: написали сами или импортировали, откуда импортировали - стандартная библиотека или пакет\n- синтаксис `def` / `return`\n- аргументы функции\n- docstring функции\n- аннотации типов (type annotations) \n\nФункции 2:\n\n- что значит хорошая функция?\n- как назвать функцию\n- unit тесты и основы TDD\n\n#### Классы\n\n- немного света на ООП, сравнение с функциональным программированием\n- в первом приближении класс - это структура данных, склеенная методами для работы \n- синтаксис классов нужен для pandas и, например, .method() в строках \n- актуально для Python (everything is a class), но не для R/Julia \n\n#### Взаимодействие программы с внешним миром\n\n- чтение и запись файлов\n- аргументы командной строки (но не для Colab)\n- пожалуйста, не надо заданий с `input`\n\n#### Качество кода и рефакторинг\n\n\nЧасть 3. Библиотеки\n====================\n\nНаучные вычисления\n\n- работа с матрицами (numpy)\n- научные вычисления (scipy) \n\nДатафреймы (dataframe)\n\n- встроенные в R \n- pandas в python\n- DataFrame.jl\n- ускорения и расширения фреймов\n\nГрафические пакеты 1\n\n- ggplot (R)\n- maplotlib (Python)\n- makie (?, Julia)\n\nГрафические пакеты 2\n\nDashboards\n\n- Shiny (R)\n- Streamlit (Python)\n\nЧасть 4. Работа с данными\n=========================\n\nСериализация данных:\n\n- csv\n- json\n- yaml\n- toml\n- xml\n\nAPI данных:\n\n- fred\n- quandl \n\nВзаимодействие с Excel\n\nЭкономические и финасовые данные\n\n- копроративный датасет\n- данные финасовых рынков\n\nЭконометрические пакеты\n\n- базовый R\n- statmodels, scipy-learn\n- пакеты Julia\n\nЧасть 5. Новые темы\n===================\n\n- популярные библиотеки в языках \n- сравнение языков программирования\n- примеры проектов \n- контрольные вопросы\n- что хорошо делать в каждом языке программироания\n- а где же машинное обучение, нейронки и криптовалюты?\n- воспроизводимые исследования\n\n\nВопросы и ответы\n================\n\n\nАвторы\n======\n\n- Евгений Погребняк\n- Марсель Салихов\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fepogrebnyak%2Fr-python-julia-book","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fepogrebnyak%2Fr-python-julia-book","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fepogrebnyak%2Fr-python-julia-book/lists"}