Be it theoretical knowledge about ML, CS, mechanics, math topics. Or lack of experience e.g in some algorithms I need to understand, control problems, programming lanuages.
And I really struggle to organize a propper study schedule. What should I do next? Should I continue learning this one programming language? Continue reading this ML book? Try to set up and solve some control problems? For each topic I would like to learn, I already have the right material (books, problems to solve, etc.), so at least this is not a problem.
Often I am so overwhelmed that I just watch stuff on youtube.
I wish I had a tool or found a methodology to a) stay focused on the things I want to learn and b) to somehow track my progress.
Are there any tools or methodologies that you can recommend? Please don't tell me "just use pen & paper", I tried and I would like something more interactive.
Don't take this the wrong way, I often exclaim this. You are quite possibly in the majority and I'm the odd one.
To me it has always seemed inherently clear that the way to approach life is to do something if you enjoy it. If you stop enjoying it then do something else. I will naturally need a break from doing something after a while (hours, days, weeks), and so I'll put it down and pickup something else.
As a recent article on HN mentioned, "enthusiasm is worth 25 IQ points."
When it comes to self-guided activities such as this, there has never been a "should" or "best" for me. I just follow what I enjoy, perhaps guided secondarily by what may be useful. (Actually, I enjoy things that are useful, so perhaps that intertwines these concepts for me). I suspect I didn't thrive at university for this reason, while in the real world I know a number of people who would call me an overachiever.
PS. I have a few friends with some degree of ADHD. These friends may often feel overwhelmed by a large number of choices or tasks, to the point of inaction. I'm not saying this applies to you, but I just thought it was worth mentioning.
1) Every weekday 30min uninterrupted study at a specific time, preferably in the morning. Don't miss, rain or shine. Take weekends off, though.
2) Work in a strict linear fashion: read a chapter, then solve all of that chapter's exercises in order without skipping any, and only then allow yourself to peek at the next chapter. Don't "take a first pass through the book", none of that. To remember where you are, use a bookmark.
3) If you're having trouble with some exercise, you can look up the answer key for that specific exercise, but only after you've spent 5 minutes of effort on that specific exercise without making progress. After that, the same rule applies to the next exercise.
4) You've got to get to the end of the book. Matter of pride.
For me this approach has worked well for established topics in math, physics, econ. Haven't tried it for CS or ML.
Journaling helps document progress and provides notes that you can transcribe to a spaced repetition system (i.e. flashcards) for long term retention.
Self-compassion is key for picking yourself up after you feel overwhelmed by a topic and quit for the day, which will happen. You have to not be so hard on yourself and understand that there will be good days and bad so that you can build the long term stamina needed to see the project through.
Having something to prove (i.e. I'm a business guy but I can learn coding too; I know I'm smart enough to score high on the GMAT/LSAT whatever and get into the school of my dreams, etc etc) is often what motivates me the most. It gives you that "why" that you need to keep yourself focused on finishing in the face of so many distractions until the project is done.
- Ultralearning by Scott Young
- Deep Work by Cal Newport
- Atomic Habits by James Clear
- How to Read a Book by Mortimer Adler
- Mindfulness Meditation (many books by Jon Kabat-Zinn
„Ultralearning“ has lots of valuable ideas. For instance: Directly attacking the skill you want to learn. If you want to learn Git versioning, practice doing it.
„Deep Work“ convinced me that I need to spend focused and uninterrupted (large) chunks of time doing the things that I want to make progress with.
Learn Mindfulness Meditation to be able to focus, to deal with inner distractions and a wandering mind.
„How to read a book“ showed me that I was only reading for information at best, but mostly for entertainment. And it taught me how to read for understanding. Reading-ability at this level is one of the most under-valued skills today (in a world full of tutorial videos).
And finally: Make a schedule, block out chunks of time, stick to the plan. Track your progress in an app or on paper. Repeatedly doing something will give you tremendous amounts of progress in that area. (see „Atomic Habits“)
So let's back up. What's your motivation here? Why do you want to know stuff? Is it to excel at your job? Is it to just be a well rounded individual? Is it just because you love learning? Your goals should dictate your focus - figure out what you're trying to do and focus on that. There's only so much making time - optimize for maximizing it with a narrow focus on valuable subjects.
If you want to make more money in your career, focus on things that will do that. If you want to be respected at your job, that's probably a different skillset you need to focus on. Understand what you're after; it's much easier to learn if you have a goal in mind, and it's much easier to set a goal when you know your motivations.
Second, what is this about what you should know? In what context? According to whom? Is your knowledge deficient at work? Do you not know how to act around people you want to be romantic with? Are you making mistakes at work? What external force is determining what you should know? Is it imposter syndrome?
I think getting to the bottom of your motivations and this feeling of not knowing enough or not knowing the right thing might be more beneficial than learning tactics for studying things. If you use good study techniques on the wrong thing, what's the point?
One of the biggest practical lessons I learned after leaving college is that most of the things I learned in college are useless to me now. The philosophical lesson was that study plans and syllabi are useful, but only as a list of things you might need to know...a way of knowing what you don't know (which is very important!). But as a way of determining what you learn, you're just going to waste your time. Let your path in front of you determine which of those things you don't know is the thing you need to learn.
My educational background is Supply Chain Management. My career path forked within my first professional job as a supply chain analyst due to the simple constraint that Excel at the time wouldn't let me systematically manage inventory settings for more than 65k unique inventory SKUs. That is how I ended up learning R and SQL...my first programming languages in a long list to come. Now I manage radiofrequency sprectrum analytics for a major cellular network provider, and I algotrade commodity futures on the side. Getting from there to here was a long path of letting my current needs determine what I needed to learn.
Additionally, perhaps anecdotally, concepts that you learn have much better staying power in your memory when you have an actual need to learn them.
Use this to turn your problem around. Try making a video for someone just like you. You already know what a good video looks like because you've watched a ton of them.
If your goal is to make a good tutorial video, you can take those play problems without any real world application and turn them into content. That way your problem becomes "teach xyz in 15 min on youtube" instead of "master xyz by myself".
Teaching others is often said to be the best way to learn something yourself.
As you publish and get feedback, you can lean on your viewers to figure out what to build next. Eventually you'll be an expert in your chosen domain and have a following of people and have great SEO if you want to start looking for work.
Note: I haven't done this myself, but I wish I had, and obviously youtube is filled with people who are doing this about every topic under the sun. This is my plan for when I'm done with "work".
I constantly found myself in the following loop:
1) Motivated to study, study productively
2) Several days / weeks later productivity stops (for any number of reasons)
3) Quickly forget everything I learnt over the next month or so
4) Back at stage 1, feeling I have 'wasted' the last few months.
My big problem was the _forgetting_. Life is always going to get in the way, and I needed to 'drop anchor' when this happened, so I could resume where I left off, not start over.
I use Anki [1] to do this. I learn things, make flashcards, and spend dead time on public transport keeping up with them. As Anki uses spaced repetition, you can input a LOT of cards without this becoming overwhelming.
This gave me a sense of progress even when I did not study for a month, and massivly increased my motivation.
Another thing I do is schedule time. Especially since I've been off work, I've scheduled specific times where I do nothing else. I go there, log on my computer (I work out my solutions in Overleaf), turn off email notifications, mute my phone and place it elsewhere and just work. I've found that having a scheduled time makes things 100 times easier, as it mentally prepares me to just keep doing this. Other than that, it's don't doubt your resources; resource paralysis is a real thing (you see it a lot of the time in language learning too), they're all basically the same if you're working from a published textbook. Just pick one and stick with it.
My friend and I follow a plan where in both of us have to study 5 days a week at least 30 minutes a day. We write what we did for each day in a mutually shared document. If someone fails to do 5 days in a week they pay the other person a fine of $2*(5-no of days task done). This has helped us to stay on track and is helping drastically to get the work done. Neither of us has paid even a single penny to other person because none of us missed even a single day and we have got a lot of work done.
When I wanted to be a better sysadmin, I forced myself to use desktop Linux back in 1997 when it wasn't nearly as easy as it is now. I had to learn how to compile and configure kernels, how to manage drivers and displays, how to write scrips, a bunch of hardware internals so I could configure them correctly, etc.
But I was driven by the overarching goal of having a usable desktop machine.
You can do the same here. Pick a larger project that accomplishes something you really want to do, and then learn what you need to learn.
You said you have an interest in ML -- build an image classifier off of a camera feed at your front door. Make it identify the mail carrier and your neighbors' cars. Write it in a language you don't know but want to learn. And so on.
Your progress will be tracked by how satisfied you are with the project and if it meets your needs.
1. maybe, you push yourself too hard to self-improve and learn. You “should” or “must” learn ML, maths. Such forcing can lead to frustration, low self-esteem, procrastination. Reflect, if it is the case and you can address by being more relaxed, CBT techniques like saying to yourself “I absolutely do not have to work through this maths topic today, but I choose to do it, because I want to be able to ...”
2. You cannot decide what to focus on, everything is cool and important, and you do not want to be wrong in your choice. You can address this problem with a short week long dives into different topics, and collecting more personal experience to make decision. Or just accept the fact of uncertainty, just pick with your heart, and enjoy the ride. Your current struggles to choose may be of zero importance to yourself in five years.
3. You cannot stick to a single topic. It might be ADHD, or you are passionate about the result, think mostly about how great it will be to work as a top ML researcher, instead of focusing on the process. Make your study engaging - emotionally and mentally. In my case, I become sleepy in 15 minutes when reading some maths textbook, but I feel much more alive and engaged when I solve problems in the book, or when I read a book with a practical goal in mind. Invest in loving the process of study.
Also, take time to consider that the things you know you don’t know are often more valuable than what you do actually know. By that I mean that your awareness of your limitations will broaden your critical thinking skills. Nassim Taleb’s concept of an anti library is tangentially related: https://fs.blog/2013/06/the-antilibrary/
The goal post will always be moving. You’ll never be finished, and trying to create a complete body of knowledge will only deepen your anxiety.
I've been through various apps and approaches, and even tried to write some tools myself. So far I have been unsuccessful in finding the right abstractions and solution to solve the problem. Everything I've tried ran into edge cases it couldn't handle. I always came back to listing goals and daily schedules in raw text files, sometimes using org-mode.
One approach that has worked okay-ish for me is to have a hierarchy of personal OKRs. Quarterly -> Monthly -> Weekly. I found anything longer than quarterly to not be very useful - life changes too quickly. Even quarterly may be too much. You create these as-you-go, e.g. each Sunday you review your past week and create OKRs for the next week, possibly adjusting some of your monthly goals. Each day is then managed with a simple TODO list and you count tasks towards your weekly OKRs. At the end of each period (day, week, month) you have a review.
This approach still has a lot of shortcomings (not being flexible enough, not incorporating habits, some things are difficult to measure and can't be expressed as OKRs, etc) and I've tried several other things I could talk about, but the time period in which I used this approach was one of the more productive ones.
Regardless of the technique, one thing I've come to realize is that people tend to spend not enough time on "meta" - figuring out what to spend time on. If you think about it, spending 1-2 full days a month making sure that you are working on the right things aligned with your long-term goals is reasonable, but very few people spend this amount of time (me included). Instead, we tend to keep ourselves busy with the micro - tasks right in front of us.
So the short answer I think is to focus on a process of daily improvement instead of some systematic program for self study. Just read 60 minutes a day, journal 30 minutes a day, and place absolutely no restrictions on the subject matter. For a while I also burned my notebooks every 30 days, that was really helpful. These days I actually do record a lot of my thoughts but I try not to get bogged down too often in the systemization of the practice.
I think you may be suffering from this. You life becomes this treadmill of trying to prioritise what you want to have accomplished coupled with statuses of where you are now. You are always fighting against the clock because you are wondering if you are making "enough" progress and worrying if you might be missing out because you made the wrong priority call. In the end you basically chase your tail going from one thing that seems important to the next thing that seems important and eventually circling back to the original thing. (Note: many people have probably worked for companies that waste huge amounts of money doing this very same thing).
IMHO, the best thing to do is to throw away all of your "I want to have done" goals and replace them with "I want to do" goals. Then, don't prioritise by what's most important to have done. Instead prioritise by how much you are enjoying it. Don't mark the end point of the exercise by how useful it will be for the next thing, but by how much you want to continue.
Which is not to say that you should just do whatever you feel like every day: even in the most enjoyable of tasks there are things that you need to do when you don't feel like doing them. However, on average you should be asking yourself, "Do I want to continue with this? Am I enjoying it? Does it feel like a me thing to do?"
Last, but not least I will also leave you with my "Rule of 3". You can do 3 things in your life well, give or take. One should probably be your day job. One should probably be your relationships. That leaves you with one thing left. You can dabble with things here and there, but if you want to really make an achievement, you really only have room for that one thing.
Here are some things I try to keep in mind as I try to learn new things:
* Get enough sleep and nutrition. If you're tired/hungry you're going to feel overwhelmed faster
* Don't rely on motivation, instead rely on discipline. Motivation is great for a burst of energy, but it will eventually leave you. Discipline, on the other hand, is what will make you start and finish that book / online course, etc.
* Track your progress in whatever way is best suited to you. This could be as simple as a check on a calendar or using an app. Personally I like the Jiffy and Habits app on the Android store. Seeing progress helps with both motivation and discipline.
* Learn one thing at a time. It's tempting to spread yourself thin, but sticking to one thing is best.
* Give yourself more time than you think you'll need to learn. In a classroom setting you can raise your hand and ask an expert a question which they can quickly clear up for you. When you're doing self-study you'll find that you may ask the wrong question, interpret things wrong, go down a Google rabbit hole trying to understand related topics, dig through forum answers which may not quite answer your question, and leave you with even more questions.
* Figure out your learning method. Maybe it's video, maybe it's a book. Your preferred learning method may change over time and it may change by topic. Don't be afraid to stop one method and pick up with a new one, or change midway through. For example, when I'm learning a new language I find video courses helpful to get me started, but then once I'm running and past the basics, I find text content easier to digest.
* Personally I get frustrated when learning new things when someone decides to coin a new jargon term. For example a little while back I ran into the term "upsert" to refer to an "update or insert" process. The text I was reading used it like I was supposed to know what it was, but I had never run into it before. These things frustrate me and usually make me feel like I'm way behind in basic knowledge and tend to kill both motivation and discipline. Why not just the extended-term, especially in a course designed for beginners? It causes a weird mental block for me. My solution is to just say "Fuck you, but fine. I accept this as it is". It's a little mental prayer than helps me move past the feeling.
Instead, use projects to drive your learning, otherwise your knowledge will atrophy as you attempt to learn subjects broadly. Hands on learning will be more productive as it integrates all of your senses.
Figure out what you want to do. That isn't to say your interests can't change, but your learning should benefit your current objectives.
You might find that what you work on requires interdisciplinary understanding, and in that case you might integrate a broader field of skills. But let your projects guide you to that, otherwise you're making a premature optimization. Perhaps an incorrect one.
I use different techniques to maximize the two factors. For motivation, nothing fuels it better than achievement. This achievement can be something big like a complicated project or something simple like crossing of a chapter in a book. The key thing is to have a scorecard, minor or major goals. It is a bit like Gamification for self. It motivates people to no end.
For engagement, I mix and match learning mediums according to the environment. It is easy to despair waiting for the best setup, where you can spend your undivided attention. The smarter thing is to engineer your study plan for a realistic environment. I find that practice, books and videos engages you in descending order. OTOH if you have a busy schedule, focus level and time available may have a reverse distribution. The key is to pair each environment with corresponding learning mode. I watch videos while on commute or in in crowded places, read books while on couch or with family and do hands-on practice during my lone time. Videos and books complements practice nicely. It is not possible to pick up everything by practice alone. Likewise after practice, you can take more context and subtleties out of a book or video.
When it comes to practice, doing the prescribed exercises or tutorials is helpful but you get maximum return by deviating from the script such as writing your own scenarios or doing a project. Even blogging or making a learning video will help to engage you more with the topic. This works by tuning your engagement to the maximum.
With books and videos, it also helps to find ways to engage with the medium. It may be via discussion boards, taking notes, writing commentaries or doing a blog. Without engagement, very little sticks.
There's a lot of wonderful techniques and software out there but the most important optimization is the foundation of good health, mental and physical. My memory has improved so much with consistent sleep. A plant based carb light diet helps so much with energy and focus.
Then take some time to consistently study a little. I've started setting a daily calendar event to read a book.
Don't worry too much if you're not focused these days. It's a pretty stressful moment in time.
I have learned more about physics than in my whole life before, when I took the hobby project of recreating the numerical simulation of a nuclear explosion. It was immensely satisfying.
Nobody likes the basics, they're boring, that's why they're _the_ "basics", but they're important, so I had to figure out how to motivate myself. So I just considered it eating my vegetables for more interesting topics.
I started small, 20 mins a day, on the basics. Before long the basics empowered me to learning other topics I was more interested in. So soon I could keep going with my basics while adding another 30 minutes a day to studying another topic of interest.
Now I'm up to four topics of interest and am spending a couple of hours a day studying concepts I find to be very interesting. Not everyone has that kind of time, and some days I don't want to spend all that time on it, so I take a break. I've found it's important to not let the break last longer than three days though (unless it's a vacation) otherwise I start to lose where I was at in my progress and have to spend some time refreshing everything.
That's it, it's like the old adage. How do you eat an elephant? One bite at a time. You would be surprised at how quickly 20 mins per day adds up. That's ~121 hours a year or ~3 weeks of working on a specific topic non-stop.
Example: I need to learn HTML, JavaScript and maybe Node.js for upcoming project. I couldn't make myself open the books for more than 15 minutes but the other day I came up with a fun project that requires these and now I can’t wait to learn this stuff.
Remember that you can't learn _everything_ at once. You have to choose a focus. That could be a tool you want to exist, a hero you want to emulate, or a problem you want to solve. There's a section in Mastering Software Technique that discusses this: https://software-technique.com/ (it is a book, but one that I highly recommend for people wanting to learn software development better). Ultimately, that focus can shift over time as needed, and the most important thing about it is that it motivates you.
For me, I mostly manage self-study via projects. There are various things I'd like to build. Lately, I've been using Nim to build various tools I'd like to have, which has involved learning about different facets of Nim, and it's libraries.
For me, if what I want to learn is less concrete, having a personal wiki also helps. I currently use VimWiki at work to track what I need to write down, but anything that makes it easy to link between articles, and doesn't put too much of an editing barrier up is good.
Take Dr. Barbara Oakley's (free) learning how to learn course - I graduated 20 years ago (MSc) and found this very refreshing and insightful. Good interviews, too. https://www.coursera.org/learn/learning-how-to-learn
Cal Newport's book is full of studying/organization advice. Bottom line: Attack the hard stuff early on. Go hard, go deep. If you get organized and build a foundation in each course early on, then you won't have to catch up and cram in all-nighters later. https://www.calnewport.com/blog/2009/03/09/the-straight-a-me...
- have good reasons why you study a particular topic and find a way to apply the knowledge as soon as possible
- have particularly good reasons if you want to study foundational, abstract or huge topics. As noble as maths, category theory and machine learning are, maybe there is a reason why you and I haven't really picked it up that well in university despite graduating. Chances are we have enough tools to contribute meaningfully and to be employed gainfully, and settling the score with the old curriculum may not be the best use of our time.
In general however, my advice is to relax. There is more to life than knowing little bits of many things. Try to learn something outside of computers. I find building things with my hands that aren't on a screen a lot more gratifying generally. Also, those kinds of skills come in a lot more handy in a zombie apocalypse. So there is that.
This is super easy for if you just buy a course for a particular certification. You can "make your own" if its not really an exam by making a small outline or picking a particular video series and then grafting the series onto an outline and then making a schedule for how you will go over each outline item twice.
I always recommend the 2-pass system because of what I call the "coat-hook problem". Basically, you can't just memorize stuff that has no other connections to things you already know. So, in the first pass you are really just putting up the coat-hooks. All you need to get from that first pass is a broad overview of what the content is and hopefully you can get a feel for the shape of everything. The second pass is where you actually start learning the material, i.e. actually hanging some coats on the coat-hooks.
Hope this helps. It's just how I do things, not claiming its for everybody.
There are a few different methods I've implemented to manage my time (daily journals, project-specific tracking documents, rabid control over my work environment) and they deal with different aspects of the more general problem of "stay focused and track progress", but the thing I use that seems to fit your case most specifically is the pomodoro technique (https://pomodoro-tracker.com/). It helps in four very specific ways:
1. Motivating to sit down and work on a task: work is divided into 20 minute chunks, so it doesn't feel emotionally expensive
2. Staying focused on the task at hand: you have a named timer maintaining your focus on the goal of that block
3. Planning a route: being forced to regularly and intentionally state what a block of time is meant to accomplish helps breaking down large and complex problems
4. Self assessment: you end up with a list of twenty minutes blocks that you either had to repeat or got finished with early. For me, this revealed a lot about where my time was going that I didn't realize at first.
As a bonus, there is zero learning curve, and nearly no added overhead. Hit the link, type in the goal for the next 20 minutes, and go.
Hope this helps. Best of luck!
Edit: formatting and a link
I specifically hunt for project-based udemy classes so I'm not just passively watching videos or reading blogs. The lectures are short, and I can make measurable progress even with 15-20min of attention/day. Usually 1-3 classes on a topic gives me the confidence to say to myself "I have enough introductory knowledge that I can now figure this out if I have to do this for work." This still takes 1-3 months of time per topic.
However, most of the items in my list don't have a curriculum or syllabus. I end up having to settle on just googling for blogs or playing with a few APIs to feel confident. I no longer prioritize mastery (except if I need the skill for my immediate work). I find taking a breadth-first approach to learning helps me connect the dots in my understanding of technology as a whole, and invest in depth only if I need it for my immediate job/projects.
1. For me it's hard to stay motivated learning a new technical topic if I can't connect it to some plausible future where my life would benefit from the knowledge. If I’m not addressing any pain points then the drive to study just won't be there.
2. Realize that there’s going to be an overwhelming amount of resources and tactics you can use to learn the topic. But they’re all not created equal and some may get you to your desired destination faster than others. This is highly personal; not every method of learning works for everyone (ie: I dislike learning theory through videos and lectures, highly prefering technical books instead).
3. Find a group of people that's at least slightly above your knowledge level in the topic and learn through osmosis. While I was able to pick up the foundations of infosec on my own it wasn’t until I was learning with others, especially while preparing for certification exams, that I got to learn more of the intricacies of the topic. Learn with others that have a similar drive as you.
4. Set weekly goals and dates in the future that you really need to test your knowledge to see if you understand the material. Security certifications, while I was a bit rebelious against at first, served this purpose for me perfectly. I’d set weekly goals to learn material based on a courses' syllabus and every few months there was the ultimate test to show I actually grokked the topic, which huge burst of hedons along with it (if I passed, which has been a 3-exam streak for me so far).
It sounds like you already have a list of things you want to work on, which is fantastic. Most people don't have that at all. The next step, in my opinion, is to pick the item that you're most curious about, and do that. If you're still having a hard time deciding which one to go with, it's probably one of the ones you keep thinking about. Maybe you shelved it at one point, but it keeps bubbling up in your brain while you're falling asleep or going for a walk. Do that one for now, and look forward to the second item on your list while you're working on it. If there are several that give you this feeling, just pick one of them. It doesn't matter all that much, as long as you find it interesting.
Your list will keep growing, and you'll never make it all the way through, but if you let your curiosity guide you rather than some sort of logic-based methodology, you'll always enjoy what you're working on, and you'll find yourself looking forward to discovering where your curiosity takes you next.
- meetups are open & friendly. They are more than cool with “I am learning X” informal talks without too much judgment or pressure
- the deadline still makes me bust my ass
- I dont believe I know anything unless I can teach it, a meetup talk means I need to communicate my understanding, which means I actually learn it
Nothing happens without a deadline with real social consequence. My buddies call this “embarrassment driven development”
I also work and do freelance work on the side as well as help my family with their businesses, so setting a schedule is important in my case, hope this helps in some way. If you know why you are doing all of these self-study things, it can also help you focus on the here and now. I recently learned of a term used in business management - obliquity: https://www.managementtoday.co.uk/obliquity-roundabout-route...
"Obliquity describes the process of achieving objectives indirectly, such as the financial success that comes from a real commitment to business. And obliquity is ubiquitous - it can even be applied to happiness. "
Rewards help too. Like, if you study for 25 minutes, get up and do something you like for 5 minutes, rinse and repeat.
I use a personal Trello account to keep track of things. What works for me is to take a month, set aside a week and put about 5 learning outcomes into each week. I tend to get overwhelmed with the amount of stuff I want to learn and do, so recognising when you're putting too much on your plate is a handy skill to learn.
One issue with learning things is that as you learn, you often discover new things to learn. It's critical to know how to file these: (1) they're true dependencies, (2) they're interesting follow-ups for later, (3) they're not relevant in the near or medium term.
File things aggressively. Try to identify as many things as you can to not read. For this you need two things: (a) a clear understanding of where you're going, based on a plan working backward from some achievable thing you want to learn and (b) safety knowing that when you file something away, you won't lose it. It's interesting, and exciting, so you should return.
Do this well and (a) and (b) reinforce one another. You can look through your "set aside" list to build out a strategy for your next achievable task and your achievable tasks can give structure to the things you've set aside.
File things aggressively. This often feels bad. You feel like you "ought" to know something or you get carried away following a thread. That's not bad! Do it sometimes, learning playfully is fun! On the other hand, you'll be more satisfied 3 months from know if you learn aggressively and directedly. You'll have worked through a greater amount of material at greater depth.
Finally, it's often hard to get started. Don't overthink it. Just set a small achieveable project, maybe give yourself a tight deadline. Once you're through that project you will, without a doubt, have a much clearer idea of what comes next.
A motivator is to think of some people who have some education you don't, and you want to be like them. They followed these syllabi like orders in the past, so so should you.
I take the procrastinating on youtube to mean you are intimidated. Maybe from analysis paralysis. So having a schedule to follow for some self assignments that you will grade will be a motivator I think.
Focus on what you're interested in, which will change overtime, and just keep learning.
I can recommend Richard Hamming's book Art of Doing Science and Engineering [0], that is what helped me put things in perspective. To quote a famous passage from it:
"It is well known the drunken sailor who staggers to the left or right with n independent random steps will, on the average, end up about sqrt(n) steps from the origin. But if there is a pretty girl in one direction, then his steps will tend to go in that direction and he will go a distance proportional to n. In a lifetime of many, many independent choices, small and large, a career with a vision will get you a distance proportional to n, while no vision will get you only the distance sqrt(n). In a sense, the main difference between those who go far and those who do not is some people have a vision and the others do not and therefore can only react to the current events as they happen.
...
You will probably object that if you try to get a vision now it is likely to be wrong—and my reply is from observation I have seen the accuracy of the vision matters less than you might suppose, getting anywhere is better than drifting, there are potentially many paths to greatness for you, and just which path you go on, so long as it takes you to greatness, is none of my business. You must, as in the case of forging your personal style, find your vision of your future career, and then follow it as best you can.
No vision, not much of a future."
0 - http://worrydream.com/refs/Hamming-TheArtOfDoingScienceAndEn...
I'm about 3 months into my web development studies and I think brushing up on math will benefit greatly for deeper learning.
I've taken courses through Udemy, Coursera, apps, and freecodecamp. It's very overwhelming and you can find any rabbit whole you want. I would say find a course and stick with it until it's completed. Then move on to the next. If you still feel like your missing valuable info, find another program. YouTube is great but in my opinion, there are multiple opinions and methods that you may find yourself getting lost a little.
IMO, it's the wrong question. Study whatever you want, it doesn't really matter. Get a lot of breadth, that's fine.
But go deep somewhere. How? Do a project! Something interesting, something you can't do today, and something you want to do. And don't stop. You'll hit walls, just ask people for help, find communities where they'll help you through it, read docs.
Even if you fail, so long as you really push yourself, you'll learn a ton. And soon you'll know which projects are "tough but possible" a lot better.
It's a meme at this point that developers have 1000 different projects they never finished. Don't worry about that. In my experience it's because about 75% through a project you hit a point where it stops being fun, you stop learning things, and now it's just doing the work to wrap it up, which can be a lot less valuable.
The cool parts are that you'll be able to: 1. Learn faster. Students report they save from 30 to 50% of the time if they highlight with it (more when they collaborate & share 'juiced' material among them) 2. Recover what you learned in a snap, even much later.
I must be dyslexic, so certain topics were totally off for me, like CS. With it I could finally tackle it.
It's still a bit basic but it works on most web pages, or you can use the editor to paste stuff from other sources. It's free for personal use.
Hope it helps.
Please do let me know if you try or if you need support. Message from the website and I'll respond. There's not many instructions but it should be easy to use.
Cheers, Giampaolo
Because you're self-studying, you're sort of going to a self-study university taking different modules from different faculties. This Trello board spells out your self-study university curriculum and you're in charge of it.
Here is a 5-step process to build this curriculum.
Firstly, create say 3 lists on the Trello board: ML, CS and Math. Each list represents a 'faculty'.
Then, for every list, create Trello cards where each card is a 'module'. For example, you would create 'Data structures & algorithms' in the CS list and 'Decision trees' under ML.
The next step is to figure out for each module if it's something you either (i) wish to know or (ii) must know. You can use Trello labels or even use the Trello separators for this.
This following step requires a bit of work and it's the fun part, only because it's self-study. For each module, list down (you can list things in a card) the resources you have for that module. For this there are various resources you can get from the comments, search engines, and your peers. Consider the different modes of instruction: books, e-books, videos, lecture notes, slides, articles, blog posts, online learning platforms and so on. Choose what's best for you. If you can't decide just pick something first and find another time to source for another material.
Lastly, prioritise the modules. This can be done by easily dragging the modules which you want to do first on top of the list (having considered what you wish to know and what you must know). Set, say, top 3 modules for each list then you'd like to do for the next 2 weeks.
This is the high-level curriculum planning. If you plan on a micro-level planning like what modules to do for this week or for today, that I leave it to you.
If you gave me a book of inverse kinematics I'd go to sleep in 10 minutes. If I get frustrated that my robot keeps falling over I could read about it for days.
Now assuming you do that aside your day job. You should remember what you wanted to achieve as a child, and achieve it or some of it. Me I wanted to understand Godel's proofs. So I bought books and currently studying them. Now that overlaps and interferes with my career goal, but that is a problem of my own :)
I took a number of MOOCs and enjoyed them: they provide a frame to your learning and short term goals. You can also ask questions to human beings. The issue is they may drive you away from your core goals, since there are not interesting MOOCs on every subject.
Don't be scared that your skimming over topics - general knowledge is good - just make sure that occasionally you do a deep dive into something - spend some time looking in detail at a ML topic or language feature etc.
A deep dive doesn't need to be long - committing to 15 minutes learning about python lambda functions is time well spent. Those 15 minutes will add up and if you enjoy the topic will inspire you to do more.
Create structured notes on topics, if you read an ML book chapter make a note of the important bits, watch a youtube video write down any things that stuck out with a link, write some code fragments that demonstrate an API.
No one book can teach you a subject (I found this particularly true with ML), If you find yourself loosing interest reading a book/chapter, don't carry on - your probably not learning anything. Find some other resources on the topic and come back to it later (or not)
When you have passion, learning flows freely in your mind, and you don't need much discipline. But when you're not a natural, you need to create passion through discipline.
So far, what's been successful for me is :
1. Set ONE very specific goal upfront : for instance, "finish this coursera course completely until I get the certification"
2. Only go through courses that are self-contained, straightforward, and that have at least 60% practice for 40% theory. (youtube videos & books are great when you already have that passion and interest in a subject, but if you don't, you'll just waste your time and energy unless the book is really well written and entertaining)
3. 20min a day, every day. You can do more, but you cannot do less. Set an alarm clock, turn off notifications, and just go through these 20 minutes, even if you don't make progress
It doesn't matter if you don't make any progress during these 20 minutes : what matters is that you get into a habit. This concept is very well-known : https://en.wikipedia.org/wiki/Kaizen After 3-4 weeks, if you keep at it, you WILL start enjoying it, and you WILL create some passion inside you. When you start enjoying the learning process, you'll start getting your results.
4. Give yourself some gratification for doing the work : I use the application "way of life" https://wayoflifeapp.com/. Every day when I go through the 20minutes, I mark a green check on the app, and it's sufficient to make me feel good about it. If I don't do the work, I mark a red check, and it makes me feel bad, so I really want to avoid that :)
Good luck !
1) Echoing what someone has already said, a big key is to do a little each day. Before doing that, I would try to read whole chapters of books at a time and feel overwhelmed. Setting aside 30 minutes each day and sticking to it, even if you feel you have more energy at the end, is the way to go. Progress will be slow, and it'll take you months to read a book. But you'll learn a lot this way, and the sporadic bursts accomplish much less in my experience.
2) When choosing what to read, I tend to go for books that are fundamental. I do ML/stats work, so that tends to be math books on probability, linear algebra, stuff like that. These also tend to be the books that require the greatest mental effort.
3) Watching stuff on YouTube isn't a bad thing! The books I got the most out of were those that also had an online lecture series.
1. Start easy.
It's tempting to grab a textbook or video series because it gets good reviews on Amazon or likes on YouTube. That's all good and fine, but it's more important to get a good introduction to the topic. The key here is to get a rhythm going and it's very easy to disrupt your study rhythm if you start too hard. So, much like working out, start out easy, with something you can easily grasp. Moreover, do less than you can. As they say in weightlifting, leave a couple of reps in the tank. Don't go all out as you're running a marathon, not a sprint.
2. Be consistent
The key to finishing something is to do be consistent. Intense 5-day seminars can work, but you're going to need a very good teacher and have a lot of motivation to get through it. For self-study, consistency is much more important. I would recommend somewhere between 4-10 hours a week. Anything more than that is going to burn you out and anything less and you'll forget previous lessons. 1 hour a day for me on a given subject and taking weekends off works for me. The key is to build up momentum and keep it going.
3. Power through by stepping back.
There will be sections where you're going to feel lost. You're going to feel frustrated or not know what the text or video is talking about. This is where you need to "deload" a bit. Take a week to review all the material you've learned so far and redo some of the exercises. Everyone has these and the key is to not lose momentum. Many a study has stopped due to one obstacle. The key is to step back for a bit and try again without losing the momentum you've built.
4. Remove distractions.
Not everyone has the discipline to follow these, and most of the time your brain will try very hard to distract you when you encounter a hard problem. The key is to minimize all your distractions during your study time. This means no email, social media, walks to the fridge or anything else. You start and don't stop until you've finished your hour (or 30 minutes or whatever you committed to). It's okay if you only got through 2 pages during that time as long as you didn't get distracted. Give yourself permission to stall a bit. And if this happens a few times in a row, step back and try again (see 3)
5. Get a buddy
The best way to study is with someone or some group that's studying the same thing. There are lots of forums for all of those topics that you can engage in to answer some of your questions and possibly find someone to study with. Getting some accountability is an excellent way to keep up your momentum.
I over engineered everything - I have a CI/CD pipeline for a wordpress website that I really do not need but it meant that I now know how to do it.
Not only that I force myself once a week to write about what I’ve learned that week for my development for my blog that nobody really know exists. But it keeps me accountable for having to continuously learn and improve.
I’m currently setting up my website in various regions then knocking them out to see how I can make sure everything stays online whilst also piping all my server logs to a logging platform.
However, if covid has done anything it's broken me enough by spending enough time at home to break my bad ADHD fueled habits.
If anyone else has a rigid discipline or advice for how to keep up a streak of improvement I'm all ears!
1. https://www.managementstudyguide.com/goal-setting-theory-mot...
2. https://en.wikipedia.org/wiki/Sports_periodization
3. https://www.sports-training-adviser.com/recoveryprinciple.ht...
My problem is a little different that even when I do it... it's on my own, late at night, I'm tired and frustrated that I'm not learning at the pace I want to.
I've sort of settled that self learning for me is just going to be a mix of hacking things out clumsily and watching some videos before bed, and maybe maybe some lucky times where I have free time (rare with a family with kids) and some bits of it will stick, others won't, and I'll probably watch it again later and that's ok.
In short rather than sweat the outcomes too much and get frustrated and not do the thing, I just do the things and frankly that usually results in better outcomes long term.
Granted... I'm still working on all of this ;)
I am late to the party, but in case this helps, this is what works for me:
First, the most important thing is that you must really, really want it. I don't think that anyone ever got good at something hard that they didn't find interesting, or, if they did, it must have been sheer torture. If this is not the case, the sooner you accept it and move on, the better, to avoid needless suffering and wasting time.
There is no royal road to geometry.
You need a realistic plan, based on what you want when, and then list the prerequisites. Don't forget that you also need breaks and to do other things.
I prefer depth over breadth.
I stick to one course at a time, full inmersion. In my case the best learning happens when meditating for a long time over tricky concepts. This requires focus.
If you find yourself strugling that's ok. Take a step back, take your time, look for alternative material that explains the same concept more slowly, review the prereqs. It is often a sign that you hit something important but difficult. If you clear this hurdle, you will already have an advantage over those that gave up, if it is hard for you the odds are that it is hard for the rest too.
If possible, I try to learn from complete online courses from top universities, with outstanding and charismatic professors giving video lectures and well designed psets, explaining the core concepts extremely well. For instance: 6.042 discrete math with Tom Leighton, 6.006 algorithms with Eric Demaine, 18.06 linear algebra with Gilbert Strang, Machine Learning with Yasser Moustaffa, William Cohen on machine learning from large data sets, systematic program design from Kitzales, etc etc. No videos, but I can't have enough of Stonebraker's readings on databases.
For me learning from such professors makes the whole thing much more enjoyable, an experience to savour, on top of learning loads.
If you want advice on material, tell me what you want to learn, I have surveyed tons of freely available courses.
I have a goal to create working application. Is it a joy for me or just another work that takes my time and gives me nothing? Sometimes, I don't know. I keep working with different technologies, tools so it's not the same as at the job. When i feel, that's not a joy, I am tired or whatever, i don't force myself to do that.
Rather than "learning" programming language, you can write down an idea for the sample app and start working on that. Rather than reading a book, you can watch a video or you can go read outside.
Create schedule, couple hours per week, break your loop.
What works for me is reading a textbook and re-writing out any concept in the textbook in my own words until I understand it. Afterwards I do practice problems or a project to ensure I'm not lying to myself about my understanding.
If I can, I only do one topic until I'm sure I've solidified my knowledge to a sufficient degree that I won't forget it when I shift my main focus to something else.
Lastly but most importantly is be ok with failure. When you fail to learn something, take a break and then come back approaching it from an entirely different angle.
Next prioritize the things that will be the most relevant to your career or or side projects. Specifically focus on the concrete and relevant over the abstract and esoteric. The most useful topics are going to be applied an relevant to your goals. Think how do I use css over theory of design.
It's much easier for your brain to stay focused on items that are immediately relevant. Also focus on marketable projects over knowledge. I took an open source CMS and made the queries 2x as fast is a way better use of time than I red a bunch about Postgres tuning.
A possibly different perspective. Do things, don't study. Only study if and up to the minimum that you need to accomplish the thing you are doing right now.
I don't study. I don't worry about it. I just learn things I either am passionate about so can't help but study or for my work (including personal work); the thing I need to learn to accomplish my immediate task.
I guess I'm saying don't bother learning things you aren't passionate about or you don't need right now.
And only study the thing you most need right now (makes it easy to know what to study next).
For example, right now I'm learning Rust and it's just too much all in all.
But when I try to implement something specific it removes much of the cruft and I can focus on a handful of things.
The point here isn't efficiency, this is basically the bare minimum I think one can do while still learning and making progress, i.e. you don't need to follow a rigorous schedule or cultivate a great deal of self discipline if you enjoy the task. Doing even 20 minutes is always better than nothing at all.
Do this and slowly build up discipline by pairing it up with consistency.
This is not a problem with you, its a problem with how poorly organised your career is. Why do you need to know 30 new things at once?
The internet tries to turn information into water, like a firehose. You gotta turn down the water pressure until its useful and aim it at something that needs doing. Why rupture an organ drinking it all at once or slice a hole down the middle of your established work tools with a high pressure jet?
Theories are tools, add them one by one, so you remember how to use them.
And in particular, try to build things that force you do things from first principles vs. using a library.
What I mean with "extrapolating from future achievements" is setting concrete goals in terms of where I want to be in five years, or what I would like to be able to say I achieved, and working backwards from there. I feel that the main reason many people engage with new ideas, technologies, tools etc. is the infamous FOMO, fear of missing out. We fear that we will be left out, worth less if we don't read this article or learn that programming language. If there is no actual driving force behind an approach to a topic, learning it will cost you a lot of energy. You will need to remind yourself again and again why you are putting in the time and effort, and even worse, the next shiny thing will be extremely distracting. If you start with the knowledge that it's taking you somewhere, however, you will have much more internal drive.
Elimination is just not doing things. You have three languages you want to learn? Drop two. Two books on algorithms? Drop one, or maybe even drop both and do some sports instead. I know this sounds silly; you are asking how you can get better at learning things, and I'm telling you not to learn them in the first place. But I think this is a key talent; dropping things and not looking back, not feeling bad about it, not losing any sleep over a missed opportunity. Everyone knows deep down that there is enough time only to concentrate on a couple of topics and areas in one lifetime; you can be a novice at many topics, but being an expert requires huge amounts of time and dedication. And the only way to bring these is by eliminating other topics. The previous technique of extrapolating from the future is useful here. Do you want to be called a great roboticist in 5 years? Then you will have to drop the ML. You want to be a great Rust programmer? You will have to let Clojure go.
I hope this is useful. What you have to keep in mind is that deep, multi-faceted expertise in a single area is very valuable, both as a trade and for you individually, to feel great about what you do. Acquiring this expertise is very difficult. You will need to put in a lot of honest work, will have a lot of dead ends and frustrations, and frequent doubts regarding your choice. Nevertheless, you should try to pick one area of expertise and eliminate all other efforts that don't contribute to your prowess at it.
I've found that being able to visualize tasks I want to complete and breaking them into small chunks so that I can see progress is what's been helpful. I use a personal Trello board to keep track of reading/studying and notes. Even if it's watching a series of videos on youtube, having them in a checklist and have a clear place to keep notes has keep me more focused and organized over the past few years.
Basically - build in a little bit of time to do it into your daily routine somehow, and make it a habit. In a year you'll wake up and have made great progress.
1. https://smile.amazon.com/dp/B07K6MF8MD/ref=cm_sw_r_cp_awdb_t...
I do struggle much like you though - there is just way to much stuff catching my interest & I end up getting distracted by another learning opportunity while pursuing a learning opportunity.
That is the only way to actually learn. Theoretical knowledge gets you nowhere in the real world. Practical knowledge is where it is all at.
"When action becomes unprofitable, gather information. When gathering information becomes unprofitable, sleep."
1. Have a medium/long term goal, and then structure the topics you want to learn around that.
2. Plan and execute projects that exercise the topics you want to learn.
If finding the goal (1) is a problem, maybe start with solving that problem.
I realised that it was on me to find the world where I had a forceful, motivating necessity behind me, and the right task in front of me... Otherwise I would simply not do anything at all. And that's a relieving truth, honestly. Be thankful that your brain budgets for you. It's probably a fundamental guard against extremely costly psychological conditions. You can't just induce mania every time you open one of those tutorial bookmarks.
Historically you'd have a child to look after by the age you had both energy and experience, and the ordeal would soak up both and (hopefully) give you a bit of wisdom in return... Millenials and younger are having to shortcut this step to wisdom in a world with incredible uncertainty. The infotainment hurricane inculcates us with FOMO. It's just not the kind of environment that rewards slow, deep, considered, enjoyable, reflective, /focused/ learning. And lets be real, we're in the middle a blooming pandemic.
Accept there are things which are not right for you, and that you might not ever get round to. Realise that your laziness and intuitive preferences keep the world of 'shoulds and oughts' a manageable size. They're also the levers to make it right again, if that world is growing out of control (I analogise them as natural defences against 'cognitive carcinogens').
Imho you don't need any more tools or methodologies, or resources/pdfs/tutorials - you need fewer. Same goes for entertainment. I resolved to stop my obsessive resource hoarding/kleptomania, and to stop spending my life force on stupid smoke and mirrors for my own motivational systems. Seriously, consider reducing your possibilities and spending some time without the Internet every day. It turns out that turning off the info pipes and going to town on deleting most of your local resources/bookmarks is highly relieving, once you're past the initial pain barrier.
All that said, Joplin is really good for notes and tasks - just whatever you do, don't get into Emacs+Org if you have trouble with procrastination (I recommend Doom Emacs + org-roam).
Then you know, that the theories you learned about, where not just information adding to a (useful?) pile of information in your head.
I am reading a book that I'd like to recommend. It's called Deep Work, by Cal Newport.
For the latter problem, unfortunately, there's no royal road to mathematics, as they say. If you want to learn something, you're going to have to put in the time. My biggest advice here is to make sure you're applying the knowledge somehow. If you're studying something but never putting it into practice (and the study is not its own reward), then you're going to be frustrated later when you try to use all of these skills you think you understand. Kent Beck has a good quote about technique and discipline. He says, essentially, no book about gardening, no matter how good it is, will make you a gardener. You have to pull some weeds and trim some hedges. Maybe join a community of gardeners and learn about the practice of others. That's what makes you a gardener. This doesn't apply if you're just learning for the sake of learning, of course, but it sounded to me like you actually wanted to master a technique.
For the latter problem, it sounds like you're finally running into the reality that your time on this earth is a scarce resource. I don't mean that to be condescending; it didn't sink in for me until I was about 30. But the reality is that you won't be able to do everything, and tracking your progress really isn't the problem. You're going to have to choose precisely the things you want to do. But here's the thing: that choice is not permanent and almost certainly will not hold over your entire life. I like two quotes by Seneca and Thoreau (respectively) here. Thoreau says that a wise man remembers that the sun rose clear, and Seneca said that each day is a stage upon life's journey. Those may sound like cliches, but you need to really understand them. Every day you get a fresh start and you get to choose what matters to you. If every day you wake up and decide "I want to know ML mathematics," then by all means do that. Figure out what you already know and what you need to know next. But it's OK if these things change from one day to the next. That's part of the journey of life.
Last but not least, I got some good advice from the books "How to Get Lucky" and "Refuse to Choose." The latter was about imposing some structure on yourself if you truly get stuck deciding in the moment. I don't give myself a hard schedule, but I pick 6-12 things I want to work on (because I'm a person with a lot of natural interests) and I stick to what I'm doing for about 30 minutes. That gives me enough structure to force myself to follow through and not feel like I'm missing out on my other passions. And lastly when I'm really stuck about which thing to do next, I list my options and flip a coin. If you have problems with decisiveness like I do, this sounds stupid but it will move you out of your head and into action. It's a meaningless superstition but it works.
Good luck!
Take notes online or offline or both. Just write down what you learned in prose and store it in plain text files. Don't worry about organizing it, you can always add a full-text search later (if you wanted everything to be interlinked, google "Sublime Zettelkasten").
Knowledge sticks best if you get practical and use it, too, e.g. by writing some code. But the day has only 24 hours, so you won't be able to try out everything in practice. It's OKAY.
There's no need to finish one thing before starting the next one, but you ought to keep moving forward at least a little bit with each book that you are pursuing, or you'll end up having 25 books with only one chapter read. This is NOT okay, but don't worry - if you notice it, just prevent yourself from letting yourself start a new book as long as k are still unfinished. Don't worry about buying more books than you can read. Always good to have a personal library of good books in case there's a lockdown e.g. due to a pandemic, and it's OKAY to postpone reading them until you have finished the one you are working on right now.
It's a great idea to have a project, and to learn all those things that your project needs (= that you need to complete your project to your satisfaction). This is useful because it delineates what to read/try/master/experiment and where to stop. If you work as a developer or scientist, you normally have one or more projects given to you or self-selected, and focusing on these keeps you grounded and avoids you getting lost. Having a project means you do not just CONSUME knowledge but that you will also PRODUCE something, which gives you fulfilment.
YouTube is a useful supplement and it may speed up your learning, but note that there is a lot of overlap both in books and online. Focusing on one book per topic gives you a sense of where you are (x% complete), which may be helpful for orientation and self-motivation, too. It's OKAY to supplement with additional reading and videos, but I'd suggest stick to one text book as your master source to have that orientation.
Having access to a group of students, e.g. at a university (research group, reading group) or meet-up, is also very helpful to stay motivated. Nothing stops you from forming your own if there isn't one for the topics you care about. Nowadays it could be virtual, too. People in groups can learn based on personal study and then congregate to discuss or they can teach each other different sub-parts of the materials that the group attempts to master.
Best of luck!
If you can't read a book then this means that you can't stand yourself. Try to make peace within yourself and persist until you read all the proofs and understand them. Do not turn pages, it is contagious.
And yes, I have PhD in Math.
If I'd just ran through the Ubuntu installer I wouldn't have known this. Doing things the hard way is the best for learning. And more rewarding because you get exactly what you want.
I find I pick things up super quickly (at least in the IT realm) so usually I don't do a deep dive until I run into issues. I do try to get a handle on the overall architecture though. So I set things up the right way, and then I figure out the nuts & bolts along the way. I'm not someone for crunching through textbooks.
One thing I personally hate is tutorial videos, especially Youtube. I find them paced way too slow, whereas with text you can be super fast. So I never use video learning until I have to. I absolutely hate the stupid automated courses we have to do in work. Like office safety etc we have to repeat every year. They're really made for the lowest common denominator, which is apparently someone who can't understand more than 10 words per minute :(
And when you're working on something, try to not use youtube, facebook etc. Don't go looking for distraction. Unless you're really banging your head on the wall on a problem, then it may help to do something else for a bit. And try not to ask others if you can't figure something out. If you figure it out yourself it's more rewarding and much more educational and memorable. It also avoids being "that guy" :)
Tracking progress, I can't help with that. I often change my priorities as I go along, leaving stuff half-finished because I found something better or more interesting to do. So be it... I like not having a destination, and having a wide range of knowledge has helped me a lot in my job. What helps is that I live alone and technology is my job and my passion so I'm not struggling for time.
I don't really care if I don't finish something if it turned out it wasn't really what I was looking for, or I found something else that was more interesting. I hate using "methodologies", I always think something that someone else invented can't be perfect for me. I like to make my own way. I do sometimes look at them and pick out bits I like. For this reason I also avoid doing certification trajectories. And also because I think they are too much "the world according to" Microsoft/Cisco/etc. I care about technology, not about one particular company's take on it.
But anyway, don't take my advice for granted. Find out and then do what works for you. That's my #1 bit of advice. Everyone is different. I'm not very typical actually. I have very low discipline but yet I'm actually very effective (including in my job) because I have very deep interest and motivation. What helps me is just not worrying about the things I didn't finish. What's important to me is the journey, not the end result. Even a failed or unfinished project provided lessons along the way.
I really agree with the comment of adamcharnock below who said it should be fun. Absolutely agree. If something is super boring then don't do it unless you absolutely need it for some reason like a better job (but really how much better is it if you're going to be doing something you don't like?)
Why? There is this thing called the Zeigarnik effect. The Zeigarnik effect states that unoccupied tasks tend to overwhelm your conscious thought. When you have too much stuff to do you get overburdened and stressed and start watching Youtube. (I've definitely been there).
How do you deal with the Zeigarnik effect? Well, you can complete the task, but that's often a tall order. There's been research that shows that simply having a plan for how to complete a task helps you overcome the Zeigarnik effect.
How do you make sure you have a plan for all your open tasks/projects? This is where the task management system comes in. I'll tell you a few that I've tried and the software I use.
I think the two biggest systems for managing your todo list are Agile (adapted for personal use) and Getting Things Done (GTD).
I have been using a person Agile system for about two years now. It has definitely helped with stress a lot. I have weekly "sprints" where I plan what I want to do for the week. I review every week - what went well and what can be improved. I have a backlog with all the tasks that I want to work on divided up by projects. I also have a board for projects and what state they're in - TODO, in progess, done.
GTD is another system that I've been meaning to read about. What I know so far is that it's basically a flow chart for each item you have to do. There are lists for items in different categories - projects, backlog, current work.
The key point is that both of these systems _never leave a task incomplete_. By "incomplete", I mean not finished or reviewed. Yes, reviewed. If you recall, these are exactly the two ways of eliminating the Zeigarnik effect and the stress it entails.
Furthermore, with an effective task management system, you gain confidence and momentum in seeing your record of complete projects stack up. (I sometimes scroll back on previous years just for fun).
What about software? I started out using Trello. It's simple, free, and has almost no learning curve. I have a board for my sprint, backlog, and projects. On my sprint board, I have 3 lists - TODO, in progress, and done. At the end of the week, I move the done list to the completed board. Then I have a visual record of everything I've completed over the past year (I make separate completed boards for each year).
However, I've been slowly trying to convert all my stuff to org-mode in Emacs. Look up org-mode if you're unfamiliar with it. It's very popular among GTD enthusiasts.
In short, have a plan for everything you're working on, keep a "scoreboard" or list of things you've accomplished, and review constantly - review each task at the EOD and review on a weekly basis at least.
tl;dr of incremental reading: process hundreds of articles in a time efficient manner and enjoyably convert them to active recall items.
For a video on it in action check this [4]
More detail: incremental reading has a lot of parts but probably the most important is the priority queue and the concept of incrementally.
Priority Queue: imagine you had 100 articles to go through. How would you process them efficiently? What if you have 10,000? You can't go through that reasonably. SuperMemo helps you manage that with a priority system which lets you choose what's actually important and what you'll end up seeing more and less often. I can't express just how much this helps. This means I can import as much shiny stuff as I want and be confident I'm not gonna lose out on stuff I actually care about. If you just used priority queue and manually made cards while going through things SM would be a big improvement over standard SRS.
But it has another cool concept: incrementalism. With SuperMemo you don't read through an entire piece of content at once. You read it over time, and make extracts that you break down till you have facts you can memorize with SRS. You might be wondering: if you don't read it all at once won't you forget it? It's the opposite that occurs. By separating reading of an article over time (separated by days) your brain has time to do a bit of memory consolidation and move some of what you read to long-term memory. That means next reread, you can process the article a bit better since you're not taxing WM as much. This might seem minor but it makes a huge difference for comprehension and long-term efficiency. Processing things in bits means when you get board with one article you can go to the next one. I have ADHD which makes this really awesome, it's like Instagram but with text and real learning.
If you're interested in trying it out, let me know. If you have questions about it ask away, this explanation has plenty of gaps. If you have criticisms I'd hold them because imagining SM is nothing like actually trying it.
[1] For a very long, cool introduction you can use this wired article: https://www.wired.com/2008/04/ff-wozniak/
There is no methodology for how to waste your life better - you haven't mentioned your goal a single time. Learning without a goal is for idiots and public education, created by idiots for idiots.
Figure out what problem you want to solve in this world, in this short lifetime you have. Specializing in a field and doing something worthwhile will take at least 10 years, so assuming you're in your 20s, you have one or two chances to do something worthwhile in your lifetime before you're old and finished (everyone after 40).
One more thing - you have 2-4 hours of actual brain-activity in you, so do the napkin math, you have far less time to do real brain-stuff than you think, because you'll have to work for a living and most work demands you spend your brain-activity on stupid worthless shit such as building websites or another phone app that does the same thing 10 other apps do.
Knowing that, your #1 goal should be avoiding that scenario at all costs. That likely involves attending a highly ranked University to increase your chances of getting to work on research. Knowing that, there should be no time left to self study and your original question becomes meaningless.