{"id":102,"date":"2022-01-07T14:32:52","date_gmt":"2022-01-07T14:32:52","guid":{"rendered":"https:\/\/algocademy.com\/blog\/?p=102"},"modified":"2024-10-12T13:15:53","modified_gmt":"2024-10-12T13:15:53","slug":"most-people-dont-become-great-problem-solvers","status":"publish","type":"post","link":"https:\/\/algocademy.com\/blog\/most-people-dont-become-great-problem-solvers\/","title":{"rendered":"Most people don&#8217;t become Great Problem Solvers"},"content":{"rendered":"\n<p>Many people spend countless hours trying to solve coding questions online and are frustrated of not being able to build a solution from scratch\u2026<\/p>\n\n\n\n<p>This happens because they don\u2019t know what is the right way to solve coding challenges in order to develop their thinking process and become autonomous problem solvers.<\/p>\n\n\n\n<p>The truth is when you start this journey, you won\u2019t be able to solve many problems asked in interviews all by yourself, without watching a tutorial or at least needing some hints.<\/p>\n\n\n\n<p>So it becomes super tempting to adjust your strategy to solving as many questions a day as you can in order to touch on all the topics and techniques needed.<\/p>\n\n\n\n<p>And you end up solving dozens of questions a day on autopilot mode: reading the question, thinking for 1-2 minutes and then watching another tutorial or copying the code that you found somewhere on the internet only to feel good and productive at the end of the day.<\/p>\n\n\n\n<p>Many of our students have been doing this when we first met them and I don\u2019t blame them. I also fell in this trap when I first started in 2004. But you can learn from our mistakes and understand that this strategy won\u2019t make you a better problem solver.<\/p>\n\n\n\n<p>It\u2019s like watching a basketball player throwing hoops and taking notes without ever touching the ball yourself. Is all that theory useful without putting it to practice?<\/p>\n\n\n\n<p>NO. <\/p>\n\n\n\n<p>Reading questions and immediately going through the whole explanation is a sure way of wasting your time and energy. <\/p>\n\n\n\n<p>In the worst case, it will make you ultimately give up pursuing your dream job, frustrated that you can never solve a question from scratch.<\/p>\n\n\n\n<p>In the best case, you will end up memorising some solutions and hoping you\u2019ll receive one of those problems on your interview. But even in this case, you won\u2019t pass. Here\u2019s why:<\/p>\n\n\n\n<p>Interviewers choose hard problems on purpose. They care more about your ability to cleverly poke the problem from a few different angles than your ability to stumble into the correct answer.<\/p>\n\n\n\n<p>Seriously. If you don\u2019t get stuck and just breeze through the problem, your interviewer\u2019s evaluation might just say \u201cDidn\u2019t get a good read on the candidate&#8217;s problem-solving process\u2014maybe they\u2019d already seen this interview question before?\u201d<\/p>\n\n\n\n<p>Each problem\u2019s solution consists of multiple stages (\u201caha\u201d moments) which are built on top of each other. It\u2019s like a game where you have to reach several checkpoints until you get to fight the final boss and finish the mission.<\/p>\n\n\n\n<p>Nobody reads a problem and immediately comes up with the optimal solution on the spot. They first have an idea, then start building on top of it until they get another one, and continuing this process until they come up with the full solution. And guess what? This is also what an interviewer wants to see you do when solving a coding question. <\/p>\n\n\n\n<p>Problem solving is all about figuring out what needs to be done to get to the next checkpoint. It\u2019s all about coming up with original ideas that bring you closer to the final solution.<\/p>\n\n\n\n<p>Once I started working on this skill instead of caring how many problems I solved a day, I noticed how my brain started to connect the dots, started to notice patterns and I finally felt the satisfaction of solving problems on my own from scratch.<\/p>\n\n\n\n<p>There are thousands of coding questions out there, but only less than 20 topics and techniques used to solve them. So for each problem that you solve, there are dozens, if not hundreds more problems which involve the same idea.<\/p>\n\n\n\n<p>It\u2019s all a matter of choice:  <\/p>\n\n\n\n<p>Do you choose to solve 2-3 essential problems on each topic, in the right way, such that your progress is efficient and you are ready to solve any similar question in an interview?<\/p>\n\n\n\n<p>Or do you want to spend 10x more time memorising every question available on each topic just to fail when you get a similar question in the interview, because it has a small particularity which you weren\u2019t ready for?<\/p>\n\n\n\n<p>Value your time and work smarter, not harder.<\/p>\n\n\n\n<p>Now, a question for you.<\/p>\n\n\n\n<p>How do you approach problem solving? <\/p>\n\n\n\n<p>What&#8217;s the process of you solving a coding question?<\/p>\n\n\n\n<p>Leave your stories in the comments!<\/p>\n\n\n\n<p>I can&#8217;t wait to read them!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Many people spend countless hours trying to solve coding questions online and are frustrated of not being able to build&#8230;<\/p>\n","protected":false},"author":1,"featured_media":106,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[19],"class_list":["post-102","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-coding-interviews","tag-problem-solving"],"_links":{"self":[{"href":"https:\/\/algocademy.com\/blog\/wp-json\/wp\/v2\/posts\/102"}],"collection":[{"href":"https:\/\/algocademy.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/algocademy.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/algocademy.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/algocademy.com\/blog\/wp-json\/wp\/v2\/comments?post=102"}],"version-history":[{"count":5,"href":"https:\/\/algocademy.com\/blog\/wp-json\/wp\/v2\/posts\/102\/revisions"}],"predecessor-version":[{"id":115,"href":"https:\/\/algocademy.com\/blog\/wp-json\/wp\/v2\/posts\/102\/revisions\/115"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/algocademy.com\/blog\/wp-json\/wp\/v2\/media\/106"}],"wp:attachment":[{"href":"https:\/\/algocademy.com\/blog\/wp-json\/wp\/v2\/media?parent=102"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/algocademy.com\/blog\/wp-json\/wp\/v2\/categories?post=102"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/algocademy.com\/blog\/wp-json\/wp\/v2\/tags?post=102"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}