The Github repo for the first course from HackBulgaria - Programming 101.
Different materials will be commited here. Mosty programming tasks and Python unit test cases.
Content will be separated in different folders, for the given week, starting with week0.
The first separation if based on weeks - starting from week 0.
In each week, there are markdown files with task descriptions in them.
Each week has a materials.md
file, where we put the things that need to be checked first, before going into task-solving.
Usually, you will find code samples, links and videos about the topic of the week.
- week0 - Getting familiar with Python, Python tooling and Linux - shell interpreter, Sublime with PEP8 plugins, moving around the file systems. There are a lot of tasks to be solved, using only Python!
- week1 - Getting familiar with Git and GitHub - everyone creates a GitHub account and starts using it to push code & start thinking with versions. Solving the Polyglot problem where everyone should get at least 8 different languages and platforms up and running!
- week2 - Introducing TDD! Starting with Python OOP and creating a console-based dungeon game, where you find Anacondas! You know, like a bigger Python :D Everything should be done in a Test-Driven matter.
- week3 - Moving on with OOP problems and TDD - a lot of console applications!
- week4 - Introducing sqlite3 and adding a database layer to our python console applications. Everything is done with database, OOP and in a Test-Driven fashion!
- week5 - Introducing team-work problems and how to use Git & GitHub for handling a team of more than 1 person. We create a simulation of a Zoo - Teamwork + OOP + sqlite3 + TDD
- week6 - Introducing basic security concepts - hashing, SQL Injection, hiding passwords from input, bruteforce protections. There is an app waiting to be refactored.
- week7 - Introducig the ORM concept and using SqlAlchemy as an ORM library for Python.