<?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>The ByteBaker &#187; Education</title>
	<atom:link href="http://bytebaker.com/category/education/feed/" rel="self" type="application/rss+xml" />
	<link>http://bytebaker.com</link>
	<description>Computer Science isn&#039;t a science and it&#039;s not about computers</description>
	<lastBuildDate>Wed, 23 May 2012 19:07:01 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='bytebaker.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://0.gravatar.com/blavatar/6d47d9dd6b113f7f539237c5cff8cd54?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>The ByteBaker &#187; Education</title>
		<link>http://bytebaker.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://bytebaker.com/osd.xml" title="The ByteBaker" />
	<atom:link rel='hub' href='http://bytebaker.com/?pushpress=hub'/>
		<item>
		<title>Grit for Programmers</title>
		<link>http://bytebaker.com/2012/05/01/grit-for-programmers/</link>
		<comments>http://bytebaker.com/2012/05/01/grit-for-programmers/#comments</comments>
		<pubDate>Tue, 01 May 2012 14:00:00 +0000</pubDate>
		<dc:creator>Shrutarshi Basu</dc:creator>
				<category><![CDATA[Education]]></category>
		<category><![CDATA[Productivity]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[deliberate practice]]></category>
		<category><![CDATA[grit]]></category>

		<guid isPermaLink="false">http://bytebaker.com/?p=1913</guid>
		<description><![CDATA[It turns out that the best indicator of success isn&#8217;t IQ or natural talent or how well off you were at birth. Rather it&#8217;s something called grit – the perseverance and passion for long-term goals. Grit requires a clear goal, self-confidence and a careful balance between stubborness and flexibility. For the last few months I&#8217;ve [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bytebaker.com&#038;blog=8123270&#038;post=1913&#038;subd=bytebaker&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>It turns out that the best indicator of success isn&#8217;t IQ or natural talent or how well off you were at birth. Rather it&#8217;s something called <a href="http://www.fastcompany.com/1800541/grit-top-predictor-of-success">grit</a> – the perseverance and passion for long-term goals. Grit requires a clear goal, self-confidence and a careful balance between stubborness and flexibility. For the last few months I&#8217;ve been living one of the most productive (and most challenging) times of my life. I&#8217;ve been building a system that has more parts, does more things and is much larger than just about anything I&#8217;ve built before. It&#8217;s been challenging and rewarding work and I couldn&#8217;t have done it without lots of support from great mentors. As I&#8217;ve stumbled, fallen down, hit brick walls, picked myself up and kept going I&#8217;ve been wondering – does grit apply equally to programmers and success in building good software?</p>
<p>Programming culture is generally synonymous with hard work and long hours &#8212; death marches, all-nighters, 80 hour work weeks, we do them all. But we&#8217;re talking about grit here, not masochism. Grit isn&#8217;t strictly equal to working obscenely hard, long hours. Part of the problem with thinking about grit in relation to programming is defining what success means for a programmer. Is your definition of success simply finding a working solution? Does it mean finding the most efficient solution? Are you successful if you cover every single edge case or is it enough to just take care of the most common ones? Is your program really better if it handles everything you could throw at it or should you handle core uses cases well and fail gracefully on the others? Part of the problem of coming up with a good solution is asking the right question. This is especially true of building software. However merely coming up with the right question requires a certain amount of grit. We need the patience to look beyond the obvious problems and solutions and ask the hard questions.</p>
<p>So now we&#8217;ve found the right question and defined bounds on the possible solutions. What next? How does grit help with the actual act of writing code and building stuff? Programming is not easy. It can be fun and exciting and uplifting, but sometimes it is downright hard and depressing. Sometimes we spend hours sifting through possible solutions before hitting upon the appopriate one. Sometimes we spend several intimate hours with a debugger tracking down pointer bugs before finding that one variable we forgot to initialize. Being tenacious and persistent in the face of seemingly unrelenting roadblocks is not an added benefit for a programmer – it is a bare necessity. When it comes down to the act of sitting down, writing and debugging code grit is not optional. Without it not only can we not be good programmers, we can&#8217;t even be an average ones.</p>
<p>But if our goal is to be a good (maybe even great) programmer, then grit will continue to help. One of the qualities of good programmers is that they get a lot of stuff done. In particular they do a lot that isn&#8217;t strictly their job. This includes fixing and extending their tools and improving core infrastructure. They do this even if they aren&#8217;t in charge of infrastructure because they realize that their code depends on what&#8217;s underneath. Grit is the difference between waiting for someone else to fix the annoying bug in the library that you depend on and diving in and fixing it ourselves. When Steve Yegge talks about the difference between &#8220;superhumanly godlike&#8221; and &#8220;smart&#8221;, grit is a part of what he&#8217;s talking about. Not that there&#8217;s anything wrong with being smart, but it might not be enough. Of course to cultivate that level of grit we need to cultivate a good deal of courage. Diving into someone else&#8217;s code and fixing it can be a daunting task but it&#8217;s one that has to be mastered.</p>
<p>While I&#8217;ve always <em>liked</em> programming it&#8217;s taken me a long time to understand the importance of grit. When you do something because you like it (mostly) it&#8217;s tempting to stay away from the parts that are painful and hard. For a long time I avoided writing large programs because I was afraid of all the complexity that was involved. I was afraid of becoming familiar with complex algorithms because I was afraid of the possibility that I&#8217;d get it wrong. I understand now that I can&#8217;t become a good programmer if I don&#8217;t push myself to do the things that I consider hard and dislike. I need to have the grit to handle large complex problems and spend the time to understand and apply advanced algorithms. The good news is that just like perseverance and discipline, grit can be trained and improved. I&#8217;m no longer as afraid to dive into unknown codebases as I was a few months ago. I now find it much easier to hold complex code paths in my head. I&#8217;m certainly far, far away from being superhuman, but I try to suck a little less every day.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bytebaker.wordpress.com/1913/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bytebaker.wordpress.com/1913/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bytebaker.wordpress.com/1913/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bytebaker.wordpress.com/1913/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bytebaker.wordpress.com/1913/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bytebaker.wordpress.com/1913/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bytebaker.wordpress.com/1913/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bytebaker.wordpress.com/1913/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bytebaker.wordpress.com/1913/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bytebaker.wordpress.com/1913/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bytebaker.wordpress.com/1913/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bytebaker.wordpress.com/1913/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bytebaker.wordpress.com/1913/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bytebaker.wordpress.com/1913/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bytebaker.com&#038;blog=8123270&#038;post=1913&#038;subd=bytebaker&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://bytebaker.com/2012/05/01/grit-for-programmers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ccb1217c46b31b7b232878d355f7f4e4?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">Basu</media:title>
		</media:content>
	</item>
		<item>
		<title>Create More, Consume Less</title>
		<link>http://bytebaker.com/2012/04/23/create-more-consume-less/</link>
		<comments>http://bytebaker.com/2012/04/23/create-more-consume-less/#comments</comments>
		<pubDate>Mon, 23 Apr 2012 15:30:00 +0000</pubDate>
		<dc:creator>Shrutarshi Basu</dc:creator>
				<category><![CDATA[Education]]></category>
		<category><![CDATA[Productivity]]></category>

		<guid isPermaLink="false">http://bytebaker.com/?p=1899</guid>
		<description><![CDATA[I don&#8217;t like buying things. It&#8217;s not that I don&#8217;t have money or that I live beyond my means. As a starving graduate student I make enough to get by and I can generally stay within my income. What I don&#8217;t like is accumulating stuff. I have a rather visceral negative reaction whenever I buy [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bytebaker.com&#038;blog=8123270&#038;post=1899&#038;subd=bytebaker&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I don&#8217;t like buying things. It&#8217;s not that I don&#8217;t have money or that I live beyond my means. As a starving graduate student I make enough to get by and I can generally stay within my income. What I don&#8217;t like is accumulating <em>stuff</em>. I have a rather visceral negative reaction whenever I buy things that I will keep around for a long time. This includes essentials (clothes, books) as well as non-essentials (gadgets, artsy things). Part of it is just practicality: the more stuff I have the more I need space to put it all and the more I need to lug around when I move (which happens every year or two). The more important reason is that right now I want to be a creator, not a consumer and buying stuff is opposed to that.</p>
<p>Compared to the energy of creating and making things, consumption almost always feels draining. There is a difference between buying things and consumerism. For better or for worse it&#8217;s possible to be a consumer without spending money. Thanks to all the free content around the web I can easily spend hours and days consuming without spending a dime. Netflix, YouTube, Vimeo, Spotify, etc. are all incredible (and seemingly unending) sources of consumable content. I don&#8217;t spend any money (or at most very little money), but I do spend a large amount in terms of energy and time. It&#8217;s so easy to sit on the couch and just hit the next button. Before I know it, it&#8217;s dark outside, the day is gone, I&#8217;ve forgotten to get dinner and accomplished pretty much nothing. The problem with this form of empty consumption is that it&#8217;s not relaxing or refreshing and it&#8217;s definitely not useful. The day just melts away into a sea of unproductiveness.</p>
<p>Television is particularly soul-sucking. It&#8217;s almost drug-like in the effectiveness with which it shuts down my brain and makes the rest of the world go away. When I sit on the couch and turn on Netflix I can feel my brain turning off. There&#8217;s a fog of semi-consciousness descending on my mind. I&#8217;m awake, I can see and touch and feel, but I&#8217;ve lost all the will to act or do anything other than hit the next button. After a few minutes it&#8217;s more work tearing myself away than hitting &#8220;next&#8221;. I suppose this is what being a zombie is like. This is my brain on television and in hindsight it&#8217;s quite terrifying. Perhaps there&#8217;s a reason it&#8217;s been called the &#8220;idiot box&#8221;.</p>
<p>Modern society seems to be predisposed towards consumers. Everyone is a consumer whether or not they want to be. Even the point of creation is to make money to be used for more consumption. I&#8217;m not about to make a grand sweeping statement like &#8220;consumption is evil&#8221;. Personally I think the occasional (even regular) indulgence is fine, maybe even healthy. But for me, consumption as a way of life is depressing. It&#8217;s synonymous with days sitting on the couch watching bad television, feeling my brain gradually atrophy a handful of neurons at a time. It&#8217;s synonymous with buying a nice shirt and then wearing free t-shirts to class everyday. Even though it might feel good in the moment, it quickly turns to disappointment and regret. Personally, I&#8217;ll take the pain of discipline over the pain of disappointment and regret.</p>
<p>Creation is different. Creation <em>should</em> be harder, it should take up more energy, it should leave me feeling trained and tired. And sometimes it does. But even if I feel physically tired, at a deeper level I feel energized. It feels good to know that today I made something. It makes me look forward to getting up tomorrow morning and making it better. It&#8217;s good to be able to show something to people, to get their opinions and ideas and then go back and polish. It&#8217;s good to know that I can the change the world in some way and maybe, just maybe I can make a bigger difference. Creation is good.</p>
<p>I don&#8217;t know why being creative feels good. I&#8217;m sure there&#8217;s some reward pathway in the brain that gets triggered by designing something, making plans to make it happen and then actually following through on those plans. I would like to believe that what I make helps other people in some way. Even if it doesn&#8217;t, I think I&#8217;m fine with pursuing creativity for personal reasons. I&#8217;m hoping that a life with less random television, fewer RSS feeds and less time glued to Twitter and Facebook will translate to more blog posts, more working code and more meaningful connections with real people. I&#8217;m hoping that it&#8217;ll also keep away the dreaded feeling of brain decay that a few hours of &#8220;entertainment&#8221; produces. Even when I do consume, I&#8217;d like it to be good books, good music and movies, blog posts that are actually insightful and interesting and not shallow proclamations of half-formed thoughts.</p>
<p>What I consume should be what I aspire to create. I want to create more than I consume.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bytebaker.wordpress.com/1899/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bytebaker.wordpress.com/1899/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bytebaker.wordpress.com/1899/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bytebaker.wordpress.com/1899/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bytebaker.wordpress.com/1899/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bytebaker.wordpress.com/1899/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bytebaker.wordpress.com/1899/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bytebaker.wordpress.com/1899/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bytebaker.wordpress.com/1899/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bytebaker.wordpress.com/1899/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bytebaker.wordpress.com/1899/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bytebaker.wordpress.com/1899/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bytebaker.wordpress.com/1899/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bytebaker.wordpress.com/1899/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bytebaker.com&#038;blog=8123270&#038;post=1899&#038;subd=bytebaker&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://bytebaker.com/2012/04/23/create-more-consume-less/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ccb1217c46b31b7b232878d355f7f4e4?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">Basu</media:title>
		</media:content>
	</item>
		<item>
		<title>Generation Flux</title>
		<link>http://bytebaker.com/2012/03/12/generation-flux/</link>
		<comments>http://bytebaker.com/2012/03/12/generation-flux/#comments</comments>
		<pubDate>Mon, 12 Mar 2012 15:30:00 +0000</pubDate>
		<dc:creator>Shrutarshi Basu</dc:creator>
				<category><![CDATA[Education]]></category>
		<category><![CDATA[Productivity]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://bytebaker.com/?p=1870</guid>
		<description><![CDATA[A few months ago Fast Company run a multipart piece on &#8220;Generation Flux&#8221;. The piece had two intertwined themes. The first is the idea that we&#8217;re living in age of constant (and perhaps accelerating) change and that to stay competitive businesses and institutes have to ride this wave of change and go with the flow. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bytebaker.com&#038;blog=8123270&#038;post=1870&#038;subd=bytebaker&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>A few months ago Fast Company run a <a href="http://www.fastcompany.com/magazine/162/generation-flux-future-of-business">multipart piece on &#8220;Generation Flux&#8221;</a>. The piece had two intertwined themes. The first is the idea that we&#8217;re living in age of constant (and perhaps accelerating) change and that to stay competitive businesses and institutes have to ride this wave of change and go with the flow. The second idea is the notion that the most successful people are those who are intimately familiar with this state of flux and can craft their lives to take advantage of it. As part of the piece they profiled several members of Generation Flux – technologists, businesspeople and researchers like <a href="http://www.fastcompany.com/magazine/162/generation-flux-danah-boyd">danah boyd</a> and <a href="http://www.fastcompany.com/magazine/162/generation-flux-dj-patil">DJ Patil</a>.</p>
<p>Though the piece focused on the tech industry and business, I think the basic ideas apply to all fields including (especially?) academia. In fact I think that the best researchers and scientists have always been those who have been spread out over a number of areas. While focus and diligence are necessary for productive research, I&#8217;m starting to think that it&#8217;s important (if not fundamental) to have a wider halo of interests and knowledge surrounding your core area.</p>
<p>As a new graduate student this is a question of great personal interest: I have a limited amount of time and energy in grad school (and later) and it&#8217;s in my best interest to make the most of it. As with many important things there&#8217;s a dilemma: if I spend too much time and effort on one thing I&#8217;ll miss out on everything else and that can be very limiting. I already know this first hand: I know a good amount about programming languages, but I&#8217;ve been scrambling to teach myself about networks and know next to nothing about AI. But on the other hand if I don&#8217;t dig deep enough into one relatively narrow area I&#8217;ll never have the knowledge or the insight to know what the important problems and come up with appropriate solutions.</p>
<p>So what are the lessons of Generation Flux and how do they apply? Accepting and adapting to change is definitely a big part of it. As <a href="http://www.fastcompany.com/magazine/162/generation-flux-danah-boyd">danah boyd tells us</a>: &#8220;We all have to learn new skills. Being able to live on one set of skills over a career is not realistic. Change is going to happen, not all of it good, in serious ways.&#8221; But simply being able to ride the wave is not enough. And it&#8217;s certainly not advisable to jump ship to the next shiny thing at the first sign of trouble. <a href="http://www.fastcompany.com/magazine/162/generation-flux-dj-patil">DJ Patil has more personal advice</a> to offer: &#8220;At the end of the day, you have two things: your energy and your intellectual curiosity. If you&#8217;re willing to apply them, try to add value to the world, the possibilities are so endless.&#8221;</p>
<p>Patil, boyd and the other Gen Fluxers seem to be able to strike a balance between change and constancy. In times of perpetual change the key to success seems to lie in two complementary values: first is the ability to live on the edge of chaos and move fluidly from one spot to another. But second (and just as important) seems to be the ability to be tenacious, diligent and sometimes downright stubborn. Patil for example taught himself mathematics and worked midnight to morning to get computer access. While he&#8217;s worked on amazing projects he&#8217;s also turned down lucrative offers because they didn&#8217;t fit his vision of what he wanted to do.</p>
<p>Viewed through the lense of graduate school the lessons become: Explore broadly and lightly across areas related to what you&#8217;re interested and then buckle down, dive deep and keep going until you get to something novel. Of course the timing is critical and to some extent they have to happen in parallel. As Matt Might puts it: <a href="http://matt.might.net/articles/ways-to-fail-a-phd/">going rogue too early or too late</a> can be fatal. Luckily that&#8217;s what advisors, mentors and colleagues are for.</p>
<p>Personally I&#8217;m still in stage 1: I&#8217;m still taking classes and exploring the broad regions of computer science but I&#8217;m also making forays deep into some areas (particularly programming languages and datacenter networks). Looking further ahead I think it&#8217;s great that we&#8217;re going to be living in a time where being a member of Gen Flux is a good thing. Gen Flux is perhaps just a modern term for Renaissance Men (or Women) – people with a breadth of knowledge and skills but also with singular and far-reaching accomplishments in some of those fields. And that seems like a goal worthy of a lifetime worth of time and energy.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bytebaker.wordpress.com/1870/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bytebaker.wordpress.com/1870/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bytebaker.wordpress.com/1870/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bytebaker.wordpress.com/1870/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bytebaker.wordpress.com/1870/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bytebaker.wordpress.com/1870/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bytebaker.wordpress.com/1870/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bytebaker.wordpress.com/1870/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bytebaker.wordpress.com/1870/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bytebaker.wordpress.com/1870/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bytebaker.wordpress.com/1870/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bytebaker.wordpress.com/1870/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bytebaker.wordpress.com/1870/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bytebaker.wordpress.com/1870/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bytebaker.com&#038;blog=8123270&#038;post=1870&#038;subd=bytebaker&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://bytebaker.com/2012/03/12/generation-flux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ccb1217c46b31b7b232878d355f7f4e4?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">Basu</media:title>
		</media:content>
	</item>
		<item>
		<title>Sunday Selection 2012-03-11</title>
		<link>http://bytebaker.com/2012/03/11/sunday-selection-2012-03-11/</link>
		<comments>http://bytebaker.com/2012/03/11/sunday-selection-2012-03-11/#comments</comments>
		<pubDate>Sun, 11 Mar 2012 05:00:00 +0000</pubDate>
		<dc:creator>Shrutarshi Basu</dc:creator>
				<category><![CDATA[Education]]></category>
		<category><![CDATA[Productivity]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://bytebaker.com/?p=1865</guid>
		<description><![CDATA[Happy Daylight Savings Time Day everyone! (Or something like that) Around the Web Are you a Zen coder or a distraction junkie? It&#8217;s been a while since I&#8217;ve worked on a project where &#8220;my code&#8217;s been compiling&#8221; has been a valid excuse for not working. But now that I am on such a project, it&#8217;s [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bytebaker.com&#038;blog=8123270&#038;post=1865&#038;subd=bytebaker&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Happy Daylight Savings Time Day everyone! (Or something like that)</p>
<div id="outline-container-1" class="outline-3">
<h2 id="sec-1">Around the Web</h2>
<div id="text-1" class="outline-text-3">
<p><a href="http://www.componentowl.com/blog/2012/02/zen-coder-vs-distraction-junkie/">Are you a Zen coder or a distraction junkie?</a> It&#8217;s been a while since I&#8217;ve worked on a project where &#8220;my code&#8217;s been compiling&#8221; has been a valid excuse for not working. But now that I am on such a project, it&#8217;s important that those mini-breaks don&#8217;t turn into longer breaks.</p>
<p><a href="http://swombat.com/2012/3/10/successful-people">Successful people are successful</a> Einstein is rumored to have said that compound interest is the most powerful force in the Universe. Whether or not he actually said that, compound interest is still pretty powerful. Maybe it applies to reputation and achievement just as much as it applies to money.</p>
<p><a href="http://calnewport.com/blog/2012/01/29/closing-your-interests-opens-more-interesting-opportunities-the-power-of-diligence-in-creating-a-remarkable-life/">The power of diligence in creating a remarkable life</a> Keeping one&#8217;s options open seems to be a pretty common strategy but it could be the wrong one. Perhaps it&#8217;s a better idea to pick an area and dive deep rather than to spread your bets.</p>
</div>
</div>
<div id="outline-container-2" class="outline-3">
<h2 id="sec-2">Videos</h2>
<div id="text-2" class="outline-text-3">
<p><a href="http://www.ted.com/talks/susan_cain_the_power_of_introverts.html">On being an introvert</a> Everyone seems to be busy building the next social thing to help us &#8220;connect&#8221; better to everyone else. But a lot of the best work requires solitude and independence. Introversion might be a hidden superpower. (There&#8217;s a <a href="http://blog.ted.com/2012/02/28/an-introverted-call-to-action-susan-cain-at-ted2012/">written synopsis</a>, but the video is well worth the 18 minutes of your time.)</p>
</div>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bytebaker.wordpress.com/1865/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bytebaker.wordpress.com/1865/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bytebaker.wordpress.com/1865/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bytebaker.wordpress.com/1865/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bytebaker.wordpress.com/1865/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bytebaker.wordpress.com/1865/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bytebaker.wordpress.com/1865/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bytebaker.wordpress.com/1865/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bytebaker.wordpress.com/1865/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bytebaker.wordpress.com/1865/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bytebaker.wordpress.com/1865/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bytebaker.wordpress.com/1865/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bytebaker.wordpress.com/1865/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bytebaker.wordpress.com/1865/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bytebaker.com&#038;blog=8123270&#038;post=1865&#038;subd=bytebaker&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://bytebaker.com/2012/03/11/sunday-selection-2012-03-11/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ccb1217c46b31b7b232878d355f7f4e4?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">Basu</media:title>
		</media:content>
	</item>
		<item>
		<title>Etudes for programming</title>
		<link>http://bytebaker.com/2012/03/02/etudes-for-programming/</link>
		<comments>http://bytebaker.com/2012/03/02/etudes-for-programming/#comments</comments>
		<pubDate>Fri, 02 Mar 2012 14:00:00 +0000</pubDate>
		<dc:creator>Shrutarshi Basu</dc:creator>
				<category><![CDATA[Education]]></category>
		<category><![CDATA[Productivity]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[deliberate practive]]></category>
		<category><![CDATA[Music]]></category>

		<guid isPermaLink="false">http://bytebaker.com/?p=1861</guid>
		<description><![CDATA[From Wikipedia: An étude (a French word meaning study, French pronunciation: [eˈtyd], English pronunciation: / ˈeɪtjuːd /) is an instrumental musical composition, most commonly of considerable difficulty, usually designed to provide practice material for perfecting a particular technical skill. I noticed today that Michael Fogus (one of the authors of Joy of Clojure) has a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bytebaker.com&#038;blog=8123270&#038;post=1861&#038;subd=bytebaker&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>From <a href="http://en.wikipedia.org/wiki/Étude">Wikipedia</a>:</p>
<blockquote><p>An étude (a French word meaning study, French pronunciation: [eˈtyd], English pronunciation: / ˈeɪtjuːd /) is an instrumental musical composition, most commonly of considerable difficulty, usually designed to provide practice material for perfecting a particular technical skill.</p></blockquote>
<p>I noticed today that <a href="http://blog.fogus.me/">Michael Fogus</a> (one of the authors of <a href="http://joyofclojure.com/">Joy of Clojure</a>) has a number of <a href="https://github.com/fogus">Github repos</a> with names such as etude-ocaml and etude-syntax. I also realized this week that I&#8217;m a pretty slow programmer. I&#8217;ve been getting better over the years but I&#8217;m still slow, especially if there&#8217;s a good amount of API design involved. While I think that writing lots of code will make me faster over time, I do wish there was a more structured, focused approach.</p>
<p>In general, I wish there was more by the way of études for programming &#8212; problems and exercises of considerable difficulty designed to provide practice material for a particular (set of) skills. There are of course great textbooks for programming and computer science and those books have good exercises (I particularly like <a href="http://mitpress.mit.edu/sicp/">SICP</a> and the <a href="http://en.wikipedia.org/wiki/The_C_Programming_Language">K&amp;R C book</a>), however in most of those cases the point is to teach first and practice second. What I&#8217;d like to see is the reverse – assume that the reader already knows about functional programming or the C language but needs to &#8220;level up&#8221;, so to speak. The exercises would be harder and more in number but would also cover a broad area in terms of application of the concepts involved.</p>
<p>This is related to what I&#8217;ve written earlier in terms of <a href="http://bytebaker.com/2011/11/21/deliberate-practice-for-programmers/">deliberate practice for programmers</a>. That post talks about &#8220;level up&#8221; lists – <a href="https://gist.github.com/1372296">a list of programs to make</a> that help explore the different areas of computer science and help you gain experience and hence &#8220;level up&#8221; as a developer. On the other hand études would focus on depth rather than breadth – each one would focus on a small technique or technology and fully explore that area. Together a continuous habit of working on études and doing level-up projects would give programmers a steady stream of deliberate practice exercises to work on.</p>
<p>The question is, where are we to find these études? I&#8217;m not sure if there are programming books out there that fit that description. If there are, I&#8217;d love to here about them. But in the meantime I&#8217;ve found an acceptable alternative &#8212; homework and assignments for college level courses. This semester I&#8217;m the TA for a course on <a title="Functional Programming" href="http://www.cs.cornell.edu/courses/cs3110/2012sp/index.php">functional programming</a> and throughout the semester we have a set of 6 assignments for students to do. Each of them have about 3 to 4 problems (each with multiple parts) that tackle a small area of functional programming. I think exercises like this are great material for études. I&#8217;m currently working through the exercises at the same time as the students (other TAs are making them). Even though I&#8217;m already familiar with most of the material it&#8217;s been a good learning and great practice for me. I can&#8217;t really measure if I&#8217;m improving (apart from running my solutions through the test harness) but it&#8217;s more direct and practice in functional programming that I&#8217;ve ever had.</p>
<p>I&#8217;ll be done with this particular étude in a few months. I don&#8217;t think I&#8217;ll be releasing the code since the problems often get reused. However I do think there will be lot more where those came from. There are lots of college courses with website out there and there&#8217;s lots to learn. I&#8217;ll probably try compilers next. All that being said, it would be great to see some curation and collection. With Amazon&#8217;s Kindle Shorts and the growing interest in short, self-published books putting together a regular series of études might be a pretty lucrative endeavor.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bytebaker.wordpress.com/1861/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bytebaker.wordpress.com/1861/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bytebaker.wordpress.com/1861/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bytebaker.wordpress.com/1861/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bytebaker.wordpress.com/1861/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bytebaker.wordpress.com/1861/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bytebaker.wordpress.com/1861/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bytebaker.wordpress.com/1861/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bytebaker.wordpress.com/1861/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bytebaker.wordpress.com/1861/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bytebaker.wordpress.com/1861/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bytebaker.wordpress.com/1861/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bytebaker.wordpress.com/1861/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bytebaker.wordpress.com/1861/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bytebaker.com&#038;blog=8123270&#038;post=1861&#038;subd=bytebaker&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://bytebaker.com/2012/03/02/etudes-for-programming/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ccb1217c46b31b7b232878d355f7f4e4?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">Basu</media:title>
		</media:content>
	</item>
		<item>
		<title>Graduate School Semester 2</title>
		<link>http://bytebaker.com/2012/02/15/graduate-school-semester-2/</link>
		<comments>http://bytebaker.com/2012/02/15/graduate-school-semester-2/#comments</comments>
		<pubDate>Wed, 15 Feb 2012 19:00:00 +0000</pubDate>
		<dc:creator>Shrutarshi Basu</dc:creator>
				<category><![CDATA[Education]]></category>
		<category><![CDATA[Productivity]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[computer science]]></category>
		<category><![CDATA[Cornell University]]></category>

		<guid isPermaLink="false">http://bytebaker.com/?p=1834</guid>
		<description><![CDATA[I&#8217;m about a month into my second semester of graduate school at Cornell&#8217;s excellent Computer Science department. (Shameless plug: If you applied and got admitted you should definitely come visit, we&#8217;re awesome. If you&#8217;re thinking of applying contact me with questions.) The first semester involved a fair amount of getting used to grad school life. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bytebaker.com&#038;blog=8123270&#038;post=1834&#038;subd=bytebaker&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m about a month into my second semester of graduate school at Cornell&#8217;s excellent <a href="http://www.cs.cornell.edu">Computer Science department</a>. (Shameless plug: If you applied and got admitted you should definitely come visit, we&#8217;re awesome. If you&#8217;re thinking of applying <a href="http://bytebaker.com/contact/">contact me</a> with questions.) The first semester involved a fair amount of getting used to grad school life. It&#8217;s pretty different from undergrad and I covered my <a href="http://bytebaker.com/2011/09/01/the-first-week-of-graduate-school/">initial impressions before</a>. There&#8217;s a lot of autonomy (even in the first few semesters) but that means it&#8217;s all that much easier to screw up. The most important lessons I&#8217;ve learned are to start early, make plans and schedules and set up routines and environments that <a href="http://matt.might.net/articles/productivity-tips-hints-hacks-tricks-for-grad-students-academics/">make getting the work done the default</a> (this applies to both school work and research). I&#8217;m definitely not perfect at it, but I try to suck a little less each day.</p>
<p>While last semester was a good learning experience I got a lot less done than I could have. While I don&#8217;t want to cry over spilt milk I certainly don&#8217;t want to make the same mistakes again. My class load and TA work are about the same as last semester. However I have a better idea of how much time each takes so I can schedule blocks of time more effectively to get large chunks of work done at a time (and not worry about it otherwise). That in turn means that I can have more time for research (which is something I definitely want to do more of this time around).</p>
<p>I&#8217;m really happy about the choice of classes I have for this semester. I&#8217;m taking <a href="http://www.cs.cornell.edu/Courses/cs6110/2012sp/default.php">Advanced Programming Languages</a> and <a href="http://www.cs.cornell.edu/courses/CS6452/2012sp/index.php">Datacenter Networks</a> – both are areas in which I have an interest but I know less than I would like to. I have great professors in both and so far the material has been very interesting (and useful). I&#8217;m the TA for a <a href="http://www.cs.cornell.edu/courses/cs3110/2012sp/courseinfo.php">class on functional programming</a> which is turning out to be a good learning experience as well. I&#8217;ve done some amount of functional programming but not a lot and not in a structured way. I&#8217;m working through the exercises and homeworks myself so that I can better help out the students and learning a lot in the process. Since I&#8217;m going to be doing a lot of functional programming in the future (Haskell programming in particular) this a good way to level up as well as get my TA duties done.</p>
<p>Last semester I had a small research project which was more of way to get familiar with the concepts and tools I&#8217;ll be using later. I am a little disappointed in that my final deliverables weren&#8217;t as complete as I would have liked but the experience will come in handy. This semester I have a more concrete (and more ambitious) project. I&#8217;m also starting sooner and thanks to last semester I have a far better idea of the challenges I&#8217;ll face and how much work it will take to get around them. My main interest in programming languages and right now the project isn&#8217;t very language-oriented. But there is a lot of cool systems-hackery involved and once the foundations are laid I can move on to the more higher-level language-oriented parts of it. I&#8217;m still taking baby steps (figure out build systems, building testbenches and having rather intense discussions with my compiler) but within a week or two I want to progress to the real meat of the project.</p>
<p><strong>Aside:</strong> In case you&#8217;re wondering, it involves networks and trusted computing, but more on that in a future post.</p>
<p>Apart from school and research work I&#8217;m hoping to do some more exploring. Cornell has a really nice campus but I only saw a small fraction of it last semester (and probably spent a bit too much time in my apartment). I&#8217;d like to be able to get out more and take advantage of everything that Cornell has to offer. That&#8217;s a bit easier said then done in winter, but that&#8217;ll change as things get warmer.</p>
<p>I&#8217;m still trying to work out the best &#8220;work life balance&#8221;. While things like Cal Newport&#8217;s <a href="http://www.iwillteachyoutoberich.com/blog/time-management-how-an-mit-postdoc-writes-3-books-a-phd-defense-and-6-peer-reviewed-papers-and-finishes-by-530pm/">fixed schedule productivity</a> seem appealing it might be unworkable for me right now. More importantly, I&#8217;m still not sure how separate my work and my life should be, or even what constitutes &#8220;work&#8221;. I haven&#8217;t decided if I consider my writing or my on-the-side hacking (which I&#8217;ve been doing far too little of recently) to be work, play or something else. Part of me would like to think that the work-life distinction is only applicable to a more Industrial Age setting where you don&#8217;t like your job and want to spend as little time doing it as possible. Ideally you should do work you love (which I&#8217;m gradually approaching) and have <a href="http://blog.frankchimero.com/post/17609912323">no need to draw a distinction</a>. While that seems appealing I&#8217;m afraid it might lead to sitting (or standing) in front of my machine all day which is not what I want to do. Luckily these aren&#8217;t questions I have to answer definitely right now, but I can keep refining my answers over time.</p>
<p>I&#8217;m hoping that the rest of the semester will have lots of great learning, cool hacks and maintaining some semblance of a life away from my machines. I know that graduate school can easily become a drag and very stressful and I&#8217;m determined to not let myself end up in such a position. Luckily I&#8217;m in a good department with great support from friends, family and professors. I&#8217;d like to see this semester be more productive and a step on the way to deciding exactly how I want my grad school experience to turn out.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bytebaker.wordpress.com/1834/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bytebaker.wordpress.com/1834/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bytebaker.wordpress.com/1834/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bytebaker.wordpress.com/1834/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bytebaker.wordpress.com/1834/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bytebaker.wordpress.com/1834/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bytebaker.wordpress.com/1834/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bytebaker.wordpress.com/1834/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bytebaker.wordpress.com/1834/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bytebaker.wordpress.com/1834/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bytebaker.wordpress.com/1834/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bytebaker.wordpress.com/1834/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bytebaker.wordpress.com/1834/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bytebaker.wordpress.com/1834/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bytebaker.com&#038;blog=8123270&#038;post=1834&#038;subd=bytebaker&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://bytebaker.com/2012/02/15/graduate-school-semester-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ccb1217c46b31b7b232878d355f7f4e4?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">Basu</media:title>
		</media:content>
	</item>
		<item>
		<title>Getting to Work</title>
		<link>http://bytebaker.com/2011/12/08/getting-to-work/</link>
		<comments>http://bytebaker.com/2011/12/08/getting-to-work/#comments</comments>
		<pubDate>Thu, 08 Dec 2011 14:00:00 +0000</pubDate>
		<dc:creator>Shrutarshi Basu</dc:creator>
				<category><![CDATA[Education]]></category>
		<category><![CDATA[Productivity]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://bytebaker.com/?p=1725</guid>
		<description><![CDATA[There is a danger to doing what you love as part of your day job. For a few weeks I&#8217;ve been working on a programming project. The project should have been very interesting and motivating. It involved combining programming languages (which I love and have been learning about for years) and networks (which I don&#8217;t [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bytebaker.com&#038;blog=8123270&#038;post=1725&#038;subd=bytebaker&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>There is a danger to doing what you love as part of your day job. For a few weeks I&#8217;ve been working on a programming project. The project should have been very interesting and motivating. It involved combining programming languages (which I love and have been learning about for years) and networks (which I don&#8217;t know that well, but have a growing interest in). This should have been an ideal project – a project with just the right combination of personal skill and challenge. It was a project with definite goals, with people who supported me and wanted me to succeed and were willing to give me regular feedback. And yet it was so hard to actually get myself to do the work.</p>
<div id="outline-container-1" class="outline-3">
<h3 id="sec-1">The Motivation Problem</h3>
<div id="text-1" class="outline-text-3">
<p>I think the problem is that for most of my life programming was something I did on the side. In school, programming and computers were never the main course of study. In fact, more than once my parents had to tear me away from the computer. In college I decided to be an Electrical Engineer because I wanted to know how the machine worked from the lowest level up. Though that was an interesting and very fulfilling learning experience I realized at the end of four years that I would rather use computers to do something interesting rather than improve the machine itself. Though I did do a good bit of programming in college, most of my classes did not involve programming as the focus.</p>
<p>But now I&#8217;m in graduate school and programming is supposed to be part of the job description. Yes, I know that large areas of computer science are essentially mathematics and you can get away with writing very little code, but that&#8217;s not where my interests lie. For me, programming is no longer just something I do for the fun of it. It&#8217;s something I do because my grades depend on it and because I&#8217;m getting paid for it. It has become work and that has been fairly disastrous to my ability to get things done.</p>
<p>As knowledge about our psychology improves one of the interesting facts that has come up is that <a href="http://en.wikipedia.org/wiki/Motivation#Intrinsic_and_extrinsic_motivation">intrinsic motivation is a much stronger force</a> than any form of external motivation. In a specific sense that means I need to have an internal reason for doing my work. In a more general sense I need to have an <a href="http://en.wikipedia.org/wiki/Autotelic">autotelic</a> personality: to &#8220;have a purpose in and not apart from itself&#8221;. The good news is that I&#8217;m in a line of work that favors autotelics. The bad news is that it seems to be all too easy to lose the sense of self-motivation, to feel like that the only reason I&#8217;m working is because I&#8217;m expected to and I&#8217;ll get something definite out of it.</p>
<p>However one more piece of good news is that starting is often the hardest part, especially for something you think you should want to do, but can&#8217;t muster the motivation for it. I&#8217;ve noticed that once I&#8217;ve started and am making progress it&#8217;s easy to keep going. The trick is to both start and end in the right way.</p>
</div>
</div>
<div id="outline-container-2" class="outline-3">
<h3 id="sec-2">Start and Stop</h3>
<div id="text-2" class="outline-text-3">
<p>Whenever I start out reading and thinking too much about my problem I sabotage myself. I tell myself the problem is too hard, there&#8217;s too much other stuff I need to know first, surely someone else has already solved the problem and I can just use their code. Down that path lies madness (and not getting anything done). Though I&#8217;m all for thinking before pumping out code, for starters I like to just jump in and get going.</p>
<p>Diving in and hacking away helps produce the feeling that I&#8217;m making progress. Whatever I do at this phase is pretty basic: code cleanup, documentation, minor refactoring, maybe fixing a small bug. The point isn&#8217;t to get productive immediately, it&#8217;s to load the working context of the program into my brain, to get minor victories that help get past the resistance to start. Once I&#8217;m past the initial hump I can pause and think deeply about the core of the problem. Since I&#8217;ve already loaded up the problem in my head that also becomes easier.</p>
<p>I&#8217;ve learned the hard way that stopping probably is just as important. The key is momentum. During each coding session I build up a certain amount of momentum as I build up a mental model of the problem and the solution. Unfortunately I have to re-acquire that momentum every time I start again. I want to pick the proper stopping points so that the re-acquisition is quick and smooth.</p>
<p>I make sure that I always leave code in a relatively clean state: everything has been committed, there is some amount of documentation and most importantly I&#8217;ve identified what I need to do next. That way the next time I sit down with the code I can look up the README or the TODO file and pick off the next thing on the list. If the last commit was broken the next thing is usually something to fix. If the last commit was good I can add a new feature. I use a version control system that makes it easy to roll back changes and commits so I don&#8217;t hesitate to put in a &#8220;checkpoint&#8221; commit, even if it&#8217;s broken. The <a href="http://www.nytimes.com/2011/08/21/magazine/do-you-suffer-from-decision-fatigue.html">less time and effort I have to spend in deciding</a> what to do next the better a chance I have at actually getting something worthwhile done.</p>
</div>
</div>
<div id="outline-container-3" class="outline-3">
<h3 id="sec-3">This isn&#8217;t about computers</h3>
<div id="text-3" class="outline-text-3">
<p>…or computer science or programming. This is about getting work done, work that I love. But sometimes love isn&#8217;t enough to get me out of the browser and into the text editor. Habit is often stronger (and less demanding) than will power. The good thing about habits is that they can be both formed and broken. I&#8217;m starting to learn that the key isn&#8217;t to beat yourself up for being a slacker, but rather engineering your life so that getting stuff done is on the path of <a href="http://matt.might.net/articles/productivity-tips-hints-hacks-tricks-for-grad-students-academics/#philosophy">least resistance</a>.</p>
<p>And now it&#8217;s time to get back to my project.</p>
</div>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bytebaker.wordpress.com/1725/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bytebaker.wordpress.com/1725/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bytebaker.wordpress.com/1725/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bytebaker.wordpress.com/1725/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bytebaker.wordpress.com/1725/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bytebaker.wordpress.com/1725/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bytebaker.wordpress.com/1725/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bytebaker.wordpress.com/1725/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bytebaker.wordpress.com/1725/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bytebaker.wordpress.com/1725/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bytebaker.wordpress.com/1725/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bytebaker.wordpress.com/1725/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bytebaker.wordpress.com/1725/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bytebaker.wordpress.com/1725/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bytebaker.com&#038;blog=8123270&#038;post=1725&#038;subd=bytebaker&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://bytebaker.com/2011/12/08/getting-to-work/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ccb1217c46b31b7b232878d355f7f4e4?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">Basu</media:title>
		</media:content>
	</item>
		<item>
		<title>Sunday Selection 2011-11-27</title>
		<link>http://bytebaker.com/2011/11/27/sunday-selection-2011-11-27/</link>
		<comments>http://bytebaker.com/2011/11/27/sunday-selection-2011-11-27/#comments</comments>
		<pubDate>Sun, 27 Nov 2011 18:00:48 +0000</pubDate>
		<dc:creator>Shrutarshi Basu</dc:creator>
				<category><![CDATA[Biology]]></category>
		<category><![CDATA[Books]]></category>
		<category><![CDATA[Education]]></category>
		<category><![CDATA[Productivity]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[diet]]></category>
		<category><![CDATA[exercise]]></category>
		<category><![CDATA[fitness]]></category>
		<category><![CDATA[health]]></category>
		<category><![CDATA[Tim Ferriss]]></category>

		<guid isPermaLink="false">http://bytebaker.com/?p=1713</guid>
		<description><![CDATA[Today&#8217;s a bit of a health and fitness special to compensate for all the Thanksgiving excesses. But first, some programming. Programming All I Need to Be a Better Programmer I Learned in Kindergarten Sometimes the basics can be boiled down to just a few sentences. Sometimes I think I knew more when I was five [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bytebaker.com&#038;blog=8123270&#038;post=1713&#038;subd=bytebaker&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Today&#8217;s a bit of a health and fitness special to compensate for all the Thanksgiving excesses. But first, some programming.</p>
<h2>Programming</h2>
<p><a href="http://thecodist.com/article/all-i-need-to-know-to-be-a-better-programmer-i-learned-in-kindergarten">All I Need to Be a Better Programmer I Learned in Kindergarten</a> Sometimes the basics can be boiled down to just a few sentences. Sometimes I think I knew more when I was five than I do now. Of course, that&#8217;s a lie, but it&#8217;s worth thinking about.</p>
<p><a title="Code Fearlessly" href="http://cam.ly/blog/2010/12/code-fearlessly/">Code Fearlessly</a> I think version control is amazing. I&#8217;ve been using Git for a few years now (Subversion before then) and I keep all my writing as well as my code in repositories, backed up to Amazon and a VPS. The great thing about version control is how it lets you make mistakes and try out wild ideas without worrying about how you&#8217;ll get back to a working state if you break something.</p>
<h2>Health and Fitness</h2>
<p><a title="The Creative Brain on Exercise" href="http://www.fastcompany.com/1783263/the-creative-brain-on-exercise">The Creative Brain on Exercise</a> I know, I know. Exercise doesn&#8217;t come naturally to most of us spending our days in front of our screens. But given how much of our work is creative in nature, it makes sense to take care of our engines of creation. I think the time spent in exercise will more than pay itself back over the years (in saved medical bills and lost work time if nothing else).</p>
<p><a href="http://www.youtube.com/watch?v=vx9bCy3qrz4">How Getting Buff Can Make You a Better Rubyist</a>. In case you&#8217;re wondering about whether any of this exercise and diet stuff actually works or not, here&#8217;s some evidence straight from the source. This is worth watching even if you&#8217;re not a programmer, but just someone who has a normally sedentary work life.</p>
<p><a href="http://www.youtube.com/watch?v=yK2m-kjhhQM">Tim Ferriss on the 4-Hour Body at the NEXT conference</a> I know that so-called &#8220;extreme&#8221; advice such as provided by Tim in his book always earns a skeptical look, but I find his idea of minimum effective dose quite interesting. If you&#8217;re looking for the most efficient ways to change your body for the better, this is a must-watch.</p>
<p><a title="Eat to Live (Amazon)" href="http://www.amazon.com/Eat-Live-Revolutionary-Formula-Sustained/dp/0316829455">Eat to Live</a> If you&#8217;d rather have advice from a medical doctor who&#8217;s also changed the lives of dozens (if not hundreds) of people, this book is your best bet. I tend to think of it as more of a primer on nutrition and health in general rather than just a diet or fitness book. It might take you some time to get through it (though it&#8217;s a small book) but again, the investment is definitely worth it.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bytebaker.wordpress.com/1713/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bytebaker.wordpress.com/1713/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bytebaker.wordpress.com/1713/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bytebaker.wordpress.com/1713/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bytebaker.wordpress.com/1713/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bytebaker.wordpress.com/1713/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bytebaker.wordpress.com/1713/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bytebaker.wordpress.com/1713/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bytebaker.wordpress.com/1713/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bytebaker.wordpress.com/1713/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bytebaker.wordpress.com/1713/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bytebaker.wordpress.com/1713/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bytebaker.wordpress.com/1713/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bytebaker.wordpress.com/1713/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bytebaker.com&#038;blog=8123270&#038;post=1713&#038;subd=bytebaker&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://bytebaker.com/2011/11/27/sunday-selection-2011-11-27/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ccb1217c46b31b7b232878d355f7f4e4?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">Basu</media:title>
		</media:content>
	</item>
		<item>
		<title>Deliberate Practice for Programmers</title>
		<link>http://bytebaker.com/2011/11/21/deliberate-practice-for-programmers/</link>
		<comments>http://bytebaker.com/2011/11/21/deliberate-practice-for-programmers/#comments</comments>
		<pubDate>Mon, 21 Nov 2011 16:00:00 +0000</pubDate>
		<dc:creator>Shrutarshi Basu</dc:creator>
				<category><![CDATA[Education]]></category>
		<category><![CDATA[Productivity]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://bytebaker.com/?p=1707</guid>
		<description><![CDATA[The main reason one should go to graduate school is to do research. To earn a PhD you must have advanced the state of your field. In fact, your PhD defense is all about convincing the guardians of the frontier that the frontier has been moved. That being said, I have a personal goal of [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bytebaker.com&#038;blog=8123270&#038;post=1707&#038;subd=bytebaker&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>The main reason one should go to graduate school is to do research. To earn a PhD you must have advanced the state of your field. In fact, your PhD defense is all about convincing the guardians of the frontier that the <a title="Successful PhD students" href="http://matt.might.net/articles/successful-phd-students/">frontier has been moved</a>. That being said, I have a personal goal of improving myself as well. I&#8217;m surrounded my brilliant professors and peers and it would be downright stupid if I didn&#8217;t take this chance to learn from experts in their fields.</p>
<p>While I want to improve as a computer science researcher I also want to improve as a developer. For me, the fact that we must take our beautiful algorithms, logics and abstractions and express them in terms understandable to a dumb machine is not something to be despised. In fact, I consider it a pleasant challenge and a source of infinite creative joy. I would like my job a lot less if it didn&#8217;t involve a significant amount of programming. That being said, how exactly do we level up as a developer? In fact, what does leveling up even <em>mean</em> for a developer?</p>
<p>For the last few months (years?) I&#8217;ve been a growing fan of the idea of <a href="http://bytebaker.com/2011/08/11/mind-expansion/">deliberate practice</a> – the idea that the best way to improve is to take well-defined measurable steps towards getting better where at each step you get feedback as to what you did wrong and how you can do it better the next time. Deliberate practice has been applied by athletes and writers, can we apply it to programmers? In particular, can we come up with something more detailed than &#8220;Read code. Write code. Repeat&#8221;? Luckily for all of us, <a href="http://jasonrudolph.com/about.html">Jason Rudolph</a> took some steps on that path a few months ago.</p>
<p>Remember that deliberate practice requires that we have a list of well-defined, actionable goals on our path to excellence. We must know clearly <em>what</em> the goals are and also be able to <em>unambiguously</em> tell if we&#8217;ve achieved them or not. Jason came up with a list of simple yes/no goals that will exercise your programming muscles. What I love about Jason&#8217;s list is that it combines a lot of what it means to be a good developer. There are goals for learning tools of the trade (different languages, environments and frameworks), goals for learning core concepts (different paradigms and parts of the software stack) and social goals (open source and community involvement). There are a lot of things on the list, but then again, computer technology is a vast field.</p>
<p>Jason&#8217;s list is also necessarily incomplete. I&#8217;d argue that it&#8217;s practically impossible for one man to know all about the computer technology field today. But the good thing is that we have the technology and the community to take one man&#8217;s starting point and extend it for our own purposes. Jason&#8217;s list is available as a <a href="https://gist.github.com/1133830#file_programming_achievements.md">gist on Github</a> and has already been forked many times by people who are using it as their own deliberate practice guidelines. I have <a href="https://gist.github.com/1372296">my own fork</a> where I&#8217;ve fleshed out sections on uncommon programming languages and more theoretical learning goals.</p>
<p>It might be a bit naive to think that just going through a list of programming challenges will make you level up. However, I think the list is a good <a href="http://theoncologist.alphamedpress.org/content/12/11/1374.full">head fake</a>. The point isn&#8217;t really to go and do everything on the list. The point is everything that comes as a side-effect of completing the list. You&#8217;ll definitely put in a few thousand hours and churn out thousands of lines of code in a variety of different languages and environments. You&#8217;ll expand your mind by learning about programming styles and tools that you would have missed out on otherwise. As you encounter problems you&#8217;ll have to ask around on forums, mailing lists and IRC for help. This is important because deliberate practice is useless if you&#8217;re practicing the <em>wrong</em> things. In the absence of programming coaches, the global communities of programmers are your best bet to find mentors and guides. If you release your code to the world you&#8217;ll gain some street cred, get valuable feedback and maybe even provide something of lasting value to fellow developers. If you follow through on the social and community goals you&#8217;ll gain non-programming, but useful skills and meet a lot more people who can point in new and interesting directions. You&#8217;ll discover interesting new problems and come up with applications and solutions you might never have thought about otherwise. Maybe, just maybe, you&#8217;ll learn enough to level up as a programmer.</p>
<p>As a parting note, let&#8217;s all keep in mind that this will not be easy. It will take time and effort. I&#8217;m in graduate school so I might be able to make it part of my day job to do some of these things. But a lot of it will have to happen on my own time and energy, when I could be exploring Ithaca&#8217;s gorges or watching infinite Star Trek episodes on Netflix. This is even more true for people who have legitimate day jobs and families. We all need to come up with our own reasons for <em>why</em> we want to invest all this time and effort in deliberate practice. But one thing I keep telling myself is that the time will pass anyway and my energy will be spent somehow. I would rather spend it on writing my own operating system than on Star Trek reruns (no matter how much I love Star Trek).</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bytebaker.wordpress.com/1707/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bytebaker.wordpress.com/1707/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bytebaker.wordpress.com/1707/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bytebaker.wordpress.com/1707/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bytebaker.wordpress.com/1707/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bytebaker.wordpress.com/1707/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bytebaker.wordpress.com/1707/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bytebaker.wordpress.com/1707/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bytebaker.wordpress.com/1707/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bytebaker.wordpress.com/1707/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bytebaker.wordpress.com/1707/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bytebaker.wordpress.com/1707/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bytebaker.wordpress.com/1707/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bytebaker.wordpress.com/1707/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bytebaker.com&#038;blog=8123270&#038;post=1707&#038;subd=bytebaker&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://bytebaker.com/2011/11/21/deliberate-practice-for-programmers/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ccb1217c46b31b7b232878d355f7f4e4?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">Basu</media:title>
		</media:content>
	</item>
		<item>
		<title>Salvaging Dead Time and Procrastiworking</title>
		<link>http://bytebaker.com/2011/11/04/salvaging-dead-time-and-procrastiworking/</link>
		<comments>http://bytebaker.com/2011/11/04/salvaging-dead-time-and-procrastiworking/#comments</comments>
		<pubDate>Fri, 04 Nov 2011 14:00:00 +0000</pubDate>
		<dc:creator>Shrutarshi Basu</dc:creator>
				<category><![CDATA[Education]]></category>
		<category><![CDATA[Productivity]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[dead time]]></category>
		<category><![CDATA[Haskell]]></category>
		<category><![CDATA[procrastination]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[time management]]></category>

		<guid isPermaLink="false">http://bytebaker.com/?p=1661</guid>
		<description><![CDATA[The last few weeks have been another continuous episode of &#8220;too much to do, too little time&#8221;. Graduate school is a very interesting environment from a work and productivity standpoint. On the one hand I don&#8217;t really have a fixed schedule (outside of a few hours of class a week) and can work whenever I [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bytebaker.com&#038;blog=8123270&#038;post=1661&#038;subd=bytebaker&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>The last few weeks have been another continuous episode of &#8220;too much to do, too little time&#8221;. Graduate school is a <a href="http://bytebaker.com/2011/09/01/the-first-week-of-graduate-school/">very interesting environment</a> from a work and productivity standpoint. On the one hand I don&#8217;t really have a fixed schedule (outside of a few hours of class a week) and can work whenever I want. I also live close to campus so commuting isn&#8217;t a issue. However distractions abound. I&#8217;m not meeting with professors on as regular a basis as I was, but there are still lots of talks, colloquia and seminars that I find really interesting and want to go see. It&#8217;s very easy to have the day be perforated by lots of little things and never get anything done. However, there&#8217;s one trick that I&#8217;ve learned that in the past week or so that can mitigate this fragmentation and helps me get things done: salvaging dead time.</p>
<div id="outline-container-1" class="outline-3">
<h3 id="sec-1">Salvaging Dead Time</h3>
<div id="text-1" class="outline-text-3">
<p>I currently have a class that runs from 10:10am to 11:25am. Then I go to a lunchtime talk at noon. Taking out the 5 minutes or so to get back to my office that leaves about half an hour that would normally be wasted on Hacker News or Twitter. As a graduate student I need to have pretty long blocks of time to sit, think and get work done. Thirty minutes generally isn&#8217;t a lot of time to get brain-work done and hence this would be &#8220;dead time&#8221; – time that is just lost.</p>
<p>However half an hour is more than enough time to knock off errands. Today I filed two helpdesk tickets, processed email down to inbox zero, paid my power bill and wrote out my rent check. Not only did I get actual work done (and a little high from crossing them off my checklist) it means I don&#8217;t have to take out time for them later. I don&#8217;t have to devote separate time chunks to errands later and I can allocate that time to actual research work. I think that counts as an all-round win.</p>
</div>
</div>
<div id="outline-container-2" class="outline-3">
<h3 id="sec-2">Procrastiworking</h3>
<div id="text-2" class="outline-text-3">
<p>While knocking off errands works great to salvage small blocks of dead time (up to about half-an-hour) sometimes there are sometimes larger blocks of 1-2 hours that also needs salvaging. This generally happens around dinner – I don&#8217;t have a fixed dinner time. Hence there&#8217;s often this awkward state where I won&#8217;t be having dinner till a little later, but don&#8217;t have anything planned before. Normally that time would evaporate into nothingness, but I&#8217;ve been trying out a different technique to salvage it.</p>
<p>While an hour isn&#8217;t enough time to do real research work, it definitely is enough to do some programming exercises or go through a few more pages of <a href="http://book.realworldhaskell.org/">Real World Haskell</a>. Earlier this week I decided to finally sit down and learn Haskell seriously. I&#8217;m familiar enough with Haskell at the moment that I can get up and running in a few minutes. Doing exercises is challenging enough that it takes brain work and requires thinking and learning. However at the same I don&#8217;t feel bad about leaving in the middle for dinner (I can generally finish the program I&#8217;m working on before leaving). This is classic procrastiworking: I&#8217;m slacking off on what I really should be doing (research) but instead of digesting Twitter I&#8217;m doing something beneficial.</p>
<p>There&#8217;s also a small matter of me being lazy and using dead time as an excuse for slacking off. Even though I know I could use an hour for programming exercises I&#8217;m tempted to slack off anyway. I&#8217;ve been trying to use procrastiworking for that too. I start off doing something that is really not work: like updating all my git repos or cleaning up my Emacs config. But once that&#8217;s over, since I&#8217;m already at the computer in a terminal, dealing with scripts and code I just quietly move myself over to a Haskell file and start hacking. It helps if I leave an unfinished function that I can then fill in (or a TODO note).</p>
</div>
</div>
<div id="outline-container-3" class="outline-3">
<h3 id="sec-3">In Conclusion</h3>
<div id="text-3" class="outline-text-3">
<p>Salvaging dead time and procrastiworking isn&#8217;t a catch-all solution for time management but I&#8217;ve found that it works great for the small blocks of time that I would have been wasting otherwise. Of course, you can&#8217;t fill in the blanks unless you have things to fill them <em>with</em>. Personally I use OmniFocus to keep a list of errands that I can go through in sequence. I also have a &#8220;project&#8221; for the longer blocks – working on Haskell – that easily decomposes into blocks of just a few minutes in length that can be taken up and put down without too much buildup. Finally I hope that in this case practive makes perfect and I get better at making use of dead time the more I consciously do it.</p>
</div>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bytebaker.wordpress.com/1661/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bytebaker.wordpress.com/1661/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bytebaker.wordpress.com/1661/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bytebaker.wordpress.com/1661/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bytebaker.wordpress.com/1661/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bytebaker.wordpress.com/1661/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bytebaker.wordpress.com/1661/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bytebaker.wordpress.com/1661/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bytebaker.wordpress.com/1661/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bytebaker.wordpress.com/1661/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bytebaker.wordpress.com/1661/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bytebaker.wordpress.com/1661/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bytebaker.wordpress.com/1661/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bytebaker.wordpress.com/1661/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bytebaker.com&#038;blog=8123270&#038;post=1661&#038;subd=bytebaker&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://bytebaker.com/2011/11/04/salvaging-dead-time-and-procrastiworking/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ccb1217c46b31b7b232878d355f7f4e4?s=96&#38;d=&#38;r=G" medium="image">
			<media:title type="html">Basu</media:title>
		</media:content>
	</item>
	</channel>
</rss>
