<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.innerworkings.com/~d/styles/itemcontent.css"?><!-- generator="wordpress/2.1.2" --><rss 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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Aonghus O'Lochlainn @ Blogs | Hear From Our Software Thought Leaders | InnerWorkings</title>
	
	<link>http://blogs.innerworkings.com</link>
	<description>Helping our customers to build great software organizations</description>
	<pubDate>Tue, 18 Oct 2011 18:56:12 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.1.2</generator>
	<language>en</language>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.innerworkings.com/iw/aolochlainn" /><feedburner:info uri="iw/aolochlainn" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Practice makes perfect… doesn’t it?</title>
		<link>http://feeds.innerworkings.com/~r/iw/aolochlainn/~3/eEmurv7kXA0/</link>
		<comments>http://blogs.innerworkings.com/aolochlainn/2007/09/03/practice-makes-perfect%e2%80%a6-doesnt-it/#comments</comments>
		<pubDate>Mon, 03 Sep 2007 15:20:49 +0000</pubDate>
		<dc:creator>Aonghus O'Lochlainn</dc:creator>
		
		<category><![CDATA[Blogs]]></category>

		<guid isPermaLink="false">http://blogs.innerworkings.com/aolochlainn/2007/09/03/practice-makes-perfect%e2%80%a6-doesnt-it/</guid>
		<description><![CDATA[There&#8217;s an old saying, &#8220;Practice makes perfect&#8221;. And, as you&#8217;re probably aware if you read this blog and you understand the InnerWorkings&#8217; philosophy, the mantra we repeat over and over is &#8220;Practice, practice, practice&#8221;. So you&#8217;d probably think that we would automatically endorse that old saying.
But does practice always make perfect?
Not necessarily! Obviously, the more [...]]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s an old saying, &#8220;Practice makes perfect&#8221;. And, as you&#8217;re probably aware if you read this blog and you understand the InnerWorkings&#8217; philosophy, the mantra we repeat over and over is &#8220;Practice, practice, practice&#8221;. So you&#8217;d probably think that we would automatically endorse that old saying.</p>
<p>But does practice always make perfect?</p>
<p>Not necessarily! Obviously, the more you practice something, the easier it will be for you to do. With constant practice, some skills become almost reflexive. But imagine that you learned the skill incorrectly in the first place. Or that, during your practice, bad habits crept in and then became ingrained through repetition. When this happens, practice certainly doesn&#8217;t make perfect.</p>
<p><img src="http://blogs.innerworkings.com/blogs/wp-content/uploads/2007/08/golf_grip2.jpg" alt="Golf" align="right" />Let&#8217;s say you&#8217;re learning how to play golf, and you find it difficult to drive the ball the required distance. You modify your swing, and then you practice and practice. Eventually you start to consistently achieve the required distance. But somewhere along the way you acquired some bad habits and now you find it difficult to consistently get the direction right. You&#8217;ve solved one problem but you&#8217;re stuck with another. Not so good!</p>
<p>Ideally you&#8217;d have had a golf pro on hand to periodically review your practice, give you feedback, and correct any faults creeping into your swing and grip. This would have prevented you from developing bad habits which are so hard to get rid of later.</p>
<p>One of the great things about programming is its flexibility. You can achieve a desired solution by writing code in many different ways. A competent programmer will write code in a certain way, while a really excellent programmer will write the code differently. Conversely, a poor programmer can still achieve the desired solution but may do so by writing inefficient, bug-ridden code that&#8217;s difficult to understand and maintain.</p>
<p>Not everyone can be a brilliant programmer. But one of the most important ways you can maximize your potential as a programmer is by adhering to <strong>good programming practices</strong> and avoiding bad ones.</p>
<p>The InnerWorkings developers are always careful to use good programming practices. For example, they make heavy use of <strong>refactoring</strong>, which improves and simplifies the code design without changing its functionality. This makes it easier for the learner to understand the code in the challenge, and encourages the writing of clean, straightforward code to meet the challenge&#8217;s requirements. Another example of good practice is the use of naming conventions that adhere closely to industry standards and Microsoft guidelines.</p>
<p>These are just two simple examples of good programming practices. We use many others to ensure that the code in InnerWorkings challenges is – as far as is practicable - readable, maintainable, reusable, modular, testable, and so on.</p>
<p>What&#8217;s more, hints are given in some challenges – when used, they often point to the better programming practice among several possible solutions.</p>
<p>This exposure to good programming practices means that when a learner successfully completes an InnerWorkings challenge, they won&#8217;t just have grasped the key learning objective of that challenge. They&#8217;ll also be more likely to use <strong>good programming habits</strong> when putting what they&#8217;ve learned into practice.</p>
<p>Yet another benefit of the InnerWorkings system!</p>
<img src="http://feeds.feedburner.com/~r/iw/aolochlainn/~4/eEmurv7kXA0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blogs.innerworkings.com/aolochlainn/2007/09/03/practice-makes-perfect%e2%80%a6-doesnt-it/feed/</wfw:commentRss>
		<feedburner:origLink>http://blogs.innerworkings.com/aolochlainn/2007/09/03/practice-makes-perfect%e2%80%a6-doesnt-it/</feedburner:origLink></item>
		<item>
		<title>Buenos Dias, .NET!</title>
		<link>http://feeds.innerworkings.com/~r/iw/aolochlainn/~3/nwc_jyM7VWw/</link>
		<comments>http://blogs.innerworkings.com/aolochlainn/2007/08/27/buenos-dias-net/#comments</comments>
		<pubDate>Mon, 27 Aug 2007 13:05:58 +0000</pubDate>
		<dc:creator>Aonghus O'Lochlainn</dc:creator>
		
		<category><![CDATA[Blogs]]></category>

		<guid isPermaLink="false">http://blogs.innerworkings.com/aolochlainn/2007/08/27/buenos-dias-net/</guid>
		<description><![CDATA[I&#8217;ve taken some Spanish courses over the last few years. They&#8217;ve been very good—excellent teachers, facilities, and materials. So when term ended a few months ago and I passed the exam, my natural inclination was to sign up for the next term.
However, I decided that rather than continuing with the course, I&#8217;d take a break [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://blogs.innerworkings.com/blogs/wp-content/uploads/2007/08/toro.jpg" alt="Toro" align="right" />I&#8217;ve taken some Spanish courses over the last few years. They&#8217;ve been very good—excellent teachers, facilities, and materials. So when term ended a few months ago and I passed the exam, my natural inclination was to sign up for the next term.</p>
<p>However, I decided that rather than continuing with the course, I&#8217;d take a break and try to consolidate what I&#8217;d learned. I figured that the best way to do this was to meet up with some Spanish people and try to have real conversations with them. Talk. Practice.</p>
<p>And it&#8217;s worked out well. I started meeting and talking to Spanish people on a regular basis. And now, while I&#8217;m by no means fluent, my Spanish has improved greatly since I started this new, more active and practice-based approach.</p>
<p>What&#8217;s this got to do with InnerWorkings, you may ask? A lot, in fact!</p>
<p>Learning a language like Spanish or German has a lot in common with learning how to program. Both are complex activities. Both require a lot of dedication and hard work to achieve a reasonable degree of proficiency.</p>
<p>There are many aspects to learning a new language. You start off with simple phrases, like how to introduce yourself and how to describe other people and situations. Then you learn basic grammar, which involves a lot of verbs (including those tricky irregular ones). Next, it&#8217;s important to build up your vocabulary. The more words you know, the more you&#8217;ll be able to understand and express yourself.</p>
<p>Even with all this done, it&#8217;s still a big step to actually talk with someone in a foreign language. It&#8217;s always easier to read and write the language than it is to hold a meaningful conversation in it. And for most people, being able to hold a real conversation is the main motivation to learn a new language.</p>
<p>There are many resources for language learning. Grammar books teach the rules of the language, dictionaries provide vocabulary, books and movies also help. But take it from me, you <strong>will not</strong> be able to speak a language properly unless you practice regularly with a fluent speaker. It&#8217;s the difference between simply knowing about something and actually doing it.</p>
<p>The same situation applies to programming. You can have all the resources to hand—the latest version of Visual Studio, access to MSDN, online tutorials, great textbooks. But unless you&#8217;re getting relevant and regular on-the-job experience, it&#8217;s very difficult to &#8216;practice&#8217; with a programming language or technology in a meaningful way.</p>
<p>This is where InnerWorkings&#8217; unique challenge-based approach helps. The key to our approach is <strong>structured practice</strong>. We assume that you know the basics, can program competently, and can look up relevant reference sources. Where the InnerWorkings challenge makes the crucial difference is that it provides the opportunity to really practice – to put theory into practice in a realistic and supportive environment. To apply the techniques used in real-world problem solving. To write code. And to learn .NET.</p>
<p>If you want to learn Spanish, <strong>get talking</strong> to a fluent Spanish speaker.</p>
<p>And if you want to learn .NET, <strong>get coding</strong> with an InnerWorkings challenge!</p>
<img src="http://feeds.feedburner.com/~r/iw/aolochlainn/~4/nwc_jyM7VWw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blogs.innerworkings.com/aolochlainn/2007/08/27/buenos-dias-net/feed/</wfw:commentRss>
		<feedburner:origLink>http://blogs.innerworkings.com/aolochlainn/2007/08/27/buenos-dias-net/</feedburner:origLink></item>
		<item>
		<title>Knowledge is not enough!</title>
		<link>http://feeds.innerworkings.com/~r/iw/aolochlainn/~3/jDEchDtUO2c/</link>
		<comments>http://blogs.innerworkings.com/aolochlainn/2007/08/16/knowledge-is-not-enough/#comments</comments>
		<pubDate>Thu, 16 Aug 2007 14:25:18 +0000</pubDate>
		<dc:creator>Aonghus O'Lochlainn</dc:creator>
		
		<category><![CDATA[Blogs]]></category>

		<guid isPermaLink="false">http://blogs.innerworkings.com/aolochlainn/2007/08/16/knowledge-is-not-enough/</guid>
		<description><![CDATA[We are living in a knowledge-based society, and indeed many people are now classified as &#8220;knowledge workers&#8221;.
There are many definitions of knowledge. One straightforward definition is &#8220;the facts and information acquired by a person through experience or education&#8221;. Another definition is &#8220;the theoretical or practical understanding of a subject&#8221;.
So knowledge is evidently a good and [...]]]></description>
			<content:encoded><![CDATA[<p>We are living in a knowledge-based society, and indeed many people are now classified as &#8220;knowledge workers&#8221;.</p>
<p>There are many definitions of knowledge. One straightforward definition is <em>&#8220;the facts and information acquired by a person through experience or education&#8221;</em>. Another definition is <em>&#8220;the theoretical or practical understanding of a subject&#8221;</em>.</p>
<p>So knowledge is evidently a good and necessary thing in today&#8217;s world.</p>
<p>Skill is also regarded as a good thing. A person who&#8217;s regarded as a &#8220;skilled&#8221; operative or a &#8220;skillful&#8221; player is obviously the kind of person you&#8217;d like to have on your team.</p>
<p><img src="http://blogs.innerworkings.com/blogs/wp-content/uploads/2007/08/mac_keys.thumbnail.jpg" alt="Keys" align="right" />There are many kinds of skills – academic and technical skills, communication abilities, sports prowess. The common denominator among those who possess these skills is their ability to influence and change the world around them. The politician who is a skillful communicator can win people&#8217;s votes. The inspirational football coach can motivate a team to win time after time. The skillful software developer can analyze a problem and quickly develop a solution.</p>
<p>But what&#8217;s the relationship between knowledge and skill?</p>
<p>Knowledge is like a description of the world - it&#8217;s somewhat intangible. Skill is more directly connected to the world - it enables you to change the world in a real and meaningful way.</p>
<p>If knowledge is a map that shows the landscape around you, then skill enables you to read the map and your surroundings, and then navigate to where you want to go.</p>
<p>Another difference between knowledge and skill is that while you can simply study to acquire knowledge, the only way to acquire a skill is to practice, practice, practice.</p>
<p>Of course the two things are not incompatible - in fact, they&#8217;re closely related. Knowledge is what you&#8217;re aware of, your understanding of how things work. In contrast, skill is your ability to use what you know to effect a real change in the outside world. Being skillful does imply a certain amount of knowledge. But the converse is not true. You can be knowledgeable about something without being skillful in that area.</p>
<p>I can give a personal example of this seeming paradox. I have a good knowledge of C# - I&#8217;ve read a couple of Jesse Liberty&#8217;s C# books, and sampled numerous articles and web sites devoted to C#.</p>
<p>But what about my C# programming skills? Well, let&#8217;s just say that I won&#8217;t be joining the InnerWorkings developer team anytime soon! My skills are those of a technical writer, and are quite different from the skills needed to program in C# or VB. I need a certain knowledge of these languages to do my job properly, but I don&#8217;t actually need the skill to program - I leave that to our very competent developers.</p>
<p>This confusion between knowledge and skill brings us to a basic problem in much of the technically oriented learning that&#8217;s available today - instructor-led training (ILT), e-learning, self-learning through books and videos, and so on.</p>
<p>In many cases, it is <strong>knowledge</strong> that&#8217;s being imparted, not skill. Much of this knowledge is good stuff – highly technical, accurate, well structured and presented. But the end result of engaging in this type of learning is simply a transfer of knowledge to the learner, without a corresponding increase in the learner&#8217;s skill level.</p>
<p>And it is <strong>skills </strong>that are vitally needed in today&#8217;s workplace, not simply knowledge.</p>
<p>Right from the beginning, InnerWorkings determined that the best way to develop real programming skills is to get people to write real code, in a realistic working environment.</p>
<p>Our practical coding challenges point you to relevant knowledge sources that are available on the web.</p>
<p>But they then provide you with an opportunity to <strong>turn that knowledge into skill</strong> by writing the code needed to solve the programming challenge.</p>
<p>It&#8217;s a pretty unique approach.</p>
<img src="http://feeds.feedburner.com/~r/iw/aolochlainn/~4/jDEchDtUO2c" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blogs.innerworkings.com/aolochlainn/2007/08/16/knowledge-is-not-enough/feed/</wfw:commentRss>
		<feedburner:origLink>http://blogs.innerworkings.com/aolochlainn/2007/08/16/knowledge-is-not-enough/</feedburner:origLink></item>
	</channel>
</rss>

