You heard it right. I have listened to fast.ai 2022 lectures part 1 four times. Each time I did it in a different way and had different goals in my mind.
First time :
My goal was to make an image recognition model that interested me.
(Making biology lab equipment image recognition , could be used in real application for safety and training).I did not have a clear plan to even finish the course. So I listen to the first 3 lectures and first 5 live walkthroughs and write down what is where ? They are awesome timestamps but I needed a clear plan. I tried 3 bear classifications. The search function did not work so I switched to duckduckgo. Then did the same for 3 lab equipment classifications.
Awesome. First step down.
Moved to 32 lab equipment classifications. Ah man. This was not easy. By this point I knew the big pictures however sometimes paperspace was not working. I even once extracted a model but was not working at all.
After a few days , I was so obsessed since I knew the process but did not have The huggingface API. So start doing it faster and faster, remove every error. Some errors where not programming at all. (That was the first lesson, some of the errors in programming are not programming related). Simple example my files only worked when I uploaded manually in huggingface. I couldn’t do it the way Jeremy does in lecture.
When I got my API as simple as it is for most of you it was a dopamine rush for me. I was so cool. (Second lesson , you want to learn something , build something that you think it is cool)
I was tired mentally but very happy. I decided to listen to the rest of the videos without coding them. (my coding practice these days was doing CRUD in Django).I finished my first time watching all the lectures in 2 weeks.
Second idea came to my mind which seems cool to me, what if I (or someone else) uses NLP to only diagnose mental disease. I put rest to this idea but try to check to see if they are patient and psychologist data sets. I am not sure this is possible however it seems cool.
At this point I decided to finish the live walkthroughs.(I had listened to the first five) .I listen and code till the end of the kaggle competition. I joined that kaggle competition. It was my first kaggle competition and endup 174. I did not try to be very top to be honest. It amazed me that my ranking improved on the leatherboard. (I was 196 or even more before the competition result came out).
My Second time in the course was just listening , pausing and running all the code in lectures.
I tried to avoid any friction. Paperspace did not work. I moved to kaggle , kaggle is slow I moved back to paperspace. Colab was in my mind, however I didn’t need to use it. This time around I was learning more details. I learn to run code patiently. I was not frustrated when I had to come back and run a notebook from scratch.Some of you may know that kaggle found tim architectures but it was not working. Solution ? Run again. Started to see answers and problems that I had in the forum. (Awesome community BTW, Another post).This round was the first time live walkthroughs took 3 weeks. (2-4 hours per day).
My third time :
This time I came back to the big picture again. I knew What details outside of the course I needed to learn but I was confused about how to learn them. For DL or ML (as Jeremy mentioned in the course) There are at least 4 main libraries used everywhere. I started reading the book containing those libraries. I am currently chapter 5 and going slow. Decided to only listen to lectures again in my morning 1 hour walk. This time around I was so happy to understand way more concepts. I mean, did you know why they call it gradient descent ? that is actually very dope to understand. This one took me 2 weeks.
My fourth time listening to lectures
This one I started after listening to a few lectures in the mornings.So Third and fourth time have some overlapping. With a lot more patience and put gaps between lectures. This round I did summarized lectures and wrote down my questions and my notes in google doc. Man , Fast AI is supper easy , super hard and super dense. I finished my lecture at 8 yesterday. IF you dont know all Jeremy Jokes and what does it mean to have _ after a function in pytorch, You probably need to listen to lectures again.
So far what I learn from fast AI.
1- Learn to build and be comfortable with not knowing layers of abstractions.You will be curious after you learn to build.You will learn more about under the hood and theory.
2- Preferably have fews projects (3 is optimal for me). Projects should not be all deep learning, making your own website (simple) or even a simple game. Software development is not a good name in my opinion. It should be called software problem solver. I confront a problem in a project and try to solve it. If I can , I will continue. If i can’t I will ask questions and till I get the first hint from somewhere meanwhile I will go and do another project.
3- Come back to your problem after a day even if you don’t get help from anyone. Mind is so magical you probably have way more chances to solve it.
4- Define your weaknesses and strengths in learning.
5- Use all tools available for learning, Anki, Note taking , Google Search … However, one of the best ways is to break down your problems and solve the next problem in front of you. Trello is great if you have ADHD to unleash your supper focus
6- You won’t be good at tools like Vim or writing scripts and … overnight or probably over a month. The trick is to continue using them.
7- Radek’s book about learning is underrated. You should read it.
8 - You need to learn some tools. They are great resources out there. I recommend Live coding walkthrough and The missing semester of your CS education.
9- Tackle your fears in steps. Jeremy is right. You need to write blogs and maybe even make youtube videos. To be honest I thought I sucked and probably I still am. So what I did was this:
I recorded myself doing a leetcode question with the intention of not publishing it. I write down my process and problems in deep learning and web development and how I solved them in google docs with the intention of not publishing it. Now , I am way more confident to publish those. I have bullet points and can expand and remember them easily. I may create a YouTube channel
10- Code that worked yesterday may break today and vice versa, get used to this disturbing fact.
11-Get used to install and uninstall software and break stuff. It is free.
11- Fast.AI community is Awesome.
What next for me ?
Create fastpage blog in a custom subdomain and write my process there. I had the blog at some point but it was a custom domain. I want to try custom sub domain. Different host for different project. I am gonna enjoying breaking some stuff, haha
Hopefully doing part 2 of the course.