<?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: Starting from Scratch &#8211; Part 1</title>
	<atom:link href="http://www.algorithm.co.il/blogs/programming/starting-from-scratch-part-1/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.algorithm.co.il/blogs/programming/starting-from-scratch-part-1/</link>
	<description>Algorithms, for the heck of it</description>
	<lastBuildDate>Tue, 21 Jun 2011 21:07:08 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
	<item>
		<title>By: lorg</title>
		<link>http://www.algorithm.co.il/blogs/programming/starting-from-scratch-part-1/#comment-136</link>
		<dc:creator>lorg</dc:creator>
		<pubDate>Sat, 06 Dec 2008 08:51:08 +0000</pubDate>
		<guid isPermaLink="false">http://www.algorithm.co.il/blogs/?p=111#comment-136</guid>
		<description>Shay &amp; Ilan:
Well, the guy specifically asked me to teach him C. I explained a little about different languages, but he wanted to learn C, which I don&#039;t consider a bad thing: C is not a bad language to start from.

Regarding SICP:
I actually bought this book when I took Intro to computer science in Tel Aviv University. At the time I was already proficient with C and C++, and I remember the course about scheme teaching me new things, and mostly new ways to think about programming. I then saw someone with the book, took a peek inside, liked what I saw and decided to buy it.

Still, I don&#039;t think teaching someone scheme is the right way to go if his final objective is to get a good programming job.</description>
		<content:encoded><![CDATA[<p>Shay &#038; Ilan:<br />
Well, the guy specifically asked me to teach him C. I explained a little about different languages, but he wanted to learn C, which I don&#8217;t consider a bad thing: C is not a bad language to start from.</p>
<p>Regarding SICP:<br />
I actually bought this book when I took Intro to computer science in Tel Aviv University. At the time I was already proficient with C and C++, and I remember the course about scheme teaching me new things, and mostly new ways to think about programming. I then saw someone with the book, took a peek inside, liked what I saw and decided to buy it.</p>
<p>Still, I don&#8217;t think teaching someone scheme is the right way to go if his final objective is to get a good programming job.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Shay Elkin</title>
		<link>http://www.algorithm.co.il/blogs/programming/starting-from-scratch-part-1/#comment-135</link>
		<dc:creator>Shay Elkin</dc:creator>
		<pubDate>Wed, 03 Dec 2008 18:22:12 +0000</pubDate>
		<guid isPermaLink="false">http://www.algorithm.co.il/blogs/?p=111#comment-135</guid>
		<description>A friend recently asked me for a good JavaScript book, as she&#039;d like to learn it. I&#039;d usually recommend &lt;a href=&quot;http://oreilly.com/catalog/9780596517748/&quot; rel=&quot;nofollow&quot;&gt;Crockford&#039;s book&lt;/a&gt;, but it is written for readers that can already code, and I know she does not. Searching for the perfect book (I&#039;m yet to find it,) it dawned on me why &lt;a href=&quot;http://mitpress.mit.edu/sicp/&quot; rel=&quot;nofollow&quot;&gt;SICP&lt;/a&gt; is such a good book.

SICP teaches you Scheme, but that&#039;s a side effect. What it really does, it teache you programming. And by using Scheme, it makes sure you learn more sense than syntax.  Even if you don&#039;t subscribe to the functional programming school of thought, any didactic experience will tell you C is horrible as a first programming language, since it requires much bookkeeping, which isn&#039;t always easy for an experienced programmer, let alone for a beginner (and as you wrote, the boilerplate is scary, even if you tell her to ignore it.) A garbage collected, dynamic, and weak-typed language is so much nicer as a first language, since it doesn&#039;t bother you with the bookkeeping C has.

SICP did gain some infamousy as the CS breaking bench, but I believe that this is due to culture shock from being a freshmen, combined with the speed at which it is usually taught. Read at a reasonable pace, SICP is a ultimate learn-how-to-program book: it only bothers you with details when you need them, provide a good balance between examples and definitions. In fact, going back and over SICP makes me want to try and translate the first couple of chapters to JS for my friend.</description>
		<content:encoded><![CDATA[<p>A friend recently asked me for a good JavaScript book, as she&#8217;d like to learn it. I&#8217;d usually recommend <a href="http://oreilly.com/catalog/9780596517748/" rel="nofollow">Crockford&#8217;s book</a>, but it is written for readers that can already code, and I know she does not. Searching for the perfect book (I&#8217;m yet to find it,) it dawned on me why <a href="http://mitpress.mit.edu/sicp/" rel="nofollow">SICP</a> is such a good book.</p>
<p>SICP teaches you Scheme, but that&#8217;s a side effect. What it really does, it teache you programming. And by using Scheme, it makes sure you learn more sense than syntax.  Even if you don&#8217;t subscribe to the functional programming school of thought, any didactic experience will tell you C is horrible as a first programming language, since it requires much bookkeeping, which isn&#8217;t always easy for an experienced programmer, let alone for a beginner (and as you wrote, the boilerplate is scary, even if you tell her to ignore it.) A garbage collected, dynamic, and weak-typed language is so much nicer as a first language, since it doesn&#8217;t bother you with the bookkeeping C has.</p>
<p>SICP did gain some infamousy as the CS breaking bench, but I believe that this is due to culture shock from being a freshmen, combined with the speed at which it is usually taught. Read at a reasonable pace, SICP is a ultimate learn-how-to-program book: it only bothers you with details when you need them, provide a good balance between examples and definitions. In fact, going back and over SICP makes me want to try and translate the first couple of chapters to JS for my friend.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ilya</title>
		<link>http://www.algorithm.co.il/blogs/programming/starting-from-scratch-part-1/#comment-134</link>
		<dc:creator>Ilya</dc:creator>
		<pubDate>Sun, 30 Nov 2008 11:22:28 +0000</pubDate>
		<guid isPermaLink="false">http://www.algorithm.co.il/blogs/?p=111#comment-134</guid>
		<description>Interesting post!</description>
		<content:encoded><![CDATA[<p>Interesting post!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ilan</title>
		<link>http://www.algorithm.co.il/blogs/programming/starting-from-scratch-part-1/#comment-133</link>
		<dc:creator>Ilan</dc:creator>
		<pubDate>Thu, 14 Aug 2008 17:36:52 +0000</pubDate>
		<guid isPermaLink="false">http://www.algorithm.co.il/blogs/?p=111#comment-133</guid>
		<description>Yeah, the effect is striking, from my experience, too. I used to have my students write pseudo-code instead of C (after letting them flounder for quite a few minutes, to make the effect more pronounced ;o) -- in Hebrew, even -- and then the trivial translation to C.
Eg, exercise with printing Pascal&#039;s triangle.

BTW, K&amp;R did a cute quick introduction. Recommended.

But but, begs the obvious question, given your friend can&#039;t yet think algorithmically, why C? Why not begin with Python? Seriously.

Anyway, see you at the sprint! In just three days!
;o)</description>
		<content:encoded><![CDATA[<p>Yeah, the effect is striking, from my experience, too. I used to have my students write pseudo-code instead of C (after letting them flounder for quite a few minutes, to make the effect more pronounced ;o) &#8212; in Hebrew, even &#8212; and then the trivial translation to C.<br />
Eg, exercise with printing Pascal&#8217;s triangle.</p>
<p>BTW, K&amp;R did a cute quick introduction. Recommended.</p>
<p>But but, begs the obvious question, given your friend can&#8217;t yet think algorithmically, why C? Why not begin with Python? Seriously.</p>
<p>Anyway, see you at the sprint! In just three days!<br />
;o)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Erez</title>
		<link>http://www.algorithm.co.il/blogs/programming/starting-from-scratch-part-1/#comment-132</link>
		<dc:creator>Erez</dc:creator>
		<pubDate>Wed, 18 Jun 2008 08:06:49 +0000</pubDate>
		<guid isPermaLink="false">http://www.algorithm.co.il/blogs/?p=111#comment-132</guid>
		<description>If you can&#039;t explain something to yourself, you have no chance of explaining it to a computer.
Writing code is just the projection of an internal model, and the hardest part of programming is building that model.</description>
		<content:encoded><![CDATA[<p>If you can&#8217;t explain something to yourself, you have no chance of explaining it to a computer.<br />
Writing code is just the projection of an internal model, and the hardest part of programming is building that model.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

