<?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>peawee dot net &#187; programming</title>
	<atom:link href="http://peawee.net/tag/programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://peawee.net</link>
	<description>design music software life</description>
	<lastBuildDate>Sun, 08 Jan 2012 04:15:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>The Blank Page</title>
		<link>http://peawee.net/2011/03/12/the-blank-page/</link>
		<comments>http://peawee.net/2011/03/12/the-blank-page/#comments</comments>
		<pubDate>Sat, 12 Mar 2011 06:17:50 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Geeky Peawee]]></category>
		<category><![CDATA[Life of Peawee]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://peawee.net/?p=153</guid>
		<description><![CDATA[I&#8217;ve been programming professionally now since 2007. The one thing that still causes me problems is starting fresh on something. Fred Brooks once wrote: The programmer, like the poet, works only slightly removed from pure thought-stuff. He builds castles in the air, from air, creating by exertion of the imagination. The biggest problem I&#8217;ve had [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been programming professionally now since 2007.  The one thing that still causes me problems is starting fresh on something.  Fred Brooks once wrote: </p>
<blockquote><p>The programmer, like the poet, works only slightly removed from pure thought-stuff. He builds castles in the air, from air, creating by exertion of the imagination.</p></blockquote>
<p>The biggest problem I&#8217;ve had has been getting started in building castles in the sky.  I suppose part of it is lots of practice from day one, but it&#8217;s almost like a case of agoraphobia seeing the vast expanse of nothing in my editor.  From there, there&#8217;s so much <em>stuff</em> to add.  There&#8217;s a fair bit of not wanting to lay down the <a href="http://en.wikipedia.org/wiki/Boilerplate_(text)#Boilerplate_code">boilerplate code</a> inherent in any programming.  Otherwise, though, there&#8217;s the vague idea of where I&#8217;m wanting to end up, and a blank page doesn&#8217;t offer any assistance in helping with that first step.</p>
<p>I&#8217;ve been learning to take more advantage of the <a href="http://en.wikipedia.org/wiki/Read-eval-print_loop">REPL</a>, which has really been helping me get going.  It makes it possible to just worry about little snippets of code and then tie them together instead of laying down hundreds of lines of FORTRAN and hope it all works out when it first meets the compiler.</p>
<p>While trying to still have a life away from this keyboard, I&#8217;m pushing myself to get back into recreational programming, where everything starts as a blank page.</p>
]]></content:encoded>
			<wfw:commentRss>http://peawee.net/2011/03/12/the-blank-page/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Learning-Forward Career Development</title>
		<link>http://peawee.net/2010/09/15/learning-forward-career-development/</link>
		<comments>http://peawee.net/2010/09/15/learning-forward-career-development/#comments</comments>
		<pubDate>Thu, 16 Sep 2010 01:49:24 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Geeky Peawee]]></category>
		<category><![CDATA[Life of Peawee]]></category>
		<category><![CDATA[job]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[SpiderOak]]></category>

		<guid isPermaLink="false">http://peawee.net/?p=149</guid>
		<description><![CDATA[In my professional life, I&#8217;ve had two software development jobs so far. One has been an academic programming job, and the other being a mobile developer for SpiderOak (check it out, I think we&#8217;re really cool, and so should you:]]></description>
			<content:encoded><![CDATA[<p>In my professional life, I&#8217;ve had two software development jobs so far.  One has been an academic programming job, and the other being a mobile developer for SpiderOak (check it out, I think we&#8217;re really cool, and so should you: <a href="<a href="https://spideroak.com">https://spideroak.com</a>).  The circumstances of my hiring at both jobs have been rather similar: I really had no idea what I was doing when I was hired, and I had to figure out how to do my job as I went along.</p>
<p>Both of these jobs also had me essentially be a one-man team to take care of what I&#8217;m programming on; while figuring out what I&#8217;m supposed to be doing, I&#8217;m also supposed to take lead on whatever project it is that I&#8217;m working on.  While working in the academic position, I certainly had a lot of work ahead of me in learning how to be that one-man team; I quickly started having questions that people around me had no answers to, and my too-often muppet flailing in figuring out how to figure things out like that was an endless source of frustration to both me and my boss.  That said, the experience was invaluable training for my next job with SpiderOak, where the working condition was even more uncoupled- instead of working halfway by myself, I was essentially completely alone.  Instead of an office, I had my home office, working remotely.  Instead of people around me who also work for the platform and the language, it was just me and The Internet trying together to figure out how to make an iPhone application that people would want to use. I&#8217;m now developing the Android client for SpiderOak, which again finds me being the only guy working on the platform and language, and Android is a tricky system to develop for, with the steepest learning curve I&#8217;ve had to deal with yet.</p>
<p>It&#8217;s been a trying experience.  I feel like I&#8217;ve been hitting my head on a glass ceiling in terms of my development as a programmer by not working as much on a team <em>with</em> people; for the past three years I&#8217;ve felt like I&#8217;ve been more working <em>for</em> people instead of <em>with</em> them.  When I have problems or issues, it&#8217;s been tremendously difficult to solve them, as it&#8217;s hard to simply show someone the tricky code for tips if they don&#8217;t understand it.  Come to think of it, this lone-wolf programming experience has been demoralizing- it feels like where you&#8217;re at a party and everyone&#8217;s in their conversation circles, and you can&#8217;t quite get into one and you&#8217;re just stuck on the outside.  Code reviews in particular are a little sad; the best response I&#8217;ve gotten so far has been &#8220;I don&#8217;t really know the language but I like that you have unit tests.&#8221;</p>
<p>I&#8217;m spending next week in Kansas City with some of my co-workers, getting my hands dirty with the back-end storage code that runs SpiderOak.  I&#8217;m tremendously looking forward to it, because for once I&#8217;ll be the junior developer on a team.  I&#8217;ll be able to look up to people for help and guidance, and they&#8217;re paying attention because it&#8217;s part of <em>their</em> product as well; they know the language, they know the platform, and they know the system.  On top of that, I&#8217;ll be able to see and be walked through how other people tackle things.  I&#8217;m looking forward to this learning experience, and hope to be able to sit back down at my mobile development with fresh eyes.</p>
]]></content:encoded>
			<wfw:commentRss>http://peawee.net/2010/09/15/learning-forward-career-development/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Academented Programming</title>
		<link>http://peawee.net/2008/10/21/academented-programming/</link>
		<comments>http://peawee.net/2008/10/21/academented-programming/#comments</comments>
		<pubDate>Wed, 22 Oct 2008 03:11:33 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Geeky Peawee]]></category>
		<category><![CDATA[Life of Peawee]]></category>
		<category><![CDATA[fortran]]></category>
		<category><![CDATA[improvement]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[proverb]]></category>
		<category><![CDATA[science]]></category>
		<category><![CDATA[superfuntime]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://peawee.net/?p=82</guid>
		<description><![CDATA[I work professionally as a programmer at an atmospheric science department at a major university. One of the biggest things about atmospheric research is our reliance on computers for everything. While we&#8217;re nowhere near the limit of what we can do with observational data (and indeed in many areas, observational data is woefully short), there [...]]]></description>
			<content:encoded><![CDATA[<p>I work professionally as a programmer at an atmospheric science department at a major university.  One of <em>the</em> biggest things about atmospheric research is our reliance on computers for everything.  While we&#8217;re nowhere near the limit of what we can do with observational data (and indeed in many areas, observational data is woefully short), there are so many things we simply cannot do in laboratory experiments.  Because we can&#8217;t reproduce most things in a laboratory setting, we&#8217;re stuck creating computer models.  That&#8217;s fine.  However, the result of this is that we are almost an applied computer science field with how much we have to wrangle computers day in and day out.</p>
<p>What troubles me is that, at least in my place of employment, <em>practically no-one really understands computers</em>.  </p>
<p>I work in a primarily Fortran shop, which many of you would think &#8220;well, there&#8217;s your problem right there.&#8221;  Not so much, as there&#8217;s a huge literature of already perfected Fortran code to solve nearly every tricky numerical gymnastics problem you can think of (and twice that number of ones you can&#8217;t think of).  Fortran90/95&#8242;s greatest win, and flaw, is that it has <em>incredible</em> backwards compatibility with old FORTRAN77 code (and even some FORTRAN66!).  Re-writing the millions of lines of FORTRAN77 that passes through the department on a semi-regular basis would be costly in sanity, time, and money.</p>
<p>But what about how you work with that code?  Some of us know a certain friend of mine who sat up for hours manually inserting rows into a dataset to account for missing time in hourly reports.  It&#8217;d have taken half an hour to whip up a MATLAB script and have it loop through the dataset.  Almost nobody uses any form of version control (those that do have a sea of directories resembling <code>projectname_vers-num</code>, with <em>num</em> being their revision number), and most of the Unix programming is done through running VIM in vi compatibility mode.  Changing an identifier within the code from one to another is typically a day-long affair for most (hint: it should take perhaps 5 minutes, 10 if the SAN is feeling sluggish), and inter-routine data dependencies are best described as a maze of twisty passages, all alike.  Makefiles are written in a manner where it&#8217;s a requirement to run &#8220;make clean&#8221; before any recompile, and some folks swear by Intel Fortran&#8217;s <code>-save</code> flag, which makes all local variables static.  That flag is used entirely for its side effect of initializing all local variables to zero, however, and not a thought is given for the actual effects.</p>
<p>This is actually a rather sad, sad state we&#8217;re in right now.  It isn&#8217;t anyone&#8217;s fault, either.  There&#8217;s no overarching culture of programming and software engineering at my place of employment, so there&#8217;s not many examples of folks &#8220;doing it better&#8221;, with those of us who <em>are</em> being categorized as &#8220;Oh, but you&#8217;re one of those crazy geeks who just know how to do it.&#8221;</p>
<p>I&#8217;m one of those crazy geeks because I sat down and forced myself to learn how to do it, because I saw that it would pay off, in dividends.  It has, too.</p>
<p>I&#8217;m not trying to claim I&#8217;m some wunderkind, either.  There&#8217;s gaping holes in my expertise and practice that hinder me daily (which I&#8217;m trying to correct).  What does it come down to for me?  Right now, I&#8217;m sitting down and reading the GNU Emacs manual.  I can&#8217;t be arsed to dig up my copy of <em><a href="http://www.amazon.com/Pragmatic-Programmer-Journeyman-Master/dp/020161622X">The Pragmatic Programmer</a></em>, but there is a section in there that says one should really master a text editor.  I&#8217;ve taken it to heart, and with my limited time, that&#8217;s my &#8220;journey of a thousand miles starting with a single step.&#8221;</p>
<p>What have <em>you</em> done to be a better programmer today?</p>
]]></content:encoded>
			<wfw:commentRss>http://peawee.net/2008/10/21/academented-programming/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

