Course materials & problems for HackBulgaria's Programming 101 with Python. Starting November 2015.
- Installing Linux & making first steps with it.
- Setuping Python - text editors, tools, REPL.
- Getting familiar with Python syntax and basic structures by solving problems
- Introducing source control systems & working with git / GitHub
- Working with Linux - basic shell commands & scripts.
- Installing 3rd party libraries and working with the console.
- Introducing the Object Oritented concept in Python
- Solving problems with OOP & building console applications.
- Diving deeper into Python's data structures. Solving problems with list & dict comprehension.
- Diving deeper into Python's OOP concepts - working with dunder methods & iterators
- Introducing exceptions in Python.
- Introducing the Test Driven Development concept
- Working with unittest.
- Solving problems with OOP & tests
- Introducing
pipandvirtualenv- working with 3rd party libraries - Making HTTP clients & storing things in files
- Introducing the concept for relational databases & SQL
- Working with SQL databases - sqlite3
- CRUD operations in SQL - SELECT, INSERT, UPDATE & DELETE
- Different JOINs in SQL
- Working with Python libraries for SQL.
- Teamwork with bigger problems.
- Advanced git and GitHub.
- Sovling problems with everything that we know up to now.
- Introducing the concept for ORM in Python
- Working with
SQLAlchemy
- Basic security concepts
- Hashing
- SQL Injection
- Hiding passwords from input
- Bruteforce protections
- Working with legacy code
- Working with Iterators, Generators
- Working with Decorators
- Working with
withblocks. - Working with
itertoolslibrary - Figuring out Python's OOP - how does everything work?
- An overview of the language. What do we know about Python?
- How does the Python community work? Seeing some open source projects.
- Seeing interesting stuff in Python:
- Threads
- asyncio
- Celery
- Making things work with Python - doing some basic automation with Raspberry.
- Introducing Django as the web framework for Python
- Building MVC website
- Building REST APIs
- Testing Django code
- Deployment
- Project live cycle
- Continuous integration