Using Visualization to create better solutions [Technique Tuesdays]
This is something that shows up all the time
Ever wondered why fields like Math, Computer Science, and Theoretical Physics are so hard,
Even for the people in the domain, who spend a lot of time learning the concepts, learning new ideas, and coming up with solutions, these fields are very tricky. It’s clearly a lack of domain knowledge or the fact they haven’t practiced enough. These are very smart people who have dedicated their whole lives to these fields.
Humans are visual creatures. Half of the human brain is directly or indirectly devoted to processing visual information. When we try to visualize something, we say we’re using the “mind’s eye”. Think about how much easier it is to understand concepts and ideas when you have a few visual aids, graphs, etc. Examples go on and on.
This is a well-known fact. But what does this have to do with anything? There’s a good chance, that a big roadblock when trying to solve such problems is an inability to visualize the nuances and prospective solutions properly. This can be very hard when handling abstract ideas like Data-Structures, various Algorithms, Algebraic sets, and higher dimensional spaces. But developing this skill will pay off in spades. You can use visualization and your amazing art skills to solve some really tricky problems. Let’s get right into it.
Important Points
Why Visualize- Visualization has several benefits. One it forces your mind to work extra and make connections. This can be great for learning ideas and identifying what areas you haven’t fully understood. I learned some of the trickiest concepts in AI using this. Using images and visual aids can also help you spot patterns, make ideas clear, and spot potential areas to build off. This is why so many mathematicians and computer scientists used sketches when creating their solutions. Einstein, for example, used thought experiments extensively as he revolutionized physics. We’ll cover more for your coding interviews later.
What are you supposed to visualize- If I gave you a word like ‘high dimensional data’ or an nD solution space, you will be very confused on how to visualize it. How is one supposed to visualize an algorithm or a solution to a Leetcode problem? If you’re stuck here, chances are you’re trying to visualize too much. Slow down. Try to think of specific components. Look at what you can imagine, sketch that out, and build that out from there. You’ll be shocked at how easy that is. Instead of imagining a whole scalable distributed system like IG (which will leave you overwhelmed), try to bite off atomic chunks and build up from there.
What this needs- Of course, this requires a good base in the components of the systems/solutions you’re imagining is a must. This is why I stress the importance of understanding the DSA and building your theoretical knowledge. The better your understanding, the more you can visualize, the more powerful this technique will be.
How to get good- The simplest way to do so is to get better is to watch more visualizations. There are tons of YouTubers that explain complex theoretical concepts in a visual manner. 3Blue1Brown, StatQuest, and RitvikMath are great resources for Math. ByeByteGo and SithDev are two of my current favorites for Computer Science/Coding. These are all people who can help you visualize complex topics. Once you watch enough of their videos, you will be able to start imagining very complex ideas much better. These people (and many that I will share in the future/have already shared) are exceptional resources that have helped me a ton and will do the same for you.
Practicing this- Once you start watching these guys, watch how they depict complex ideas. Then as you’re reading through writeups/API docs/problem statements, take some time to think about what you would visualize. Convert all the text you’re reading into images/sketches of the system working. For the tryhards amongst you, think off what parts of the solution you would replace/improve on. Where are the current bottlenecks? This will help you get better at visualization, boost your problem-solving, and make you a much better developer.
A note on your Leetcode Style Interviews- This technique is primarily meant to help you learn much quicker, and come up with rough solutions. However, you can also implement this into your Leetcode Style Interviews. Many people struggle with catching dynamic programming problems. My go-to for spotting it, is to sketch out the recursive call stack (use small inputs). Once you do that, you’ll be able to catch a lot of the repeated work, which is ideal for DP. This is why I suggest going for the brute force solution first, and then building from it. Once you have a brute force soln, visualization becomes much easier.
Still skeptical about this? I created a video a while back about how you could use Machine Learning to detect viruses. The important breakthrough that this team made was to turn those viruses into images. This allowed the teams to analyze and compare potential malware files and spot patterns that would otherwise be hidden. There are many other examples.
I created Technology Interviews Made Simple using new techniques discovered through tutoring multiple people into top tech firms. The newsletter is designed to help you succeed, saving you from hours wasted on the Leetcode grind. I have a 100% satisfaction policy, so you can try it out at no risk to you. You can read the FAQs and find out more here. Use the button below to get 50% off for upto a whole year.
This is a limited-time offer, that I’m running to celebrate my almost 50 questions completed. Take advantage of it by clicking the button above.
Before proceeding, if you have enjoyed this post so far, please make sure you like it (the little heart button in the email/post). I also have a special request for you.
***Special Request***
This newsletter has received a lot of love. If you haven’t already, I would really appreciate it if you could take 5 seconds to let Substack know that they should feature this publication on their pages. This will allow more people to see the newsletter.
There is a simple form in Substack that you can fill up for it. Here it is. Thank you.
https://docs.google.com/forms/d/e/1FAIpQLScs-yyToUvWUXIUuIfxz17dmZfzpNp5g7Gw7JUgzbFEhSxsvw/viewform
To get your Substack URL, follow the following steps-
Open - https://substack.com/
If you haven’t already, log in with your email.
In the top right corner, you will see your icon. Click on it. You will see the drop-down. Click on your name/profile. That will show you the link.
You will be redirected to your URL. Please put that in to the survey. Appreciate your help.
In the comments below, share what topic you want to focus on. I’d be interested in learning and will cover them. To learn more about the newsletter, check our detailed About Page + FAQs
If you liked this post, make sure you fill out this survey. It’s anonymous and will take 2 minutes of your time. It will help me understand you better, allowing for better content.
https://forms.gle/XfTXSjnC8W2wR9qT9
I see you living the dream.
Go kill all and Stay Woke,
Devansh <3
To make sure you get the most out of Technique Tuesdays, make sure you’re checking in the rest of the days as well. Leverage all the techniques I have discovered through my successful tutoring to easily succeed in your interviews and save your time and energy by joining the premium subscribers down below. Get a discount (for a whole year) using the button below
Reach out to me on:
Instagram: https://www.instagram.com/iseethings404/
Message me on Twitter: https://twitter.com/Machine01776819
My LinkedIn: https://www.linkedin.com/in/devansh-devansh-516004168/
My content:
Read my articles: https://rb.gy/zn1aiu
My YouTube: https://rb.gy/88iwdd
Get a free stock on Robinhood. No risk to you, so not using the link is losing free money: https://join.robinhood.com/fnud75