<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Virtuous Code &#187; education</title>
	<atom:link href="http://devblog.avdi.org/tag/education/feed/" rel="self" type="application/rss+xml" />
	<link>http://devblog.avdi.org</link>
	<description>&#34;The three virtues of a programmer: laziness, impatience, and hubris&#34; -- Larry Wall</description>
	<lastBuildDate>Fri, 17 May 2013 15:24:41 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>A Game Development Curriculum</title>
		<link>http://devblog.avdi.org/2012/01/24/a-game-development-curriculum/</link>
		<comments>http://devblog.avdi.org/2012/01/24/a-game-development-curriculum/#comments</comments>
		<pubDate>Tue, 24 Jan 2012 14:30:00 +0000</pubDate>
		<dc:creator>Avdi Grimm</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[Education]]></category>
		<category><![CDATA[books]]></category>
		<category><![CDATA[c++]]></category>
		<category><![CDATA[education]]></category>
		<category><![CDATA[games]]></category>
		<category><![CDATA[lisp]]></category>

		<guid isPermaLink="false">http://avdi.org/devblog/?p=1996</guid>
		<description><![CDATA[Along with every other hacker on the planet, I got into programming because I wanted to write games. It wasn&#8217;t long at all, though, before I learned that the greatest game of all is teaching the machine to do your &#8230; <a href="http://devblog.avdi.org/2012/01/24/a-game-development-curriculum/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Along with every other hacker on the planet, I got into programming because I wanted to write games. It wasn&#8217;t long at all, though, before I learned that the greatest game of all is teaching the machine to do your will and get things done. I lost interest in game development pretty quickly and moved on to systems and application programming.</p>
<p>My son J. is almost 16, and he wants to write games too. However, in his case I have reason to believe he&#8217;s a lot more serious about the &#8220;games&#8221; aspect than I ever was. So I&#8217;m trying to put together a curriculum with an emphasis on game programming. This is a little tricky, since it&#8217;s a sub-field I have little connection to.</p>
<p>Here&#8217;s what I have so far, with many thanks to the folks on Twitter who helped me narrow down the list: (Book links include my Amazon affiliate code.)</p>
<p><strong><a href="http://www.amazon.com/Learn-Program-Second-Facets-Ruby/dp/1934356360%3FSubscriptionId%3DAKIAIRXKO4LLU2ACVMRQ%26tag%3Dthlafa-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D1934356360"><img class="alignleft" src="http://ecx.images-amazon.com/images/I/51mMkUpi8qL._SL75_.jpg" alt="" width="63" height="75" /></a><a href="http://www.amazon.com/Learn-Program-Second-Facets-Ruby/dp/1934356360%3FSubscriptionId%3DAKIAIRXKO4LLU2ACVMRQ%26tag%3Dthlafa-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D1934356360">Learn to Program, by Chris Pine</a>.</strong> While I already have him working on <a href="http://hackety.com/">Hackety Hack</a>, I honestly hesitated to make Ruby his first language. Ruby is a programmer&#8217;s language; it has an enormous amount of syntax and many ways to do something. I worry that, as with C++, it will make learning the basics more difficult because it will be hard to separate the fundamentals from the incidentals.</p>
<p>After thinking about it for a while I came around, though. My reasons:</p>
<ol>
<li>Ruby is the language I&#8217;m most fluent in at the moment. I&#8217;ll have no trouble helping him with any roadblocks he might run into.</li>
<li>He&#8217;s going to run into OO programming eventually, and I want his first contact to be with a strongly Alan Kay-inspired language. Rather than having to come around to that understanding the long way round, as I did. So no C++, Java, or Python as a first OO language. That pretty much means Smalltalk or Ruby, and of the two Ruby is probably more generally useful these days.</li>
<li>Finally, there are some Ruby game development bindings like <a href="http://www.libgosu.org/">Gosu</a> that will let him have some fun even before diving into the more hardcore C/C++ stuff.</li>
</ol>
<p>I suppose Javascript would fit the bill as well, and has the advantage of being ever-so-accessible inside the nearest browser. That said, for all that there is a beautiful language hidden in it, Javscript has more than it&#8217;s share of warts. I think in some ways Javascript might have even more of a fundamentals-obscured-by-incidentals problem than Ruby. Tough call though; I could definitely see starting with Javascript, especially if the student were most interested in programming for the web.</p>
<p><strong><a href="http://www.amazon.com/Land-of-Lisp-ebook/dp/B004AE3P4K%3FSubscriptionId%3DAKIAIRXKO4LLU2ACVMRQ%26tag%3Dthlafa-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB004AE3P4K"><img class="alignright" src="http://ecx.images-amazon.com/images/I/515ZuOjktML._SL75_.jpg" alt="" width="57" height="75" /></a><a href="http://www.amazon.com/Land-of-Lisp-ebook/dp/B004AE3P4K%3FSubscriptionId%3DAKIAIRXKO4LLU2ACVMRQ%26tag%3Dthlafa-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB004AE3P4K">Land of Lisp</a>, by Conrad Barsky.</strong> A timely book: it&#8217;s our next <a href="http://rubyrogues.com/">Ruby Rogues</a> book club book. It&#8217;s about Lisp, which I want to give J. early exposure to, for ever so many reasons. And it&#8217;s about writing games. Win!</p>
<p><strong><a href="http://www.amazon.com/C-Primer-Plus-5th-ebook/dp/B0050G2RA0%3FSubscriptionId%3DAKIAIRXKO4LLU2ACVMRQ%26tag%3Dthlafa-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB0050G2RA0"><img class="alignleft" src="http://ecx.images-amazon.com/images/I/41eQuM8js5L._SL75_.jpg" alt="" width="61" height="75" /></a><a href="http://www.amazon.com/C-Primer-Plus-5th-ebook/dp/B0050G2RA0%3FSubscriptionId%3DAKIAIRXKO4LLU2ACVMRQ%26tag%3Dthlafa-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB0050G2RA0">C Primer Plus</a>, by Stephen Prata.</strong> For someone interested in web applications I might wait C until much later. But if it&#8217;s games you want to build, you simply can&#8217;t avoid C. Eventually you&#8217;re going to find yourself writing OpenGL or DirectX code. Even if you&#8217;re writing it in a higher level language, chances are the API documentation will be for the C/C++ API, so a basic understanding of C is essential.</p>
<p>And anyway, a little C goes a long way towards understanding just what the hell the computer is up to.</p>
<p><strong><a href="http://www.amazon.com/Blender-Foundations-Essential-Guide-Learning/dp/0240814304%3FSubscriptionId%3DAKIAIRXKO4LLU2ACVMRQ%26tag%3Dthlafa-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D0240814304"><img class="alignright" src="http://ecx.images-amazon.com/images/I/51BoB-m-Q-L._SL75_.jpg" alt="" width="60" height="75" /></a><a href="http://www.amazon.com/Blender-Foundations-Essential-Guide-Learning/dp/0240814304%3FSubscriptionId%3DAKIAIRXKO4LLU2ACVMRQ%26tag%3Dthlafa-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D0240814304">Blender Foundations</a>, by Roland Hess.</strong> J. is particularly interested in modeling. I don&#8217;t know jack squat about 3D modeling, but I know Blender is free, Open Source, and widely used. I suspect I won&#8217;t need to give him much guidance in this area beyond giving him the tools he needs to get started.</p>
<p><strong><a href="http://www.amazon.com/Accelerated-C-Practical-Programming-Example/dp/020170353X%3FSubscriptionId%3DAKIAIRXKO4LLU2ACVMRQ%26tag%3Dthlafa-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D020170353X"><img class="alignleft" src="http://ecx.images-amazon.com/images/I/51XZZ9RV4BL._SL75_.jpg" alt="" width="60" height="75" /></a>Some C++ book, TBD.</strong> I suspect this will be a necessity for understanding later OpenGL texts and working with various game SDKs. If he does well with the earlier languages I&#8217;ll probably give him <a href="http://www.amazon.com/Accelerated-C-Practical-Programming-Example/dp/020170353X%3FSubscriptionId%3DAKIAIRXKO4LLU2ACVMRQ%26tag%3Dthlafa-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D020170353X">Accelerated C++</a>; or maybe I&#8217;ll just go over the basics with him myself without resorting to a text.</p>
<p><strong><a href="http://www.amazon.com/OpenGL-SuperBible-Comprehensive-Tutorial-Reference/dp/0321712617%3FSubscriptionId%3DAKIAIRXKO4LLU2ACVMRQ%26tag%3Dthlafa-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D0321712617"><img class="alignright" src="http://ecx.images-amazon.com/images/I/51juHDYZeSL._SL75_.jpg" alt="" width="60" height="75" /></a><a href="http://www.amazon.com/OpenGL-SuperBible-Comprehensive-Tutorial-Reference/dp/0321712617%3FSubscriptionId%3DAKIAIRXKO4LLU2ACVMRQ%26tag%3Dthlafa-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D0321712617">OpenGL SuperBible</a></strong>: this one seems to come reasonably well recommended. And honestly I would <strong>love</strong> to learn some OpenGL along with him.</p>
<p>That&#8217;s what I&#8217;ve got so far. Any other suggestions?</p>
]]></content:encoded>
			<wfw:commentRss>http://devblog.avdi.org/2012/01/24/a-game-development-curriculum/feed/</wfw:commentRss>
		<slash:comments>24</slash:comments>
		</item>
		<item>
		<title>Letter to a Young Developer</title>
		<link>http://devblog.avdi.org/2011/08/19/letter-to-a-young-developer/</link>
		<comments>http://devblog.avdi.org/2011/08/19/letter-to-a-young-developer/#comments</comments>
		<pubDate>Fri, 19 Aug 2011 20:06:00 +0000</pubDate>
		<dc:creator>Avdi Grimm</dc:creator>
				<category><![CDATA[Howto]]></category>
		<category><![CDATA[education]]></category>
		<category><![CDATA[learning]]></category>

		<guid isPermaLink="false">http://avdi.org/devblog/?p=1574</guid>
		<description><![CDATA[I&#8217;ve been getting some emails from young developers wanting to &#8220;level up&#8221; as programmers. I&#8217;m definitely not the first to write about this topic, so I&#8217;m not sure how much I have to add. Still, for what it&#8217;s worth here &#8230; <a href="http://devblog.avdi.org/2011/08/19/letter-to-a-young-developer/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>I&#8217;ve been getting some emails from young developers wanting to &#8220;level up&#8221; as programmers. I&#8217;m definitely <a href="http://jasonrudolph.com/blog/2011/08/09/programming-achievements-how-to-level-up-as-a-developer/">not the first to write about this topic</a>, so I&#8217;m not sure how much I have to add. Still, for what it&#8217;s worth here are a few points off the top of my head:</p>
<ul>
<li>Work with other developers. We are at a wonderful time in the history of technology when for the first time, it doesn&#8217;t really matter where you are or who you are working for. So long as you have a decent internet connection, you can pair up with another developer anywhere in the world and work on some code together. More and more experienced developers I know are offering their time for this kind of knowledge sharing. My friend Evan Light<a href="https://www.google.com/calendar/b/0/selfsched?sstoken=UUlObzFJX0NnQnN5fGRlZmF1bHR8NDkxMWNkMTcyYTM0OGQ1YzE1NmQ5NmNhYjhlZWQ4OTk"> holds open office hours</a>, and is developing <a href="https://github.com/rubypair/rubypair">a site to help Rubyists  pair up</a>. I&#8217;ve been doing this for a while as well. Want to work on some FLOSS code? Email me and we&#8217;ll set something up.</li>
<li>Read the classics. <a href="http://www.amazon.com/Code-Complete-Practical-Handbook-Construction/dp/0735619670%3FSubscriptionId%3DAKIAIRXKO4LLU2ACVMRQ%26tag%3Dthlafa-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D0735619670">Code Complete</a>, <a href="http://www.amazon.com/Pragmatic-Programmer-Journeyman-Master/dp/020161622X%3FSubscriptionId%3DAKIAIRXKO4LLU2ACVMRQ%26tag%3Dthlafa-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D020161622X">The Pragmatic Programmer</a>, <a href="http://www.amazon.com/Practice-Programming-Brian-W-Kernighan/dp/020161586X%3FSubscriptionId%3DAKIAIRXKO4LLU2ACVMRQ%26tag%3Dthlafa-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D020161586X">The Practice of Programming</a>, <a href="http://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612%3FSubscriptionId%3DAKIAIRXKO4LLU2ACVMRQ%26tag%3Dthlafa-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D0201633612">Design Patterns</a>. Etc.</li>
<li>Read <a href="http://c2.com/cgi/wiki">WikiWiki</a> (sometimes known as WardsWiki). I can&#8217;t stress this enough. Sometimes I think I learned everything I really needed to know about programming  from surfing WikiWiki on slow days.</li>
<li>Read other people&#8217;s code. Hooray for GitHub! If you want to start with a more curated collection and you know some Ruby, try <a href="http://www.amazon.com/Best-Ruby-Quiz-Pragmatic-Programmers/dp/0976694077%3FSubscriptionId%3DAKIAIRXKO4LLU2ACVMRQ%26tag%3Dthlafa-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D0976694077">Best of Ruby Quiz</a>.</li>
<li>Get involved in your local user&#8217;s groups. If they don&#8217;t exist, start one. And <strong>submit talks</strong>. I don&#8217;t care how much of a n00b you think you are. There is <em>nothing</em> better than committing to a talk to force you to to learn all about a topic.</li>
<li>Write a blog. Don&#8217;t worry about being original. Some of the most useful blogs out there are a largely a chronicle of a programmer&#8217;s experiments and mistakes, and how they overcame problems. Reflection is one of the most important parts of learning, and writing helps you reflect. And sooner than you think you&#8217;ll be getting feedback from other programmers.</li>
<li>I&#8217;m sure you&#8217;ve heard this one before: submit patches to an Open Source project.</li>
<li>Flip a coin. Heads pick <a href="http://www.vim.org/">Vim</a>, tails pick <a href="http://www.gnu.org/software/emacs/">Emacs</a>. Start learning to use the editor that came up. Either one will grow with you for the rest of your programming career. Strong, flexible tools make good coders even better.</li>
<li>Learn more than one language. But first learn one language <em>well.</em> You need a go-to language where you can get an idea and bang out a first version in a day, without spending a lot of time learning about bits of the language you&#8217;d missed or forgotten. But once you have that one, you need new languages to challenge all the assumptions that first language taught you. Pick languages that are widely divergent in styles. From what I&#8217;ve seen <a href="http://www.amazon.com/Seven-Languages-Weeks-Programming-Programmers/dp/193435659X%3FSubscriptionId%3DAKIAIRXKO4LLU2ACVMRQ%26tag%3Dthlafa-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D193435659X">Seven Languages in Seven Weeks</a> does a good job of covering a wide array of programming paradigms.</li>
<li>Get on the mailing lists for the languages and platforms you use. People sometimes forget that there&#8217;s a whole world of great discussion beyond blogs, Hacker News, and Twitter. Mailing lists are often very civil and helpful places compared to those other venues.</li>
<li><a href="http://stackoverflow.com/">StackOverflow</a> is your friend.</li>
<li>Don&#8217;t spend too much time researching the &#8220;best&#8221; tool for something. I used to badly hobble my productivity by spending days or weeks trying to find the very <em>best</em> obscure framework for the project I was about to start. Don&#8217;t fall into this trap. When you&#8217;re a relatively inexperienced developer, pick languages and frameworks that have <em>lots of users</em> to start with. It&#8217;s more important that you know where to go when you run into a roadblock, then that you pick the perfect tool.</li>
<li>Look for apprenticeship opportunities.</li>
<li>And of course: practice, practice, practice. Write code at work. Write code at home. Practice <a href="http://en.wikipedia.org/wiki/Kata_(programming)">code katas</a>. Programming is no different from any other skill: in the end, it all comes down to practice.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://devblog.avdi.org/2011/08/19/letter-to-a-young-developer/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>YAGNI: Answers to some common objections to dropping out</title>
		<link>http://devblog.avdi.org/2010/05/27/yagni-answers-to-some-common-objections-to-dropping-out/</link>
		<comments>http://devblog.avdi.org/2010/05/27/yagni-answers-to-some-common-objections-to-dropping-out/#comments</comments>
		<pubDate>Fri, 28 May 2010 05:31:14 +0000</pubDate>
		<dc:creator>Avdi Grimm</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[education]]></category>

		<guid isPermaLink="false">http://avdi.org/devblog/?p=663</guid>
		<description><![CDATA[As a follow-up to this post, here are some common objections to the argument that a young software developer is better off dropping out. (For the uninitiated, YAGNI is short for You Aren&#8217;t Gonna Need It. It is one of &#8230; <a href="http://devblog.avdi.org/2010/05/27/yagni-answers-to-some-common-objections-to-dropping-out/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>As a follow-up to <a href="http://avdi.org/devblog/2010/05/24/turn-on-tune-in-drop-out/">this post</a>, here are some common objections to the argument that a young software developer is better off dropping out. (For the uninitiated, <a href="http://c2.com/xp/YouArentGonnaNeedIt.html">YAGNI</a> is short for You Aren&#8217;t Gonna Need It. It is one of the core principles of the eXtreme Programming methodology)</p>
<p>First, some numbers: <strong>$28,080</strong> (or the price of a brand-new top-of-the-line <a href="http://www.toyota.com/prius-hybrid/trims-prices.html#/?view=showroom&amp;vehicle=3">Prius</a>) is the average four-year tuition at a state school as of 2010. <strong>$105,092</strong> (or the price of owning a starter home free and clear) is the average cost of tuition at a private university. Let&#8217;s split the difference and say <strong>$67,000</strong> is the monetary cost of a four-year degree.</p>
<p>EDIT: One commenter objects to the use of the median number $67,700 in this article. If you have the same problem, I invite you to replace every instance of &#8220;<strong>$67,000&#8243;</strong> with either of the numbers cited above, or simply with the phrase <strong>&#8220;a metric fuckload of moolah&#8221;</strong>. My arguments stand regardless of which figure you use.<br />
Now, on to the objections.</p>
<blockquote><p>Most people won&#8217;t get the educational equivalent of four years of concentrated focus on algorithms, OO design, performance analysis, compiler design, etc. while on the job.</p></blockquote>
<p>There are a few fallacies going into this argument.</p>
<p>First, I&#8217;ve spoken to dozens of developers about their college educations, and the <em>universal</em> consensus has been that once in the working world, they only used a fraction of what they learned in college &#8211; and then needed to learn many more things that <em>hadn&#8217;t</em> been on the curriculum. Let&#8217;s be charitable and say that you&#8217;ll use 10% of what you learned in school on the job. 10% of four years, that&#8217;s, let&#8217;s see, 21 weeks worth of schooling.</p>
<p>So what we&#8217;re really asking is whether it&#8217;s possible to get the equivalent of <strong>five months</strong> of higher education on the job. It starts to seem a little more reasonable, doesn&#8217;t it?</p>
<p>Second is a fallacy that I run into constantly in education discussions. It&#8217;s the idea that the time it takes to learn a new skill is constant, regardless of context. It&#8217;s exemplified by the argument &#8220;that took me six months to learn when I was in school, so if you haven&#8217;t spent six months on it, you haven&#8217;t really learned it&#8221;.</p>
<p>But this simply isn&#8217;t true. Graduates can (and do) come out of school with a still-hazy understanding of how Object-Oriented design applies to real-world problems. But give them three months with a team of more experienced developers writing software to manage a nationwide logistics system, and they&#8217;ll know the subject backwards and forwards. You can learn more in a week of watching an expert engineer dissect and address a problem than you can in a whole semester of lecture and canned exercises.</p>
<p>Finally, the implication with this objection is that while it may be <em>possible</em> to get educated on the job, most developers simply won&#8217;t avail themselves of the opportunity and will remain at a disorganized code-monkey state of ability.</p>
<p>My answer to this is simple: such developers probably wouldn&#8217;t have integrated more knowledge if they <em>had</em> finished a four-year program, and they don&#8217;t belong on my team or any team that wants to ship quality software. Period.</p>
<p>Ask any senior developer what they look for in a job candidate, and I guarantee that one of their top three attributes will be &#8220;a fast learner&#8221;. The nature of this industry is that if you want to stay on the cutting edge<strong>, you have to effectively re-learn everything you know every five years</strong>. If you can&#8217;t or won&#8217;t learn the ropes on your own initiative, chances are you&#8217;re not going to keep up when the game changes in five years. Better to get out of the game now.</p>
<blockquote><p>Maybe you can learn most skills on the job, but what about the fundamentals of computing? A great professor can give you a solid foundation that you might miss in haphazard just-in-time learning.</p></blockquote>
<p>The one course that I&#8217;ve seen consistently remembered as a important or even life-changing by CS grads is the introductory course based on <a href="http://mitpress.mit.edu/catalog/item/default.asp?ttype=2&amp;tid=3305">Structure and Interpretation of Computer Programs</a>, aka the Wizard Book. As it happens, both <a href="http://mitpress.mit.edu/sicp/">the book</a> and <a href="http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/">video of the lectures</a> by the authors are available online for free, along with much of MIT&#8217;s <a href="http://ocw.mit.edu/OcwWeb/web/home/home/index.htm">other courseware</a>. Problem solved.</p>
<p>Which reminds me, I really need to pick up watching those videos again&#8230;</p>
<blockquote><p>Even if it doesn&#8217;t do much for your career, college is a unique experience which grows your perspectives and knowledge of yourself.</p></blockquote>
<p>There are any number of things you could choose to do upon graduating high school. Here are a few ideas:</p>
<ul>
<li>Join the Peace Corp, and do humanitarian work overseas.</li>
<li>Hitchhike around the country, couch-surfing and busking on street corners with a guitar and a harmonica.</li>
<li>Take a job on a farm. Sling hay bales, deliver calves, and go line-dancing on the weekends.</li>
<li>Backpack across Europe.</li>
<li>Go to college.</li>
</ul>
<p>Any of these choices will expand your horizons, introduce you to new people, and teach you more about yourself. Only one of them will cost you <strong>$67,000</strong>.</p>
<p>The notion that college is a way to broaden your perspective early in life is absolutely true. The idea that it&#8217;s the <em>only</em> way is silly. It&#8217;s certainly not the cheapest way.</p>
<blockquote><p>College is an important social experience.</p></blockquote>
<p>We&#8217;re a little off-track now, since the question at hand is whether college is a worthwhile preparation for a programming career, not whether it will get you laid. But it&#8217;s true that this is my biggest regret in not going to a four-year school. I&#8217;m frankly envious of the college social experiences a lot of my peers had while I was working.</p>
<p>But if you&#8217;re making this argument, it behooves you to at least be honest about it: you&#8217;re telling a student to spend $67,000 over four years in order to socialize. Is it worth it?</p>
<h3>Conclusion</h3>
<p>What I hope you take away from these articles is that the decision to go to college, like any other major life decision, should be subject to a cost/benefit analysis. I&#8217;ve done the math for my particular industry, and found the argument for getting a degree wanting. On the benefit side you have a marginal amount of work preparedness, all of which could be gathered in other ways; and an increasingly irrelevant piece of paper. On the cost side you have tens of thousands either in out-of-pocket cost or student loan debt, plus four years time, salary, networking, and vital hands-on experience lost. It just doesn&#8217;t add up.</p>
]]></content:encoded>
			<wfw:commentRss>http://devblog.avdi.org/2010/05/27/yagni-answers-to-some-common-objections-to-dropping-out/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Turn on, tune in, drop out</title>
		<link>http://devblog.avdi.org/2010/05/24/turn-on-tune-in-drop-out/</link>
		<comments>http://devblog.avdi.org/2010/05/24/turn-on-tune-in-drop-out/#comments</comments>
		<pubDate>Mon, 24 May 2010 13:24:32 +0000</pubDate>
		<dc:creator>Avdi Grimm</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[career]]></category>
		<category><![CDATA[education]]></category>

		<guid isPermaLink="false">http://avdi.org/devblog/?p=632</guid>
		<description><![CDATA[Seth Godin: Why do colleges send millions (!) of undifferentiated pieces of junk mail to high school students [...]? Biggest reason: So the schools can reject more applicants. The more applicants they reject, the higher they rank in US News &#8230; <a href="http://devblog.avdi.org/2010/05/24/turn-on-tune-in-drop-out/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-633" title="Turn On Tune In Drop Out" src="http://virtuouscode.com/wp-content/uploads/2010/05/leary_cover.gif" alt="Turn On Tune In Drop Out" width="574" height="527" /></p>
<p><a href="http://sethgodin.typepad.com/seths_blog/2010/04/the-coming-meltdown-in-higher-education-as-seen-by-a-marketer.html">Seth Godin</a>:</p>
<blockquote>
<p style="margin-top: 10px; margin-bottom: 10px; text-align: left;">Why do colleges send millions (!) of undifferentiated pieces of junk mail to high school students [...]? Biggest reason: So the schools can reject more applicants. The more applicants they reject, the higher they rank in US News and other rankings. [...] Why bother making your education more useful if you can more easily make it <strong>appear</strong>to be more useful?[...] a degree (from one of those famous schools, with or without a football team) doesn&#8217;t translate into significantly better career opportunities, a better job or more happiness than a degree from a cheaper institution.[...] A lot of these ills are the result of uniform accreditation programs that have pushed high-cost, low-reward policies on institutions and rewarded schools that churn out young wanna-be professors instead of experiences that turn out leaders and problem-solvers.</p>
<p style="margin-top: 10px; margin-bottom: 10px; text-align: left;">[...]there are tons of ways to get a cheap, liberal education, one that exposes you to the world, permits you to have significant interactions with people who matter and to learn to make a difference (start <a style="text-decoration: underline; color: #cc6600;" href="http://www.amazon.com/DIY-Edupunks-Edupreneurs-Transformation-Education/dp/1603582347/permissionmarket">here</a>). Most of these ways, though, aren&#8217;t heavily marketed nor do they involve going to a tradition-steeped two-hundred-year old institution with a wrestling team.</p>
</blockquote>
<p style="margin-top: 10px; margin-bottom: 10px; text-align: left;"><a href="http://reason.com/archives/2010/05/20/whats-a-diploma-worth">Tim Cavanaugh</a>:</p>
<blockquote>
<p style="margin-top: 10px; margin-bottom: 10px; text-align: left;">Student borrowing has more than doubled since the end of the 20th century, according to the College Board, with $85 billion in loans in 2008, up from $41 billion in 1998. And as the rising rate of defaults indicates, borrowers in aggregate are not making the kind of mone&#8211;i.e. twice as much as a decade ago&#8211;they would need to pay those loans back [....] we have too much money going into an asset, not enough value coming out, a massive increase in leverage, and a large taxpayer liability for the difference. [...]The traditional university of ivied walls, lecture halls, and full-dress balls is heading for a crisis. [...] If diplomas are going to continue costing more and losing value, then at least the customers should have more choice when shopping around for them.</p>
</blockquote>
<p><a href="http://gilesbowkett.blogspot.com/2010/05/college-is-bullshit-i-am-future.html">Giles Bowkett</a>:</p>
<blockquote><p>Wages have not risen since the 1970s for workers with college degrees. Wages have <em>diminished</em> since the 70s for workers without college degrees. However, in that same period of time, CEO pay has gone from 40 times worker pay to 500 times worker pay. What&#8217;s happening here is class distinctions growing tremendously, and in a society where class distinctions matter a great deal, the <em>perceived</em> value of a college degree skyrockets, even as the economic advantage that it used to give you deteriorates into nothing. In a society where social class and family background can profoundly distort economic achievement, a mark of prestige like a college degree goes way up in price, because without it, you&#8217;re just a member of the working class. (Oh noez!) Colleges are selling liferafts on a sinking ship, and that gives them a license to print money.</p></blockquote>
<p><a href="http://davetroy.com/posts/will-that-be-on-the-test">Dave Troy</a>:</p>
<blockquote>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5385em; margin-left: 0px; padding: 0px;">The unrelenting message is, &#8220;If you don&#8217;t go to college, you won&#8217;t be successful.&#8221; [...]</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5385em; margin-left: 0px; padding: 0px;">There&#8217;s no doubt that everyone is different; not everyone is suited for the same kind of work &#8212; thankfully. But western society has perverted that simple beautiful fact &#8212; and the questions it prompts about college education &#8212; into &#8220;<strong><a style="padding-top: 1px; padding-right: 0px; padding-bottom: 1px; padding-left: 0px; color: #d2382c; text-decoration: none; border-bottom-width: 1px; border-bottom-style: solid; border-color: #a2b09d; margin: 0px;" href="http://www.nytimes.com/2010/05/16/weekinreview/16steinberg.html">Not everyone is cut out for college</a>,&#8221;</strong> as though college was the pinnacle of achievement, and everybody else has to work on Diesel engines or be a blacksmith. <em>Because mechanics and artists are valuable too.</em></p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5385em; margin-left: 0px; padding: 0px;">That line of thinking is the most cynical, evil load of horse-shit to ever fall out of our educational system. <strong>Real-life learning is not linear.</strong> It can be <strong>cyclical</strong> and <strong>progressive</strong> and it takes side-trips, U-turns, mistakes, and apprenticeships to experience everything our humanity offers us.</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5385em; margin-left: 0px; padding: 0px;">The notion that a college education is a safety net that people must have in order to avoid a life of destitution, that &#8220;it makes it more likely that you will always have a job&#8221; is also utterly cynical, and uses fear to scare people into not relying on themselves. <strong>Young people should be confident and self-reliant</strong>, not told that they will fail.</p>
</blockquote>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5385em; margin-left: 0px; padding: 0px;">I have a an admitted bias in this discussion. My only higher education experience was a few part-time semesters of community college. I started writing software full-time at age 18, when most of my peers were entering college.</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5385em; margin-left: 0px; padding: 0px;">For years I felt guilty about that. Everyone advised me to get back into school at my earliest opportunity. My bosses freely admitted that while I was working above my grade, they were unable to promote me because I didn&#8217;t have a degree. At one point I even enrolled in a continuing education school, and almost immediately got a massive pay raise on the mere <em>prospect</em> that I was going to go &#8220;legitimate&#8221; and get the piece of paper stating that I knew how to do the job I&#8217;d been performing for years. Meanwhile, I learned more about the practice of software development from <a href="http://www.amazon.com/gp/product/1556154844?ie=UTF8&amp;tag=thlafa-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=1556154844">books</a><img style="border:none !important; margin:0px !important;" src="http://www.assoc-amazon.com/e/ir?t=thlafa-20&amp;l=as2&amp;o=1&amp;a=1556154844" border="0" alt="" width="1" height="1" />, <a href="http://c2.com/cgi/wiki">free online resource</a>s, and hands-on experience than the college fresh-outs had learned in four years of school.</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5385em; margin-left: 0px; padding: 0px;">All this time my advice to aspiring developers was still to ignore my example and finish school.</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5385em; margin-left: 0px; padding: 0px;">Then one day I took a good long look at my career and realized that while I had an immense amount of respect for the people who were telling me to get my degree, I didn&#8217;t envy their <em>careers</em> in the slightest. I realized that the one thing a degree would buy me was a management-track career in the sort of organization that discriminates against employees because of a piece of paper. I also noticed that the kids who were going to school were coming out saddled with student loans that they would spend the next couple decades repaying. With the economy going down the tubes as a result of a credit crisis, this started to seem like less and less of an auspicious way to start out a career.</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5385em; margin-left: 0px; padding: 0px;">I realized, too, that my time was limited, and that any after-hours time I spent in classes and on homework was time I wasn&#8217;t going to be spending attending users groups, writing Open Source software, and networking. And that it was those latter activities that were measurably more likely to move my career forward in the direction I wanted it to take.</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5385em; margin-left: 0px; padding: 0px;">I dropped all pretense of &#8220;going back to school someday&#8221;. Instead I focused on contributing the software community, building my network of contacts, and becoming the best at my craft. The results of this strategy speak for themselves: for the past several years I have enjoyed steadily increasing job satisfaction, <a href="http://wearetitans.net/">worked with amazing people</a>, enjoyed community recognition, and realized my dreams of working from home, surrounded by my family.</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5385em; margin-left: 0px; padding: 0px;">Today my advice to a young developer who is passionate about building great software is to <strong>drop out</strong>. Spend your time learning by doing, attending your local users groups, participating in mailing lists, contributing patches to Open Source software. Don&#8217;t <em>learn</em> to write software and work in teams; <em>write software, and build teams. </em>The paid work will come to you.</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5385em; margin-left: 0px; padding: 0px;">Of course, this only applies if you want a career like mine. If you want to do pure CS research, stay in school. If you want to work for a larger, older organization (including Google), get that degree. And if you&#8217;re only in a CS program because you heard there&#8217;s good money in software, well, frankly you should get the hell out of this industry and find something you genuinely enjoy. There are plenty of software wage-slaves in the developing world who would be happy to do a mediocre job at a fraction of the salary you&#8217;re expecting to earn.</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5385em; margin-left: 0px; padding: 0px;">Of course, YMMV. Results are not guaranteed. Consult your doctor, therapist, or priest to determine if this path is right for you. Just remember that your elders are coming from a time when having a degree was actually correlated with having a better life.</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5385em; margin-left: 0px; padding: 0px;">On the larger question of how to improve the education situation, I agree with Dave Troy and Seth Godin that we need new models of education, not simply reform of colleges. Toward that end, signs point to apprenticeship as the most promising model to build on. I&#8217;ve been hearing of more and more forward-thinking software companies embracing apprenticeship, and I think it&#8217;s a move in the right direction.</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5385em; margin-left: 0px; padding: 0px;">I don&#8217;t know how applicable my path or the apprenticeship model is to fields outside of software development. Giles Bowkett is right that the accredited college system isn&#8217;t just going to fade away into irrelevance. But in true Internet fashion, I look forward to seeing alternative approaches route around the establishment entirely.</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5385em; margin-left: 0px; padding: 0px;">UPDATE: John Trupiano points me to <a href="http://www.codeanthem.com/blog/2010/05/what-is-a-ms-in-computer-science-worth/">a related post</a> about the sense of entitlement that often comes along with a CS degree. I think what we&#8217;re seeing here is a generational clash: the old rules about greater education automatically conferring an elevated position simply don&#8217;t apply to this industry. Unfortunately, like light from a dead star the messages young developers get are still coming from that old, vanished world. One of my motivations in writing this article is that I&#8217;ve noticed while most people in the industry recognize this shift, few will come right out and tell aspiring programmers that they&#8217;d be better off dropping out.</p>
<blockquote>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.5385em; margin-left: 0px; padding: 0px;">
</blockquote>
<p>[ad#PostInline]</p>
]]></content:encoded>
			<wfw:commentRss>http://devblog.avdi.org/2010/05/24/turn-on-tune-in-drop-out/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
	</channel>
</rss>
