Divide and Conquer
The Ultimate Hack to Understanding Complex Programming Concepts and Increasing Productivity.
History of Divide and Conquer
Historically, this strategy is attributed to the Roman Military General and Statesman - Julius Ceasar. This strategy has been applied across the military, politics and various problem-solving approaches.
What is Divide and Conquer
The "Divide and Conquer" approach involves breaking down larger problems or groups of people into smaller and manageable pieces or units to achieve success or control.
Why Divide and Conquer
The reason behind divide and conquer is not just for it to be used in the military to achieve some level of authority, neither is it just a tool of war to win and conquer. But an integral part of life itself.
Now if we come from Life itself, we were made to understand that Life has the smallest form called a cell, and this cell accumulates into what is known as a tissue, and then from tissues to organs, and group of organs gives us a system, and then group of systems gives us the full Human body.
The same thing to this article, if you further break down my writings, you will find out that the whole article contains subheadings, and each subheading contains various paragraphs and each paragraph contains sentences and each sentence contains a group of phrases and each phrase is made up of words and each word is made up of one alphabet or the other.
Now if I am going to write, I will need to start from the least, that is from alphabets to words, words to phrases, phrases to sentences, sentences to paragraphs, paragraphs to sub-headings, sub-headings to the main Heading/Title.
Now the reason I was able to achieve success in writing this article is because of the various level of divisions I have to employ and build on to achieve this article.
Now the idea behind this divide and conquer is that highly complex things tend to look very difficult and impossible to understand/comprehend, and as such many people tend to think that it is impossible to simply understand complex things on their own, so they always look at people who understand those complex concepts to be geniuses and highly intelligent, main while as they keep doing that, they tend to miss out on the most important ingredient, which is "divide and conquer".
The people who tend to understand and even master very complex and difficult stuff are those people that took their time to decipher those things by taking out time to break down those complex concepts into smaller understandable pieces. After that, they take each of that smaller understandable pieces and dwell on them, now in a situation where those smaller pieces look difficult to understand, they further break them down into smaller pieces to understand them.
Understanding Complex Programming Concepts with Divide and Conquer
Just like the quote says:
If it still looks complex or difficult, maybe you haven't broken it down enough.
So if you find yourself struggling to understand a concept simply because it is complex or difficult, it simply means that the concept as a whole needs to be taken in bit by bit, it is more like having a full plate of food to eat, now you can't take the plate of food all at once, you will need to take it bit by bit until you empty the plate, so that is how it works. So if you are struggling to understand any programming concept, do the following:
Look up the definition.
Check for the reason behind the concept (Why the concept is important).
Break down the definition and separate the keywords in the definition from the casual words.
Take up the keywords and check each of them to understand what each of them means.
Check for how each of them connects.
Check for examples of the application of the concept.
Boosting Productivity with Divide and Conquer
With the human mind, we often feel overwhelmed sometimes most especially with bulky information and activities here and there in that more often time we decide to just give up and rest to regain our sanity. We never know that the reason why we feel overwhelmed is that we hope to tackle everything then and there all at once, we fail to understand that our brain will likely shut down when it is overwhelmed.
So the solution to this is to check each activity for the day and to order them in terms of Preference (in the order of importance, from the most important to the least important). Next is to check the time frame that activity can be achieved, if it is something that needs a lot of time to be achieved, it can be spread across days or even weeks with a portion that will be covered each day across those days or weeks.
For example, at the time of writing this article, I am presently reading a book on C Programming with 24 chapters, while preparing for the Alx Software Engineering program. So I decided to cover between 2 - 4 chapters each day, depending on how complex the chapters are. Now that will take me roughly a week and some days to understand C programming as a whole to a considerable degree. Doing this will give me time to also attend to some other activity that are important for the day without feeling overwhelmed.
"Divide and Conquer" is an old strategy that is still very useful in this modern day and time. It application have been very useful in breaking down complex problems into smaller solvable piece. This concept is also applied in computing where the computer solve large problems within a very short period of time by solving them in bits and pieces at a very fast speed in that it looks as tho it is solving the complex computations all at once.
So next time you are stucked in understanding a material, you should attept the "Divide and Conquer" strategy to it and see the magic behind this strategy.