<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Most Useful CS Classes?</title>
	<atom:link href="http://www.kellbot.com/2009/11/most-useful-cs-classes/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.kellbot.com/2009/11/most-useful-cs-classes/</link>
	<description>Tinysaurs and Hacking and Nonsense</description>
	<lastBuildDate>Sun, 05 Feb 2012 18:59:24 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
	<item>
		<title>By: Mark</title>
		<link>http://www.kellbot.com/2009/11/most-useful-cs-classes/comment-page-1/#comment-15916</link>
		<dc:creator>Mark</dc:creator>
		<pubDate>Wed, 09 Mar 2011 23:12:09 +0000</pubDate>
		<guid isPermaLink="false">http://www.kellbot.com/?p=409#comment-15916</guid>
		<description>I just graduated in December with a computer science degree. The most useful classes I took were Object-Oriented Programming, which was basically a Java class, a compiler class, one in operating systems, a networking class, which was mostly C# stuff, and one in graphics, which was mostly OpenGL. I also had classes in Data Structures and and Discrete Mathematics, which weren&#039;t that interesting at the time, but now they seemed to be quite useful.

Since I&#039;ve graduated though, I&#039;ve been looking for a job and learning things on my own that job seekers are looking for, such as PHP, MySQL, and been messing with Android programming quite a bit. As they told us in school, you don&#039;t necessarily learn what you need to know for the real world while in school, you just learn how to learn. I&#039;m just wondering now if grad school would even be worth it.</description>
		<content:encoded><![CDATA[<p>I just graduated in December with a computer science degree. The most useful classes I took were Object-Oriented Programming, which was basically a Java class, a compiler class, one in operating systems, a networking class, which was mostly C# stuff, and one in graphics, which was mostly OpenGL. I also had classes in Data Structures and and Discrete Mathematics, which weren&#8217;t that interesting at the time, but now they seemed to be quite useful.</p>
<p>Since I&#8217;ve graduated though, I&#8217;ve been looking for a job and learning things on my own that job seekers are looking for, such as PHP, MySQL, and been messing with Android programming quite a bit. As they told us in school, you don&#8217;t necessarily learn what you need to know for the real world while in school, you just learn how to learn. I&#8217;m just wondering now if grad school would even be worth it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: dad</title>
		<link>http://www.kellbot.com/2009/11/most-useful-cs-classes/comment-page-1/#comment-6294</link>
		<dc:creator>dad</dc:creator>
		<pubDate>Fri, 06 Nov 2009 01:27:01 +0000</pubDate>
		<guid isPermaLink="false">http://www.kellbot.com/?p=409#comment-6294</guid>
		<description>Analysis of Algorithms, or Algorithms and Data Structures. This is usually taught as a sophomore level undergraduate, but its always taught again in grad school (at least for CS, not so much for the softer &quot;software management&quot; type programs. But anything about Big Oh, is essentially calculus. So you need that refresher first. Note: CS classes have a different definition of &quot;proof&quot; when they use Calculus than a Math or Applied Math course would expect. The CS folks allow a lot less rigor.</description>
		<content:encoded><![CDATA[<p>Analysis of Algorithms, or Algorithms and Data Structures. This is usually taught as a sophomore level undergraduate, but its always taught again in grad school (at least for CS, not so much for the softer &#8220;software management&#8221; type programs. But anything about Big Oh, is essentially calculus. So you need that refresher first. Note: CS classes have a different definition of &#8220;proof&#8221; when they use Calculus than a Math or Applied Math course would expect. The CS folks allow a lot less rigor.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jason Olshefsky</title>
		<link>http://www.kellbot.com/2009/11/most-useful-cs-classes/comment-page-1/#comment-6288</link>
		<dc:creator>Jason Olshefsky</dc:creator>
		<pubDate>Thu, 05 Nov 2009 12:49:14 +0000</pubDate>
		<guid isPermaLink="false">http://www.kellbot.com/?p=409#comment-6288</guid>
		<description>An assembly language course, even if you don&#039;t use it directly, will help tons when working with little processors like those in microcontrollers.  But I won&#039;t recommend it too strongly because I liked it more because that&#039;s what I was interested in.

I found that the things that stuck with me were the tangential information I gained from taking courses in unusual languages.  I can&#039;t remember much of anything about Lisp, Smalltalk, or Prolog, but because they forced me to think differently about how to program, I learned a lot about what I was doing.

Assembly language works too, but it can take you down the rabbit hole (i.e. I was coding recently and added two 8-bit values, but wanted them to stop at 255 rather than overflow; I had the space to do a 16-bit sum in C like the rest of the program, but instead I used the #asm macro to perform the add, then checked the carry bit of the processor.)

And the course I took on software testing and quality assurance was useful for understanding how to analyze software for complete testing.  Particularly for those finicky and critical routines that you want to guarantee to never fail.</description>
		<content:encoded><![CDATA[<p>An assembly language course, even if you don&#8217;t use it directly, will help tons when working with little processors like those in microcontrollers.  But I won&#8217;t recommend it too strongly because I liked it more because that&#8217;s what I was interested in.</p>
<p>I found that the things that stuck with me were the tangential information I gained from taking courses in unusual languages.  I can&#8217;t remember much of anything about Lisp, Smalltalk, or Prolog, but because they forced me to think differently about how to program, I learned a lot about what I was doing.</p>
<p>Assembly language works too, but it can take you down the rabbit hole (i.e. I was coding recently and added two 8-bit values, but wanted them to stop at 255 rather than overflow; I had the space to do a 16-bit sum in C like the rest of the program, but instead I used the #asm macro to perform the add, then checked the carry bit of the processor.)</p>
<p>And the course I took on software testing and quality assurance was useful for understanding how to analyze software for complete testing.  Particularly for those finicky and critical routines that you want to guarantee to never fail.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dan McKinley</title>
		<link>http://www.kellbot.com/2009/11/most-useful-cs-classes/comment-page-1/#comment-6286</link>
		<dc:creator>Dan McKinley</dc:creator>
		<pubDate>Thu, 05 Nov 2009 02:18:43 +0000</pubDate>
		<guid isPermaLink="false">http://www.kellbot.com/?p=409#comment-6286</guid>
		<description>Ok, the first one is definitely not. The second one might be but the mere fact that the first one exists casts doubts. My advice would be to learn concepts and not tools, so avoid anything called &quot;Language X Programming&quot; if you can.</description>
		<content:encoded><![CDATA[<p>Ok, the first one is definitely not. The second one might be but the mere fact that the first one exists casts doubts. My advice would be to learn concepts and not tools, so avoid anything called &#8220;Language X Programming&#8221; if you can.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kellbot</title>
		<link>http://www.kellbot.com/2009/11/most-useful-cs-classes/comment-page-1/#comment-6284</link>
		<dc:creator>Kellbot</dc:creator>
		<pubDate>Thu, 05 Nov 2009 01:53:17 +0000</pubDate>
		<guid isPermaLink="false">http://www.kellbot.com/?p=409#comment-6284</guid>
		<description>Looking at a course list which includes titles like &quot;Visual Basic for Technology&quot; and &quot;Introduction to Computer Networking&quot; I&#039;m going to beg to argue that they&#039;re not all useful. To me at least.

The community colleges I&#039;ve been looking at seem to lump the IT / IS courses in the same broad &quot;computer science&quot; category. I&#039;ve got nothing against IT, its just not super interesting to me. So unless there&#039;s something I&#039;m totally missing out on, I&#039;ll probably skip those in favor of more programming / data structures.</description>
		<content:encoded><![CDATA[<p>Looking at a course list which includes titles like &#8220;Visual Basic for Technology&#8221; and &#8220;Introduction to Computer Networking&#8221; I&#8217;m going to beg to argue that they&#8217;re not all useful. To me at least.</p>
<p>The community colleges I&#8217;ve been looking at seem to lump the IT / IS courses in the same broad &#8220;computer science&#8221; category. I&#8217;ve got nothing against IT, its just not super interesting to me. So unless there&#8217;s something I&#8217;m totally missing out on, I&#8217;ll probably skip those in favor of more programming / data structures.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dan McKinley</title>
		<link>http://www.kellbot.com/2009/11/most-useful-cs-classes/comment-page-1/#comment-6283</link>
		<dc:creator>Dan McKinley</dc:creator>
		<pubDate>Thu, 05 Nov 2009 01:35:31 +0000</pubDate>
		<guid isPermaLink="false">http://www.kellbot.com/?p=409#comment-6283</guid>
		<description>THEY ARE ALL USEFUL, but ok, I&#039;ll give you a list of &quot;things I use every day,&quot; organized into levels of advancement. 

Entry level, courses covering: 
 - Data structures (linked lists, trees, hash tables, etc). Super important. 
 - Basic algorithms like sorting/searching, big-O notation, recursion. Not that you really write a sort or any big-O notation all that often (though I do write searches all the time), but a feel for what things cost is good to develop.  

Mid-level: 
 - Take a class that involves functional programming. Sometimes these are found in math departments. 

Upper-level: operating systems, databases, advanced algorithms, compilers</description>
		<content:encoded><![CDATA[<p>THEY ARE ALL USEFUL, but ok, I&#8217;ll give you a list of &#8220;things I use every day,&#8221; organized into levels of advancement. </p>
<p>Entry level, courses covering:<br />
 &#8211; Data structures (linked lists, trees, hash tables, etc). Super important.<br />
 &#8211; Basic algorithms like sorting/searching, big-O notation, recursion. Not that you really write a sort or any big-O notation all that often (though I do write searches all the time), but a feel for what things cost is good to develop.  </p>
<p>Mid-level:<br />
 &#8211; Take a class that involves functional programming. Sometimes these are found in math departments. </p>
<p>Upper-level: operating systems, databases, advanced algorithms, compilers</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dave Cobb</title>
		<link>http://www.kellbot.com/2009/11/most-useful-cs-classes/comment-page-1/#comment-6282</link>
		<dc:creator>Dave Cobb</dc:creator>
		<pubDate>Thu, 05 Nov 2009 01:15:38 +0000</pubDate>
		<guid isPermaLink="false">http://www.kellbot.com/?p=409#comment-6282</guid>
		<description>Data Structures was a useful class as it taught how how to sort and traverse various lists and other structures in a timely manner.  Algorithms or something similar would be a good class as well.  Anything that helps you recognize algorithmic inefficiencies is aces (they&#039;ll talk a lot about &quot;big-O&quot; notation) since that is a real easy way to kill your program&#039;s performance.</description>
		<content:encoded><![CDATA[<p>Data Structures was a useful class as it taught how how to sort and traverse various lists and other structures in a timely manner.  Algorithms or something similar would be a good class as well.  Anything that helps you recognize algorithmic inefficiencies is aces (they&#8217;ll talk a lot about &#8220;big-O&#8221; notation) since that is a real easy way to kill your program&#8217;s performance.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

