How to Learn Complex Things Quickly: A Guide
product.hubspot.com
product.hubspot.com
So in some cases I'd put "Read the Source Code" at the top.
Code is not quite mathematical notation, but it is a concise way to express something..
[1] I read this one: https://github.com/larvalabs/cryptopunks/blob/master/contrac...
This is such a good observation. When I was first getting into my field, I looked around at the smart senior people around me and thought there was no way I could ever do what they did. Total case of imposter syndrome.
Things like compilers, operating systems, etc. all seemed like magic, and I thought I was too dumb to do that kind of stuff.
But once I started working, I didn't really have a choice... it was either learn or get fired. And digging down into the code made me realize just how... simple? ... some things are. Being able to pull back the curtain and realize there's no magic there. Want to talk to this piece of hardware? Just write this bit pattern to this particular address, then put your data over here, and then send it this command and it works.
Not to say I immediately figured everything I read out. Sometimes it took me hours or days to work through something, especially if it was heavily templated C++ code.
One of the things that really surprised me was looking into build systems for large projects. When I thought about how I'd do it, I could only imagine a disgusting, hacky series of scripts and code generators and things that any sensible developer would scoff at. But when I actually looked at how some projects are put together... they're a disgusting, hacky series of scripts and code generators.
Learning that there's nothing magical about any of this was life changing. I still deal with imposter syndrome, but I feel much more confident that I can learn if I just make myself dive in, even if it seems scary at first.
And I still look up at some people and wonder how the hell I could ever get to that level. People who seem both wide and deep in knowledge. Even people who cross outside different domains and seem well versed across all sorts of fields. I recall being among some reverse engineers quoting seemingly from memory undocumented behavior of random Windows API calls.
Managing systems and environments make my head spin very fast. I try to keep it simple but now im peaking into the node/react ecosystem and I feel all over the place.
If you want to keep things simple you should probably stay away from modern frontend web dev.
Or, if you must do web, start with vanilla HTML, CSS and ES2015+. A solid understanding of the basics will always be valuable, and you can always build upon that knowledge when you reach the pain points that node, webpack, React etc help you solve.
Yes and no. The official documentation can be obtuse and bad for new learners. (I'm looking at you, gradle[1]). Ideally, the official documentation includes tutorials, but also three other forms: 1) how-to guides showing the steps for accomplishing a common goal. Think of them as extended FAQ answers. 2) simple reference docs. Your typical api-centered doc, or man page cli flag list. Answers the question of "what was the function/class/flag to do that?" Assumes you already know how. 3) explanations, the discursive articles about how and why. A lot of people can get by with never reading these, but once in a while they can clear up some problem you're having. The tutorials, which should exist, would be short guides for learning by doing. They aren't how-to guides, because they don't assume you know anything yet. They are often the best entry points for picking up something entirely new.
[1] https://www.bruceeckel.com/2021/01/02/the-problem-with-gradl... and https://melix.github.io/blog/2021/01/the-problem-with-gradle...
But we've all seen the reverse, as well, and a combination of SO, YouTube, Reddit, and random tutorials is the only way to figure it out. Especially when you encounter the "This describes version 3.1, and everything in 4.5 is completely different, good luck" official docs.
There are definitely cases where the official docs (or RFCs) are practically incomprehensible to a newcomer, but I usually will try and come back to them quickly after getting a foothold using a blog post or YouTube video.
I find that even with the best technical writeups, there are often things applicable to MY use case that may not have been relevant to the author. The official docs (or sometimes the source) is the best place to find out about those.
A) Reading a manual requires some requisite knowledge due to esoteric references.
B) RTFM is a skill in and of itself.
C) Manuals rarely mention corner cases or "gotchas" which can cause confusion to a beginner.
D) Manuals never comment on best practices, which tutorials do.
Not necessarily the right approach for beginners, but I've wasted a lot of time trying to find the thing in the documentation, when I should have just lifted the hood in the first place.
Edit: I actually just made up (as far as I know) UTFM, but I really wish it were a thing.
So unofficial tutorials do have their place in introducing design patterns or listing trade offs between different approaches. But I do agree the source of truth should still be the official docs.
- Why is this important? What problem does it really solve?
- Why this solution and not another one?
- What do I really need and use this for in practise?
To realize it is not that complex at all you have to be able to sort it into a box first. Many teachers may take a big effort to break the complexity down into small pieces, but if you don't know where the whole thing fits this can break the whole teaching effort.
I will never forget when I realized my (really bad) maths teacher managed to not tell us the perfectly good and understandable reason why integrals are a cool thing that solve real problems for a year of needing to deal with them. She really broke down the steps etc, but totally forgot to tell us what the thing was actually for, and why the stuff we already learned couldn't be used to solve certain problems.
RTFM: words to live by.
https://eips.ethereum.org/EIPS/eip-721
Cryptopunks was used as the jumping-off point for defining what an NFT standard needed to do.
"Read the source" is often seen as an aggressive or dismissive response, but sometimes it's pretty much the best way to figure out software.
Plus if it's the NFT of a physical item then you can just steal the real thing.
Only if source is available
> Break whatever you’re trying to learn down into use cases. Start with bite sized chunks that take a few minutes and build on them incrementally. “Learning python” is too broad. Installing python, printing hello world, installing and using a dependency, reading from a file, etc. are more well-defined, and it’s easier to know when you’re done, therefore helping to reinforce progress.
Yes "learning python" is too broad, but the subtlety here is that it's usually actually "learn my first programming language", in which case it's unlikely you would understand how to break anything up into any steps. If "learning python" is not your first language then the advice is just obvious.
The truth is that the only advice that matters is "don't give up" and "have the courage to learn however you want" because there is no such thing as "teaching".
It’s time consuming, and can feel frustrating when you’re reading stuff you don’t understand, but you learn more in the long run (and understand how it fits into the bigger picture better).
Sounds like a job for a teacher.
Seriously, if you need a decent breakdown of "Learning X" into steps, then it's useful to look at the table of contents of a related textbook even if you'd be learning from other sources (experimentation, documentation, whatever) because the split and order of topics will be at least somewhat reasonable.
Edit: I just searched “hubspot blogs about everything” and had a full page of results of blogs about blogging from Hubspot. The entire page of results!
Spamming blogposts on HN works really well for that. Works even better if it's good blogposts.
edit: Dan Lyons (Fake Steve Jobs) wrote a book on his time there.
A few years back they were only focused on marketing automation and driving organic search traffic to your blog plays a big role in that (Inbound Marketing). As such they've produced a lot of content to drive traffic to their blog.
Learning only what you need to is essential in this environment.
But, of course, YMMV.
Because a working but incorrect mental model is a terrifyingly insidious, almost impenetrable barrier to actual understanding.