- Why you need to learn Linux?
- Why you need to learn Python?
- Course contents review
- Development environment setup
- Linux (basic)
- Linux (scripting)
- Linux (advanced topics)
- Python (basic)
- Python (oop)
- Python (advanced topics)
- Python (standard libraries)
- Numpy
- Matplotlib
- Scipy
- Selected Topics
- Linux file system navigation (
ls
,cd
,cp
,mv
,rm
,tree
) - File viewing and manipulation (
less
,grep
,wc
,tee
,vim
,nano
) - Getting help (
man
,tlrd
,whatis
,whereis
,info
,apropos
) - Package management (
apt
,snap
,flatpack
,aptitude
) - User management (
whoami
,id
,sudo
,useradd
,passwd
,chown
,chmod
) - Processes and jobs management (
ps
,pstree
,kill
,nice
,jobs
,fg
,bg
) - System monitoring (
lsb_release
,uname
,w
,uptime
,top
,df
,du
,free
,iostat
) - Networking (
host
,hostname
,ping
,ifconfig
,ip
,netstat
,wget
,curl
)
- Command structure
- Compound commands
- Redirections
- Script files
- Wildcards and globbing
- Variables
- Flow control
- Loops
- Functions
zsh
ssh
and remote managementtmux
- File transfer and management (
scp
,rsync
) - Services (
systemd
) - Some advanced commands (
sed
,awk
,xargs
,parallel
,gnuplot
)
- Numbers, strings, ...
- Flow control
- Loops
- Functions
- Data structures
- Modules
- I/O
- Introduction to OOP
- Methods
- Some useful classes (dataclass, enum, namedtuple, ...)
- Inheritance
- ABCs
- Protocols
- Variables (scope, mutability and copy)
- Comprehensions
- Generators
- Closures
- Decorators
- Iterators
- Descriptors
- Exceptions
- Context managers
- Functional programming
- Overloading
- Data methods
- SOLID
- os: Interfaces with operating system functionality.
- sys: Interacts with the Python interpreter.
- pathlib: Object-oriented file system path manipulation.
- collections: Specialized container datatypes.
- itertools: Tools for efficient looping.
- functools: Higher-order functions and operations on callable objects.
- operator: Function equivalents of arithmetic and comparison operators.
- argparse: Parser for command-line options, arguments, and sub-commands.
- logging: Flexible logging system.
- json: JSON serialization and deserialization.
- pickle: Object serialization and deserialization.
- socket: Interface for network communication.
- http.server: Basic HTTP server.
- urllib.request: Open and read URLs.
- dataclasses: Simplifies class definitions for data storage.
- abc: Framework for defining Abstract Base Classes.
- typing: Support for type hints.
- Array creation
- Indexing and slicing
- Shape manipulation
- Broadcasting
- Copies and views
- numpy.random
- numpy.fft
- numpy.linalg
- numpy.polyfit
- Basic plotting
- Matplotlib objects
- Stateful vs stateless
- pyplot, subplots, subplot_mosaic
- Style and parameters
- Plot types
- Integration
- Optimization
- Interpolation
- Fourier transforms
- Signal processing
- Linear algebra
- Sparse arrays
- Statistics
- Build and schedule Linux services (systemd)
- Introduction to databases (SQL, Postgre, Mongodb)
- Docker (Dockerfile, build, compose, swarm)
- Webapps (dash and streamlit)
- Introduction C and Fortran (compiling and linking, static and dynamic libraries, make, interoperability)
- Python extensions (ctypes, numpy, cython, mypy, pybind, numba)
- Markdown (rst, md, html) and configuration (json, yaml, toml)
- More plotting options (seaborn, plotly/dash, altair, bokeh)
- Introduction to machine learning (scikit-learn, pytorch, xgboost)
- Parallel python (threading, multiprocessing, concurrent.futures)
- Git and GitHub (workflow, actions)
- Python library and documentation (pyproject.toml, build, twine, pip, sphinx)
- Python CI (testing, linting and profiling) (pylint, mypy, pytest, pytest-cov, scalene)
- Symbolic computations (sympy, rubi)
- Pandas, Polars, Dask and google sheets API