{"id":523297,"date":"2022-12-08T12:16:14","date_gmt":"2022-12-08T09:16:14","guid":{"rendered":"https:\/\/en.buradabiliyorum.com\/forget-about-algorithms-and-models-learn-how-to-solve-problems-first\/"},"modified":"2022-12-08T12:16:14","modified_gmt":"2022-12-08T09:16:14","slug":"forget-about-algorithms-and-models-learn-how-to-solve-problems-first","status":"publish","type":"post","link":"https:\/\/buradabiliyorum.com\/en\/forget-about-algorithms-and-models-learn-how-to-solve-problems-first\/","title":{"rendered":"#Forget about algorithms and models \u2014 learn how to solve problems first"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_84 counter-hierarchy ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<label for=\"ez-toc-cssicon-toggle-item-6a2d793338ba0\" class=\"ez-toc-cssicon-toggle-label\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #dd3333;color:#dd3333\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #dd3333;color:#dd3333\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/label><input type=\"checkbox\"  id=\"ez-toc-cssicon-toggle-item-6a2d793338ba0\" checked aria-label=\"Toggle\" \/><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/buradabiliyorum.com\/en\/forget-about-algorithms-and-models-learn-how-to-solve-problems-first\/#%E2%80%9CForget_about_algorithms_and_models_%E2%80%94_learn_how_to_solve_problems_first%E2%80%9D\" >&#8220;Forget about algorithms and models \u2014 learn how to solve problems first&#8221;<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/buradabiliyorum.com\/en\/forget-about-algorithms-and-models-learn-how-to-solve-problems-first\/#Join_TNW_in_Valencia\" >Join TNW in Valencia!<\/a><\/li><\/ul><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/buradabiliyorum.com\/en\/forget-about-algorithms-and-models-learn-how-to-solve-problems-first\/#How_to_solve_problems\" >How to solve problems<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/buradabiliyorum.com\/en\/forget-about-algorithms-and-models-learn-how-to-solve-problems-first\/#1_Understanding_the_problem\" >1. Understanding the problem<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/buradabiliyorum.com\/en\/forget-about-algorithms-and-models-learn-how-to-solve-problems-first\/#2_Break_the_problem_down\" >2. Break the problem down<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/buradabiliyorum.com\/en\/forget-about-algorithms-and-models-learn-how-to-solve-problems-first\/#3_Start_with_an_example\" >3. Start with an example<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/buradabiliyorum.com\/en\/forget-about-algorithms-and-models-learn-how-to-solve-problems-first\/#4_Execute\" >4. Execute<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/buradabiliyorum.com\/en\/forget-about-algorithms-and-models-learn-how-to-solve-problems-first\/#5_Reflect\" >5. Reflect<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/buradabiliyorum.com\/en\/forget-about-algorithms-and-models-learn-how-to-solve-problems-first\/#Famous_last_words\" >Famous last words<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<h1><span class=\"ez-toc-section\" id=\"%E2%80%9CForget_about_algorithms_and_models_%E2%80%94_learn_how_to_solve_problems_first%E2%80%9D\"><\/span>&#8220;Forget about algorithms and models \u2014 learn how to solve problems first&#8221;<span class=\"ez-toc-section-end\"><\/span><\/h1>\n<p><img decoding=\"async\" src=\"https:\/\/img-cdn.tnwcdn.com\/image?fit=796%2C417&amp;url=https%3A%2F%2Fcdn0.tnwcdn.com%2Fwp-content%2Fblogs.dir%2F1%2Ffiles%2F2022%2F12%2FUntitled-design-15.jpg&amp;signature=9538625f134e796274cc9a3f99be7697\" \/><\/p>\n<div id=\"article-main-content\">\n                            Almost weekly a friend or an acquaintance asks me, \u201cI want to learn to code; which language should I start with?\u201d More or less bi-weekly I get a DM on LinkedIn starting with, \u201cMy son should start programming; what is the best language for him?\u201d<\/p>\n<p>It\u2019s not just people who\u2019ve never coded before. Often I get these messages from people who have several years of coding experience under their belts.<\/p>\n<p>I\u2019m not saying this to complain.<\/p>\n<div class=\"inarticle-wrapper channel-cta\">\n<div class=\"ica-text\">\n<h4><span class=\"ez-toc-section\" id=\"Join_TNW_in_Valencia\"><\/span>Join TNW in Valencia!<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>The heart of tech is coming to the heart of the Mediterranean<\/p>\n<\/div>\n<\/div>\n<p>I make half a living from prodding the pros and cons of different programming languages, frameworks, and AI models here on Medium. I profit greatly from people having such questions.<\/p>\n<p>The questions are quite intuitive. After all, everyone would like to work with the best possible tools and build their software skills as quickly as possible.<\/p>\n<p>And when you observe that every developer seems to use a different <a href=\"https:\/\/buradabiliyorum.com\/en\/category\/technology\/\" data-internallinksmanager029f6b8e52c=\"4\" title=\"Technology\" target=\"_blank\" rel=\"noopener\">technology<\/a> stack, it makes perfect sense to wonder which one is the right one.<\/p>\n<p>The thing is, it all depends on the problem at hand.<\/p>\n<p>No technology on its own is good or bad; it just depends on what type of problem you want to solve. At the end of the day, programming is just that: problem solving by means of using a computer.<\/p>\n<p>So, for people who want to start programming or enhance their skills in software development or data <a href=\"https:\/\/buradabiliyorum.com\/en\/category\/sciencee\/\" data-internallinksmanager029f6b8e52c=\"5\" title=\"Science\" target=\"_blank\" rel=\"noopener\">science<\/a>, the question should not be, \u201cWhat should I use, <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/towardsdatascience.com\/bye-bye-python-hello-julia-9230bff0df62\">Python or Julia<\/a>?\u201d The question should be: \u201cHow can I solve software problems better?\u201d<\/p>\n<h2><span class=\"ez-toc-section\" id=\"How_to_solve_problems\"><\/span>How to solve problems<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>For full disclosure, I\u2019m not a computer scientist by trade. I\u2019m a particle physicist who h<a href=\"https:\/\/buradabiliyorum.com\/en\/category\/download-scripts-themes-apps\/\" data-internallinksmanager029f6b8e52c=\"9\" title=\"Download Scripts &amp; Themes &amp; Apps\" target=\"_blank\" rel=\"noopener\">app<\/a>ens to use concepts from programming and data science because I deal with humungous amounts of data from particle colliders.<\/p>\n<p>That being said, physicists are similarly sought-after as computer scientists. That\u2019s not because of their knowledge about neutrinos or black holes; it\u2019s because of their problem-solving capabilities.<\/p>\n<p>Abraham Lincoln is quoted to have said, \u201cGive me six hours to chop down a tree and I will spend the first four sharpening the axe.\u201d<\/p>\n<p>For programmers and data scientists, this means spending time understanding the problem and finding high-level solutions before starting to code. In the average coding interview, candidates are expected to spend less than half of their time actually writing code, and the rest of the time understanding the problem.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"1_Understanding_the_problem\"><\/span>1. Understanding the problem<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Don\u2019t skip this step, ever!<\/p>\n<p>Key to knowing whether you understand a problem is whether you can explain it to someone who isn\u2019t familiar with it. Try to write it down in plain English or your mother tongue; draw a little diagram; or tell a friend about it. If your friend doesn\u2019t understand what you\u2019re talking about, you need to get back to the problem statement.<\/p>\n<p>Key questions to ask are:<\/p>\n<ul>\n<li><strong>What is the input? What is the desired output?<\/strong><br \/>For example, the input could be an array of data, and the output might be a linear regression on the data.<\/li>\n<li><strong>Which assumptions are underlying the problem?<\/strong><br \/>For example, you might be assuming that there is (almost) no measurement error in your data.<\/li>\n<li><strong>What is making this problem complicated?<\/strong><br \/>For example, the data that you have might be incomplete or the dataset might be too small to draw clear conclusions.<\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"2_Break_the_problem_down\"><\/span>2. Break the problem down<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Every big problem consists of lots of smaller problems. Given our previous example with the linear regression, you might want to consider the following sub-problems:<\/p>\n<ul>\n<li>Cleaning the data<\/li>\n<li>Finding out which variables in the data are meaningful for the regression, and which ones can be safely neglected<\/li>\n<li>Searching for the right tool to do the regression with (this is where the old question about programming languages and frameworks comes into play)<\/li>\n<li>Evaluating your results and bug-checking<\/li>\n<\/ul>\n<p>Breaking the problem down helps you make a proper plan for your work.<\/p>\n<p>It\u2019s also more motivating, because you\u2019ll be achieving small but important milestones along the way. This is much more satisfying than sitting in front of a mountain of work and feeling like you\u2019re not moving forward.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"3_Start_with_an_example\"><\/span>3. Start with an example<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>The devil is always in the details.<\/p>\n<p>Instead of starting with the whole project, take a little piece of it. Try whether your plan works, or whether you have to adapt it because of unforeseeable difficulties.<\/p>\n<p>This helps you get your head around the hard parts. Many problems sound simple, but when you start building them there is one roadblock after the other.<\/p>\n<p>In our example, instead of using all relevant variables, one could perform a linear regression on a couple of variables first. This won\u2019t give you any points for project completion; however, finding bugs in your scripts when you\u2019re still dealing with a small amount of data can be life-saving.<\/p>\n<p>When you\u2019re throwing all your data at the machine, running it for hours, and then come back to realize that the script hung up midway, you\u2019ll be very frustrated.<\/p>\n<p>Trust me, this happens a lot!<\/p>\n<p>Run small tests first, and make sure your solution works as you envisioned it.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"4_Execute\"><\/span>4. Execute<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>This is the meaty part. Now you can build the solution for your large problem.<\/p>\n<p>Throw all your data at the code. Run a fancy model. Do whatever you want.<\/p>\n<p>Having completed the three prior steps, this should run through quite smoothly!<\/p>\n<p>If there are errors, you might have to go back to steps 1\u20133 to see if you\u2019ve understood everything already and haven\u2019t overlooked any bugs.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"5_Reflect\"><\/span>5. Reflect<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Just because you found one solution doesn\u2019t mean you found the best solution. Don\u2019t run off and call it a day; think about how you could optimize your solution and how you might be able to approach it differently.<\/p>\n<p>You might want to exchange with your colleagues and ask them how they would solve the problem. Is their approach different from yours?<\/p>\n<p>You could also try to identify the biggest bottlenecks in your solution, i.e. the parts that take the most time and resources to execute. How can you improve them?<\/p>\n<p>Finally, reflect on how your solution might evolve in the future. Would new software frameworks or the use of AI make your solution better? How could your solution contribute to solving other, even more complex problems?<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Famous_last_words\"><\/span>Famous last words<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>People, including myself, tend to obsess over different programming languages and the newest framework that might make everything 1000x more efficient.<\/p>\n<p>It\u2019s worth reminding yourself that this is less than half of what it takes to become an excellent programmer. The other half is problem solving.<\/p>\n<p>You won\u2019t acquire problem solving skills over night.<\/p>\n<p>But if you apply these steps, ask the right questions, and do this often, you\u2019re on the right path to taking your career from good to great.<\/p>\n<p><em>This article was originally published on Medium. You can read it <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/towardsdatascience.com\/forget-about-algorithms-and-models-learn-how-to-solve-problems-first-c791fde5842e\">here<\/a>.<\/em>\n                        <\/div>\n<blockquote><p><strong><span style=\"color: #ff6600;\">If you liked the article, do not forget to share it with your friends. Follow us on\u00a0<span style=\"color: #ff0000;\"><a style=\"color: #ff0000;\" href=\"https:\/\/news.google.com\/publications\/CAAqBwgKMLG0nwswvr63Aw\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Google News<\/a><\/span>\u00a0too, click on the star and choose us from your favorites.<\/span><\/strong><\/p><\/blockquote>\n<blockquote>\n<p style=\"text-align: center;\">For forums sites go to <span style=\"color: #ff9900;\"><a style=\"color: #ff9900;\" href=\"https:\/\/forum.buradabiliyorum.com\/\" target=\"_blank\" rel=\"noopener\">Forum.BuradaBiliyorum.Com<\/a><\/span><\/strong>\n<\/p><\/blockquote>\n<blockquote>\n<p style=\"text-align: center;\"><strong>If you want to read more like this article, you can visit our <span style=\"color: #ff9900;\"><a style=\"color: #ff9900;\" href=\"https:\/\/en.buradabiliyorum.com\/technology\/\" target=\"_blank\" rel=\"noopener\">Technology category.<\/a><\/span><\/strong><\/p>\n<\/blockquote>\n<p><span style=\"color: black;\"><a style=\"color: #ff9900;\" href=\"https:\/\/thenextweb.com\/news\/forget-about-algorithms-and-models-learn-how-to-solve-problems-first\" target=\"_blank\" rel=\"noopener\">Source<\/a><\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>&#8220;Forget about algorithms and models \u2014 learn how to solve problems first&#8221; Almost weekly a friend or an acquaintance asks me, \u201cI want to learn to code; which language should I start with?\u201d More or less bi-weekly I get a DM on LinkedIn starting with, \u201cMy son should start programming; what is the best language&#8230;<\/p>\n","protected":false},"author":1,"featured_media":523298,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"https:\/\/img-cdn.tnwcdn.com\/image\/tnw?filter_last=1&fit=1280,640&url=https:\/\/cdn0.tnwcdn.com\/wp-content\/blogs.dir\/1\/files\/2022\/12\/Untitled-design-15.jpg&signature=1e1ff3fb9564da4904d5946734762cfa","fifu_image_alt":"","footnotes":""},"categories":[18],"tags":[],"class_list":["post-523297","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technology"],"_links":{"self":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/posts\/523297","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/comments?post=523297"}],"version-history":[{"count":0,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/posts\/523297\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/media\/523298"}],"wp:attachment":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/media?parent=523297"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/categories?post=523297"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/tags?post=523297"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}