<story><title>OSSU: A path to a free self-taught education in computer science</title><url>https://github.com/ossu/computer-science</url></story><parent_chain></parent_chain><comment><author>ChuckMcM</author><text>As someone who has lived through a big chunk of the &amp;#x27;computer science&amp;#x27; lifecycle arc :-) My perspective is a bit different here.&lt;p&gt;&amp;quot;Programming&amp;quot;, or the skill of writing specifications that can be translated via software into product has come a long way from the 60&amp;#x27;s to the present day. People I meet, interview, and work with, often fall into three broad chunks of the spectrum.&lt;p&gt;At one end there are &amp;#x27;coders&amp;#x27;, who are essentially cooks, they take previously written code, adapt it to their requirements, attach it to third party libraries and ship the end result.  They have been essential to the boom in Internet companies for decades because they ship a lot of code and they are relatively inexpensive (with respect to the expected generated revenue) to hire. When their code doesn&amp;#x27;t work as they expect they generally iterate on it using other suggested solutions until they arrive at one that operates the way they need&amp;#x2F;want it to.&lt;p&gt;In the middle are &amp;#x27;engineers&amp;#x27; who build more at the system level and can fill in the gaps with third party software when needed but are also fully capable of generating the required capability starting with a blank screen. When the system doesn&amp;#x27;t work they expect they can analyze it from first principles to get to the root cause of the problem.&lt;p&gt;At the other end are &amp;#x27;scientists&amp;#x27; who think about the problems of the nature of computing. These folks rewrite an algorithm in three different ways to understand how different compute architectures might execute it. Driven by the joy of discovering new insights about how computers work, if something they build doesn&amp;#x27;t work they are delighted because it has illuminated a gap in their understanding that can be productively filled.&lt;p&gt;Different educational settings are useful for addressing the goals of the student, and in my experience those goals will be different depending on where on the spectrum of &amp;#x27;programmer&amp;#x27; they see themselves.</text></comment>
<story><title>OSSU: A path to a free self-taught education in computer science</title><url>https://github.com/ossu/computer-science</url></story><parent_chain></parent_chain><comment><author>tombert</author><text>This is a bit hypocritical coming from a self-taught dropout, but I have kind of grown to dislike a lot of these &amp;quot;learn programming on your own!&amp;quot; things&amp;#x2F;bootcamps&amp;#x2F;courses.&lt;p&gt;This isn&amp;#x27;t because of some idea that it&amp;#x27;s bad to learn programming for fun, but more that I think it&amp;#x27;s kind of reductive to try and squeeze things down to a streamlined lesson to begin with...There&amp;#x27;s a reason college takes four or more years; it takes a long time for these fundamentals to really sink in, and moreover, a lot of the &amp;quot;extra&amp;quot; classes you&amp;#x27;re required to take actually &lt;i&gt;do&lt;/i&gt; inform your perspective on a lot of career stuff. For example, I hated taking philosophy classes and thought they were &amp;quot;pointless&amp;quot;, but I recently realized how much they have helped me with logical thinking, and being able to justify decisions I&amp;#x27;m forced to make.&lt;p&gt;If you&amp;#x27;re learning to code just for fun, these things are totally fine and can be incredibly fun, but if you&amp;#x27;re learning to code for a job, &lt;i&gt;please&lt;/i&gt; don&amp;#x27;t treat these things as an &amp;quot;alternative&amp;quot; to college.  Any kind of self-learning system almost universally requires a huge amount of self-study, probably more than a university, if you want to become any good at this stuff.</text></comment>