I've tried learning alone, but after 6 - 12 months it becomes really difficult. Being around a self-learning community daily makes a world of difference, I'm about to start my fourth year and I'm loving it.
Being part of a program also reduces societal pressure. Any program really, just to be able to give a simple answer when people ask you what you are doing. Otherwise, it's easy to be met with doubt and cynical questions.
Lastly routine, I see self-learning as a day job. You want to clock N hours per day and don't spend any time procrastinating. I've been building habits for 5-10 years, and I'm reaching a point where I can be productive, but it takes time and patience.
I've lost count of the number of times I've read a chapter in a book, felt I understood the material very well, but utterly and completely failed to reproduce anything when you take the book away and replace it with a blank piece of paper (or IDE).
Usually you can tell that you've failed to internalize everything when you try to teach it to someone else. You become aware pretty quickly where the gaps are. If you're on your own, though, it requires a lot more discipline.
It sounds like your problem has more to do with retrieval. You _learn_ something when you retrieve something from your working memory or long-term memory (you build myelin, a fatty substance that isolates your synapses, which enables you to later retrieve the information).
The optimal way to learn is to use spaced repetition. It naturally happens if you apply the knowledge frequently, or you can use a flashcard app to track it.
If you struggle to _understand_ something, it often has to do with overwhelming your working memory. You are connecting several concepts that you don't understand. On average, most can keep seven items in their working memory, but after that, you'll start feeling lost.
When you internalize a few concepts by retrieving them, followed by a long break or sleep, you free your working memory to connect more concepts.
[1] https://www.inc.com/scott-mautz/train-your-brain-to-remember...
At the moment I’m working through CLRS intro to algorithms. There’s some math in there and derivations. I tend to run through the derivations separately while I’m working through the content to really internalise them (and I just enjoy the math). The author is nice enough to provide extensive problems to solve too.
Similar can be said of The Art of Programming. Plenty of maths in there to follow along with and plenty of problems to solve.
In addition, don’t be afraid of revisiting content. If you read over a text once but don’t fully internalise it, you hopefully have gained enough knowledge to have an idea of when it might be useful to you. So when you’re working, go back to the text and read through what’s useful and implement that.
In addition, if you don’t like the text don’t be afraid to change. But if it’s working don’t worry about something better. Just get the content done, you will be in a better position to appreciate if something else is better then.
But without "canonical" sources like we used to have (even if they weren't perfectly accurate), it makes it much harder to ascertain the quality of any particular source of information.
Federated knowledge is great for innovation, but less so for learning.
It's like a stalking mission in LA Noire where I spent hours on a mission having not realised there was a car for me to use at the very start.
More practically: thank God someone was there to introduce me to an IDE and code discovery autocomplete when I was just learning programming for the first time.
If you're self-learning, you need to pick what you're going to learn from. Which means, ultimately, you need to pick what you will learn. If you don't know what it is (or what it's called), that can be very difficult.
Anecdote: I have zero background in graphics, but found myself needing to do some image processing. I spent about a couple days learning what I could about the problem space and deriving then writing an algorithm. It worked pretty well and I felt very clever about myself. A few days later I ended up googling part of the algorithm I wrote to try to better understand some edge cases. I ended up on Wikipedia staring at the algorithm I had written, only better, and simpler, and faster, and followed by a few paragraphs entitled "how to derive this algorithm from first principles". It was amazing, but I felt decidedly less clever about myself.
People say that in the age of the Internet, being taught this stuff isn't terribly important because you can just look things up. A caveat is you need to know what something is called to look it up. I've come to the opinion that a big portion of the value of higher education comes from being familiarized with solved problems and their names by someone who (hopefully) knows what you'll most likely want to use at some point.
For less established fields I’d be looking for review articles.
- knowing what there is to learn within any topic and what order you should tackle things
- whether advice about what to learn in some topic, how, and in what order is any good or not
- when to quit or stick when a certain approach doesn't seem to work
- how to test your learning, and how to assess your efficiency
- how to sustain motivation while playing the 'teacher' (i.e. co-ordinator) role when you'd rather learn, and the 'learner' role when you'd rather teach.
- how not to make certain important things be associated with pain and boredom, when approaching them in a free, open, playful mode would make them stick much better
- how to avoid or undo damaging perfectionism about resources and approach and personal standards for outcome and ability
---
Self-learning is extremely difficult and I don't advise it to anyone, although I wouldn't discourage trying it either.
The traditional didactic models you already know are the best. The problem is getting the right people to teach the right subjects, and ensuring free and open access for all people of all ages.
Ultimately effective self-teaching tends to mean you implement the classical methods but in non-traditional formats.
I find it's usually only those with top percentile proclivity or motivation for a given subject can sit down with a textbook and notebook/repl and absorb information as effectively as the rest of us would with a good teacher and engaged classmates.
If you're like me and you're unable to go to Uni but want to self-teach programming/CS, learn the minimum required to get into a related apprenticeship-style position and throw yourself into it.
Currently I use Trello for this: https://trello.com/b/cu32qF3q
In future I want to build a website ala Goodreads/Google/Roadmap that lets you craft optimized learning paths for creating any idea. Sad this doesn't exist yet.
I also tried signing up in Chrome (v79) and while the pop-up opens, the signup request fails with with "Access to XMLHttpRequest at 'https://app.viral-loops.com/api/v2/events' from origin 'https://barbra.io' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource."
Hope you can get those issues sorted out, I'd really like to give it a try :)
Also, maybe you should checkout Notion if you didn’t give it a try already.
A lot of my mentors are sloppy. They don't look for the best tools. When I ask them for the best site to train programming skills, they point me to Project Euler, not a more fancy new thing. Some will measure progress by lines of code. Some, when stressed out, move faster or choose to pass out on the keyboard, as opposed to relaxing. Many seem dismissive of planning and insist that you have to get lucky.
80% of people are in the bottom 80%. Communities like HN are likely well in the top 20%, in terms of success, and have to look at the top 10% to improve.
What this means is that advice you get from 80% of people will be bad. There might be some viral article on Forbes about how you need to wake up at 4 AM or have a solid breakfast to be successful. When most people you meet give you consistent advice, it seems like it's true.
But you have to pay attention to who's doing this. If none of the people in top 20% are following popular logic, it could well be misguided. e.g. maybe lines of code are an important metric after all.
There have been countless times where I've come to resent my initial source after a few months of digging deeper on the subject just because they've positioned themselves as an authority without the ability to properly teach.
It may have been to my advantage that my senior peers quit & went on parental leave for months leaving me alone within the environments that I’m responsible for after only 8 months. Making it even steeper but also forcing me to apply the changes that I saw correct
Personally I'm a more visual learner and often while a book is busy with text syntax or misc details I will think I'm putting together a better understanding of what is happening / how things work....but the book goes on with details and I lose focus / get frustrated.
I so badly want to ask "Wait if a does b does that mean x is acting like this or that!?!?"
One thing great about the Internet and places like S.O. or H.N. or search engines, as well as other subject specific sites is it is much easier to find subject matter experts when you get stuck.
Self directed learning requires enough patience to recognize the best approach to learning it for you.
I rewrote my study plan at least 10 times.
Other than the self-discipline needed to sit down and study, it is hard to ignore the noise of contrasting opinions from Reddit, Hacker News and the rest of the Internet.
I'm still a self learner and going forward without proper guidance doesn't really help.
Things go much faster whenever there is someone there to help if not much but just to show a way.
Ed: and beyond simply pointing out areas the student isn't aware of, also suggesting connections between fields - like linguistics and computer science, for example.