<?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>Global Nerdy &#187; learning</title>
	<atom:link href="http://www.globalnerdy.com/tag/learning/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.globalnerdy.com</link>
	<description>Tech Evangelist Joey deVilla on Shopify, startups, software development, tech news and other nerdy stuff</description>
	<lastBuildDate>Wed, 08 Feb 2012 21:54:25 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Ruby Foo</title>
		<link>http://www.globalnerdy.com/2011/05/30/ruby-foo/</link>
		<comments>http://www.globalnerdy.com/2011/05/30/ruby-foo/#comments</comments>
		<pubDate>Mon, 30 May 2011 18:32:36 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[books]]></category>
		<category><![CDATA[learning]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://www.globalnerdy.com/2011/05/30/ruby-foo/</guid>
		<description><![CDATA[After three years away from all but the most trivial of noodling with the Ruby programming language, I have become a Ruby Foo (as in Mr. T’s catchphrase, “I pity the foo’!”). I am severely out of practice with Ruby, and with two versions having appeared since I last made a living with Rails, even [...]]]></description>
			<content:encoded><![CDATA[<p></p><p><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="ruby foo" border="0" alt="ruby foo" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2011/05/ruby-foo.jpg" width="600" height="402" /></p>
<p><strong>After three years away from all but the most trivial of noodling with the <a href="http://www.ruby-lang.org/en/">Ruby programming language</a>, I have become a Ruby Foo </strong>(as in Mr. T’s catchphrase, <a href="http://www.youtube.com/watch?v=DJnKm6ftPu0">“I pity the foo’!”</a>). I am severely out of practice with Ruby, and with <em>two </em>versions having appeared since I last made a living with Rails, even the act of creating a new project is completely different. Since Ruby is the preferred back-end programming language at Shopify and I am the Platform Evangelist, it’s time for me to <a href="https://www.stephencovey.com/7habits/7habits-habit7.php">“sharpen the saw”</a>.</p>
<p><a href="http://obiefernandez.com/"><img style="background-image: none; border-right-width: 0px; margin: 0px auto; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="obie" border="0" alt="obie" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2011/05/obie.jpg" width="600" height="449" /></a></p>
<p>Luckily for me, I ran into <a href="http://obiefernandez.com/">Obie Fernandez</a> at the <a href="http://sxsw.com/interactive">South by Southwest Interactive conference</a> back in March. We sat down for a coffee and he told me about what was happening with <a href="http://www.hashrocket.com/">Hashrocket</a> and I told him that I was a hair’s breadth away from joining <a href="http://shopify.com/">Shopify</a>.</p>
<p>“I’ve been away from Ruby long enough that I’m probably back at newbie level again,” I told Obie between sips of latte made with overcooked beans. “I did it for a bit at the beginning using <a href="http://ironruby.net/">IronRuby</a>, but between doing all the <a href="http://msdn.microsoft.com/en-us/vcsharp/default">C#</a> and <a href="http://php.net/">PHP</a> and <a href="http://blog.jimmy.schementi.com/2010/08/start-spreading-news-future-of-jimmy.html">the open source ‘Iron’ languages dying of neglect at Microsoft</a>, I’m severely out of practice. I thinking of joining Shopify, and let’s face it: I don’t want to look like an ignoramus in the presence of rock stars like <a href="http://twitter.com/#!/tobi">Tobi</a>, <a href="http://twitter.com/#!/codyfauser">Cody</a> and <a href="http://twitter.com/#!/edwardog">Edward</a>.”</p>
<p>“Give me your email,” said Obie, “and I can do something to help.” Of course he could – he’s the series editor of Addison-Wesley’s Professional Ruby series of books.</p>
<p>Shortly after South by Southwest, a couple of links to PDF editions appeared in my inbox. Thanks, Obie!</p>
<p><a href="http://www.amazon.com/Eloquent-Ruby-Addison-Wesley-Professional/dp/0321584104"><img style="background-image: none; border-right-width: 0px; margin: 0px auto; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="eloquent ruby" border="0" alt="eloquent ruby" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2011/05/eloquent-ruby.jpg" width="382" height="500" /></a></p>
<p><strong>The first link was to <em><a href="http://www.amazon.com/Eloquent-Ruby-Addison-Wesley-Professional/dp/0321584104">Eloquent Ruby</a></em>,</strong> Russ Olsen’s guide to speaking idiomatic Ruby and getting the most out of the Ruby programming language. It’s a breezy read, written in the same conversational tone that Olsen used in <em><a href="http://www.amazon.com/Design-Patterns-Ruby-Russ-Olsen/dp/0321490452">Design Patterns in Ruby</a></em>, and the book is broken down into 31 bite-size chapters about a dozen pages in length. Each chapter’s title is some principle for programming eloquent Ruby – the first few are “Write Code That Looks Like Ruby”, “Choose the Right Control Structure” and “Take Advantage of Ruby’s Smart Collections” – and each explains that principle, provides code, shows you where you can find the principles used in actual, working projects. The book straddles the line between tutorial and reference; it’s written in tutorial style, but it’s organized so well that it might as well be a reference for those parts of Ruby that you might not use often (but should) as well as for those parts you keep forgetting (in my case, I <em>always</em> end up having to look up metaprogramming). I’ve been going through it at about a chapter an evening, and I’ve been getting smarter each time. Whether you’re coming back to Ruby after a hiatus like I am or if you just simply want to get better at Ruby, you should have this book in your library.</p>
<p class="note">If you’d like to know more about <em>Eloquent Ruby</em> and its author, Russ Olsen, <a href="http://www.infoq.com/articles/olsen-eloquent-ruby">check out this interview with him at<em> InfoQ</em></a>.</p>
<p><a href="http://www.amazon.com/Ruby-Rails-Tutorial-Addison-Wesley-Professional/dp/0321743121"><img style="background-image: none; border-right-width: 0px; margin: 0px auto; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="ruby on rails 3 tutorial" border="0" alt="ruby on rails 3 tutorial" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2011/07/ruby-on-rails-3-tutorial.jpg" width="375" height="489" /></a></p>
<p><strong>I have yet to properly sink my teeth into <em><a href="http://www.amazon.com/Ruby-Rails-Tutorial-Addison-Wesley-Professional/dp/0321743121">Ruby on Rails 3 Tutorial</a></em></strong> but a quick scan of the book has shown that it’s quite promising, and <a href="http://www.amazon.com/Ruby-Rails-Tutorial-Addison-Wesley-Professional/product-reviews/0321743121/ref=dp_top_cm_cr_acr_txt?ie=UTF8&amp;showViewpoints=1">the Amazon reviews</a> are bolstering my belief.</p>
<p>I’ll be writing from time to time about my return to Ruby and Rails in this “Ruby Foo” series of posts, and I hope that whether you’re new to the language, returning after a break like me or aiming for “guru” status, that you’ll check out this blog regularly for notes on my explorations and what I’ve learned.</p>
<p class="alert"><a href="http://www.shopify.com/technology/3301282-ruby-foo">This article also appears in the Shopify Technology blog.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2011/05/30/ruby-foo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pragmatic Thinking &amp; Learning: My Favourite Geek Book of 2008</title>
		<link>http://www.globalnerdy.com/2009/01/08/pragmatic-thinking-learning-my-favourite-geek-book-of-2008/</link>
		<comments>http://www.globalnerdy.com/2009/01/08/pragmatic-thinking-learning-my-favourite-geek-book-of-2008/#comments</comments>
		<pubDate>Thu, 08 Jan 2009 06:06:42 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[learning]]></category>
		<category><![CDATA[mind and brain]]></category>
		<category><![CDATA[pragmatic programming]]></category>

		<guid isPermaLink="false">http://www.globalnerdy.com/?p=2596</guid>
		<description><![CDATA[This article also appears in Canadian Developer Connection. It’s easy to point to books on understanding and improving the inner workings of your code, the software and hardware platforms on which it runs and even the processes used in developing it. It’s much harder to find one on understanding and improving the programmer, or more [...]]]></description>
			<content:encoded><![CDATA[<p></p><p><a href="http://www.pragprog.com/titles/ahptl/pragmatic-thinking-and-learning"><img style="border-right-width: 0px; margin: 0px 0px 0px 10px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Cover of " border="0" alt="Cover of " align="right" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/01/pragmatic-thinking-and-learning.jpg" width="190" height="228" and="and" learning??="Learning??" pragmatic="pragmatic" thinking="thinking" /></a></p>
<p class="alert"><a href="http://blogs.msdn.com/cdndevs/archive/2009/01/08/pragmatic-thinking-learning-my-favourite-geek-book-of-2008.aspx">This article also appears in <em>Canadian Developer Connection</em>.</a><em></em></p>
<p>It’s easy to point to books on understanding and improving the inner workings of your code, the software and hardware platforms on which it runs and even the processes used in developing it. It’s much harder to find one on understanding and improving the <em>programmer</em>, or more specifically the programmer’s “wetware” – that is, the brain and mind. A few books aimed at programmers give a little space to the topic: <em><a href="http://www.chapters.indigo.ca/books/Tog-on-Interface-Bruce-Tognazzini/9780201608427-item.html">Tog on Interface</a></em> has a section and exercise on building your intuition, the first edition of <em><a href="http://www.chapters.indigo.ca/books/Code-Complete-Steve-Mcconnell/9780735619678-item.html">Code Complete</a> </em>devotes a small chapter to character, and <em><a href="http://www.chapters.indigo.ca/books/Cocoa-Programming-for-Mac-OS/9780321213143-item.html">Cocoa Programming for Mac OS X</a> </em>reminds the reader that getting extra sleep when learning new material is essential. For a <em>whole book</em> on the topic, we’ve had to wait until <a href="http://blog.toolshed.com/">Andy “<em>The Pragmatic Progammer</em>” Hunt’s</a> <em><strong><a href="http://www.pragprog.com/titles/ahptl/pragmatic-thinking-and-learning">Pragmatic Thinking &amp; Learning: Refactor Your Wetware</a></strong></em>.</p>
<p>The first few chapters of <em>PT&amp;L </em>form a quick introduction to the theories of cognition, learning and neuroscience on which the rest of the book is based. Among these are the <a href="http://blog.bruceabernethy.com/post/The-Dreyfus-Model-of-Skills-Acquisition.aspx">Dreyfus Model</a>, which explains how we progress from novice to expert and the steps along the way and a model of the brain in techie terms, shown below:</p>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Diagram showing a &quot;Dual core&quot; model of the brain" border="0" alt="Diagram showing a &quot;Dual core&quot; model of the brain" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/01/your-dualcore-brain.jpg" width="514" height="420" /> </p>
<p>Once <em>PT&amp;L</em> has laid out these foundations, it dives into the brain-refactoring, including:</p>
<ul>
<li><strong>Taking advantage of <em>R</em>-mode</strong> (often called the <a href="http://www.funderstanding.com/content/right-brain-vs-left-brain">“right brain”</a> in pop psychology), which often gets ignored because of its non-linear, non-linguistic, unpredictable and even “artsy” nature. It’s actually an amazing problem-solver, so much that <em>PT&amp;L</em> suggests that you should “lead with <em>R</em>-mode and follow with L-mode”, or more colloquially, “write drunk; revise sober”. </li>
<li><strong>Working around the bugs in your brain.</strong> And there are many, from the primitive “lizard brain” that likes to override our higher cognitive functions to cognitive biases to generational affinity. </li>
<li><strong>Learning deliberately:</strong> what learning is and isn’t, how to plan to learn, figuring out what your learning style is and how to best take advantage of it, and harnessing mind maps, documentation and teaching in order to learn. </li>
<li><strong>Gaining experience, </strong>which includes understanding the importance of fun and how pressure kills cognition, learning the “inner game” and why your mantra shouldn’t be “learn to build”, but “build to learn”. </li>
<li><strong>Managing focus,</strong> a very important topic since there are so many things vying for it, from office interruptions to the siren song of the internet, with email, IM, Twitter, Digg, Reddit and LOLcats. One of my favourite bits in this section was some research whose results indicated that constantly checking your email lowers your effective IQ more than smoking a joint. </li>
</ul>
<p><em>PT&amp;L</em> does a great job following its own advice by presenting its material in ways that best take advantage of how our brains work, reinforcing its with anecdotes, metaphors and visuals and using the enjoyable style for which Andy Hunt’s other projects, such as <em><a href="http://www.pragprog.com/the-pragmatic-programmer">The Pragmatic Programmer</a> </em>and his various training sessions have become famous. </p>
<p>As with any book that proscribes a new way of doing or perceiving things – think of books on Agile programming or <a href="http://en.wikipedia.org/wiki/Getting_Things_Done">“Getting Things Done”</a> methodologies – you’ll have to pick and choose which ideas and techniques work best for you. In <a href="http://radar.oreilly.com/2008/07/book-review-pragmatic-thinking.html">his review</a>, O’Reilly editor Nat Torkington found the section on generational affinity a little too “Malcolm Gladwell”-ish in the way that it treats anecdotes about generations as data (personally, I think there’s some truth to the generational affinity thing). I do agree with Nat that some of the exercises, such as “Morning Pages” that seem a bit too new-agey/hippie even for me – and I’m the kind of guy who’d go to <a href="http://burningman.com/">Burning Man</a>.</p>
<p>This is the only book of which I’m aware that covers how to improve the tool that really develops code: not your platform, language or editor, but your <em>mind</em>. It’s worthy of several readings, first straight through and subsequent dives into specific sections. I took it with me on my flight from Toronto to TechDays Calgary and found it both not only informative, but engaging and entertaining as well. Best of all, barring some quantum leap in cognitive science that invalidates what we know today, <em>PT&amp;L</em> will probably have a much longer shelf life than most of the tech books in your library.</p>
<p>It’s my favourite geek book of 2008.</p>
<p><em><a href="http://www.pragprog.com/titles/ahptl/pragmatic-thinking-and-learning"><strong>Pragmatic Thinking &amp; Learning</strong></a></em> is available in both dead-tree (<a href="http://www.pragprog.com/titles/ahptl/pragmatic-thinking-and-learning">US$34.95 direct from the publisher</a>, <a href="http://www.chapters.indigo.ca/books/Pragmatic-Thinking-Learning-Refactor-Your-Andy-Hunt/9781934356050-item.html">CAD$30.69 from Chapters/Indigo online</a>) and PDF formats (<a href="http://www.pragprog.com/titles/ahptl/pragmatic-thinking-and-learning">US$22.00</a>). It’s a <a href="http://www.joltawards.com/finalists.html">finalist</a> in the “Books General” category of the 19th Annual <a href="http://www.joltawards.com/">Jolt Awards</a>.</p>
<p><strong>Would you be interested in hearing more from <em>PT&amp;L’s</em> author, Andy Hunt, himself?</strong> Let me know either via <a href="mailto:joey.devilla@microsoft.com">email</a> or the comments, and I’ll see what I can do about arranging an interview in some format with your questions!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2009/01/08/pragmatic-thinking-learning-my-favourite-geek-book-of-2008/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>What I Learned From Java That Makes Me a Better Programmer When I Use Ruby</title>
		<link>http://www.globalnerdy.com/2008/01/04/what-i-learned-from-java-that-makes-me-a-better-programmer-when-i-use-ruby/</link>
		<comments>http://www.globalnerdy.com/2008/01/04/what-i-learned-from-java-that-makes-me-a-better-programmer-when-i-use-ruby/#comments</comments>
		<pubDate>Fri, 04 Jan 2008 16:44:00 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[being well-rounded]]></category>
		<category><![CDATA[interdisciplinary]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[learning]]></category>

		<guid isPermaLink="false">http://globalnerdy.com/2008/01/04/what-i-learned-from-java-that-makes-me-a-better-programmer-when-i-use-ruby/</guid>
		<description><![CDATA[One lesson that Nathan Weizenbaum learned from Java that makes him a better Ruby programmer: &#8220;I learned what I was abstracting. I learned what blocks are, why dynamic typing is useful, what it means to redefine an operator. And I learned it from Java, by doing without.&#8221;]]></description>
			<content:encoded><![CDATA[<p></p><p><a href="http://nex-3.com/posts/64-what-i-learned-from-java-that-makes-me-a-better-programmer-when-i-use-ruby-yes-really"><strong>One lesson that Nathan Weizenbaum learned from Java that makes him a better Ruby programmer:</strong></a> &#8220;I learned what I was abstracting. I learned what blocks are, why dynamic typing is useful, what it means to redefine an operator. And I learned it from Java, by doing without.&#8221;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2008/01/04/what-i-learned-from-java-that-makes-me-a-better-programmer-when-i-use-ruby/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

