<?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: Is programming &#8220;technical&#8221;?</title>
	<atom:link href="http://lemire.me/blog/archives/2010/03/01/is-programming-technical/feed/" rel="self" type="application/rss+xml" />
	<link>http://lemire.me/blog/archives/2010/03/01/is-programming-technical/</link>
	<description>Computer Scientist and Open Scholar: Databases, Information Retrieval, Business Intelligence.</description>
	<lastBuildDate>Tue, 07 Feb 2012 23:39:16 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: Sabine</title>
		<link>http://lemire.me/blog/archives/2010/03/01/is-programming-technical/comment-page-1/#comment-52304</link>
		<dc:creator>Sabine</dc:creator>
		<pubDate>Sat, 06 Mar 2010 16:31:57 +0000</pubDate>
		<guid isPermaLink="false">http://www.daniel-lemire.com/blog/?p=2430#comment-52304</guid>
		<description>I forgot to add -- a lot of students have a hard time with the concept of learning technique before creating a masterpiece, or even a decent piece of work.</description>
		<content:encoded><![CDATA[<p>I forgot to add &#8212; a lot of students have a hard time with the concept of learning technique before creating a masterpiece, or even a decent piece of work.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Sabine</title>
		<link>http://lemire.me/blog/archives/2010/03/01/is-programming-technical/comment-page-1/#comment-52303</link>
		<dc:creator>Sabine</dc:creator>
		<pubDate>Sat, 06 Mar 2010 16:27:39 +0000</pubDate>
		<guid isPermaLink="false">http://www.daniel-lemire.com/blog/?p=2430#comment-52303</guid>
		<description>I think programming is like writing, like painting, like creating music -- there&#039;s a creative component and a technical component. J.K. Rowling&#039;s books are very creative, but they were coded using Grammar 2000.</description>
		<content:encoded><![CDATA[<p>I think programming is like writing, like painting, like creating music &#8212; there&#8217;s a creative component and a technical component. J.K. Rowling&#8217;s books are very creative, but they were coded using Grammar 2000.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Anonymous</title>
		<link>http://lemire.me/blog/archives/2010/03/01/is-programming-technical/comment-page-1/#comment-52302</link>
		<dc:creator>Anonymous</dc:creator>
		<pubDate>Sat, 06 Mar 2010 00:53:24 +0000</pubDate>
		<guid isPermaLink="false">http://www.daniel-lemire.com/blog/?p=2430#comment-52302</guid>
		<description>I disagree with the theorem you propose. When I was younger (in high school) I wanted to program a tic-tac-toe playing program. Of course I understood the game, but could not program the machine to play it well. Only after studying computer science did I see the options available, including brute force table lookup and the more elegant min-max approaches.</description>
		<content:encoded><![CDATA[<p>I disagree with the theorem you propose. When I was younger (in high school) I wanted to program a tic-tac-toe playing program. Of course I understood the game, but could not program the machine to play it well. Only after studying computer science did I see the options available, including brute force table lookup and the more elegant min-max approaches.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Preston L. Bannister</title>
		<link>http://lemire.me/blog/archives/2010/03/01/is-programming-technical/comment-page-1/#comment-52299</link>
		<dc:creator>Preston L. Bannister</dc:creator>
		<pubDate>Wed, 03 Mar 2010 21:56:38 +0000</pubDate>
		<guid isPermaLink="false">http://www.daniel-lemire.com/blog/?p=2430#comment-52299</guid>
		<description>In my experience, code that is hard for a human to understand usually contains errors. If the programmer is unclear about what they want to do when writing the code, the code will generally read badly. When a programmer comes back to same section of code to make changes, if what the code does is not clear, any changes are likely to introduce errors.

If you understand very clearly what to do and how to do it, then you can write very clear code.

This is one of my outer-metrics. If a programmer cannot explain clearly what they are trying to done, then they will probably do it badly. If you are reading code and cannot tell with certainty what the code is doing, then it was not clear to the writer, and the code is likely to contain errors.

In theory human-readability and correct execution could be independent. In practice there is a very strong correlation.</description>
		<content:encoded><![CDATA[<p>In my experience, code that is hard for a human to understand usually contains errors. If the programmer is unclear about what they want to do when writing the code, the code will generally read badly. When a programmer comes back to same section of code to make changes, if what the code does is not clear, any changes are likely to introduce errors.</p>
<p>If you understand very clearly what to do and how to do it, then you can write very clear code.</p>
<p>This is one of my outer-metrics. If a programmer cannot explain clearly what they are trying to done, then they will probably do it badly. If you are reading code and cannot tell with certainty what the code is doing, then it was not clear to the writer, and the code is likely to contain errors.</p>
<p>In theory human-readability and correct execution could be independent. In practice there is a very strong correlation.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Edward Bilodeau</title>
		<link>http://lemire.me/blog/archives/2010/03/01/is-programming-technical/comment-page-1/#comment-52298</link>
		<dc:creator>Edward Bilodeau</dc:creator>
		<pubDate>Wed, 03 Mar 2010 21:48:31 +0000</pubDate>
		<guid isPermaLink="false">http://www.daniel-lemire.com/blog/?p=2430#comment-52298</guid>
		<description>@Lemire I agree that it is necessary for programmers to think like machines in order to do their jobs. The complexity of the systems demand it.

Someone might argue, though, that there is a difference between thinking like a machine and being very knowledgeable about how a machine behaves.

(Someone might also point out that machines don&#039;t think.)</description>
		<content:encoded><![CDATA[<p>@Lemire I agree that it is necessary for programmers to think like machines in order to do their jobs. The complexity of the systems demand it.</p>
<p>Someone might argue, though, that there is a difference between thinking like a machine and being very knowledgeable about how a machine behaves.</p>
<p>(Someone might also point out that machines don&#8217;t think.)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Edward Bilodeau</title>
		<link>http://lemire.me/blog/archives/2010/03/01/is-programming-technical/comment-page-1/#comment-52297</link>
		<dc:creator>Edward Bilodeau</dc:creator>
		<pubDate>Wed, 03 Mar 2010 21:45:31 +0000</pubDate>
		<guid isPermaLink="false">http://www.daniel-lemire.com/blog/?p=2430#comment-52297</guid>
		<description>@Haran Agreed! That measure of quality is necessary because people need to be able to understand the instructions that other people write for these machines. Achieving that quality makes the overall system (i.e. the computer + its human operators) work.

From the computer&#039;s perspective, is human-understandable code better? (That&#039;s an honest question: I would guess not, but I&#039;m not up on the research in this area, if in fact there is any.)</description>
		<content:encoded><![CDATA[<p>@Haran Agreed! That measure of quality is necessary because people need to be able to understand the instructions that other people write for these machines. Achieving that quality makes the overall system (i.e. the computer + its human operators) work.</p>
<p>From the computer&#8217;s perspective, is human-understandable code better? (That&#8217;s an honest question: I would guess not, but I&#8217;m not up on the research in this area, if in fact there is any.)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Daniel Haran</title>
		<link>http://lemire.me/blog/archives/2010/03/01/is-programming-technical/comment-page-1/#comment-52296</link>
		<dc:creator>Daniel Haran</dc:creator>
		<pubDate>Wed, 03 Mar 2010 21:38:09 +0000</pubDate>
		<guid isPermaLink="false">http://www.daniel-lemire.com/blog/?p=2430#comment-52296</guid>
		<description>Any fool can write code that a computer can understand.  Good programmers write code that humans can understand.  ~Martin Fowler</description>
		<content:encoded><![CDATA[<p>Any fool can write code that a computer can understand.  Good programmers write code that humans can understand.  ~Martin Fowler</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Daniel Lemire</title>
		<link>http://lemire.me/blog/archives/2010/03/01/is-programming-technical/comment-page-1/#comment-52295</link>
		<dc:creator>Daniel Lemire</dc:creator>
		<pubDate>Wed, 03 Mar 2010 21:37:52 +0000</pubDate>
		<guid isPermaLink="false">http://www.daniel-lemire.com/blog/?p=2430#comment-52295</guid>
		<description>@Bilodeau

&lt;em&gt;
You can of course communicate things other people through programming, but only if they are thinking like machines, with all the associated limitations.
&lt;/em&gt;

I think that Computer Scientists are trained to think like machines.

I think that the best developers out there think like machines. At least some of the time. (This may explain why some of them have difficulty getting dates, but that&#039;s for another blog post.)</description>
		<content:encoded><![CDATA[<p>@Bilodeau</p>
<p><em><br />
You can of course communicate things other people through programming, but only if they are thinking like machines, with all the associated limitations.<br />
</em></p>
<p>I think that Computer Scientists are trained to think like machines.</p>
<p>I think that the best developers out there think like machines. At least some of the time. (This may explain why some of them have difficulty getting dates, but that&#8217;s for another blog post.)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Edward Bilodeau</title>
		<link>http://lemire.me/blog/archives/2010/03/01/is-programming-technical/comment-page-1/#comment-52294</link>
		<dc:creator>Edward Bilodeau</dc:creator>
		<pubDate>Wed, 03 Mar 2010 21:31:23 +0000</pubDate>
		<guid isPermaLink="false">http://www.daniel-lemire.com/blog/?p=2430#comment-52294</guid>
		<description>Yes, but writing supporting documentation or talking to others people about something while making references to it (i.e. including bits of code) is nothing new. It isn&#039;t specific to programming.

So when I see a statement like &quot;but programming is ultimately a communication form&quot; I focus on that aspect that is specific to programming, which is the creation of instructions for a machine.

You can of course communicate things other people through programming, but only if they are thinking like machines,   with all the associated limitations.</description>
		<content:encoded><![CDATA[<p>Yes, but writing supporting documentation or talking to others people about something while making references to it (i.e. including bits of code) is nothing new. It isn&#8217;t specific to programming.</p>
<p>So when I see a statement like &#8220;but programming is ultimately a communication form&#8221; I focus on that aspect that is specific to programming, which is the creation of instructions for a machine.</p>
<p>You can of course communicate things other people through programming, but only if they are thinking like machines,   with all the associated limitations.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Daniel Lemire</title>
		<link>http://lemire.me/blog/archives/2010/03/01/is-programming-technical/comment-page-1/#comment-52293</link>
		<dc:creator>Daniel Lemire</dc:creator>
		<pubDate>Wed, 03 Mar 2010 21:09:59 +0000</pubDate>
		<guid isPermaLink="false">http://www.daniel-lemire.com/blog/?p=2430#comment-52293</guid>
		<description>@Bilodeau 

(1) I don&#039;t require students to *only* produce code. Just like mathematics, code is not &quot;self-sufficient&quot;. (Though, sometimes it is.)

(2) People on http://stackoverflow.com/ seem to do fine communicating with each other with a mix of English and code.</description>
		<content:encoded><![CDATA[<p>@Bilodeau </p>
<p>(1) I don&#8217;t require students to *only* produce code. Just like mathematics, code is not &#8220;self-sufficient&#8221;. (Though, sometimes it is.)</p>
<p>(2) People on <a href="http://stackoverflow.com/" rel="nofollow">http://stackoverflow.com/</a> seem to do fine communicating with each other with a mix of English and code.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Edward Bilodeau</title>
		<link>http://lemire.me/blog/archives/2010/03/01/is-programming-technical/comment-page-1/#comment-52292</link>
		<dc:creator>Edward Bilodeau</dc:creator>
		<pubDate>Wed, 03 Mar 2010 20:48:48 +0000</pubDate>
		<guid isPermaLink="false">http://www.daniel-lemire.com/blog/?p=2430#comment-52292</guid>
		<description>Programming is a form of communication in that it is a set of instructions given to a machine. At the time of writing, this is still somewhat different from communicating with another person.</description>
		<content:encoded><![CDATA[<p>Programming is a form of communication in that it is a set of instructions given to a machine. At the time of writing, this is still somewhat different from communicating with another person.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Preston L. Bannister</title>
		<link>http://lemire.me/blog/archives/2010/03/01/is-programming-technical/comment-page-1/#comment-52287</link>
		<dc:creator>Preston L. Bannister</dc:creator>
		<pubDate>Wed, 03 Mar 2010 05:46:36 +0000</pubDate>
		<guid isPermaLink="false">http://www.daniel-lemire.com/blog/?p=2430#comment-52287</guid>
		<description>Interesting. The differential between &quot;Computer Science&quot; and &quot;Computer Engineering&quot; is more recent than my time in school.

In Physics (my original school-major) there were some (Virginia Trimble, for one) that drew a sharp line between empirical and theoretic practitioners. (I have always thought that theory without empirical grounding was meaningless.)

Clearly I have no sympathy for those who lack an empirical grounding. Got one fired, as useless.</description>
		<content:encoded><![CDATA[<p>Interesting. The differential between &#8220;Computer Science&#8221; and &#8220;Computer Engineering&#8221; is more recent than my time in school.</p>
<p>In Physics (my original school-major) there were some (Virginia Trimble, for one) that drew a sharp line between empirical and theoretic practitioners. (I have always thought that theory without empirical grounding was meaningless.)</p>
<p>Clearly I have no sympathy for those who lack an empirical grounding. Got one fired, as useless.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ed</title>
		<link>http://lemire.me/blog/archives/2010/03/01/is-programming-technical/comment-page-1/#comment-52283</link>
		<dc:creator>Ed</dc:creator>
		<pubDate>Tue, 02 Mar 2010 14:30:55 +0000</pubDate>
		<guid isPermaLink="false">http://www.daniel-lemire.com/blog/?p=2430#comment-52283</guid>
		<description>@Daniel

I was a CS student from UBC. I have to say that lately I&#039;ve developed a bit of &quot;hate&quot; with CS students. I felt that they&#039;re too cocky; they think that they&#039;re the smartest bunch of people in this programming world. Yet most of CS students I met couldn&#039;t really make a good decision on how to write code. Basically their Software Development/Engineering skill is almost close to zero. They don&#039;t know how to write maintainable code but they boasted their code is the fastest by doing hacks/shortcuts/nifty-tricks. 

Maybe this is the side effect from learning about &quot;Algorithms and Data Structure&quot; and reading those wonderful hacks programmers did in the past? Such that they put high value on performance instead of correctness, robustness, and etc.

On the other hand, most of Computer Engineering students I met are wiser so to speak.</description>
		<content:encoded><![CDATA[<p>@Daniel</p>
<p>I was a CS student from UBC. I have to say that lately I&#8217;ve developed a bit of &#8220;hate&#8221; with CS students. I felt that they&#8217;re too cocky; they think that they&#8217;re the smartest bunch of people in this programming world. Yet most of CS students I met couldn&#8217;t really make a good decision on how to write code. Basically their Software Development/Engineering skill is almost close to zero. They don&#8217;t know how to write maintainable code but they boasted their code is the fastest by doing hacks/shortcuts/nifty-tricks. </p>
<p>Maybe this is the side effect from learning about &#8220;Algorithms and Data Structure&#8221; and reading those wonderful hacks programmers did in the past? Such that they put high value on performance instead of correctness, robustness, and etc.</p>
<p>On the other hand, most of Computer Engineering students I met are wiser so to speak.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Enlightenment</title>
		<link>http://lemire.me/blog/archives/2010/03/01/is-programming-technical/comment-page-1/#comment-52282</link>
		<dc:creator>Enlightenment</dc:creator>
		<pubDate>Tue, 02 Mar 2010 14:20:38 +0000</pubDate>
		<guid isPermaLink="false">http://www.daniel-lemire.com/blog/?p=2430#comment-52282</guid>
		<description>That is fine...we still need people to cook the frys!</description>
		<content:encoded><![CDATA[<p>That is fine&#8230;we still need people to cook the frys!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jeffamaphone</title>
		<link>http://lemire.me/blog/archives/2010/03/01/is-programming-technical/comment-page-1/#comment-52281</link>
		<dc:creator>jeffamaphone</dc:creator>
		<pubDate>Tue, 02 Mar 2010 03:22:24 +0000</pubDate>
		<guid isPermaLink="false">http://www.daniel-lemire.com/blog/?p=2430#comment-52281</guid>
		<description>I fully understand the halting problem, but I cannot implement the general case in software since it is provably undecidable.  Your theorem is therefor proved incorrect.  :) Though, I think with some rephrasing, you could be on to something.</description>
		<content:encoded><![CDATA[<p>I fully understand the halting problem, but I cannot implement the general case in software since it is provably undecidable.  Your theorem is therefor proved incorrect.  <img src='http://lemire.me/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Though, I think with some rephrasing, you could be on to something.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

