I guess another reason why this is so effective is it forces you to understand the overall goal instead of getting lost in the small intricate steps. I often find myself thinking to much on complex scenario and forgetting what my initial goal was haha.
That’s so true. I had a lot of trouble learning math in school because I never understood what the goal was when given a problem. But I always excelled at word problems because the goal is explicitly stated.
Topdown learning is the best way. I started learning things quicker when I stopped worrying about every detail. I eventually came to understand the details without even trying.
@@Lolnigaaaaaaaaa my assumption is that he’s talking about conceptual/interaction based learning. I guess a way that it could work is that by learning “top-down” you’re building a larger framework of understanding for the intricacies to fall into place within. Kind of like building a map of a region. You don’t necessarily need to know the side roads and alleys of one part of a town when you don’t even know where all of the towns are. Map the cities, then towns, connections between them, etc, and then the intricate details will naturally fit within that framework. Idk if that makes any sense but that’s how my first attempt at explanation is.
That's like the levels of a abstractions of a field. A technician does no need to know physics to know how an engine works, but knowing the physics is always useful.
@Prodigious147 anybody can learn how to fix an car part by shadowing a mechanic, not everyone can design and create new car parts and optimise them for better performance. Understanding physics, math, chemistry etc at higher levels helps in creating novel solutions.
If you're not as STEM-inclined, another great way to understand this is music. It's far easier to learn an instrument through setting out to learn a song rather than learning the chords and building songs out of them.
Yeah, I feel that our mind are more suited for comprehending the breaking of a whole into its cosisting parts, its internal interactions, and learning that way, i.e. going from a bigger picture into details. Rather than the other way around, starting from the very basic abstract details and going up. In that sense the classical education got it wrong. Well, at least in paiting education they got it right, they teach to start with bigger simple shapes first and only add detail later.
Claus Levin is a guitar teacher on yt and he teaches exactly this. Rather he just asks to practice 1 chord shape and just focus on that one. Slowly but surely you'll get the hang of it. Now with that one chord shape down I can play many many songs.... Then add another shape... His methodology is just pure genius.
Also you dont need to understand anything about music theory or even how to read music to learn how to play an instrument, but learning how to play songs and learn those chords will give you an instinctual understanding of music theory knowledge.
I've found learning about compilers to be way easier using this method, just focus on each step and blackbox the rest, eventually you'll learn the entire thing
add these things to this : 1. focus on basic concepts and dont rush. 2. find objective of learning 3. then find intermediate concepts used generally ( maybe you miss some which are not used regular but if required you can just google it ) 4. revision revision , so what ever you learn just revise within 30-40 hours again then lite revision again after a week , this will create new nuro paths , later when you recall even if you forget if you get hint you recall all and then do practice to hard concepts , hope it helps and do have goood sleep and while y learn avoid social media and extra stuff and stupid relationships ( you can talk with your person or give specific time or make them busy too , my my objective is not relationship advice but to protect your brain spaces more and yes we are social being you should hand out but under limit , priorities matters.
You are actually very knowledgeable relative to everyone else. I agree with what you’re doing basically having a poly spectrum of knowledge instead of a single concentrated mindset or thought. Thank you for the Nuro thinking tip. I will definitely start looking into that. I recommend looking into metaphysics and epistemology with your developed conscious in philosophy for the widest range of knowledge.
Legend has it people who are not using this method are currently working on assembly code that adds two numbers. Next step is adding binaries then creating hardware circuits. Then of course how electricity works and atoms and thw universe. But that is just the beginning
At one point they were soldering transistors to make an arithmetic logic unit but realized they didn’t know how transistors worked so they’re currently mining silicon.
I was.. actually legitimately trying to figure out how to build my own compilers into machine code and write my own firmware, lol. I probably will still do that, anyway, because I think it's cooler than today's programming-made-easy languages.
I passed a whole uni course using this technique and I actually learned it better than other courses, but don't know why I never kept doing it, this video reminds me I should try it more :) Cool video, Thanks.
tbh i dont know why this video appeared on my feed but i watched the whole thing because learning hard concepts has always been a struggle for me. I'm a firm believer that I can't move to step 2 if I dont start and finish step 1... sometimes i'll read a whole chapter in a book on something I already know just because of the integrity of starting the text book/this particular author's lesson plan from page 1. But I've never actually finished any thing I started studying. I always fall asleep and feel too overwhelmed to pick it up again the next week. This concept really helped and i hope to apply it effectively in the future. Also, I laughed because we're from the same area (10:57)
Same for me. This non-blackbox way of learning works ok in undergraduate school, but it completely destroyed me in graduate school where I have to read tons of papers and test out different things.
Yeah, this is pretty much me. I've been teaching myself mathematics but literally started from the ground, elementary school stuff. I'm way too perfectionistic in that regard, so I wanted to each and every step of math like I experienced it in school again. I can't say that it didn't help, but it certainly costs a lot more time.
@Kaje honestly i know exactly what you mean, however, i don’t necessarily think this approach gives keen understanding quicker. I think it just gives you the ability to use the topic with a very elementary understanding, w/o going thru all the rigor. youre still going to need to put the time and effort regardless, in order to develop a true in-depth understanding of w/e topic you’re studying. im still gonna try this out tho.
Ive started doing this in the last 2 years. I just called it a new version of learning with the 5Ws. We as engineers and tinkerers tend to go STRAIGHT for the "how" too soon. Mastering the Why, then the What, of the total system will make the HOW 321783907218389 times easier to understand.
@@asaadhusein If you focus too much on How something works when you're learning that for the first time, you'll lose too much time to fully comprehend What that thing does and Why you're using that. First you have to know what the goal of that concept is, after that you have to know why you're using that instead of another concept. This way you're already able to apply that concept in many situations. And just after sometime you study How that concept works. (Learning the goal (What) and Why you're using that make it easier to learn the How
It's like studying the summary first and important formulas that you will be using to solve problems or answer questions in the exam. by doing this you will get ready way more faster and you can acctually take your time learning details and more complexity in the topic afterwards. I did that a lot when I didn't have time to study the whole thing. and it's good to know that this is a good tactic and to see other top tier learners use it as well. This video taught me that it's really a better way to approach concepts and it saves up much time and relieves stress too.
I think this applies to any form of learning. Thank you for the video, it really made me reflect on how I learn. I definitely need to use more black boxing before getting obsessed with the details.
this concept is really helpful for my current work. i have noticed that learning complicated + related topics gets a lot easier when i don't try to "drill down deep" into the topic, rather taking a look at multiple related things and then "starting to tie it together". also the comment about u "beeing proud of your black cube drawing so ure gonna keep it around" was really cute and charming haha
@@doxo9597 Well the most common blackboxes in math are theorems you don't know the proof for. Example: Every base of a finite-dimensional vectorspace has the same size. Feels right, but on the spot I'd have difficulty coming up with the proof. Another one: I often use the geometric series, but forgot its proof.
It’s basically like drawing a rough sketch first before painting in detail: it keeps you focused on the entire picture and stops you from gettting bogged down in minute details
Black boxing is useful in another way as well. It can make you aware of your tools. I can't stress enough how useful it is to know something exists, even if you don't know all its details.
UA-cam is weird, it's only been 2 weeks since I started learning Python, as a complete outsider to the coding world and zero prior experience. Even so, I still understood segments of the video. Liked and subscribed, will come back to it again to test myself on the concepts used. Thank you.
This is basically just the top down approach rephrased into different language. in a top down approach u split up a problem into an application layer and a foundation layer and then you play around with the application layer first and dive into the foundation later (or not at all). I have been learning like this since I am a kid and even theuniversity I go to teaches like this. I agree that for most people this is much more effective and efficient. The old school approach especially from elitist universities that teach u the very basic foundations of everything first and then work their way up, is extremely outdated and in most cases a complete waste of time.
Even if you want to go deep into something it's better to start from the top. You can study for hours how the foundations work and can't make sense of it but once you start seeing the application it starts click and you understand everything. Just start to do something and then try to see how it works.
This same approach works like a charm for many non-programming topics, as well, in particular in mathematics. If you do not know *where* you wanna go, you will never be able to get there.
Totally true, there are so many theoretical concepts that won’t be useful for any of your application till the end of life at which we waste our time by learning them. Top down approach FTW!
I actually used this method when learning JavaScript, and didn't even know that it was a method for learning concepts! Really helpful to learn the fundamentals and blackbox some of the more advanced stuff, so you actually learn the language itself, and then you deepen your knowledge of the workings of some of the pre-existing functions.
thanks for the view point. i mostly learn new things by like doing them twice (for example once i see it and do then i blindly do it with any % of errors then i fix the errors and mostly thats enough just fixing the errors makes you memorize the code and its key concepts). but now i feel like i can be even more efficent i am going to try this method for the game i wanted to make.
I faced this when trying to learn html and css, the more I dived into details, the more lost I felt. Eventually I got fed up and copy pasted some template code, tweaked it and now I feel like I gained more idea about web page design than I did with those detailed tutorials.
This is helpful for professional life too, since it can be easy to fall down the rabbit hole and spend ages trying to fully understand something, which can be valuable but also can cause friction with management types who want to see visible progress. Blackboxing can help defer research that would take a long time right now but might become obvious later.
I'm way too ADHD / OCD-ish to learn this way. I always deep dive on a topic and learn everything I can about it before moving on to the next topic. While this isn't the most effective way to solve any one problem the fastest, it has helped me surpass many of my colleagues who use the black box method for every single problem over the 15+ years I've been programming. There's definitely trade-offs between breadth-first and depth-first learning, and it's important to know when to choose which method for each problem you encounter. I encourage everyone not to forget to go deeper occasionally when you find something you're genuinely interested in, especially if you might use it again later (which people are awful at predicting, because most things are applicable later if you truly understand them).
We live in the era of information overload thus it's essential to filter and simplify information we consume and search to be able to function (and keep our sanity) in this world. I've created this technique kinda subconsciously and been using it almost intuitively and for all topics even outside of the field of programming. Especially in programming it's necessary to look at things at "high-level scope" and use abstraction. The goal is to have the largest concept map in your mind, know the tools, their usecases and how to apply them (etc.). The one of the main benefits is this gives you more motivation and get rid of frustration because you see more results as you know more things and can use them to create better projects and solve harder problems, instead of digging deep into a rabbit hole learning one concept fully.
This is my main learning approach: i gather as much general info as i can (especially the name of a concept) and when I need details that's what google is for
That's been actually my method for any project in general (not just learning). I'm currently working on an App project, for example, and since it is my first app, there's a lot of unknowns. So I just define each major step on the process of making the app (like, each feature), and specify each one little by little, and it's like an iterative function. Each step has substeps that can also be splitted by itself (for example, in step Auth Feature there's the substep Do Login usecase, and in Do Login usecase there's the substeps Backend and Frontend). And instead of learning all I don't know how to do beforehand, when I start each step I do a research, so when it's time to implement Auth Feature I search about how to deal with authentication in the languages I'm using, when it's time to implement a Schedule feature, same thing, I search for schedule components that people are already using in my programming language, etc. In fact, I even have a whole life project planned this way lol
This basically top-down learning. It's very useful to understand things on an abstract level before getting specific and meticulous. You learn the specifics with experience, study, and relation.
Thanks Colin. This is one of the big reasons I perform poorly in the contests because I don't know a lot of algorithms and data structures. If I use this and solve some more of 'em in contests, it can boost my confidence enough to not get bogged down to learn these difficult concepts eventually. Imma try this method out ✌️
I've been using this concept for years without even realizing it. Works all the time! All you need to know about any field or software or whatever, really, is the basics. And then like Colin said, the details will come later. Saves a lot of time on learning irrelevant jargons too! Thank you for this awesome video, Collin.
This puts words to how I think about things, I don't need details I just need the gist and how to use it. I will be OK, if I have real interest I will figure out the particulars later or never.
Thank you! I have visualized (through Gateway Experience meditation) that a "box" in any dimension only requires two walls per dimension. In 1D, just two points define it; nothing can manipulate or view anything inside/between those two points. In 2D, those points are stretched into lines, and then two more lines are added to make a square. In 3D, like your cube, the square is stretched upwards, and then a top and bottom are added; two more for a total of six sides. Thus, I can capture/protect/hide items in any dimension I may find myself, using only two walls per dimension. I enjoy reducing a problem to what can be achieved with the least effort/resources, somewhat like taking machinery apart and seeing if it can still function with missing parts. Like in college, a friend replaced his mufflers with "glass packs" for performance which basically just go straight through; so, I learned the muffler is not required for making the car move/function, it's just added legal stuff.
I know this is an old video but I wanted to share something similar, I took a black jack class, and on a 20% pay out there’s a method that requires no math at all, just knowing what’s bets are on the table, you are able to quickly pay it out with insane accuracy with out knowing what you just paid, you just know it’s right. Going back, I understand it, but when I learned it, I had no idea
An interesting take on black box abstraction. Which is part of systems engineering. Where a system is decomposed into functions, and those functions are independently developed, and then implemented and integrated within the system as black boxes. This lowers the complexity of system as most of the implementation complexity is hidden. Ultimately this is how human beings build extremely complex things. Of course, Colin is taking a different angle on this.
Yes, but keep in mind that IRL complex engineering problems there are multiple teams working on all levels of the problem simultaneously. The scale of the black boxes are different depending on which type of task you are working on. In your example, the individual function implementers will have their own black boxes (not necessary smaller or simpler), and their work will then become the black box of the systems engineers.
amazing useful. currently I fall into a situation which struggle to understand the more details of complex DS, and I know that's not very important instead of understand how to use them.
Oh man. Explains why i learn so quickly when i just immediately hop into complex stuff, especially in math and programming. I stopped using this method because of guilt and thinking that im not "learning effectively" by starting from top to bottom. Learning from the bottom from simple things has been so wasteful of my time because i focused too much on little things as to understand EVERYTHING, which hindered at my academic progress. Thank you
0:07 Cube 0:28 Use it to solve problems 0:53 Use it all the time 1:00 What is a Black Box? 1:53 Sort Algorithm [ordering in a way] 4:28 Unknown -> Learned 5:34 Blackbox is used as a 1st step to learning an unknown. 6:23 Contest 7:07 +Quick 8:02 Learn where to go. + Focused learning 9:00 Flexing knowledge 9:56 Coder Library 📚 11:07 The Functions
Very good technique, very hard for my mind to allow me to think this way. I tend to grasp concepts atomically - I either get it all or I’m thoroughly confused
All my life I’ve been unconsciously using this technique without knowing it’s name 😅 I’m a self taught person and my friends say I learn stuff fast, but the reality is I’m the embodiment of a Jack of all trades master of none lol (well actually I do get deep in some concepts the I really need). But yea I usually create a big abstract picture of how things work before even learning the details, then it’s easier to learn the details. Thanks god for my internal black box!
Same reason why you skim and scan for comprehension tests. Skimming gives you a quick idea of what the passage is about so when you scan, you pay attention to what is most important, because let's say if Jim was revealed to be the killer by the end of the story, now you're gonna focus on the clues that point toward that as you scan the text again.
This is basically the same thing as priming, but with the added twist of applying and using the unknown "black-box" as soon as you have a brief understanding of its: characteristics, location in relation to other components and surroundings, as well as what it does. To understand what makes this thing in the "Black-Box" tic isn't actually required to start using it. But if you know what black boxes you have and how they relate, you will notice that the more complex knowledge will suddenly magically light up in the right boxes. And especially if you are actively using the boxes in various new situations.
I've participated in a CP competition before, but that did not allow any sort of outside info (no internet connection, you could not even use a book you brought), so this would not help much - but outside that competition, it's an useful technique everywhere, not just in CP...
I have been using the blackbox method in some places but thought it was my homegrown method. didn't know that it had a name. Anyways good video. Now i can improve my homegrown blackbox using the inputs from your video.
my friend was using this method all over the semester and she failed her intro course (something 101) for the second time. This method is effective when you do a ton of it on one topic, where u reaches a level of state, like storing a massive amount of raw logics about the topic. To a point you 'have an answer to every (or most of the) questions that might be asked'. personally I recommend only using it for temporary concepts, some side knowledge (stepping stones), otherwise, learning by the comprehension way actually make your study easier as you learned more / understood more. btw this method is so bad for big topics / things that really worth research / things that has a lot of value, that I'd almost never use it. There is no short cut for knowledge
Impressive stuff! I stopped watching 10 seconds in but the black box looks great! Drawing boxes is a hard concept as you said in the title but I hope everyone learnt something new here today :)
When I was learning the 7 OSI layers in university, they somehow thought it was a good idea to learn from bottom up and top down at the same time, separated by 4 3-credit mandatory courses, with 4 different professors using 4 different textbooks. 1st course: physical layer to data link layer with math 2nd course: physical layer to transport layer without math 3rd course: transport layer layer to data link layer with algo 4th course: application layer to transport layer but this course's professor is frankly hard to understand It is entirely possible to learn both bottom up or from top down approach, but it should be executed very well. Conflicts can happen because of miscommunication between teachers.
Unfortunately a lot of university networking courses teach it this way which is incredibly weird and ineffective. If you want a great book on computer networking that teaches it the RIGHT way, I recommend "Computer Networking: A Top-Down Approach". As you can probably guess from the title it starts at the application layer and works its way down to the physical layer.
One possible example might be the teaching if electric circuits at the level of "lump" theory. While there's also simplification going on (ignoring parasitic capacitance, treating wires as perfect conductors), the model focus in what goes in and out of components, and the expected transformation.
This is something good to do when you think you are finished "learning" (you never actually finish learning). For example I want to know what happens and how that "black box" works from the inside cause that might give me an idea of how to solve a similar problem.
@@asaadhusein If the video coulden't explain it to you then a comment surely won't. Blackbox generally is when you don't care about some specific "function" or "algorithm" or w/e that might be it might be an object I don't know, you put that aside for now and you tunel vision on your problem . The only thing you know about this blackbox is it's input and output and you shouldn't focus for the time how it does what it does. You might learn later much easier and even quicker than if you focused on it the time you use that "Black box" for a problem. That black box might be a function that takes as input a list of numbers and then it gives them back to you averages and sorted (that's something too easy to be even considered a black box but for the sake of discussion) the point is you should focus on your problem and leave the black box do it's job averaging and sorting those number you do what you are supposed to do and as I said in my comment after you solve the problem look inside the black box and learn how it works it might help you later on. I hope I explained correctly and didn't comfuse you in any way.
We are all standing on the shoulders of giants. Accept that, and contribute something of value instead of grasping for a feeling of control by trying to understand everything.
Thank you! Sooo basically it's understanding a concept/idea/mechanism you don't understand well enough I watched about half the video since I got lost in the sauce. I'm no computer programmer but as an artist, this broadened my perspective on things.
Agreed. Black boxing (and copying code blindly) are usually the easiest ways of getting stuff done while you're learning what you need to move forward. That's why you see blind copying a lot in junior devs.
I didnt know that this kind of approach is block box. I self learned web development through online resources and the way I approach the learning materials is to study an example (Html, css , javascript). Some yt insist to focus on studying one language but for me I love exploring those 3 languages at the same time because it helps me to connect the dots
You put a concept into the black box method, and out of that you get the concept's process simplified to the inputs required and the outputs it returns back
Back in highschool, i has an exam that required to know the analysis of 16 texts to be able to analyze it in front of a teacher. I couldn't focus or just put myself to work, while my fellows classmates would at least learn the parts of the analysis to have a red string. I went to the exam knowing nothing, analysed it, and got an 19/20
a cool thing about black box, or hidden box, is you dont need to comment the black boxes cause they are comments in themselves, and u can pretty much write the i/o half in a day.
This is probably only useful for tests or some specific fields like coding, I came here expecting to learn how to understand hard concepts but in the end all that was said is " *just learn it later* "... Have been doing this during my school years and it's great, so I guess it's good for students, but does anybody know of a way to actually understand abstract and difficult concepts?
I think the best way is to just play around with it. Try to write simple example of concept (or just copy some existing solution) you need to understand and watch how it behaves in different situations
Maybe starting from thinking, of what does the thing depends on and what depends of it? Then comes the static view of the characteristics of a thing, then the dynamic, how it has evolved and how different settings influence it's dynamics. Just ask of what does it depend, to actually understand abstract and difficult concepts and think until you've got it. Attention is penetrative if guided long enough into one spot.
It really depends on what it is. Sometimes complexity can really be the illusion of many simple moving parts. In that case, taking each detail one at a time and tearing the thing apart could help. This is basically the opposite of the black box which hides all the details. But it's what required to get a deep understanding of something. Other times the approach of your teacher (whether it be a person, book, video, ect) simply doesn't work for you. Try mixing up your teacher. Thought experiments, visualizing everything that is going on with the concept have helped some people. It could be on paper, or you could lay back and close your eyes to visualize. And finally, noticing when a "hard concept" is really a bunch of pretentious ramblings. Some concepts are really just a bunch of thin air that make people feel smart when they say it out loud. I remember going to an art museum where someone was trying to convince a group of tourists the deep meaning behind a painting of a... black dot. That's it. A canvas with a dot on it. Many of the tourists were nodding along as well, trying to give the impression they were understanding what was so great about the painting. So don't be fooled when a select group of people claim they have found some sort of profound meaning in a bunch of gibberish.
Man I wish someone would have told me this when I first started learning to program. Once I started doing this I learned way faster. It doesn’t make sense to go deep into the weeds of one concept when there’s so many concepts to learn, not in the beginning at keast
i started to do this and it helps not to stress that much over details! so it’s basically a top down approach, where you only need to study down the tree when it’s necessary? the only problem is studying the details...
I guess another reason why this is so effective is it forces you to understand the overall goal instead of getting lost in the small intricate steps. I often find myself thinking to much on complex scenario and forgetting what my initial goal was haha.
oh same haha
Absolutely true..thanks for pointing
That’s so true. I had a lot of trouble learning math in school because I never understood what the goal was when given a problem. But I always excelled at word problems because the goal is explicitly stated.
Sameee for me it's especially trying to optimize code
same
My man explained abstraction in detail.
lol ya true
It's as if he reinvented the wheel and slapped a new name on it.
Thanks for reminding me man. I knew I encountered this idea somewhere.
Laugh Out Loud!!!
@@AlumniQuad it’s often helpful in understanding the wheel to build it from scratch yourself.
This will jumpstart my career with stack overflow.
Read some books, zoomers, will ya?
@@KulaGGin this is ridiculous
@@KulaGGin they brain dont have the ability of thinking !
@@brunogomes5262 Ironic
@@KulaGGin uh you know some people learn better with visuals yeah
Topdown learning is the best way. I started learning things quicker when I stopped worrying about every detail. I eventually came to understand the details without even trying.
@@Lolnigaaaaaaaaa my assumption is that he’s talking about conceptual/interaction based learning. I guess a way that it could work is that by learning “top-down” you’re building a larger framework of understanding for the intricacies to fall into place within.
Kind of like building a map of a region. You don’t necessarily need to know the side roads and alleys of one part of a town when you don’t even know where all of the towns are.
Map the cities, then towns, connections between them, etc, and then the intricate details will naturally fit within that framework.
Idk if that makes any sense but that’s how my first attempt at explanation is.
@@Lolnigaaaaaaaaa See bloom's Taxonomy or solo's taxonomy top to bottom
@@maal124 woah i found it thank you man
@N G thank you sm fr
Exactly, when I undergo training in a company what they talk starts to annoy me, because I know it’s a waste of time to go in detail about the detail.
That's like the levels of a abstractions of a field. A technician does no need to know physics to know how an engine works, but knowing the physics is always useful.
@Prodigious147 anybody can learn how to fix an car part by shadowing a mechanic, not everyone can design and create new car parts and optimise them for better performance. Understanding physics, math, chemistry etc at higher levels helps in creating novel solutions.
If you're not as STEM-inclined, another great way to understand this is music. It's far easier to learn an instrument through setting out to learn a song rather than learning the chords and building songs out of them.
Yeah, I feel that our mind are more suited for comprehending the breaking of a whole into its cosisting parts, its internal interactions, and learning that way, i.e. going from a bigger picture into details. Rather than the other way around, starting from the very basic abstract details and going up. In that sense the classical education got it wrong. Well, at least in paiting education they got it right, they teach to start with bigger simple shapes first and only add detail later.
Claus Levin is a guitar teacher on yt and he teaches exactly this. Rather he just asks to practice 1 chord shape and just focus on that one. Slowly but surely you'll get the hang of it. Now with that one chord shape down I can play many many songs....
Then add another shape...
His methodology is just pure genius.
Excellent point.
Also you dont need to understand anything about music theory or even how to read music to learn how to play an instrument, but learning how to play songs and learn those chords will give you an instinctual understanding of music theory knowledge.
@@alexxx4434that's how we learned our native languages
I used Black Box Method to learn Black Box Method.
Congrats. You reached level 2. 500 to go and you have 1 life left.
@@NeoKailthas ah shit, here we go again
Harvard : you want a scholarship?
Then how did you learn Black Box Method?
To learn recursion, you must first learn recursion
I've found learning about compilers to be way easier using this method, just focus on each step and blackbox the rest, eventually you'll learn the entire thing
same jotaro .... dont approach me
@@aryankathawale9269killer queen had already touched reply section, you fool!
and how do you blackbox the rest?
@@joediditde Draw the rest of the owl
@@rawallon sorry i dont get that reference
add these things to this :
1. focus on basic concepts and dont rush.
2. find objective of learning
3. then find intermediate concepts used generally ( maybe you miss some which are not used regular but if required you can just google it )
4. revision revision , so what ever you learn just revise within 30-40 hours again then lite revision again after a week , this will create new nuro paths , later when you recall even if you forget if you get hint you recall all and then do practice to hard concepts , hope it helps and do have goood sleep and while y learn avoid social media and extra stuff and stupid relationships ( you can talk with your person or give specific time or make them busy too , my my objective is not relationship advice but to protect your brain spaces more and yes we are social being you should hand out but under limit , priorities matters.
Well said 👍
very helpful thankyou :Satyam
You are actually very knowledgeable relative to everyone else. I agree with what you’re doing basically having a poly spectrum of knowledge instead of a single concentrated mindset or thought. Thank you for the Nuro thinking tip. I will definitely start looking into that. I recommend looking into metaphysics and epistemology with your developed conscious in philosophy for the widest range of knowledge.
bruhh..........💥💥...........can i follow you somewhere for these kind of tips
amazing tips
Legend has it people who are not using this method are currently working on assembly code that adds two numbers. Next step is adding binaries then creating hardware circuits. Then of course how electricity works and atoms and thw universe. But that is just the beginning
Damn you really hit the nail on that one. Thanks for blackboxing the blackbox method for me 🙏🙏. Im grateful
At one point they were soldering transistors to make an arithmetic logic unit but realized they didn’t know how transistors worked so they’re currently mining silicon.
@@boobbbers And then they realized they don't really understand the optimum methods for silicon mining so now they are off to studying metallurgy.
I was.. actually legitimately trying to figure out how to build my own compilers into machine code and write my own firmware, lol. I probably will still do that, anyway, because I think it's cooler than today's programming-made-easy languages.
Petzolds 'Code' is actually really good for this, best read after you have black-boxed most of the chapter list :D
I passed a whole uni course using this technique and I actually learned it better than other courses, but don't know why I never kept doing it, this video reminds me I should try it more :) Cool video, Thanks.
can you explain it in simple words in context of programming problem?
Yh for you mind if u explain it
tbh i dont know why this video appeared on my feed but i watched the whole thing because learning hard concepts has always been a struggle for me. I'm a firm believer that I can't move to step 2 if I dont start and finish step 1... sometimes i'll read a whole chapter in a book on something I already know just because of the integrity of starting the text book/this particular author's lesson plan from page 1. But I've never actually finished any thing I started studying. I always fall asleep and feel too overwhelmed to pick it up again the next week. This concept really helped and i hope to apply it effectively in the future.
Also, I laughed because we're from the same area (10:57)
OMG this is exactly what happens with me too!
difference between you and people who know is that they pick up the book again thats literaly it
Same for me. This non-blackbox way of learning works ok in undergraduate school, but it completely destroyed me in graduate school where I have to read tons of papers and test out different things.
Yeah, this is pretty much me. I've been teaching myself mathematics but literally started from the ground, elementary school stuff. I'm way too perfectionistic in that regard, so I wanted to each and every step of math like I experienced it in school again. I can't say that it didn't help, but it certainly costs a lot more time.
@Kaje honestly i know exactly what you mean, however, i don’t necessarily think this approach gives keen understanding quicker. I think it just gives you the ability to use the topic with a very elementary understanding, w/o going thru all the rigor. youre still going to need to put the time and effort regardless, in order to develop a true in-depth understanding of w/e topic you’re studying. im still gonna try this out tho.
Ive started doing this in the last 2 years. I just called it a new version of learning with the 5Ws.
We as engineers and tinkerers tend to go STRAIGHT for the "how" too soon. Mastering the Why, then the What, of the total system will make the HOW 321783907218389 times easier to understand.
Do you mind if you explain this concept, I watched the vid and I don't really understand it
@@asaadhusein yeah. Video doesnt make sense.
@@asaadhusein If you focus too much on How something works when you're learning that for the first time, you'll lose too much time to fully comprehend What that thing does and Why you're using that.
First you have to know what the goal of that concept is, after that you have to know why you're using that instead of another concept.
This way you're already able to apply that concept in many situations.
And just after sometime you study How that concept works. (Learning the goal (What) and Why you're using that make it easier to learn the How
It's like studying the summary first and important formulas that you will be using to solve problems or answer questions in the exam.
by doing this you will get ready way more faster and you can acctually take your time learning details and more complexity in the topic afterwards.
I did that a lot when I didn't have time to study the whole thing. and it's good to know that this is a good tactic and to see other top tier learners use it as well.
This video taught me that it's really a better way to approach concepts and it saves up much time and relieves stress too.
Loved this type of "Hey, here's a trick and my experience using it" video
I think this applies to any form of learning. Thank you for the video, it really made me reflect on how I learn. I definitely need to use more black boxing before getting obsessed with the details.
It's another word for Abstraction -- the frontend, the interface is simplified for use, and the internal mechanisms are hidden away from the user.
this concept is really helpful for my current work. i have noticed that learning complicated + related topics gets a lot easier when i don't try to "drill down deep" into the topic, rather taking a look at multiple related things and then "starting to tie it together".
also the comment about u "beeing proud of your black cube drawing so ure gonna keep it around" was really cute and charming haha
Do you mind if you explain this concept, I watched the vid and I don't really understand it
A simple yet an extremely good method. This method can be applied anywhere not just hackathons. Thanks for the video.
That's exactly what a Bachelor's in Mathematics is.
Loooolll
I dont get it, can you explain? ( i am also doing a bachelors im math)
@@doxo9597 Well the most common blackboxes in math are theorems you don't know the proof for.
Example: Every base of a finite-dimensional vectorspace has the same size. Feels right, but on the spot I'd have difficulty coming up with the proof.
Another one: I often use the geometric series, but forgot its proof.
i agree with you. but i will go as far as to nitpicking applied mathematics as a black box in the world of mathematics.
Omg. That's exactly what I was thinking
It’s basically like drawing a rough sketch first before painting in detail: it keeps you focused on the entire picture and stops you from gettting bogged down in minute details
beautiful explaination
Black boxing is useful in another way as well. It can make you aware of your tools. I can't stress enough how useful it is to know something exists, even if you don't know all its details.
UA-cam is weird, it's only been 2 weeks since I started learning Python, as a complete outsider to the coding world and zero prior experience. Even so, I still understood segments of the video. Liked and subscribed, will come back to it again to test myself on the concepts used. Thank you.
Did you finish it? learning python? where it led you?
This is basically just the top down approach rephrased into different language. in a top down approach u split up a problem into an application layer and a foundation layer and then you play around with the application layer first and dive into the foundation later (or not at all). I have been learning like this since I am a kid and even theuniversity I go to teaches like this. I agree that for most people this is much more effective and efficient. The old school approach especially from elitist universities that teach u the very basic foundations of everything first and then work their way up, is extremely outdated and in most cases a complete waste of time.
Even if you want to go deep into something it's better to start from the top. You can study for hours how the foundations work and can't make sense of it but once you start seeing the application it starts click and you understand everything.
Just start to do something and then try to see how it works.
Yes that direct form of learning is normally better for more practical tasks
This same approach works like a charm for many non-programming topics, as well, in particular in mathematics. If you do not know *where* you wanna go, you will never be able to get there.
Except I'm pretty sure that black-box idea is much older
Totally true, there are so many theoretical concepts that won’t be useful for any of your application till the end of life at which we waste our time by learning them. Top down approach FTW!
I actually used this method when learning JavaScript, and didn't even know that it was a method for learning concepts! Really helpful to learn the fundamentals and blackbox some of the more advanced stuff, so you actually learn the language itself, and then you deepen your knowledge of the workings of some of the pre-existing functions.
im learning python. can u explain in simple terms how should i learn.
@@会供価 How would he know how you should learn python if he's learning javascript?
thanks for the view point. i mostly learn new things by like doing them twice (for example once i see it and do then i blindly do it with any % of errors then i fix the errors and mostly thats enough just fixing the errors makes you memorize the code and its key concepts). but now i feel like i can be even more efficent i am going to try this method for the game i wanted to make.
I faced this when trying to learn html and css, the more I dived into details, the more lost I felt. Eventually I got fed up and copy pasted some template code, tweaked it and now I feel like I gained more idea about web page design than I did with those detailed tutorials.
This is helpful for professional life too, since it can be easy to fall down the rabbit hole and spend ages trying to fully understand something, which can be valuable but also can cause friction with management types who want to see visible progress. Blackboxing can help defer research that would take a long time right now but might become obvious later.
Instructions unclear: Black Boxed Computer Science and Graduated with a Ph. D.
Damn I remember when you had 46 subs. You've come a long way Galen :D
orz
When did you see him having 46 subs?
I'm way too ADHD / OCD-ish to learn this way. I always deep dive on a topic and learn everything I can about it before moving on to the next topic. While this isn't the most effective way to solve any one problem the fastest, it has helped me surpass many of my colleagues who use the black box method for every single problem over the 15+ years I've been programming. There's definitely trade-offs between breadth-first and depth-first learning, and it's important to know when to choose which method for each problem you encounter.
I encourage everyone not to forget to go deeper occasionally when you find something you're genuinely interested in, especially if you might use it again later (which people are awful at predicting, because most things are applicable later if you truly understand them).
If you wouldn't mind, could you explain what breadth-first and depth-first learning is for me?
@@angurishudesu why is the breadth first how is the depth first
Dude, I just discovered your channel from this video and it is amazing. Keep up the great work!
Amazing video Colin, thank you so much for it, first time viewer here, now, also a new subscriber
We live in the era of information overload thus it's essential to filter and simplify information we consume and search to be able to function (and keep our sanity) in this world.
I've created this technique kinda subconsciously and been using it almost intuitively and for all topics even outside of the field of programming. Especially in programming it's necessary to look at things at "high-level scope" and use abstraction. The goal is to have the largest concept map in your mind, know the tools, their usecases and how to apply them (etc.).
The one of the main benefits is this gives you more motivation and get rid of frustration because you see more results as you know more things and can use them to create better projects and solve harder problems, instead of digging deep into a rabbit hole learning one concept fully.
This is my main learning approach: i gather as much general info as i can (especially the name of a concept) and when I need details that's what google is for
Essentially this is "What is the minimum amount I need to know to make this work" which when I look at everything I need to learn is super helpful.
That's been actually my method for any project in general (not just learning). I'm currently working on an App project, for example, and since it is my first app, there's a lot of unknowns. So I just define each major step on the process of making the app (like, each feature), and specify each one little by little, and it's like an iterative function. Each step has substeps that can also be splitted by itself (for example, in step Auth Feature there's the substep Do Login usecase, and in Do Login usecase there's the substeps Backend and Frontend). And instead of learning all I don't know how to do beforehand, when I start each step I do a research, so when it's time to implement Auth Feature I search about how to deal with authentication in the languages I'm using, when it's time to implement a Schedule feature, same thing, I search for schedule components that people are already using in my programming language, etc.
In fact, I even have a whole life project planned this way lol
This basically top-down learning. It's very useful to understand things on an abstract level before getting specific and meticulous. You learn the specifics with experience, study, and relation.
Thanks Colin. This is one of the big reasons I perform poorly in the contests because I don't know a lot of algorithms and data structures. If I use this and solve some more of 'em in contests, it can boost my confidence enough to not get bogged down to learn these difficult concepts eventually. Imma try this method out ✌️
I've been using this concept for years without even realizing it. Works all the time! All you need to know about any field or software or whatever, really, is the basics. And then like Colin said, the details will come later. Saves a lot of time on learning irrelevant jargons too! Thank you for this awesome video, Collin.
4:52 softest(weirdest) plugin ever!
Congratulations on 10000 subscribers!
This puts words to how I think about things, I don't need details I just need the gist and how to use it. I will be OK, if I have real interest I will figure out the particulars later or never.
We used to call ourselves impatients. Those were the good ole days.
Thank you! I have visualized (through Gateway Experience meditation) that a "box" in any dimension only requires two walls per dimension. In 1D, just two points define it; nothing can manipulate or view anything inside/between those two points. In 2D, those points are stretched into lines, and then two more lines are added to make a square. In 3D, like your cube, the square is stretched upwards, and then a top and bottom are added; two more for a total of six sides.
Thus, I can capture/protect/hide items in any dimension I may find myself, using only two walls per dimension. I enjoy reducing a problem to what can be achieved with the least effort/resources, somewhat like taking machinery apart and seeing if it can still function with missing parts. Like in college, a friend replaced his mufflers with "glass packs" for performance which basically just go straight through; so, I learned the muffler is not required for making the car move/function, it's just added legal stuff.
I know this is an old video but I wanted to share something similar,
I took a black jack class, and on a 20% pay out there’s a method that requires no math at all, just knowing what’s bets are on the table, you are able to quickly pay it out with insane accuracy with out knowing what you just paid, you just know it’s right.
Going back, I understand it, but when I learned it, I had no idea
An interesting take on black box abstraction. Which is part of systems engineering. Where a system is decomposed into functions, and those functions are independently developed, and then implemented and integrated within the system as black boxes. This lowers the complexity of system as most of the implementation complexity is hidden. Ultimately this is how human beings build extremely complex things. Of course, Colin is taking a different angle on this.
Yes, but keep in mind that IRL complex engineering problems there are multiple teams working on all levels of the problem simultaneously. The scale of the black boxes are different depending on which type of task you are working on. In your example, the individual function implementers will have their own black boxes (not necessary smaller or simpler), and their work will then become the black box of the systems engineers.
@@dreams7091 I am an engineer IRL.
@@bujin5455 Same. Just wanted to add some points.
That cube drawing though 😍
*that -cube- drawing🤣
amazing useful. currently I fall into a situation which struggle to understand the more details of complex DS, and I know that's not very important instead of understand how to use them.
I love your videos , always to the point never wasting time like most UA-camrs do for views! Thank you and keep it up, man !!
Oh man. Explains why i learn so quickly when i just immediately hop into complex stuff, especially in math and programming. I stopped using this method because of guilt and thinking that im not "learning effectively" by starting from top to bottom. Learning from the bottom from simple things has been so wasteful of my time because i focused too much on little things as to understand EVERYTHING, which hindered at my academic progress. Thank you
0:07 Cube
0:28 Use it to solve problems
0:53 Use it all the time
1:00 What is a Black Box?
1:53 Sort Algorithm [ordering in a way]
4:28 Unknown -> Learned
5:34 Blackbox is used as a 1st step to learning an unknown.
6:23 Contest
7:07 +Quick
8:02 Learn where to go.
+ Focused learning
9:00 Flexing knowledge
9:56 Coder Library 📚
11:07 The Functions
black-box everything first, learn concepts as needed. great strategy to not getting overwhelmed by learning everything before it is needed.
Very good technique, very hard for my mind to allow me to think this way. I tend to grasp concepts atomically - I either get it all or I’m thoroughly confused
Ty so much. I knew it’s good approach but didn’t know if it gets this much huge advantage like this. Ty again ❤❤
All my life I’ve been unconsciously using this technique without knowing it’s name 😅
I’m a self taught person and my friends say I learn stuff fast, but the reality is I’m the embodiment of a Jack of all trades master of none lol (well actually I do get deep in some concepts the I really need). But yea I usually create a big abstract picture of how things work before even learning the details, then it’s easier to learn the details.
Thanks god for my internal black box!
12:49 "but it's not, uh... how do I put this... it's not too friendly for anyone who isn't not me" lmao 😭🤣
Love that you’re from Mo county. Wish I could’ve seen this video earlier cause this is definitely useful right now 👏🏿
Same reason why you skim and scan for comprehension tests.
Skimming gives you a quick idea of what the passage is about so when you scan, you pay attention to what is most important, because let's say if Jim was revealed to be the killer by the end of the story, now you're gonna focus on the clues that point toward that as you scan the text again.
By the end of this vid, I’ve learn to love that black box, his been drawing outside the box
This is basically the same thing as priming, but with the added twist of applying and using the unknown "black-box" as soon as you have a brief understanding of its: characteristics,
location in relation to other components and surroundings,
as well as what it does.
To understand what makes this thing in the "Black-Box" tic isn't actually required to start using it. But if you know what black boxes you have and how they relate, you will notice that the more complex knowledge will suddenly magically light up in the right boxes.
And especially if you are actively using the boxes in various new situations.
great video sir!! i really enjoyed it 🤠
philosophie
This video applies directly to material balance ideas that form chemical engineering. Great content
I've participated in a CP competition before, but that did not allow any sort of outside info (no internet connection, you could not even use a book you brought), so this would not help much - but outside that competition, it's an useful technique everywhere, not just in CP...
Fun fact: there is a technique used in software testing called Black box testing!
I have been using the blackbox method in some places but thought it was my homegrown method. didn't know that it had a name. Anyways good video. Now i can improve my homegrown blackbox using the inputs from your video.
Thanks!
You went to Moco Blair high school? No wonder you’re so good!! That’s where all the smart kids go!!
mashallah
I also believe it's less discouraging cause even though you don't fully understand all the concepts, you can still use them.
my friend was using this method all over the semester and she failed her intro course (something 101) for the second time. This method is effective when you do a ton of it on one topic, where u reaches a level of state, like storing a massive amount of raw logics about the topic. To a point you 'have an answer to every (or most of the) questions that might be asked'.
personally I recommend only using it for temporary concepts, some side knowledge (stepping stones), otherwise, learning by the comprehension way actually make your study easier as you learned more / understood more.
btw this method is so bad for big topics / things that really worth research / things that has a lot of value, that I'd almost never use it. There is no short cut for knowledge
Impressive stuff! I stopped watching 10 seconds in but the black box looks great! Drawing boxes is a hard concept as you said in the title but I hope everyone learnt something new here today :)
This guy speak wisdom. Took me 4 years of professional career to get me the same conclusion.
This is how I learnt programming, Operating Systems, App Development, Frontend and basically 80-90% of the stuff I do.
For what it’s worth, that’s an awesome black cube drawing
That's how AI-based tools are also gaining popularity. We necessarily don't need to know how it did the computation but if it's suitable for our need.
When I was learning the 7 OSI layers in university, they somehow thought it was a good idea to learn from bottom up and top down at the same time, separated by 4 3-credit mandatory courses, with 4 different professors using 4 different textbooks.
1st course: physical layer to data link layer with math
2nd course: physical layer to transport layer without math
3rd course: transport layer layer to data link layer with algo
4th course: application layer to transport layer but this course's professor is frankly hard to understand
It is entirely possible to learn both bottom up or from top down approach, but it should be executed very well. Conflicts can happen because of miscommunication between teachers.
Unfortunately a lot of university networking courses teach it this way which is incredibly weird and ineffective. If you want a great book on computer networking that teaches it the RIGHT way, I recommend "Computer Networking: A Top-Down Approach". As you can probably guess from the title it starts at the application layer and works its way down to the physical layer.
@@Baconator1368 yeah this is my 4th course's textbook. But unfortunately my professor taught with different order of chapters they were intended.
Thanks, man. This was very enlightening.
One possible example might be the teaching if electric circuits at the level of "lump" theory. While there's also simplification going on (ignoring parasitic capacitance, treating wires as perfect conductors), the model focus in what goes in and out of components, and the expected transformation.
This is something good to do when you think you are finished "learning" (you never actually finish learning).
For example I want to know what happens and how that "black box" works from the inside cause that might give me an idea of how to solve a similar problem.
I don't know if I phrased that correctly but I think you get the point I tried to make .
Do you mind if you explain this concept, I watched the vid and I don't really understand it
@@asaadhusein If the video coulden't explain it to you then a comment surely won't. Blackbox generally is when you don't care about some specific "function" or "algorithm" or w/e that might be it might be an object I don't know, you put that aside for now and you tunel vision on your problem . The only thing you know about this blackbox is it's input and output and you shouldn't focus for the time how it does what it does. You might learn later much easier and even quicker than if you focused on it the time you use that "Black box" for a problem. That black box might be a function that takes as input a list of numbers and then it gives them back to you averages and sorted (that's something too easy to be even considered a black box but for the sake of discussion) the point is you should focus on your problem and leave the black box do it's job averaging and sorting those number you do what you are supposed to do and as I said in my comment after you solve the problem look inside the black box and learn how it works it might help you later on. I hope I explained correctly and didn't comfuse you in any way.
10k subscribers coming soon, Colin getting ready for face reveal
That would be cool
It's 11k now within 1week he did more than 1k
We are all standing on the shoulders of giants. Accept that, and contribute something of value instead of grasping for a feeling of control by trying to understand everything.
Thank you! Sooo basically it's understanding a concept/idea/mechanism you don't understand well enough
I watched about half the video since I got lost in the sauce. I'm no computer programmer but as an artist, this broadened my perspective on things.
Love love love this, so simple, thank you.
Agreed. Black boxing (and copying code blindly) are usually the easiest ways of getting stuff done while you're learning what you need to move forward. That's why you see blind copying a lot in junior devs.
What do you mean by blind copying
Thank you! I needed this much more than you know
Didn't know their was a name for this strategy. Been doing it for years
so glad I found your channel ,keep it up
I didnt know that this kind of approach is block box. I self learned web development through online resources and the way I approach the learning materials is to study an example (Html, css , javascript). Some yt insist to focus on studying one language but for me I love exploring those 3 languages at the same time because it helps me to connect the dots
Can i use the black box method to learn how to use the black box method?
You put a concept into the black box method, and out of that you get the concept's process simplified to the inputs required and the outputs it returns back
Just be careful not to accidentally start boxing with black dudes
Back in highschool, i has an exam that required to know the analysis of 16 texts to be able to analyze it in front of a teacher. I couldn't focus or just put myself to work, while my fellows classmates would at least learn the parts of the analysis to have a red string. I went to the exam knowing nothing, analysed it, and got an 19/20
a cool thing about black box, or hidden box, is you dont need to comment the black boxes cause they are comments in themselves, and u can pretty much write the i/o half in a day.
This guy is single-handedly saving all careers
Thanks colin ,i will try this blackbox technique
You talk so clear. I am listening to you on 2.5x and can clearly hear all words !
Vert practical and precious share, thanks!
Blackbox technique is efficient for achieving average goals, if one wants to achieve greater success then first principle thinking is needed.
Thank you! I now have a word to put to the way I have been doing everything lol.
This is probably only useful for tests or some specific fields like coding, I came here expecting to learn how to understand hard concepts but in the end all that was said is " *just learn it later* "... Have been doing this during my school years and it's great, so I guess it's good for students, but does anybody know of a way to actually understand abstract and difficult concepts?
I think the best way is to just play around with it. Try to write simple example of concept (or just copy some existing solution) you need to understand and watch how it behaves in different situations
Maybe starting from thinking, of what does the thing depends on and what depends of it? Then comes the static view of the characteristics of a thing, then the dynamic, how it has evolved and how different settings influence it's dynamics.
Just ask of what does it depend, to actually understand abstract and difficult concepts and think until you've got it. Attention is penetrative if guided long enough into one spot.
My advice would be to read on the subject even if you don't understand what you're reading. Eventually you'll see common patterns pop up everywhere.
It really depends on what it is. Sometimes complexity can really be the illusion of many simple moving parts. In that case, taking each detail one at a time and tearing the thing apart could help. This is basically the opposite of the black box which hides all the details. But it's what required to get a deep understanding of something.
Other times the approach of your teacher (whether it be a person, book, video, ect) simply doesn't work for you. Try mixing up your teacher.
Thought experiments, visualizing everything that is going on with the concept have helped some people. It could be on paper, or you could lay back and close your eyes to visualize.
And finally, noticing when a "hard concept" is really a bunch of pretentious ramblings. Some concepts are really just a bunch of thin air that make people feel smart when they say it out loud. I remember going to an art museum where someone was trying to convince a group of tourists the deep meaning behind a painting of a... black dot. That's it. A canvas with a dot on it. Many of the tourists were nodding along as well, trying to give the impression they were understanding what was so great about the painting. So don't be fooled when a select group of people claim they have found some sort of profound meaning in a bunch of gibberish.
Thanks to everyone, and good luck to my fellow Math Majors :)
Man I wish someone would have told me this when I first started learning to program. Once I started doing this I learned way faster. It doesn’t make sense to go deep into the weeds of one concept when there’s so many concepts to learn, not in the beginning at keast
i've lived for 20 years using the black box method.
but now, i know the precise name of what i'm doing lol
i started to do this and it helps not to stress that much over details! so it’s basically a top down approach, where you only need to study down the tree when it’s necessary? the only problem is studying the details...
this would take ages