January 2022

January 2022

Code With Mosh - Complete Python Mastery

On the 3rd of January I sat at my computer, typed "python for beginners" on the YouTube search bar and that's where I found my 1st teacher; Mosh Hamedani. His tutorial had 25M views so it had to be good. I followed his instructions on installing python and getting started etc. I quickly liked him so when I learned that he had full courses on his platform codewithmosh.com I bought the complete python mastery course and it was all systems go from there!

(# A lot of people told me that as a beginner, I shouldn't have to spend any money to learn how to code and I agree with them, but knowing that I had put money into it gave me extra incentive to finish the course and get a certificate so I don't regret it. Plus the course was discounted when I bought it :-D)

In the beginning, working an 8-5 (more like 7-7) job meant that an average of 2 hrs per day was the best I could give. Despite being exhausted from work everyday I was determined to see it through and I therefore remained consistent. 7th of February was my last day at work (story for another day) and a few days later, on the 16th of February, which was roughly 40 days since I started the course, we finished building a simple web app with django and deployed it on heroku thus signifying completion of the course. What a joy!

(# Building something simple as quickly as possible is a very practical way to keep yourself motivated. Too much theory will have you asleep, drooling on your laptop, which will probably fry your motherboard (lol). Anyway, all I'm saying is: Nothing beats project-based learning! )

...Feel free to keep reading if you're a more technical reader, a curious mind, or one seeking to find out what this course covers...

#include <stdio.h>
#include <cs50.h>

int main(void)
{
    // Prompt reader for comment.
    string comment = get_string("What helped you keep going?");
    printf("%s", comment);
}

The course touches on almost everything there is to know in python at a beginner level with an introduction to some more advanced topics. In retrospect I feel like it gave me the following:

A Solid Grasp of the Fundamentals:

Getting Started:

Installing python, python interpreter, VS code, Extensions, formatting code (PEP 8), running code, how code is executed

Primitive Types:

variables, strings, formatted strings, integers and floats, type conversion

Control Flow:

operators, conditional statements, for loops, nested loops, iterables, while loops

Functions:

arguments, keyword arguments, default arguments, x-arg, xxargs, debugging, return values

Data Structures:

lists, accessing items, list unpacking, lambda functions, map function, list comprehensions, zip function, stacks, queues, tuples, arrays, sets, dictionaries, generator expressions, unpacking operator

Exceptions:

handling exceptions, the with statement, raising exceptions

Classes:

creating classes, constructors, class vs instance attributes, class vs instance methods, magic methods, making custom containers, inheritance, method overriding, abstract base classes, polymorphism, duck typing, extending built-in types

Modules:

creating modules, module search path, packages, intra-package references, the dir function, executing modules as scripts

An Introduction to More Advanced Topics:

Python Standard Library:

working with paths, directories, files, zip files, CSV files, JSON files, SQLite Database, timestamps, DateTimes, time delta, generating random values, opening the browser, sending emails, templates, command-line arguments, running external programs

Python Package Index:

Pypi, pip, virtual environments, pipenv, pipfile, managing dependencies, publishing packages, docstrings, pydoc

APIs, hiding API keys, sending text messages, web scraping, browser automation, working with pdfs, working with excel spreadsheets, command query separation, NumPy

Building Web Applications with Django:

creating an app, views, models, migrations, admin, database abstraction API, templates, adding bootstrap, url parameters, raising 404 errors, referencing urls, creating APIs, deployment on heroku

Machine Learning with Python:

libraries and tools, importing a data set, jupyter shortcuts, preparing the data, learning and predicting, calculating the accuracy, persisting models, visualizing a decision tree