<story><title>Khan Academy: Algorithms</title><url>https://www.khanacademy.org/computing/computer-science/algorithms</url></story><parent_chain><item><author>symlinkk</author><text>I&amp;#x27;m in college right now and I&amp;#x27;ve been wondering...do professional programmers actually think about sorting algorithms on a day-to-day basis? How relevant is this knowledge when it comes to actually making something?</text></item></parent_chain><comment><author>patio11</author><text>Ask a simple question, get a simple answer: no.  While there are some programmers who develop libraries, the majority will just consume well-understood sorting algorithms which are baked into their languages&amp;#x2F;standard libraries&amp;#x2F;etc of choice.  If you find yourself coding mergesort and you are not in a job interview, a nightmare, or a nightmare of a job interview, you are probably doing something wrong.&lt;p&gt;That said, most of the reason we teach sorting algorithms is to teach algorithms in general, and particularly the consequential lesson that &amp;quot;There are often many methods to doing something that work; these methods are often different in &lt;i&gt;extraordinarily&lt;/i&gt; consequential ways; the right method for certain problems -- even ones which look trivial on the outside! --may require literally years of R&amp;amp;D to develop.&amp;quot;</text></comment>
<story><title>Khan Academy: Algorithms</title><url>https://www.khanacademy.org/computing/computer-science/algorithms</url></story><parent_chain><item><author>symlinkk</author><text>I&amp;#x27;m in college right now and I&amp;#x27;ve been wondering...do professional programmers actually think about sorting algorithms on a day-to-day basis? How relevant is this knowledge when it comes to actually making something?</text></item></parent_chain><comment><author>gleenn</author><text>I had a professor who told the class that if they ever wrote a sorting algorithm professionally, they should be fired. Depending on where you go, college is some cross between academia and training to get a job, and usually biased towards academia. While not directly relevant to daily programming, understanding time complexity and whats going on under the hood are very useful for understanding many things that I do use on a regular basis.&lt;p&gt;For instance, adding an index to a database table is something I regularly do for performance, and the reason is based on principles I learned in college. The runtime complexity of an indexed table is way better. Any monkey coder can add the index too, the difference is that I know what&amp;#x27;s going on under the hood (finding things in a ordered tree data structure are way faster than scanning through the whole table).&lt;p&gt;I was grumpy learning some things in college early on, and the more I advance my career, the more I appreciate the things I learned even if I don&amp;#x27;t code them up, or even use them, on a regular basis.</text></comment>