A set of small programming lessons.
These cover some key Python concepts:
- control (for, while, break, continue)
- data collections (list, dict)
- functions
- modules, packages
- classes and objects
As well as more general software development habits:
- source code version control
- documentation
- unit tests
Hopefully the exercise in each lesson takes less than 30 minutes.
The expected audience for this is someone who already has learned programming in any other form and is comfortable with desktop computing basics. You should be OK with opening up the command line once in a while. If you need to Google once in a while or look stuff up on Wikipedia, don't feel guilty about it. Everyone paying the bills with programming needs reference material, too.
Some sections will review concepts you're hopefully familiar with. If you feel like a section is being condescending, bear with it -- it's probably helping give some context or about to draw a parallel between something old and something new.
You should hopefully be familiar with the following terms enough to be able to use them in conversation, even if you're not 100% sure of their definition:
- source code
- compiler (or interpreter)
- memory, disk, processor
- a variable
Concepts that you explicitly don't have to know:
- pointer
- load average
- big-O
- lambda
- turing machine
- state machine
- binary, octal, hexadecimal
In general we stick to the "PEP-8" guidelines for Python coding. More info about that is available here: https://www.python.org/dev/peps/pep-0008/
That said, we intentionally change style between lessons and sometimes even within a lesson. This is done to demonstrate that there's sometimes more than one way to do things (even though Python mantras claim the otherwise) and also to give you some experience seeing what "real" code with multiple contributors looks like.
If you get confused/annoyed by the back-and-forth between use of single and double quotes, or between mixedCase and lowercase_with_underscores, change the source! They're your programs to work on, so feel free to make them the way you like.
Open up the Lesson00 folder and start reading its README.md file...