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
Popular Python Packages:
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