/Cracking-Python-Bootcamp

A course that helps newbies master the core principles of one of the world's most popular programming languages, python.

Primary LanguagePython

Learn How to Code in Python in 12 Weeks By Building Fun Real World Projects

#CrackingPython

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 site

This 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)

###############################
# 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.

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 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
Learn about variables, numbers, and builtin types in python.
Text Based Calculator

Solution
Week Two
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
- The Secret Number
- Viva Las Vegas: Sports Betting Calculator
- The Dice Simulator Solution
-The Secret Number Solution
-Viva Las Vegas Solution
Week Three
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

Solution
Week Four
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

Solution
Week Five
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!

Solution
Week Six
06_py_test_demo.py and 06_unit_test_module.py
Get an introduction to unit testing by tinkering with the pytest and unittest modules.
Unit Testing Lab

Solution
Week Seven
07_oop_dogs.py and 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

Solution
Week Eight
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

Solution
Week Nine
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

Solution
Week Ten
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
Learn how to create generators and iterators in python.
Work on your capstone project.
Week Twelve
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 or 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: purcellconsult@gmail.com.

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

  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 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.