To the person who is asking the question and people who are writing the answers I just want to say that knowing a lot of good resources to go through, is not the learning. Now I see this thing happening everywhere, people want to know about the process so much that instead of doing what needs to be done they kind of start storing this metadata of the process and this thing is happening a lot on the internet. People know a lot of resources, a lot of tutorials and video and a shit load of things. But when it comes to execution and practice I can hardly say only a very few might have gone to complete what they have started. I am saying all this because I have gone through this cycle myself I have wasted 2 years of my life. Collecting resources related to ML, web development, Math, Psychology, Philosophy you say whatever you find interesting I will tell you some famous book or MOOC course on that. So I will ask everyone this question take a look on 1 back of your life, if you guys were trying to learn anything do a retrospective whether you really have learned anything, write things that are going right, right things going wrong and start doing things, making project, solving problems really doing the things not just trying to perfect the process. I can go on but I think I have made the point if I keep writing more I think I will contradict myself that it's not about what and how info you get it's about you get something actionable out of something. If some 2-minute video gives you something actionable to do rather than going through a 2-hour chapter in textbook there is no point of going through 2-hour chapter. Knowledge is all about applying not learning the facts and saying it around to your friends I know it feels good but nothing comes out of it in real life.