<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Matt Stine&#039;s Blog &#187; programming</title>
	<atom:link href="http://mattstine.com/category/programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://mattstine.com</link>
	<description>Thoughts on Java, Groovy, Grails, Agile Development, etc. etc. etc.</description>
	<lastBuildDate>Tue, 17 May 2011 17:02:53 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='mattstine.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Matt Stine&#039;s Blog &#187; programming</title>
		<link>http://mattstine.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://mattstine.com/osd.xml" title="Matt Stine&#039;s Blog" />
	<atom:link rel='hub' href='http://mattstine.com/?pushpress=hub'/>
		<item>
		<title>Dead Programmers Society</title>
		<link>http://mattstine.com/2010/02/16/dead-programmers-society/</link>
		<comments>http://mattstine.com/2010/02/16/dead-programmers-society/#comments</comments>
		<pubDate>Wed, 17 Feb 2010 03:42:40 +0000</pubDate>
		<dc:creator>mattstine</dc:creator>
				<category><![CDATA[development]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://www.mattstine.com/?p=285</guid>
		<description><![CDATA[A local Pastor once gave the advice of introducing ourselves and our kids to dead people. It is his belief that if his kids grow up idolizing the likes of Eric Liddell, Jim Elliot, and Hudson Taylor, they would be far better off than by looking up to many of our so-called &#8220;heroes&#8221; of today. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mattstine.com&amp;blog=58954&amp;post=285&amp;subd=mattstine&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>A local Pastor once gave the <a href="http://holding2truth.blogspot.com/2009/01/strange-sounding-advice.html">advice of introducing ourselves</a> <a href="http://holding2truth.blogspot.com/2009/02/strange-advice-introducing-our-kids-to.html">and our kids to dead people</a>. It is his belief that if his kids grow up idolizing the likes of Eric Liddell, Jim Elliot, and Hudson Taylor, they would be far better off than by looking up to many of our so-called &#8220;heroes&#8221; of today. I happen to agree with his advice, but that&#8217;s not the subject of tonight&#8217;s blog entry.</p>
<p>I think that this advice is very applicable to us as software developers today. While our industry is still young enough that a great many of our &#8220;founding fathers&#8221; are still around, it is surprising to see how often their work and contributions go unnoticed by the vast majority of us. At the January Memphis/Mid-South Java User Group meeting, our program focused on books that all of us as developers should read. Four of us gave our takes on the topic. Joel Neely, one of a few people that I learn from every time I get near them, pulled yet another rabbit out of his hat by focusing on several books, all of which had been published before the majority of us were out of diapers! One book struck me in particular: <em>A Discipline of Programming</em> by Edsgar W. Dijkstra. In it EWD &#8220;presents a formal approach to developing (non-deterministic!) algorithms, using what we would now call a DSL for algorithm design. Incidentally, that book was published in 1976.&#8221; (Thanks Joel for the excellent summary). I&#8217;d like to pull out just a couple of quotes from that book:</p>
<p><em>A most important, but also a most elusive, aspect of any tool is its influence on the habits of those who train themselves in its use. If the tool is a programming language, this influence is &#8211; whether we like it or not &#8211; an influence on our thinking habits.</em></p>
<p>Just out of curiosity, does this sound anything at all to you like the frequent admonitions to learn a &#8220;language of the year (LOTY)?&#8221; Of course that isn&#8217;t the context of EWD&#8217;s quote, but the underlying principle remains the same. Almost universally accompanying that admonition is a statement along the lines of &#8220;even if you never use it in your day job, it will affect THE WAY YOU THINK about programming during your day job.&#8221;</p>
<p><em>&#8230;a carefully chosen separation of concerns is essential for the design of in all respects, high quality programs&#8230;</em></p>
<p>Does &#8220;loosely coupled, highly cohesive, modular architecture&#8221; come to mind?</p>
<p><em>&#8230;the fact that programming languages could be used as a vehicle for instructing existing automatic computers, has for a long time been regarded as their most important property&#8230;we shall try to redress the balance, and we shall do so by regarding the fact that our algorithms could actually be carried out be a computer as a lucky accidental circumstance that need not occupy a central position in our considerations&#8230;I view a programming language primarily as a vehicle for the description of (potentially highly sophisticated) abstract mechanisms.</em></p>
<p>I hear so much of what is bandied about today as &#8220;new&#8221; embodied in this quote. The calls to liberate programming from its &#8220;C&#8221; roots by banishing primitives, because hey, primitives are only their to keep &#8220;Java from being too slow!&#8221; The calls to favor &#8220;essence over ceremony&#8221; in language design by eliminating boilerplate code in favor of sensible defaults that clear away the noise from the algorithmic intent that we&#8217;re trying to communicate. The constant reminders that it&#8217;s more important for our code to be readable to humans, not to computers, because that&#8217;s what compilers are for.</p>
<p>What&#8217;s the point? The point is that most, if not all, of the ideas that are &#8220;new&#8221; today are simply restatements of past ideas in a different context. A wise man, one much wiser than I, once said &#8220;&#8230;there is nothing new under the sun&#8221; (Ecclesiastes 1:9). Edsgar W. Dijkstra passed from this earth in 2002, but his ideas live on, and they are very much applicable to software developers today. There are may others like him: Donald Knuth, John McCarthy, Alan Turing, David Gries &#8211; some dead, some alive, but all giants upon whose shoulders we stand. We would do well to consider their words.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mattstine.wordpress.com/285/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mattstine.wordpress.com/285/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mattstine.wordpress.com/285/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mattstine.wordpress.com/285/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mattstine.wordpress.com/285/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mattstine.wordpress.com/285/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mattstine.wordpress.com/285/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mattstine.wordpress.com/285/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mattstine.wordpress.com/285/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mattstine.wordpress.com/285/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mattstine.wordpress.com/285/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mattstine.wordpress.com/285/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mattstine.wordpress.com/285/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mattstine.wordpress.com/285/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mattstine.com&amp;blog=58954&amp;post=285&amp;subd=mattstine&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mattstine.com/2010/02/16/dead-programmers-society/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1eaa45fee6a2b0c4b479b2982a4274f4?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mattstine</media:title>
		</media:content>
	</item>
		<item>
		<title>LOTY Time Again: Scala or Clojure?!?!</title>
		<link>http://mattstine.com/2009/04/02/loty-time-again-scala-or-clojure/</link>
		<comments>http://mattstine.com/2009/04/02/loty-time-again-scala-or-clojure/#comments</comments>
		<pubDate>Thu, 02 Apr 2009 20:21:21 +0000</pubDate>
		<dc:creator>mattstine</dc:creator>
				<category><![CDATA[CodeProject]]></category>
		<category><![CDATA[dynamiclanguages]]></category>
		<category><![CDATA[goals]]></category>
		<category><![CDATA[grails]]></category>
		<category><![CDATA[groovy]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://www.mattstine.com/?p=113</guid>
		<description><![CDATA[In 2007 I established several professional development goals (and later reported my progress on these), one of which was to learn Groovy and Grails. This goal stemmed from the continually referenced idea from The Pragmatic Programmer to &#8220;learn a new language every year.&#8221; This idea has become so ubiquitous that it even has it&#8217;s own [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mattstine.com&amp;blog=58954&amp;post=113&amp;subd=mattstine&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>In 2007 <a href="http://www.mattstine.com/2007/07/10/my-professional-development-goals-for-2007-2008/">I established several professional development goals</a> (<a href="http://www.mattstine.com/2008/01/02/mid-year-review-my-professional-development-goals-for-2007-2008/">and later reported my progress on these</a>), one of which was to learn Groovy and Grails. This goal stemmed from the continually referenced idea from <em>The Pragmatic Programmer</em> to &#8220;learn a new language every year.&#8221; This idea has become so ubiquitous that it even has it&#8217;s own four-letter acronym, LOTY (Language of the Year).</p>
<p>Since establishing and reporting on these goals, I&#8217;ve had several things get in the way of fully realizing all of them. However, I can safely say that in the last two years I have mastered enough Groovy and Grails that they no longer fit in the LOTY category. At this point they&#8217;re really not showing my anything that is causing any paradigm shifts for me. They&#8217;re comfortable. When I learn a new feature, it just seems to make sense, and nothing surprises me anymore. Languages like these aren&#8217;t good LOTY candidates because one of the purposes of learning a LOTY is to challenge and change your ideas about programming. Groovy doesn&#8217;t do this for me anymore. It&#8217;s time to move on (not to say that I&#8217;m dropping Groovy and Grails as a tool &#8211; I&#8217;m using them more now than ever &#8211; they&#8217;re just not a learning tool for me anymore).</p>
<p>So, at this point I want to delve into a language that attempts to tackle the concurrent/multicore programming challenge. I&#8217;d like to stay on the JVM because I appreciate the benefits that it brings as a platform, so for now Erlang is out. The two leading candidates in the JVM/concurrent/multicore arena seem to be <a href="http://www.scala-lang.org/">Scala</a> and <a href="http://clojure.org/">Clojure</a>. An added benefit of both of these languages is that they support the functional paradigm, something I haven&#8217;t really played with since my computer science education days and a very interesting language named Haskell.</p>
<p>Scala is a multiparadigm language, supporting both object-oriented and functional constructs. It is statically typed, yet offers very nice type inference. Clojure, on the other hand, is a functional Lisp derivative with almost no OO constructs that is dynamically typed. Both are designed to enable concurrent programming. Which one do I choose? I open the floor for comments.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mattstine.wordpress.com/113/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mattstine.wordpress.com/113/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mattstine.wordpress.com/113/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mattstine.wordpress.com/113/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mattstine.wordpress.com/113/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mattstine.wordpress.com/113/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mattstine.wordpress.com/113/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mattstine.wordpress.com/113/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mattstine.wordpress.com/113/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mattstine.wordpress.com/113/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mattstine.wordpress.com/113/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mattstine.wordpress.com/113/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mattstine.wordpress.com/113/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mattstine.wordpress.com/113/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mattstine.com&amp;blog=58954&amp;post=113&amp;subd=mattstine&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mattstine.com/2009/04/02/loty-time-again-scala-or-clojure/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1eaa45fee6a2b0c4b479b2982a4274f4?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mattstine</media:title>
		</media:content>
	</item>
		<item>
		<title>Mid-Year Review: My Professional Development Goals for 2007-2008</title>
		<link>http://mattstine.com/2008/01/02/mid-year-review-my-professional-development-goals-for-2007-2008/</link>
		<comments>http://mattstine.com/2008/01/02/mid-year-review-my-professional-development-goals-for-2007-2008/#comments</comments>
		<pubDate>Wed, 02 Jan 2008 22:33:00 +0000</pubDate>
		<dc:creator>mattstine</dc:creator>
				<category><![CDATA[development]]></category>
		<category><![CDATA[goals]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://www.mattstine.com/?p=55</guid>
		<description><![CDATA[Back in July I posted my professional development goals for the year (My performance review is annually in July, so it&#8217;s a good time to set goals.), and it seemed like a good idea to take a look at my progress while doing the &#8220;New Year&#8217;s Resolution&#8221; thing. Learn Groovy and Grails Andy and Dave [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mattstine.com&amp;blog=58954&amp;post=55&amp;subd=mattstine&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Back in July I posted my professional development goals for the year (My performance review is annually in July, so it&#8217;s a good time to set goals.), and it seemed like a good idea to take a look at my progress while doing the &#8220;New Year&#8217;s Resolution&#8221; thing.
<ol>
<li><span style="font-weight:bold;">Learn Groovy and Grails</p>
<p></span>  Andy and Dave suggest learning a new language every year, so this seemed like a good goal for me. I can&#8217;t say that I&#8217;ve truly learned Groovy and Grails in depth, but I did learn them enough <a href="http://www.memphisjug.org/october25%2C2007">to do a presentation on them</a> (as well as Ruby, JRuby, and Rails) at our Java User Group meeting  in October, so I&#8217;ve effectively touched on two languages and two frameworks for those languages. I&#8217;ve since gotten interested in Scala as well. At any rate, I&#8217;d like to go deeper w/ Groovy and Grails as I have time, which is scarce!</p>
</li>
<li><span style="font-weight:bold;">Release </span><span style="font-weight:bold;">HallKeeper</span><span style="font-weight:bold;"> v1.0 as part of #1</span><span style="font-weight:bold;">  </span>
<p>This project seems destined to fail. I haven&#8217;t worked on it in any meaningful way since the summer. I&#8217;ve thought about it in the past week, and I&#8217;d actually like to try doing it in straight Java POJOs with Spring and Hibernate since I&#8217;m more well-versed in that area. At any rate, it really is my lack of spare time that keeps this one on the perpetual back burner.</p>
</li>
<li><span style="font-weight:bold;">Read and LEARN the following books:
<p></span>
<ul>
<li>The Definitive Guide to Grails &#8211; Rocher</li>
<li>The Pragmatic Programmer &#8211; Hunt, Thomas</li>
<li>Computer Algorithms: Introduction to Design &amp; Analysis &#8211; Baase, Van Gelder</li>
<li>Concepts of Programming Languages: Sebesta</li>
<li>Groovy in Action &#8211; Konig
</li>
</ul>
<p> I&#8217;ve pretty much finished #1, got started on #2, and haven&#8217;t really touched the last three. Again, the needs of the moment have necessitated I focus on other areas, particularly other books. Recent projects have pointed me to three additional books I&#8217;d really like to cover this year, so I may not get to my original list. Here are the titles:</p>
<ul>
<li>Working Effectively with Legacy Code &#8211; Feathers</li>
<li>POJOs in Action &#8211; Richardson</li>
<li>Domain Driven Design &#8211; Evans
</li>
</ul>
</li>
<li><span style="font-weight:bold;">Review two books for the </span><span style="font-weight:bold;">JavaLobby</span><span style="font-weight:bold;">/</span><span style="font-weight:bold;">DZone</span><span style="font-weight:bold;"> book review team</span>
<p>This is one I&#8217;ve hit the nail on. I just completed my second book review, which will be published some time in the next few weeks. My first review, <a href="http://matt-stine.blogspot.com/2007/10/ajax-construction-kit-building-plug-and.html">Ajax Construction Kit: Building Plug-and-Play Ajax Applications</a>, was published in October 2007. These have been rather time consuming and have kept me from other projects, so I don&#8217;t plan to take any more reviews this year.</p>
</li>
<li><span style="font-weight:bold;">Pass the Sun Certified Programmer for the Java 2 Platform, Standard Edition 5.0 Exam</span>
<p>Haven&#8217;t touched this one yet. Preparing for this will be one of my foci in the coming weeks.</p>
</li>
<li><span style="font-weight:bold;">Write one Java/software development blog article per week</span>
<p>I haven&#8217;t done so hot on this one. OK, let&#8217;s be really honest. I haven&#8217;t come close. However, my recent flurry of entries on The Spring Experience 2007 have gotten me into a bit of a groove. I&#8217;m going to try to keep up the momentum and finish this year strong.</p>
</li>
<li><span style="font-weight:bold;">Attend </span><span style="font-weight:bold;">JavaOne</span><span style="font-weight:bold;"> 2008 or similar conference</span>
<p>I&#8217;ve actually traveled twice since my original post. My first trip was to the <a href="http://nerlscd.biotech.cornell.edu/">Northeast Life Sciences Core Directors Meeting</a> last November at Cornell University in Ithaca, NY. The purpose of this trip was to present and generate interest around our open source shared resource management system for core facilities, <a href="http://stjude-srm.sourceforge.net/">STJUDE-SRM</a>. The trip was a great success. My second trip really fulfills this goal, as I attended <a href="http://www.thespringexperience.com/conference/hollywood/2007/12/index.html">The Spring Experience 2007</a> in Hollywood, FL. This proved to be one of the best technical conferences I&#8217;ve ever attended, and also one of the most fun!</p>
</li>
<li><span style="font-weight:bold;">Start a Memphis/Mid-South Area Java User Group</span>
<p>I don&#8217;t think this goal could have gone any better than it has. In late July I started a <a href="http://groups.google.com/group/memphis-mid-south-jug">Google Group</a> and a small Google Page Creator website to attempt to drum up interest in a Java User Group for the Memphis, TN and surrounding Mid-South area. On July 23, 2007, along comes Diane Tabulog, a technical recruiter with local company <a href="http://www.vaco.com/Technology/tech_about.htm">Vaco Technology</a>, who convinces her company to throw its support behind our JUG. All of a sudden we have an offer for a meeting location, food budget, giveaways, etc. Later, Clayton Naeve, our CIO at St. Jude, agreed to let us use our awesome conference room at our division&#8217;s new offices at 160 Shadyac Avenue to meet, as Vaco&#8217;s facilities were a bit small. On August 15, <a href="http://weblogs.java.net/blog/caroljmcdonald">Carol McDonald</a>, a Java Technology Evangelist from Sun Microsystems, offered to speak at our JUG, and we signed her up for the first meeting. Little by little, all of the necessary pieces started to fall into place, including additional free giveaways from Sun, O&#8217;Reilly, Atlassian, and JetBrains. <a href="http://www.memphisjug.org/september20%2C2007">The first meeting</a> was a great success, and since then we&#8217;ve had two more successful meetings. Our next meeting is Thursday, January 17, 2008. Find out more at <a href="http://www.memphisjug.org">http://www.memphisjug.org</a>.</li>
</ol>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/mattstine.wordpress.com/55/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/mattstine.wordpress.com/55/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mattstine.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mattstine.wordpress.com/55/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mattstine.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mattstine.wordpress.com/55/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mattstine.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mattstine.wordpress.com/55/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mattstine.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mattstine.wordpress.com/55/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mattstine.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mattstine.wordpress.com/55/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mattstine.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mattstine.wordpress.com/55/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mattstine.wordpress.com/55/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mattstine.wordpress.com/55/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mattstine.com&amp;blog=58954&amp;post=55&amp;subd=mattstine&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mattstine.com/2008/01/02/mid-year-review-my-professional-development-goals-for-2007-2008/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1eaa45fee6a2b0c4b479b2982a4274f4?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mattstine</media:title>
		</media:content>
	</item>
		<item>
		<title>My Professional Development Goals for 2007-2008</title>
		<link>http://mattstine.com/2007/07/10/my-professional-development-goals-for-2007-2008/</link>
		<comments>http://mattstine.com/2007/07/10/my-professional-development-goals-for-2007-2008/#comments</comments>
		<pubDate>Tue, 10 Jul 2007 19:14:00 +0000</pubDate>
		<dc:creator>mattstine</dc:creator>
				<category><![CDATA[development]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://www.mattstine.com/?p=40</guid>
		<description><![CDATA[I posted earlier on my desire to become a better programmer. Well, I&#8217;ve since put together a plan of action for the next twelve months. I&#8217;ve based some of these goals on suggestions from The Pragmatic Programmer by Andy Hunt and Dave Thomas. Learn Groovy and Grails Andy and Dave suggest learning a new language [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mattstine.com&amp;blog=58954&amp;post=40&amp;subd=mattstine&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I posted earlier on my desire to <a href="http://matt-stine.blogspot.com/2007/07/help-me-become-better-programmer.html">become a better programmer</a>. Well, I&#8217;ve since put together a plan of action for the next twelve months. I&#8217;ve based some of these goals on suggestions from <span style="font-style:italic;">The Pragmatic Programmer</span> by Andy Hunt and Dave Thomas.
<ol>
<li><span style="font-weight:bold;">Learn Groovy and Grails</span></p>
<p>Andy and Dave suggest learning a new language every year. I had already informally started learning Groovy and Grails after <span class="blsp-spelling-error" id="SPELLING_ERROR_0">JavaOne</span> 2007. Since I already have a head start on this one, Groovy will be my language for the next year (I&#8217;m learning Grails mainly because of my web development background &#8211; it will provide me more opportunity to apply my Groovy knowledge). This should be an easy way to get started on the goal of a new language each year since my Java knowledge should transfer easily.</p>
</li>
<li><span style="font-weight:bold;">Release </span><span style="font-weight:bold;" class="blsp-spelling-error" id="SPELLING_ERROR_1">HallKeeper</span><span style="font-weight:bold;"> v1.0 as part of #1</span>
<p>Several years ago I started an open source project called <a href="http://code.google.com/p/hallkeeper"><span class="blsp-spelling-error" id="SPELLING_ERROR_2">HallKeeper</span></a>. <span class="blsp-spelling-error" id="SPELLING_ERROR_3">HallKeeper</span> is planned to be a web-based management system for university residence halls. Life got in the way of this project so it lay dormant for a few years. I&#8217;ve recently revived it as sort of a &#8220;lab&#8221; in which to learn Groovy and Grails, and hopefully have a little fun along the way.</p>
</li>
<li><span style="font-weight:bold;">Read and LEARN the following books:</span>
<ul>
<li>The Definitive Guide to Grails &#8211; <span class="blsp-spelling-error" id="SPELLING_ERROR_4">Rocher</span></li>
<li>The Pragmatic Programmer &#8211; Hunt, Thomas</li>
<li>Computer Algorithms: Introduction to Design &amp; Analysis &#8211; <span class="blsp-spelling-error" id="SPELLING_ERROR_5">Baase</span>, Van <span class="blsp-spelling-error" id="SPELLING_ERROR_6">Gelder</span></li>
<li>Concepts of Programming Languages: <span class="blsp-spelling-error" id="SPELLING_ERROR_7">Sebesta</span></li>
<li>Groovy in Action &#8211; <span class="blsp-spelling-error" id="SPELLING_ERROR_8">Konig</span></li>
</ul>
<p>When I say LEARN, I mean I don&#8217;t just want to do a cursory read of these. I want to really engage the concepts presented in each and apply them to my day-to-day work. I already have a head start reading the first two books. The third and fourth books are actually textbooks from my undergraduate education. I could really use a refresher on these concepts, and I think I&#8217;m a much more serious student now as a professional than I was when I was actually a student.</p>
</li>
<li><span style="font-weight:bold;">Review two books for the </span><span style="font-weight:bold;" class="blsp-spelling-error" id="SPELLING_ERROR_9">JavaLobby</span><span style="font-weight:bold;">/</span><span style="font-weight:bold;" class="blsp-spelling-error" id="SPELLING_ERROR_10">DZone</span><span style="font-weight:bold;"> book review team</span>
<p>I joined this team several months ago and was actually assigned to review two books &#8211; again, life got in the way (if you have any small children, you&#8217;ll understand). Things have settled down a bit now and I&#8217;ve asked to rejoin. Hopefully I&#8217;ll be able to crank out some reviews this time and learn something in the process.</p>
</li>
<li><span style="font-weight:bold;">Pass the Sun Certified Programmer for the Java 2 Platform, Standard Edition 5.0 Exam</span>
<p>I want to do this mainly to give myself an excuse to go back over the fundamentals of Java, as well as learn the new features that 5.0 brought to the table in detail (generics, annotations, etc.). I have still basically been living in a Java 1.4 world as I&#8217;d say roughly 85% of my daily work is on an application that is still bound to that <span class="blsp-spelling-error" id="SPELLING_ERROR_11">JDK</span>. So, passing this is mainly just a reason to study, and it is a nice edition to the resume as well.</p>
</li>
<li><span style="font-weight:bold;">Write one Java/software development blog article per week</span>
<p>This would be <span class="blsp-spelling-error" id="SPELLING_ERROR_12">numero</span> <span class="blsp-spelling-error" id="SPELLING_ERROR_13">uno</span>! I&#8217;ve always stressed about the frequency of my blog writing &#8211; I&#8217;ve felt compelled to write every single day, and I usually end up writing a one paragraph synopsis of some other guy&#8217;s blog entry. Not exactly something that will attract many readers. I&#8217;ll still post those on a more frequent basis as they keep the content flowing, but I also want to write at least one in-depth article per week to give people something to look forward to. One way I&#8217;ll do this is to blog about the books I&#8217;m reading. <span style="font-style:italic;">The Pragmatic Programmer</span> provides challenges and/or exercises at the end of each chapter &#8211; great seeds for entries.</p>
</li>
<li><span style="font-weight:bold;">Attend </span><span style="font-weight:bold;" class="blsp-spelling-error" id="SPELLING_ERROR_14">JavaOne</span><span style="font-weight:bold;"> 2008 or similar conference</span>
<p>This one depends on the boss &#8211; hopefully I&#8217;ll get to travel again this year. I&#8217;d love to go back to <span class="blsp-spelling-error" id="SPELLING_ERROR_15">JavaOne</span> &#8211; I learned a lot, and big geek shows always motivate me to go back and introduce new technology to the group, as well as get more involved in the community. I always feel a surge in my professional development in the 2-3 month period following my attending a conference.</p>
</li>
<li><span style="font-weight:bold;">Start a Memphis/Mid-South Area Java User Group</span>
<p>We don&#8217;t have a JUG in this area and I really think that we could benefit from one. My company has a large number of Java developers, and I know that several others in the area, including FedEx and <span class="blsp-spelling-error" id="SPELLING_ERROR_16">Autozone</span> do as well. This would be a great way to get some of the good speakers from the conferences I&#8217;ve attended to speak locally, and it may even serve to get us on the map with some of the smaller shows like <span class="blsp-spelling-error" id="SPELLING_ERROR_17">NFJS</span>. Sun and others really seem to take an interest in supporting JUGS, so I look forward to see what happens. I&#8217;ve started a <a href="http://groups.google.com/group/memphis-mid-south-jug">Google Group</a> for the newborn JUG, and I&#8217;ll be blogging more in the future about it.</li>
</ol>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/mattstine.wordpress.com/40/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/mattstine.wordpress.com/40/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mattstine.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mattstine.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mattstine.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mattstine.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mattstine.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mattstine.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mattstine.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mattstine.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mattstine.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mattstine.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mattstine.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mattstine.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mattstine.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mattstine.wordpress.com/40/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mattstine.com&amp;blog=58954&amp;post=40&amp;subd=mattstine&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mattstine.com/2007/07/10/my-professional-development-goals-for-2007-2008/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1eaa45fee6a2b0c4b479b2982a4274f4?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mattstine</media:title>
		</media:content>
	</item>
		<item>
		<title>Help me become a better programmer!</title>
		<link>http://mattstine.com/2007/07/02/help-me-become-a-better-programmer/</link>
		<comments>http://mattstine.com/2007/07/02/help-me-become-a-better-programmer/#comments</comments>
		<pubDate>Mon, 02 Jul 2007 20:12:00 +0000</pubDate>
		<dc:creator>mattstine</dc:creator>
				<category><![CDATA[development]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://www.mattstine.com/?p=37</guid>
		<description><![CDATA[I have decided to embark upon a quest to become a better programmer. I would really like to improve my understanding of the computer science that underlies my day-to-day tasks, particularly as it relates to programming language design as well as algorithm design and complexity analysis. I would also like to improve my analytical and [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mattstine.com&amp;blog=58954&amp;post=37&amp;subd=mattstine&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I have decided to embark upon a quest to become a better programmer. I would really like to improve my understanding of the computer science that underlies my day-to-day tasks, particularly as it relates to programming language design as well as algorithm design and complexity analysis. I would also like to improve my analytical and problem solving skills. I&#8217;ve found that I&#8217;m really good at learning new technologies and quickly bringing them to bear on web application development problems, but take me out of that problem space and I get nervous rather quickly.</p>
<p>Who has ideas about the best way to go about this? Please comment!</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/mattstine.wordpress.com/37/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/mattstine.wordpress.com/37/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mattstine.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mattstine.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mattstine.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mattstine.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mattstine.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mattstine.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mattstine.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mattstine.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mattstine.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mattstine.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mattstine.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mattstine.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mattstine.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mattstine.wordpress.com/37/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mattstine.com&amp;blog=58954&amp;post=37&amp;subd=mattstine&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mattstine.com/2007/07/02/help-me-become-a-better-programmer/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1eaa45fee6a2b0c4b479b2982a4274f4?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mattstine</media:title>
		</media:content>
	</item>
	</channel>
</rss>
