Unstuck when learning some concept
30/08/2024
I studied Programming since highschool, when first time trying iam stuck with java like, what the hell is public class? is there any private class? why u have to write main func and define class to run program? can we just do system.out.print()? I keep asking because the book that i used to learn saying ignoring this thing, at least for now until i reach out OOP. And then i changes the way i study, iam using youtube and asking from community to learn programming and then i find the "Lost Piece" that answer my question. Maybe you all have same case as me, like u want to study calculus but you dont even know how to do algebara and then of course u cant do anything about it because u have to study algebara first, and if u study algebara but stuck maybe you forgot about some basic math? just keep backtracking to find that "Lost Piece"
Main Idea
I write this article after read some article i found from twitter click here. Then at some point i think this is right to people know, in this article i just write the same thing but from my point of view and experience.
Going back further
As a student that not from top school (i can afford better school, but because stupid goverment policy i cant) studying is hard where your environtment isn't supporting you at all, like imagine all people i see on the internet have better facility and community that support your interest when my school just cant. As a student that has interest in programming and the only one in school (Actually there is one of my friend that likes coding, but still that small number) i have to study alone, practicing alone to support my career future. All i can do learn from internet, keep doing trial and error until i got stuck sometimes for like a day, a week sometimes a month to solve the problem. Lets take some case when i got stuck when learning Dynamic Programming.
How to unstuck
Lets talk a little bit about DP or Dynamic Programming. briefly is just same like brute force algorithm but optimized, u just cant brute force everything, it just calculated some case and then memorize it when that case appear again you dont have to calculate it again because u just memorize it. If you want know more about DP you can try solving knapsack problem (brute force is ilegal buddy). Back to topic when facing DP i dont get it at all, in here recursive concept is still though for me but i clearly understand how greedy and brute force work. This difficulty spikes makes my brain thinking harder so first step i do is rest, i need more energy to understand this concept and to backtracking some of CS and math fundamentals. You cant just think and focus when you are tired. When iam ready to start again its okay to learn the basic again, like maybe some point there is a piece concept that you missed out. Another way i do is looking for some problem, i mean not punching people on the street but looking some problem that fit with the topic. Some DP problem like knapsack is a good start. Start breaking it down to smaller pieces problem, seeing poeple how to solve it its ok thou rather than wasting time to solve it with your own ability, maybe u can give it try at first to understand the problem. If practicing DP problem not give you some insight, lets go back, maybe try practicing with greedy problem or maybe math problem. For me go back to practice basic more deeply some times give me more insight to find the lost piece to understand the concept that i dont understand.
Summary
To sum all of this You need to rest, as you can see when you are stuck that mean is not easy as learning other concept and that mean you need better preparation. Gather your energy for the next trial. Looking for the problem and solve it, just give it a try even if u dont understand it but dont too much waste your time, identifying the problem is part of solving it ! Dont forget to watch other people how to solve it. Back to basic is not wasting time, u cant grow if u dont understand the fundamental concept, spare your time to just read or practice another problem of the fundamental concept, new concept sometimes gives you new insight to find the lost piece !