hi so you want to talk to computers yeah that'd be pretty cool you want to make video games yeah that'd be pretty cool you want to get rich yeah that'd be pretty learn how to program no why it's hard why you just Google stuff kind of oh what is programming I've said this before what is it not code what it's all about problem solving and logical thinking you have to understand the concepts and how to apply them okay what about the programming language that's just a tool is it important kind of a majority of people
focus mainly on the language itself and less on problem solving and logical thinking is that bad yes why because you'll end up in tutorial health is that bad yes yes why because you'll never learn how to program oh how do you study programming then don't try to memorize the language instead of trying to memorize the language try to learn patterns problem solving approaches and how different pieces fit together so how do you get better at programming you program what you do it what program really yes that's it yes really no what programming is a skill
okay but we can optimize this I'm lazy I don't like hard work me too I don't like to study for 8 hours a day me too so let me show you how I like to take notes I like to use notion notion yes don't other apps exist yes why notion because I've been using it for years and I'm pretty comfortable with it it handles everything I need allows me to have everything in one place it's easy to use and most importantly it's free oh that's pretty cool this video is also sponsored by notion oh you
might notice my notes aren't exactly winning any beauty contests yeah they're pretty ugly and simple here's the thing I actually want to learn stuff not make my notes look good A lot of people like iPads and that's cool but it doesn't really work for programming unless you get a keyboard and a mouse oh wait that's now a computer you complete idiot most people are using a computer I don't want to get an iPad and my handwriting is disgusting whenever I study I want to maximize my time ideally I want to learn as much in 2
hours as someone else does in 8 hours if you're really a programmer you should already know where I'm going with this I want to optimize my time let me introduce you to the pit Paro parto pit the Paro principle the Paro principle which is also called the 8020 rule what's that it's the idea that Approximately 80% of outcomes or results come from about 20% of your inputs or effort what a small portion of your work lead to a majority of your results what 20% of work equals 80% of results oh cool it sounds crazy right
yeah so how do we apply this to studying programming well we have to concentrate on areas where we get big wins with little effort let me show you how we do that whenever I study I like to focus on Core Concepts this is important instead of trying to memorize every method in a language I focus on understanding the fundamental principles once you get those the rest often fall into place why because of the 8020 rule these fun mentals will get you 80% of the results when I'm studying new programming Concepts or really studying in general
I have specific questions that help me maximize my learning efficiency and understand Core Concepts I call these my big questions what is this why is this important why should I learn this when will I need this how does it work now if you don't like these questions you can create your own it's simple all you need is a what a why a when and how now why do I use these questions they're not just random questions they help me connect what I'm learning to other areas it helps me understand where the subject fits into the
bigger picture and it also lets me subcategorize the topics so let's say I'm learning something about object oriented programming the big questions would be what is object-oriented programming why is object-oriented programming important why should I learn object-oriented programming when will I need I should have picked a better example but you get the point I'm not just copy and pasting or memorizing definitions I'm trying to understand why this concept exists but I don't stop there if I'm given information about the topic I take it a step further by turning the information into questions this method allows
my brain to actively engage with the material which is way more effective than passive reading so let's keep going with the object-oriented programming example let's say I learn what a class is what an object is and how to create both I'd rephrase the information which would give me what is a class what is an object how do you create a class how do you create an object and then I'd also give myself my own questions so maybe something like what's the difference between a class and an object if I'm actively asking myself questions then I
know I'm actually paying attention and not just brain rotting it's like creating my own pop quiz and if someone actually ask me that question I would know how to respond I like to rewrite definitions I start with the original definition then create my own version when I write my own definition I try to meet two key requirements one would this make sense to someone else two would this make sense to a 5-year-old I like the idea that you truly know something if you can simplify it now not every concept has to be simplified to a
5-year-old level but try your best to simplify it as much as possible I do this all the time if you were paying attention you would have noticed I did it to you when I explained the par principle 20% of work equals 80% of results and really the whole intro of the video was very simplified what is programming I've said this before what is it not code what it's all about problem solving and logical thinking it helps me a lot and it's really a test to see if I actually understand what I'm learning I like to
combine text and visuals in my notes I know you've all heard the line a picture is worth a thousand words well in programming that's really true diagrams can often explain Concepts better than paragraphs of text I promise you now all this note taking and organizing is pointless if you don't actually write code so I try to program obviously so whenever I'm learning a programming concept I like to do this I like to copy the code from whatever resource I'm using so YouTube a book a class lecture and then I create my own example doing the
same thing I try to notice if there's a pattern to it let's do an example let's say I'm learning how to fetch data from an API so I copy code from whatever resource I'm using and then I create my own example of doing the same thing and now I'm going to look for a pattern and luckily for fetching data there is there's some steps to it get your API URL create a TR catch for error handling create a response variable that fetches from the API check if the response is not returning an error if it
is then return an error if the response works then parse the data from it with Json yes I'm using JavaScript I don't care as you can tell this makes it really easy to understand a concept but simple examples like this only go so far you also need to practice with real projects I spend more time building actual project projects than doing endless tutorials this way I learn by doing and reinforce my understanding of key Concepts and you all keep asking me what's the best way to learn programming well this is it right here just make
projects literally just code it's that simple just code I don't really take notes when I build projects it's really just trial and error but I do like to design and diagram things like my database schema maybe classes or I just visualize how the architecture would look visualizing really helps me understand how the project works and it's a great experience cuz you're going to be doing this a lot all right let's speedrun some other learning techniques number one active recall your brain is like a muscle now most of you probably don't work out and that's okay
but you need to work out your brain by testing it instead of just rereading notes quiz yourself on whatever material you need to know this is pretty obvious but quizzing yourself will make you remember the information better it's not a surprise number two space repetition this technique is basically just taking gaps between study sessions and increasing the Gap each time this technique is based off the theory of the forgetting curve which is just a fancy big brain way of saying the longer you don't study the more you forget wow so when you first start you
study the material you take like 1 hour off and then study it again and then this time take maybe 2 hours off study it again now take a day break study it again take a week break study it again blah blah blah you get the point you just keep increasing the Gap space repetition helps flatten the curve which means you don't forget as much which means you don't have to study it as much because you remember more which means less studying which is what I want why because I'm lazy we're living in the age of
AI and I'd be a fake programmer if I didn't show you how I'm using AI to study if you have notion AI this makes it a 100 times easier since it's built in first up is an AI tutor it's like having a personal programming Mentor 24/7 I like to use AI to explain Concepts debug some code and even challenge my understanding by asking it to explain things back to me next thing is AI generated practice quizzes and exams honestly this is a game changer for active recall I can quickly create questions about any programming topic
I'm studying it's like having an infinite supply of practice problems one of my favorite techniques is comparing AI responses with my own notes this helps me identify gaps in my understanding and sometimes introduces New Perspectives that I never considered I like to use AI to simplify and refine my writing remember how I said I like to simplify my Concepts so that a 5-year-old understands AI helps me do this which also helps my own understanding if there's one thing you can study when it comes to programming it's interview preparation if you're serious about technical interviews you've
probably heard of leode it's a platform that has a bunch of programming problems that are commonly asked in coding interviews and they're really difficult it's hard to get good at these problems a lot of people study these wrong they try to memorize the solution if they ask you that question in a coding interview and you do have it memorized fair enough lucky you but ideally you should try to understand how the solution works and the patterns used for it so here's how I like to structure my lead Code Practice in notion I like to to
use a canb board because it lets me move the problems into specific categories I have four simple categories haven't solved needs review solved and today the categories are pretty straightforward and whenever I create a new problem it has this information the question name the difficulty the type of problem and the time it took to solve it and once you click on a problem it's going to have this information the problem statement so I just copy this from leode to have the information in one place and then I like to have a solution section I always
try to come up with at least two approaches a four solution and an optimized one sometimes I like to add another solution just to keep things open-minded and for each solution I like to have this information the code obviously and I make sure to have comments in the code explaining each step of the process and then I also add the time complexity and the space complexity because sometimes they'll ask you this in the interview so it's good practice to know it all right so that's everything regarding how I set up notes now when it comes
to deciding which problems I want to do for the day I like to have this structure I try to do at least three problems a day if I'm starting to interview and then I step it up to five problems but I make sure that I have these requirements one question that I haven't solved one question that I need to review and one question that I've solved before and if I feel like solving more questions then I can decide either another question that I need a review or another question that I need to solve the reason
I like to have a question that I've solved before is remember space repetition I'm taking a gap between the time I solve the problem so the more problems I solve the larger the Gap is so if I can't solve a problem it goes into review and if I can solve it then it'll go to the solve and I make sure I put it at the bottom not the top by structuring my interview preparation like this in notion I can easily review problems I can track my progress and I can focus on areas where I need
Improvement now I know what some of you might be thinking this all sounds great but it seems like a lot of work to set up and you're not wrong but here's the thing the time you invest in setting up an efficient study system pays off tfold in the long run remember what I said I like to get done in 2 hours what another person does in 8 hours that's the plan that's the goal and if that doesn't motivate you here's some software engineering salaries to motivate you if you want to get started with notion and
try out some of the techniques I've shown you today I have a special link in the description below and if you're a student you'll also get a discount for notion AI so moral of the story you'll never be a good programmer