______ _ __ _____ __
| ___ \ (_) / || _ |/ |
| |_/ / __ ___ __ _ _ __ __ _ _ __ ___ _ __ ___ _ _ __ __ _ `| || |/' |`| |
| __/ '__/ _ \ / _` | '__/ _` | '_ ` _ \| '_ ` _ \| | '_ \ / _` | | || /| | | |
| | | | | (_) | (_| | | | (_| | | | | | | | | | | | | | | | (_| | _| |\ |_/ /_| |_
\_| |_| \___/ \__, |_| \__,_|_| |_| |_|_| |_| |_|_|_| |_|\__, | \___/\___/ \___/
__/ | __/ |
|___/ |___/
The third issue of the Programming 101 course which covers Python, Linux and Git. The course starts March 2015 and is part of https://hackbulgaria.com
- Starts the first week of March, 2015
- Problems for application can be found in the
Applications
folder.
We are going to work with a console & text editor a lot. Linux is a mandatory operating system for this course.
- Introducing basic git usage - how to install, configure and clone stuff.
- Introducing the editors we are going to work with - Sublime Text & Atom
- We will start with basic Python tasks, to get familiar with the syntax and basic Python structures
- Introducing PEP8 formatting & plugins. Getting religious about PEP8.
- Introducing Linux & the shell - basic commands. We will install and compile a lot of things!
- Introducing TDD (Test Driven Development) as a way of living & coding. Getting religious about TDD.
- Solving lots of Python problems with TDD.
- Introducing OOP concepts in Python & solving more abstract & complex problems with OOP & TDD
- Introducing Database concepts with Python and
sqlite3
- Introducing teamwork problems & leveling up our git skills - working with branches, merges & pull requests.
- Solving team problems, using Git, Python's OOP and TDD
- Introducing to basic security concepts - SQL injections, hash functions & password hashing, bruteforce protection.
- Introducing Python's
SQLAlchemy
ORM - working with more complex database problems. - Introducing basic web programming concepts - HTTP, HTML * CSS.
- Introducing the
Flask
framework for web development - implementing a web application that works with database. - Learning how to deploy our web application - http servers & configuration.
- Intoducing to multithreading and networking with Python.