This is a purely introductory post, I will only give a general idea of what I want to learn and explain some concepts. This is just me putting myself out there to force myself to code for the next 100 days 👨💻.
I am a Computer Science student at Concordia University, and I'm currently in my last year and will be graduating during Summer 2020. I have been programming ever since I was 18, but have have unfortunately stopped multiple times in the past few years due to personal reasons or stress because of classes I was taking that had nothing to do with programming. This is the first time I will be doing this #100DaysOfCode challenge, and I want to get better at a few things that I either have some knowledge in or want to completely immerse myself in from scratch. I will not be stopping after these 100 days, as I want to learn as much as possible during 2021 about these subjects as well! I will share the resources I am using to achieve these goals at the end of this post 📚.
I ❤️ Python. My first course at Concordia University taught me Java, and I have been using Java for almost everything ever since, and did take a few classes that required C++. If I had the choice to go back in time and change which language I'd start in, I'd still choose Java or even C++ (but that's because I like to be challenged, those are NOT beginner-friendly languages). The first reason I love python is that I find it to be extremely easy to learn and apply, especially since I came from a Java and C++ background. The second reason I love Python is because I recently took an introduction to Artificial Intelligence course, and we had to use Python due to their popular libraries like
Machine Learning 🤖
The first step to getting into Artificial Intelligence is to know some maths. You need to know Linear Algebra, Probability and Statistics, as well as Calculus at least! As I stated, Python is, subjectively, the easiest language to use to get into Machine Learning because of the popularity of the libraries available. There are 3 main categories in Machine Learning: Supervised Learning, Unsupervised Learning, and Reinforcement Learning.
- Supervised Learning is the task where the program learns a function by mapping inputs to outputs based on already mapped inputs-outputs.
- Unsupervised Learning is the task of looking for previously undetected patterns in data, with minimal to no human intervention/monitoring.
- Reinforcement Learning is an area of Machine Learning where "agents" take actions that will end up rewarding them the most. This can be compared to our own brain's reward system where we get turned on whenever something turns us on or excites us!
Deep Learning 👾Deep Learning is for me like the magic trick that leaves everyone speechless and no one can figure out how it was done, but everyone is dying to know the trick. Deep Learning mimics the human brain, and learns while being unsupervised. This can be used for object detection, speech recognition, decision making (you might have heard about Tesla's Autopilot, which makes decisions based on the environment it is in!) This also involves a lot of maths as well.
Resources and inspirations 📚
- Python Bootcamp (It frequently gets discounted to 10-15$)
- Python for Everybody
Machine Learning and Deep Learning 🤖
- Maths for Machine Learning
- Hands On Machine-Learning
- Deep Learning with Python
- Lex Fridman
Feel free to follow me on my GitHub and reach out!