Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/purcellconsult/Cracking-Python-Bootcamp
A course that helps newbies master the core principles of one of the world's most popular programming languages, python.
https://github.com/purcellconsult/Cracking-Python-Bootcamp
Last synced: about 1 month ago
JSON representation
A course that helps newbies master the core principles of one of the world's most popular programming languages, python.
- Host: GitHub
- URL: https://github.com/purcellconsult/Cracking-Python-Bootcamp
- Owner: purcellconsult
- Created: 2019-05-14T04:03:50.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2019-09-12T22:57:40.000Z (about 5 years ago)
- Last Synced: 2024-08-01T16:42:42.952Z (4 months ago)
- Language: Python
- Size: 533 KB
- Stars: 287
- Watchers: 37
- Forks: 61
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- my-awesome-github-stars - purcellconsult/Cracking-Python-Bootcamp - A course that helps newbies master the core principles of one of the world's most popular programming languages, python. (Python)
README
# Learn How to Code in Python in 12 Weeks By Building Fun Real World Projects
### #CrackingPython
![](https://miro.medium.com/max/1000/1*lrLtuOpkP2Cng32gEjgtXQ.png)
_The Cracking Python Bootcamp_ is a free programming course dedicated to those that have a yearning to learn how to code in python but don’t want to fork over $20,000 or so on a coding boot camp. It's free, you'll learn how to build practical things, and most all you'll have tons of fun.
Build fun real world projects such as:
- A Text Based Calculator
- A rolling dice simulator
- An additive secret number guessing game
- A Las Vegas Sports Calculator
- A Game of Throne like text based fantasy game
- A state lottery simulator
- A virtual ATM Machine
- A web parser for your state government siteThis course was initially created for a friend of a friend, that became a friend. It was part of a 12 week mentorship to level up his python programming skills so that he can find work freelancing. He said great things about the course such as the projects being really fun to work through.
There's not many prerequisites except for basic proficiency in algebra and fundamental computing skills. More explicitly, to avoid getting frustrated early on you should know how to download/install software, be comfortable with text editors, and understand how to circumvent the jungle of the web. Other than that, everything else can be picked up along the way.
## How This Course Is Designed
This course was built to be learned over a 12 week period. It provides python files which contains snippets of code along with mini projects so that you can apply your knowledge to something practical. In the last three weeks there will be no default projects. Instead, you’re suggested to work on a capstone project which in essence is a passion project that revolves around your interests.
The files in the root directory corresponds to the weekly lessons while the files in `/coding projects` contains the project descriptions along with their solutions.
There's currently no accompanying lessons of any kind. That may seem weird, but hear me out. The source code contains a plethora of comments (probably too many) which also serves as short learning aides. The code snippets are short and expressive enough to hopefully be _self documenting_.
For example, which one do you prefer, a or b?
a)
To create a variable in python you need to declare a variable name, followed by the equal sign which denotes the assignment operator, and then the value.
b)```python
###############################
# creating variables in python
###############################a = 5
b = 10
c = a
```
Example b succinctly encapsulates the meaning of example _a_, but is less verbose. It’s suggested for the student to download the code, tinker with it, read through the comments, and search online for additional help when needed. Then, attempt the projects to build something in order to exercise your newfound knowledge.
To download the course contents, you can use the the following git command:
git clone https://github.com/purcellconsult/Cracking-Python-Bootcamp.git
Alternatively, you can just click the green “Clone or download” button, and then Click Download ZIP.
If you’ve new to python and need help getting up and running, view the [python installation tutorial.](https://github.com/purcellconsult/Python-Installation-Tutorial)In order to edit python files, you can use either a simple text editor like Notepad or an integrated development environment (IDE) which are typically used by professional developers. The IDE that I recommend is [PyCharm](https://www.jetbrains.com/pycharm/download) which is free to use with the community edition
BTW, I do plan on creating accompanying video lessons but there’s currently no estimated turnaround time for that… _c'est la vie_.
Below is an outline of the python files and their associated projects that you can follow:
| Learning Lessons | Projects |
|--|--|
|**Week One**
[**01_numbers_in_python.py**](https://github.com/purcellconsult/Cracking-Python-Bootcamp/blob/master/01_numbers_in_python.py)
Learn about variables, numbers, and builtin types in python.|[Text Based Calculator](https://github.com/purcellconsult/Cracking-Python-Bootcamp/tree/master/coding%20projects#text-based-calculator)
[Solution](https://github.com/purcellconsult/Cracking-Python-Bootcamp/blob/master/coding%20projects/text_based_calculator.py#L1)
|**Week Two**
[**02_control_and_repeat.py**](https://github.com/purcellconsult/Cracking-Python-Bootcamp/blob/master/02_control_and_repeat.py) Learn Boolean algebra, control flow, processing user input, and iteration in python.| Complete at least one of the following. Extra brownie points for completing all three:
-[ The Dice Simulator](https://github.com/purcellconsult/Cracking-Python-Bootcamp/tree/master/coding%20projects#the-dice-simulator)
- [The Secret Number](https://github.com/purcellconsult/Cracking-Python-Bootcamp/tree/master/coding%20projects#the-secret-number)
- [Viva Las Vegas: Sports Betting Calculator](https://github.com/purcellconsult/Cracking-Python-Bootcamp/tree/master/coding%20projects#viva-las-vegas-sports-betting-calculator)
- [The Dice Simulator Solution](https://github.com/purcellconsult/Cracking-Python-Bootcamp/blob/master/coding%20projects/dice_simulator.py#L1)
-[The Secret Number Solution](https://github.com/purcellconsult/Cracking-Python-Bootcamp/blob/master/coding%20projects/secret_number.py#L1)
-[Viva Las Vegas Solution](https://github.com/purcellconsult/Cracking-Python-Bootcamp/blob/master/coding%20projects/sports_betting.py#L1)|
**Week Three**
[**03_string_processing.py**](https://github.com/purcellconsult/Cracking-Python-Bootcamp/blob/master/03_string_processing.py)
Learn how to create and manipulate strings, and discover the various options for formatting them.| [A Game of conditions: Text Based Fantasy Game](https://github.com/purcellconsult/Cracking-Python-Bootcamp/tree/master/coding%20projects#a-game-of-conditions-text-based-fantasy-game-in-python)
[Solution](https://github.com/purcellconsult/Cracking-Python-Bootcamp/blob/master/coding%20projects/game_of_conditions.py#L1)
|**Week Four
[04_a_gentle_intro_to_data_structures.py](https://github.com/purcellconsult/Cracking-Python-Bootcamp/blob/master/04_a_gentle_intro_to_data_structures.py)**
Data structures are the ways that programs store and retrieve data. Selecting the inappropriate one can lead to poor performing programs which is _no bueno_. Learn about the four builtin data structures in python which are lists, tuples, dictionaries, and sets.|[The California Lottery](https://github.com/purcellconsult/Cracking-Python-Bootcamp/tree/master/coding%20projects#the-california-lottery)
[Solution](https://github.com/purcellconsult/Cracking-Python-Bootcamp/blob/master/coding%20projects/california_lottery.py#L1)|
**Week Five
** [**05_functions_and_functional_programming.py**](https://github.com/purcellconsult/Cracking-Python-Bootcamp/blob/master/05_functions_and_functional_programming.py)
Discover what functions are in python along with how to create and execute them. In addition, learn how to inject aspects of functional programming into your python programs.|[Stat-tastic!](https://github.com/purcellconsult/Cracking-Python-Bootcamp/blob/master/coding%20projects/readme.md#stat-tastic)
[Solution](https://github.com/purcellconsult/Cracking-Python-Bootcamp/blob/master/coding%20projects/stats.py#L1)|
|**Week Six**
[**06_py_test_demo.py**](https://github.com/purcellconsult/Cracking-Python-Bootcamp/blob/master/06_py_test_demo.py) and [**06_unit_test_module.py**](https://github.com/purcellconsult/Cracking-Python-Bootcamp/blob/master/06_unit_test_module.py)
Get an introduction to unit testing by tinkering with the pytest and unittest modules.|[Unit Testing Lab](https://github.com/purcellconsult/Cracking-Python-Bootcamp/tree/master/coding%20projects#unit-testing-lab)
[Solution](https://github.com/purcellconsult/Cracking-Python-Bootcamp/blob/master/coding%20projects/test_py_functions.py#L1)|
**Week Seven**
[**07_oop_dogs.py**](https://github.com/purcellconsult/Cracking-Python-Bootcamp/blob/master/07_oop_dogs.py) and [**07_oop_in_python_cars.py**](https://github.com/purcellconsult/Cracking-Python-Bootcamp/blob/master/07_oop_in_python_cars.py)
Learn the concepts of object oriented programming such as classes, constructors, methods, instances, inheritance, abstraction, and polymorphism. Master these concepts in python by writing programs that emulate real world objects like dogs and cars.|[The Python Virtual ATM Machine](https://github.com/purcellconsult/Cracking-Python-Bootcamp/tree/master/coding%20projects#the-python-virtual-atm-machine)
[Solution](https://github.com/purcellconsult/Cracking-Python-Bootcamp/blob/master/coding%20projects/atm_machine.py#L1)|
**Week Eight**
[**08_regex_recap_in_python.py**](https://github.com/purcellconsult/Cracking-Python-Bootcamp/blob/master/08_regex_recap_in_python.py)
Learn what the common regular expression classes and symbols are so that you can use it for a variety of practical uses such as validating phone numbers, social security numbers, and email addresses.| [RegEx Lab](https://github.com/purcellconsult/Cracking-Python-Bootcamp/tree/master/coding%20projects#phone-number-validator)
[Solution](https://github.com/purcellconsult/Cracking-Python-Bootcamp/blob/master/coding%20projects/regex_lab.py#L1)
|**Week Nine**
[**09_simple_bs4_tutorial.py**](https://github.com/purcellconsult/Cracking-Python-Bootcamp/blob/master/09_simple_bs4_tutorial.py)
Learn how to use the Beautiful Soup 4 library to parse a website for specific elements such as the title, body, meta, li, p, and _a_ tags.|[A Web Parser for Your State’s Government Website](https://github.com/purcellconsult/Cracking-Python-Bootcamp/tree/master/coding%20projects#a-web-parser-for-your-states-government-website)
[Solution](https://github.com/purcellconsult/Cracking-Python-Bootcamp/blob/master/coding%20projects/parse_cali_gov.py#L1)
|**Week Ten**
[**10_http_requests_option.py**](https://github.com/purcellconsult/Cracking-Python-Bootcamp/blob/master/10_http_requests_option.py)
Learn how to make http requests in python with the requests, urllib, urllib3, and httplib2 libraries.|Start on your capstone project. This is a _freestyle_ coding project based off your interests. Make sure to assimilate elements that you learned over the past weeks into it.
|**Week Eleven**
**[11_scrappy_spider.py](https://github.com/purcellconsult/Cracking-Python-Bootcamp/blob/master/11_scrappy_spider.py)**
Learn how to create generators and iterators in python.|Work on your capstone project.
|**Week Twelve**
[**12_generators_and_iterators.py**](https://github.com/purcellconsult/Cracking-Python-Bootcamp/blob/master/12_generators_and_iterators.py)
Learn how to create generators and iterators in python.|Complete your capstone project.## How to Get Involved
If you spot any typographical/grammatical errors or bugs then don’t be a bystander! You can bring any issues to my awareness by creating an [issue](https://github.com/purcellconsult/Cracking-Python-Bootcamp/issues) or a [pull request](https://help.github.com/en/articles/creating-a-pull-request).
If you’ll like to create accompanying Slide decks to the lessons, suggest a new project, or have any other recommendations then do let me know. The best way to get in contact with me is to send an email: [email protected].Just make sure that the subject gives an indication that it’s about the _Cracking Python Bootcamp_ course.
## Spread The Joy of Free Education In 5 Ways
1. Email your friends that’s interested in learning how to code in python this repository: [https://github.com/purcellconsult/Cracking-Python-Bootcamp](https://github.com/purcellconsult/Cracking-Python-Bootcamp)
2. Share the repo on any programming communities you’re a member of. Use the same url as above.
3. When you complete a project post it to Twitter or any social media channel you frequent with the hashtag: #CrackingPython
4. If you're a software engineer then start a local meetup teaching students how to code in python using these course materials.
5. If you have a blog, write a review about this course along with your progress.
## How to Support
The best way to provide support is to pickup one or more copies of my first python book, _[Become a Python Developer](https://www.amazon.com/Become-Python-Developer-Wrestle-Defeat-ebook/dp/B07KX8RT4V)_ available on Amazon in digital and paperback formats. Not only will it help to reinforce the concepts taught in the _Cracking Python Bootcamp_, it also gives me the flexibility to keep producing quality programming tutorials and guides.
HAPPY CODING. GO FORTH AND BUILD SOMETHING GREAT IN PYTHON.