Skip to content

Commit

Permalink
Merge pull request #2 from fmipython:intro-updates
Browse files Browse the repository at this point in the history
Update install-n-setup & notebook instructions
  • Loading branch information
lyubolp authored Sep 28, 2024
2 parents c55c95b + 19c40a7 commit 840911c
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 16 deletions.
15 changes: 8 additions & 7 deletions 01 - Intro to Python/install-n-setup.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,14 @@

![Python and a python](assets/pythons.png)

Python е [high-level](https://www.geeksforgeeks.org/difference-between-high-level-and-low-level-languages/) език за програмиране, който е [интерпретируем](https://www.geeksforgeeks.org/difference-between-compiler-and-interpreter/), [динамично-типизиран](https://www.educative.io/answers/what-is-dynamic-typing#) и мултипарадигмен. Синтаксисът му е семпъл и лесен за научаване. Комибнацията от всичко изброено прави Python един мощен език за програмиране.
Python е [high-level](https://www.geeksforgeeks.org/difference-between-high-level-and-low-level-languages/) език за програмиране, който е [интерпретируем](https://www.geeksforgeeks.org/difference-between-compiler-and-interpreter/), [динамично-типизиран](https://www.educative.io/answers/what-is-dynamic-typing#) и мултипарадигмен. Синтаксисът му е семпъл и лесен за научаване. Има интеграция със С код и библиотеки. Комибнацията от всичко изброено прави Python един мощен език за програмиране.

### За какво се ползва?

* **Скриптове** (автоматизация, DevOps, системна администрация, клауд услуги, конзолни инструменти, т.н.)
* **Machine Learning и Data Science** (посредством библиотеки като TensorFlow, PyTorch, Scikit-learn, Pandas, NumPy, SciPy, Matplotlib и т.н.)
* **Скриптове** (автоматизация, DevOps, системна администрация, data flows & pipelines, инфраструктурни процеси, конзолни инструменти, тестване, т.н.)
* **Machine Learning / Data Science / AI** (посредством библиотеки като TensorFlow, PyTorch, Scikit-learn, Pandas, NumPy, SciPy, Matplotlib и т.н.)
* **Уеб сървъри** (бекенд, посредством библиотеки като Django, Flask, FastAPI, т.н.)
* **Desktop приложения** (по-рядко)
* **Desktop приложения** (рядко)

### Версии

Expand All @@ -23,14 +23,15 @@ Python е [high-level](https://www.geeksforgeeks.org/difference-between-high-lev
* **3.9** (окт. 2020)
* **3.10** (окт. 2021)
* **3.11** (окт. 2022)
* 3.12 е [планирана](https://peps.python.org/pep-0693/) за окт. 2023г.
* **3.12** (окт. 2023)
* 3.13 планирана за окт. 2024
* 4.0 [може и да няма](https://builtin.com/software-engineering-perspectives/python-4)

### Какви са минусите на Python?

* **Бавен** - в пъти даже, в сравнение с езици като C/C++ и Java (макар и в 3.11 да са направени подобрения на скоростта)
* **Бавен** - в пъти даже, в сравнение с езици като C/C++ и Java (макар и в 3.11 да са направени подобрения на скоростта, няма как да се сравнява с по-low-level езици)
* **Multi-threading-ът е неефективен** - това ще го разберем защо е така [по-късно в курса](../09%20-%20Multithreading/).
* **Не е особено подходящ за enterprise системи** - заради типизация, скорост и други причини
* **Не е особено подходящ за стабилни и скалируеми backend-и** - заради типизация, скорост, конкурентност и други причини
* **(Почти) не може да се пишат мобилни приложения на него**

### Какви са плюсовете на Python?
Expand Down
20 changes: 11 additions & 9 deletions 01 - Intro to Python/notebooks.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@

Клетките с код са изпълними и техният резултат от изпълнението е изписан непосредствено под тях.

В случай, че просто искате да четете лекциите, без да редактирате/изпълнявате съдържанието, можете да ги отваряте в [сайта на курса](https://fmipython.github.io/PythonCourse2023/README.html) (който е под формата на [Jupyterbook](https://jupyterbook.org/en/stable/intro.html)) или директно в GitHub да ги разглеждате.
В случай, че просто искате да четете лекциите, без да редактирате/изпълнявате съдържанието, можете да ги отваряте в [сайта на курса](https://fmipython.github.io/PythonCourse2024/README.html) (който е под формата на [Jupyterbook](https://jupyterbook.org/en/stable/intro.html)) или директно в GitHub да ги разглеждате.

Ако желаете да си експериментирате с примерите, които се дават в лекциите, и да им подкарвате кода, то има няколко начина за това:

## Вариант 1: Онлайн, чрез Google Collab бутона в Jupyterbook-a
## Вариант 1 (най-лесен): Онлайн, чрез Google Collab бутона в Jupyterbook-a

1. Отворете съответната лекция в [сайта на курса](https://fmipython.github.io/PythonCourse2023/README.html)
1. Отворете съответната лекция в [сайта на курса](https://fmipython.github.io/PythonCourse2024/README.html)
2. Най-горе има една иконка на ракетка, като при натискането ѝ има опцията да се отвори лекцията в Google Collab:

![Collab light button](assets/collab-light.png)
Expand All @@ -23,12 +23,12 @@

1. Изтеглете от гитхъб репото на курса
```bash
git clone https://github.com/fmipython/PythonCourse2023.git
git clone https://github.com/fmipython/PythonCourse2024.git
```

2. Навигирайте до папката на курса
```bash
cd PythonCourse2023
cd PythonCourse2024
```

3. Изтеглете Jupyter и JupyterLab
Expand All @@ -44,20 +44,20 @@

![Jupyter](assets/jupyter.png)

## Вариант 3: Директно във Visual Studio Code
## Вариант 3 (arguably най-удобен): Директно във Visual Studio Code

1. Изтеглете от GitHub репото на курса (ако го нямате вече)

Това може да стане по различни начини, като например:
* **през терминала**:
1. Командата, която да изпълните (в директорията, в която искате да се създаде и изтегли папката на курса) е:
```bash
git clone https://github.com/fmipython/PythonCourse2023.git
git clone https://github.com/fmipython/PythonCourse2024.git
```
2. След което отворете във VSCode папката на курса. Това може да стане или чрез графичния интерфейс, или (ако сте добавили VSCode във PATH) чрез командата `code PythonCourse2023`.
2. След което отворете във VSCode папката на курса. Това може да стане или чрез графичния интерфейс, или (ако сте добавили VSCode във PATH) чрез командата `code PythonCourse2024`.

* **през VSCode в браузъра**:
1. 🪄 В [Github страницата на курса](https://github.com/fmipython/PythonCourse2023) (и по принцип във всяко Github repository) можете да натиснете `.` (точка) на клавиатурата, за да отворите Web VSCode ✨
1. 🪄 В [Github страницата на курса](https://github.com/fmipython/PythonCourse2024) (и по принцип във всяко Github repository) можете да натиснете `.` (точка) на клавиатурата, за да отворите Web VSCode ✨
2. 😕 В него ще можете да гледате и редактирате съдържанията на файловете, но няма да можете да изпълнявате клетките (понеже това изисква IPython kernel, който трябва да бъде пуснат, което може да стане или в Github Codespace, или локално на вашата машина) (а Codespace-ът е общ за всички и струва пари, so...).
3. 💻 Затова оттук ще трябва кликнете "Github" бутона най-долу най-вляво и след това да изберете опцията Continue working in a new local clone:

Expand All @@ -81,6 +81,8 @@

![VSCode Jupyter Notebooks](assets/vscode-jupyter.png)

*(скрийншотът е от предишна година but you get the point, не ми се качва нов)*

Бутонът горе вдясно първият път ще е с текст "Select Kernel". От него избирате конкретният Python интерпретатор, с който да се изпълняват клетките.

Чрез Run бутоните (или Ctrl+Enter) можете да изпълнявате клетките.

0 comments on commit 840911c

Please sign in to comment.