<?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>Dalton Filho &#187; thoughts</title>
	<atom:link href="http://www.daltonfilho.com/tag/thoughts/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.daltonfilho.com</link>
	<description></description>
	<lastBuildDate>Sun, 13 Sep 2009 03:41:40 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>The training we lack</title>
		<link>http://www.daltonfilho.com/2008/03/21/the-training-we-lack/</link>
		<comments>http://www.daltonfilho.com/2008/03/21/the-training-we-lack/#comments</comments>
		<pubDate>Fri, 21 Mar 2008 21:33:35 +0000</pubDate>
		<dc:creator>Dalton Filho</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[education]]></category>
		<category><![CDATA[thoughts]]></category>

		<guid isPermaLink="false">http://www.daltonfilho.com/2008/03/21/the-training-we-lack/</guid>
		<description><![CDATA[A while ago I've posted my thoughts about <a href="http://www.daltonfilho.com/2008/02/10/in-praise-of-education/" title="In praise of education">the implications of work experience demands</a>; to put it briefly, work experience does not guarantee qualification, as this experience follows the business agenda of the company where you work, which may be repetitive, random, and probably insufficient. At the same time, home experience, which can happen in a systematic manner, away from such influence, is rarely considered. In any case, it is hard to measure a kind of knowledge that often changes fast. The lack of such measures leads the industry to sometimes adopt esoteric means to assess qualification.]]></description>
			<content:encoded><![CDATA[<p>A while ago I&#8217;ve posted my thoughts about <a href="http://www.daltonfilho.com/2008/02/10/in-praise-of-education/" title="In praise of education">the implications of work experience demands</a>; to put it briefly, work experience does not guarantee qualification, as this experience follows the business agenda of the company where you work, which may be repetitive, random, and probably insufficient. At the same time, home experience, which can happen in a systematic manner, away from such influence, is rarely considered. In any case, it is hard to measure a kind of knowledge that often changes fast. The lack of such measures leads the industry to sometimes adopt esoteric means to assess qualification.</p>
<p>While we cannot change the industry, we can change ourselves, and by change I mean making sure we are actually qualified for the job we do, instead of resting on our laurels of experience. You may be hired for the experience you have, but you want to deliver all the knowledge you have acquired, even if you never had the chance to use it in any of the companies you worked on. How do we gain experience without working on a specific project? Education, of course! The training of pianists offers a very convenient analogy on this matter.</p>
<p>As a pianist myself, I would never be able to imagine how would I ever be able to perform without training. I would not be able to do sight-reading either: most of what I play has a reasonable complexity and requires a thoughtful interpretation. But programming and playing piano are very different when it comes to performance: while piano players are able to train hours, weeks or months for a few hours of performance, programmers are expected to learn on the job &#8211; hence the over-appreciation of experience. To make things just a little more difficult, the only time programmers have to fully concentrate on their training is their free time (no wonder you have to love what you do to stay on this business).</p>
<p>I <em>do</em> love what I do. I do love to study what I use at work to perform more than I train, but there&#8217;s a problem: I&#8217;m not willing to lead a monomaniac lifestyle, I do not want to use <em>all</em> my scarce free time to train for work. I need to rest and take care of my health to keep doing what I love to do. The inevitable corollary: my training must be <em>very efficient</em>. Do I find very efficient training available? Definitely not. Most of the technical books seem to expect a very passive kind of reader: I <em>never</em> find lists of exercises in many of the famous books from O&#8217;Reilly or Manning. Lists of exercises should be the rule, not the exception. It still amazes me how authors without teaching skills are allowed to publish technical books in a field where professionals are so devoid of training. We are left in the cold to learn erratically. We are supposed to train like monomaniacs. We are supposed to <em>err on the job</em>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.daltonfilho.com/2008/03/21/the-training-we-lack/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>In praise of education</title>
		<link>http://www.daltonfilho.com/2008/02/10/in-praise-of-education/</link>
		<comments>http://www.daltonfilho.com/2008/02/10/in-praise-of-education/#comments</comments>
		<pubDate>Sun, 10 Feb 2008 20:37:16 +0000</pubDate>
		<dc:creator>Dalton Filho</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[education]]></category>
		<category><![CDATA[thoughts]]></category>
		<category><![CDATA[training]]></category>

		<guid isPermaLink="false">http://www.daltonfilho.com/2008/02/10/in-praise-of-education/</guid>
		<description><![CDATA[The year of experience is a frequent phrase in tech job postings and a very popular measure of knowledge. But does this measure actually work? If companies decided to withdraw it as a measure of knowledge, using technical questions instead, would professionals be able to be 100% prepared with our current ad-hoc means of learning?]]></description>
			<content:encoded><![CDATA[<p>The year of experience is a frequent phrase in tech job postings and a very popular measure of knowledge. But does this measure actually work? If companies decided to withdraw it as a measure of knowledge, using technical questions instead, would professionals be able to be 100% prepared with our current ad-hoc means of learning?</p>
<h5>The self-learner&#8217;s agenda</h5>
<p><img class="float-left-img" src="http://www.daltonfilho.com/wp-content/uploads/2009/09/studying.jpg" alt="Studying..." />We do what we need to do to accomplish the goals of our company. Accomplishing these goals doesn&#8217;t necessarily imply using all aspects of a technology we want to learn. Unless you&#8217;re one of the lucky ones who happen to use everything you will ever need to know about a given technology at work, your company&#8217;s goals and your learning goals are two different agendas. Where do you execute <em>your</em> agenda? Out of work, certainly. Unfortunately, what happens out of work is often ignored by many companies, which limit themselves to make their job requirements in terms of years of work experience. It doesn&#8217;t seem consistent that our learning efforts are underestimated by the very companies that could benefit from it, but I don&#8217;t think these companies are to blame, after all, measuring knowledge can be tricky.</p>
<h5>Measuring knowledge with years of experience</h5>
<p><img class="float-right-img" src="http://www.daltonfilho.com/wp-content/uploads/2008/02/experience_time.jpg" alt="experience_time.jpg" />Work experience follows a business agenda, and for the most part that implies <a href="http://blog.slickedit.com/?p=125" target="_blank">repetition</a> of the same experience after a while. To say one has worked 4 years with C++ does not imply she has explored every possible aspect of the language and its libraries at work (some people suggest <a href="http://blog.penelopetrunk.com/2006/12/24/good-news-for-job-hoppers-frequent-change-maintains-passion/" target="_blank">job-hopping</a> can be a solution). But it&#8217;s not just the overestimation of work experience: the <em>time </em>of work experience that is usually required indicates that it is assumed that it is impossible for one to achieve a level of expertise in less time. This is in <a href="http://www.codinghorror.com/blog/archives/000524.html" target="_blank">sharp detriment of merit</a>. Many professionals will feel unstimulated to pursue more skills in less time as this is an underrecognized effort.</p>
<p>As an approach to learning, work experience is unsystematic, emphasizing specific aspects of a technology in detriment of others. In the &#8220;<a href="http://www.pragprog.com/titles/mjwti" target="_blank">My Job Went to India</a>&#8221; book, Chad Fowler addresses the &#8220;learn on the job&#8221; issue on the &#8220;Practice, Practice, Practice&#8221; chapter, but even his suggestions rely on one&#8217;s judgments of what should be improved, which, in my view, is too biased and not very systematic. Fowler is right when he says that we learn too much on the job, but it&#8217;s no wonder considering how other means of learning are underestimated.</p>
<h5>A systematic approach to training and assessment is needed</h5>
<p>Last year I&#8217;ve bought the &#8220;<a href="http://www.manning.com/walls3/" target="_blank">Spring in Action</a>&#8221; book. I was not using Spring at work, but I wanted to learn it nevertheless. Despite the educational purpose of the book, there were no exercises! It seems like I&#8217;m supposed to learn it on the job, or create my own (biased) exercises. At this stage, I&#8217;m not able to create effective exercises, only a Spring expert would have such an authority. If I&#8217;m lucky, I will use many Spring features at work, or maybe my exercises will be enough, but that would be betting on good fortune, and I don&#8217;t want my qualifications to depend on luck! I don&#8217;t want to live in the constant anxiety that I&#8217;m not prepared. Many professionals feel like they are unable to train properly because systematic training doesn&#8217;t exist for every technology they work with. And it&#8217;s not just a systematic training: how are we (and our employers) supposed to measure our knowledge in an unbiased way?</p>
<h5>The solution</h5>
<p><img class="float-left-img" src="http://www.daltonfilho.com/wp-content/uploads/2008/02/studying2.jpg" alt="Studying in group" />Even if employers decided to ask technical questions instead of requiring years of experience, professionals would still not be 100% sure about their skills because there is little systematic training and assessment. A solution for this would require a little initiative, for example: if you are a complete Spring guru, you could write a series of exercises in ascending complexity with suggested solutions that people could use to evaluate their results. The same goes for other frameworks, languages, etc. The whole point of this idea is to assure that one can always know in what point of the knowledge ladder he is. That can evolve to universally accepted credentials that employers can use. We&#8217;ve been using this system ever since we started studying, why should we stop now?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.daltonfilho.com/2008/02/10/in-praise-of-education/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>On the relevance of compilers</title>
		<link>http://www.daltonfilho.com/2008/01/27/on-the-relevance-of-compilers/</link>
		<comments>http://www.daltonfilho.com/2008/01/27/on-the-relevance-of-compilers/#comments</comments>
		<pubDate>Sun, 27 Jan 2008 20:20:21 +0000</pubDate>
		<dc:creator>Dalton Filho</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[compilers]]></category>
		<category><![CDATA[thoughts]]></category>

		<guid isPermaLink="false">http://www.daltonfilho.com/2008/01/27/on-the-relevance-of-compilers/</guid>
		<description><![CDATA[I've just read Steve's rant about compilers, and believe me, it's not like the ones you've seen before (it's much better!).]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve just read Steve&#8217;s <a href="http://steve-yegge.blogspot.com/2007/06/rich-programmer-food.html" title="Programmer's rich food">rant</a> about compilers, and believe me, it&#8217;s not like the ones you&#8217;ve seen before (it&#8217;s much better!). Whenever someone tells me about a blog entry about the importance of a given knowledge to the programmer profession, I know what to expect: someone to whom that knowledge is relevant writes about it as a means to demonstrate how utterly bright he is in contrast with the sordid majority, to whom that knowledge is less relevant. My perspective is based on the perception that oftentimes the authors use arguments that apply only to those with similar professional choices or personal taste. For example: how can you convince a programmer on the relevance of compiler knowledge just by saying that without compilers, programming would be too hard? As I wrote in an <a href="http://www.daltonfilho.com/2008/01/12/the-phytoplankton-analogy/" title="The phytoplankton analogy">earlier post</a>, these arguments have to be based on the relevance of such topics to our professional choices, not on any objective scale of importance. One can&#8217;t use that argument with programmers who aren&#8217;t going to write program compilers.</p>
<p>Fortunately, Steve has managed to be persuasive. What is very interesting about his post is that Steve, as someone who has managed to understand compilers, didn&#8217;t fall into the arrogance trap. Instead of arrogating himself for his compiler knowledge, Steve took the self-critical route, describing in a very candid manner what he thought about compilers early in his career. Instead of enumerating arguments that make sense only for the GCC team, Steve describes how different programmers in different contexts can benefit from this knowledge, showing his awareness for diversity in a post that instead of condemning, stimulates and encourages all of us to look further into compilers.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.daltonfilho.com/2008/01/27/on-the-relevance-of-compilers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The phytoplankton analogy</title>
		<link>http://www.daltonfilho.com/2008/01/12/the-phytoplankton-analogy/</link>
		<comments>http://www.daltonfilho.com/2008/01/12/the-phytoplankton-analogy/#comments</comments>
		<pubDate>Sat, 12 Jan 2008 18:49:55 +0000</pubDate>
		<dc:creator>Dalton Filho</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[thoughts]]></category>

		<guid isPermaLink="false">http://www.daltonfilho.com/2008/01/12/the-phytoplankton-analogy/</guid>
		<description><![CDATA[<img src="http://www.daltonfilho.com/wp-content/uploads/2008/01/phytoplankton.jpg" alt="Phytoplankton" class="float-left-img" /> In our pursuit to become better professionals, it is common to get stuck in the multitude of choices in which to invest our time and energy. In the "<a href="http://www.pragprog.com/titles/mjwti" target="_blank">My Job Went To India</a>" book, Fowler describes how a mentor helped him by narrowing down the list of infinite choices to a set of just three, hence the "find a mentor" recommendation. As for myself, I have looked for mentors plenty of times, just to end up with lists of things to learn that were more biased than helpful. What struck me is the fact that most of these things were really important, and could improve my skills in some way (though some would require a mental leap to imagine how). What was then my objection to those recommendations?]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.daltonfilho.com/wp-content/uploads/2008/01/phytoplankton.jpg" alt="Phytoplankton" class="float-left-img" /> In our pursuit to become better professionals, it is common to get stuck in the multitude of choices in which to invest our time and energy. In the &#8220;<a href="http://www.pragprog.com/titles/mjwti" target="_blank">My Job Went To India</a>&#8221; book, Fowler describes how a mentor helped him by narrowing down the list of infinite choices to a set of just three, hence the &#8220;find a mentor&#8221; recommendation. As for myself, I have looked for mentors plenty of times, just to end up with lists of things to learn that were more biased than helpful. What struck me is the fact that most of these things were really important, and could improve my skills in some way (though some would require a mental leap to imagine how). What was then my objection to those recommendations?</p>
<p>If I asked a SAP/Netweaver programmer what would it take for me to become a better professional, there&#8217;s a very high chance she would recommend me SAP/Netweaver. The same goes for other languages. If I asked a network administrator the same question, he would probably point me some network administrator&#8217;s skills that I should learn &#8211; all that without even detailing what my goals are. With the interdependence of today&#8217;s many technologies and skills, many of these recommendations could be pretty much valid, yet it&#8217;s still a challenge to figure out how one would manage to achieve any goal at all if he is to study everything that is important.</p>
<p>In the posthumous &#8220;<a href="http://www.gutenberg.org/etext/10731" target="_blank">The Art of Controversy</a>&#8220;, Schopenhauer recommends &#8220;extrapolation&#8221; as one of the techniques to counterpoint an argument. When it comes to such an overused argument as the importance, this strategy proves to be very useful. A hardware engineer may recommend to a programmer: &#8220;you should study the depths of hardware engineering, because it if weren&#8217;t for hardware, your software would have nowhere to run&#8221;. This argument can be extrapolated with the phytoplankton analogy: &#8220;you should study the depths of microbiology, because if it weren&#8217;t for phytoplankton, which produce almost <a href="http://earthobservatory.nasa.gov/Newsroom/NewImages/images.php3?img_id=17405" target="_blank">half</a> of our oxygen, there would be little chance for intelligent life, without which there would be no hardware or software&#8221;. The phytoplankton is <a href="http://news.nationalgeographic.com/news/2004/06/0607_040607_phytoplankton.html" target="_blank">extraordinarily important</a>, but should we study the depths of microbiology, diverting ourselves from our programmer goals, just for the sake of its importance?</p>
<p>This extrapolation is meant to highlight how the importance of a subject is not necessarily related to its relevance to our professional lives. A subject may be important, my very job may depend on this subject, but that still is not enough to make this subject relevant. <em>The relevant subjects are those that lead me to my goals</em>, which, on their part, are very individual choices that are subject to my very own criterion. In other words: importance may be objective, but relevance is subjective, and it&#8217;s based on this subjectivity that my professional choices are made. Being a product of subjectivity, importance itself has nothing to do with it, although that is what our vanity wants to believe. When it comes to looking for a good mentor, it is then convenient to look for someone with a similar subjectivity, but in a higher professional level. As Fowler puts it: &#8220;It&#8217;s OK to depend on someone. Just make sure it&#8217;s the right person&#8221;.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.daltonfilho.com/2008/01/12/the-phytoplankton-analogy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The urge to redo</title>
		<link>http://www.daltonfilho.com/2007/12/23/the-urge-to-redo/</link>
		<comments>http://www.daltonfilho.com/2007/12/23/the-urge-to-redo/#comments</comments>
		<pubDate>Sun, 23 Dec 2007 19:39:32 +0000</pubDate>
		<dc:creator>Dalton Filho</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[thoughts]]></category>

		<guid isPermaLink="false">http://www.daltonfilho.com/2007/12/23/the-urge-to-redo/</guid>
		<description><![CDATA[Be honest: have you ever looked over your own code and felt like you had to redo it? One may think "I can do it so much better now", but if the deadline is approaching and delivery is due, how many are capable of ignoring the urge to redo without loosing an arm and a leg? Let me rant about the subject.]]></description>
			<content:encoded><![CDATA[<p>Be honest: have you ever looked over your own code and felt like you had to redo it? One may think &#8220;I can do it so much better now&#8221;, but if the deadline is approaching and delivery is due, how many are capable of ignoring the urge to redo without loosing an arm and a leg? Let me rant about the subject. <span id="more-4"></span></p>
<p>I remember giving to a co-worker the source code of a program I had written a few years earlier, when my coding practices weren&#8217;t exactly as I would like them to be.  &#8220;I wrote this 3 years ago!&#8221; &#8211; I said, as if meaning &#8220;I don&#8217;t know who&#8217;s the idiot who wrote this code, but it wasn&#8217;t me, OK?&#8221;. Chances were that she didn&#8217;t care, but nevertheless I was faced with code that I had done myself and that I wished I could do again with my current skills. This case in particular was about the fear of someone else&#8217;s judgement, a judgement that would not take into account the developer that I am today, but the one I <em>was</em>.</p>
<p>But the urge to rewrite code is not just about other people: sometimes you are a team of one; other times you are in a team of more than one, but you want to rewrite parts of the code for the sake of its own quality, not someone else&#8217;s opinion. This very website fell victim to this perfectionism, as I would constantly switch layouts as I found a better one. This constant insatisfaction meant that I was never &#8211; ever &#8211; releasing the website. It also meant that the time I was using to try many layouts (to later discard them) wasn&#8217;t being used to write new content. As the release of my website was under no deadline, I could go on with this perfectionism indefinitely. It&#8217;s when self-criticism and deadlines meet that you have a problem.</p>
<p>The self-criticism per se isn&#8217;t bad, of course. For me it&#8217;s a symptom of my evolution as a programmer. The problem lies on the urge to redo that arises when this feeling hits hard. If you <em>have</em> to deliver a new feature, or write new content, a refactoring may be the right thing to do in the <em>wrong</em> time. Naturally, we don&#8217;t keep adding new features forever: if even hardware has to face manutention every now and then, can you imagine software (though convincing your manager likewise is a different matter). Understanding when the urge to redo will happen is key to make it fit on the manutention window. To me, the two basic factors that define this urge are the self-criticism and how much the skills evolved in a given time frame:</p>
<p class="imagearea"><img src="http://www.daltonfilho.com/wp-content/uploads/2007/12/urge_redo.png" alt="The urge to redo" /></p>
<p class="subtitle">Very self-critical, perfectionist people will have more urges, even when Δ evolution is small. On the other hand, even a self-forgiving person may want to rewrite code if his skills have evolved significantly ever since he wrote the code.</p>
<p>Of course, this is not a formal theory, and it applies to specific situations such as those when one has to work on a single project while his skills are evolving. I have a few suggestions to adress this issue, but I&#8217;ll leave that to my next post.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.daltonfilho.com/2007/12/23/the-urge-to-redo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
