<?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>I, Engineer &#187; Interviewing</title>
	<atom:link href="http://blog.unreasonable.com/category/interviewing/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.unreasonable.com</link>
	<description>engineering is a way of life</description>
	<lastBuildDate>Wed, 25 Feb 2015 02:27:52 +0000</lastBuildDate>
	<language>en-US</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.0.38</generator>
	<item>
		<title>Beware of strange faces in dark dingy places</title>
		<link>http://blog.unreasonable.com/strange-faces/</link>
		<comments>http://blog.unreasonable.com/strange-faces/#comments</comments>
		<pubDate>Wed, 17 Dec 2014 15:06:00 +0000</pubDate>
		<dc:creator><![CDATA[lubkin]]></dc:creator>
				<category><![CDATA[Interviewing]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://blog.unreasonable.com/?p=42</guid>
		<description><![CDATA[I&#8217;ve been on job interviews where the interviewer writes the equivalent of char *(*(*a[])())() on the whiteboard and asks what it declares. I usually answer that I could probably figure it out but I&#8217;m not going to try. If we, smart as we are, have to scrunch forehead to decipher... <a href="http://blog.unreasonable.com/strange-faces/" class="readmore">Read more</a>]]></description>
				<content:encoded><![CDATA[<p>I&#8217;ve been on job interviews where the interviewer writes the equivalent of <code>char *(*(*a[])())()</code> on the whiteboard and asks what it declares.</p>
<p>I usually answer that I could probably <a href="http://cdecl.ridiculousfish.com/?q=char+*%28*%28*a[]%29%28%29%29%28%29">figure it out</a> but I&#8217;m not going to try.</p>
<p>If we, smart as we are, have to scrunch forehead to decipher a line of code, it&#8217;s probably a mistake to have written it that way.</p>
<p>If it&#8217;s unclear to you now, it will probably be less clear when you look at it again in six months. Less clear to the engineer who has to fix it after you&#8217;ve moved on. That way lies bugs.</p>
<p>Further, if the code relies on an advanced or obscure feature, who says that feature works correctly? It&#8217;s probably also a confusing facet of the language for whoever wrote the compiler code. And their interpretation might not match what the standard actually requires. Or how the authors of another compiler interpret it.</p>
<p>Let alone whether you can readily translate your approach into another language. Which is handy.</p>
<p>Sometimes a complicated construct really is the best solution. When it is, write as clear a comment as you can that explains what it does, why it&#8217;s correct, and why apparent alternatives wouldn&#8217;t have worked.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.unreasonable.com/strange-faces/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
