diff --git a/docs/1. Initializing/1.1. Python.md b/docs/1. Initializing/1.1. Python.md index 8b28365..8a2d679 100644 --- a/docs/1. Initializing/1.1. Python.md +++ b/docs/1. Initializing/1.1. Python.md @@ -2,12 +2,42 @@ ## What is the Python language? +Python is a high-level, dynamic, general-purpose programming language known for its readability and beginner-friendly nature. It has gained immense popularity over the years, becoming a top choice among developers. Its widespread acceptance is evidenced by various indices showcasing its popularity compared to other languages: + +- [Tiobe Index](https://www.tiobe.com/tiobe-index/) +- [IEEE Spectrum Annual Ranking](https://spectrum.ieee.org/the-top-programming-languages-2023) +- [RedMonk Programming Language Ranking](https://redmonk.com/sogrady/2024/03/08/language-rankings-1-24/) + +Python's versatility allows for the development of web applications, command-line scripts, and data science projects. With numerous books and online resources available, learning Python and utilizing it effectively is accessible to many. + +As outlined in the [Overview](../0. Overview/), this course requires a basic understanding of Python, including loops, conditions, functions, classes, and executing Python code. + ## Why most AI/ML projects use Python? +Python is the preferred language for AI/ML projects due to its vast collection of data science libraries like Pandas, Scikit-Learn, XGBoost, PyTorch, among others. Its simplicity and powerful capabilities make Python an ideal choice for both beginners and experienced developers alike. + +A key strength of Python is its ability to interface with high-performance libraries written in languages like C, C++, and Rust, offering a blend of simplicity and efficiency. While languages like C++ and Java might offer better performance, they lack the ease of interactive programming and rapid experimentation that Python provides. Meanwhile, other productive languages like Ruby or Clojure don't offer as rich a data science ecosystem as Python, making Python a well-balanced choice for MLOps projects. + ## Is Python a good or a bad language for MLOps? +Python's flexibility means that it can be used to write both straightforward and overly complex code. As an ML Engineer, striking the right balance between leveraging Python's capabilities and maintaining simplicity is crucial, focusing on domain-specific problems rather than technical challenges. + +Python is not only versatile but also supported by numerous tools that enhance code quality and provide guidelines. This course will delve into structuring your codebase effectively in [Chapter 3: Refactoring](../3. Refactoring/) and employing checks to ensure code reliability in [Chapter 4: Validating](../4. Validating/). + ## How easy is it to use another language for AI/ML? +While Python is predominant, other languages also offer libraries for statistical and machine learning tasks. + +While not as comprehensive as Python's ecosystem, it's feasible to use these languages either as the primary language or within AI/ML pipelines. Adapting the course's concepts to other languages may be necessary if you prefer not to use Python. + ## Which version of Python should I use to complete the course? -## How should I install Python on my system to complete the course? \ No newline at end of file +For new projects, it's advisable to use the latest Python version for access to new features and improved performance. However, compatibility with libraries such as TensorFlow or PyTorch, or constraints in production environments, may necessitate using an older version. It is often easier to adapt production to development settings than the opposite. + +Always avoid using Python versions that have reached their end of life. Current supported versions can be found at: https://www.python.org/downloads/ + +## How should I install Python on my system to complete the course? + +We recommend installing Python using `pyenv` during development, as covered in the following section. This approach allows for more flexibility in managing Python versions on a per-project basis, unlike package managers or Anaconda, which provide a default environment with less version control. + +In production environments, using the system's default Python version is recommended to avoid compatibility issues. If your deployment involves Docker containers, you have the liberty to select any Python version, enabling uniformity between development and production settings. \ No newline at end of file