<?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: Learning New Programming Languages</title>
	<atom:link href="http://lbrandy.com/blog/2008/09/learning-new-programming-languages/feed/" rel="self" type="application/rss+xml" />
	<link>http://lbrandy.com/blog/2008/09/learning-new-programming-languages/</link>
	<description>{ on programming and the internets, every monday }</description>
	<lastBuildDate>Mon, 23 Aug 2010 09:39:45 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: lbrandy.com &#187; Blog Archive &#187; On the Skillfulness of Developers (part 2/2)</title>
		<link>http://lbrandy.com/blog/2008/09/learning-new-programming-languages/comment-page-1/#comment-15153</link>
		<dc:creator>lbrandy.com &#187; Blog Archive &#187; On the Skillfulness of Developers (part 2/2)</dc:creator>
		<pubDate>Mon, 20 Jul 2009 12:21:30 +0000</pubDate>
		<guid isPermaLink="false">http://lbrandy.com/blog/?p=54#comment-15153</guid>
		<description>[...] First, and foremost, is practicing correctly. That doesn&#8217;t mean writing code often. It means writing hard code often. In much the same way I never really became comfortable with algebra until calculus, nor comfortable with calculus until electromagnetics, equally, you will never become comfortable with hard computer science constructs until you use them frequently. Linked lists cause students problems until they&#8217;ve written them half a dozen times. By writing hard code, you internalize the concepts. You&#8217;ll be ready to move on to increasingly more complicated mental abstractions. This type of practice builds up your mind&#8217;s endurance for dealing with complex mental models. And the good news is that it never ends. There are always extremely difficult concepts just out reach begging to be learned. Another excellent way to increase your programming aptitude is to learn new languages. It increases your versatility, as well, but for different reasons. As always, there is a right and a wrong way to do this. The wrong way to do it is to spend a week learning each on the most popular languages, and then slapping them onto your resume. Honestly, no one is going to believe you are an expert on C/C++, Ada, Java, Smalltalk, Lisp, Scheme, Haskell, Erlang, and Forth &#8212; even if you are. But if you did deeply knew all of those languages, your perspective on certain problems will drip with your experience.My advice goes one important step beyond learning the &#8220;correct&#8221; languages. There are many people who have made arguments about which languages you should learn to &#8220;expand your mind&#8221;. So I&#8217;ll spare you, save this: C and Lisp. Everyone should learn C and Lisp. The interesting part for me is how you know you&#8217;ve actually learned a language. Learning a new language doesn&#8217;t mean learning how to convert your C code into Python code. Hey look! You know Python! No, you don&#8217;t. I&#8217;ll tell you the secret: learning a new language is about learning how to think like programmers of that language.  Its about working with and understanding the philosophy of the language. Here is my rule: you&#8217;ve truly learned a language when it changes the way you write code in other languages. [...]</description>
		<content:encoded><![CDATA[<p>[...] First, and foremost, is practicing correctly. That doesn&#8217;t mean writing code often. It means writing hard code often. In much the same way I never really became comfortable with algebra until calculus, nor comfortable with calculus until electromagnetics, equally, you will never become comfortable with hard computer science constructs until you use them frequently. Linked lists cause students problems until they&#8217;ve written them half a dozen times. By writing hard code, you internalize the concepts. You&#8217;ll be ready to move on to increasingly more complicated mental abstractions. This type of practice builds up your mind&#8217;s endurance for dealing with complex mental models. And the good news is that it never ends. There are always extremely difficult concepts just out reach begging to be learned. Another excellent way to increase your programming aptitude is to learn new languages. It increases your versatility, as well, but for different reasons. As always, there is a right and a wrong way to do this. The wrong way to do it is to spend a week learning each on the most popular languages, and then slapping them onto your resume. Honestly, no one is going to believe you are an expert on C/C++, Ada, Java, Smalltalk, Lisp, Scheme, Haskell, Erlang, and Forth &#8212; even if you are. But if you did deeply knew all of those languages, your perspective on certain problems will drip with your experience.My advice goes one important step beyond learning the &#8220;correct&#8221; languages. There are many people who have made arguments about which languages you should learn to &#8220;expand your mind&#8221;. So I&#8217;ll spare you, save this: C and Lisp. Everyone should learn C and Lisp. The interesting part for me is how you know you&#8217;ve actually learned a language. Learning a new language doesn&#8217;t mean learning how to convert your C code into Python code. Hey look! You know Python! No, you don&#8217;t. I&#8217;ll tell you the secret: learning a new language is about learning how to think like programmers of that language.  Its about working with and understanding the philosophy of the language. Here is my rule: you&#8217;ve truly learned a language when it changes the way you write code in other languages. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: language learn</title>
		<link>http://lbrandy.com/blog/2008/09/learning-new-programming-languages/comment-page-1/#comment-6174</link>
		<dc:creator>language learn</dc:creator>
		<pubDate>Wed, 06 May 2009 09:13:25 +0000</pubDate>
		<guid isPermaLink="false">http://lbrandy.com/blog/?p=54#comment-6174</guid>
		<description>&lt;strong&gt;language learn...&lt;/strong&gt;

One most informative article i have read in a while....</description>
		<content:encoded><![CDATA[<p><strong>language learn&#8230;</strong></p>
<p>One most informative article i have read in a while&#8230;.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Federico</title>
		<link>http://lbrandy.com/blog/2008/09/learning-new-programming-languages/comment-page-1/#comment-77</link>
		<dc:creator>Federico</dc:creator>
		<pubDate>Wed, 17 Sep 2008 19:26:10 +0000</pubDate>
		<guid isPermaLink="false">http://lbrandy.com/blog/?p=54#comment-77</guid>
		<description>I particularly liked the definition of an expert. I would add, as Niels Bohr had it, &quot;An expert is someone who has made all possible mistakes in a very narrow field.&quot;</description>
		<content:encoded><![CDATA[<p>I particularly liked the definition of an expert. I would add, as Niels Bohr had it, &#8220;An expert is someone who has made all possible mistakes in a very narrow field.&#8221;</p>
]]></content:encoded>
	</item>
</channel>
</rss>
