<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Former Slacker</title>
	<atom:link href="http://formerslacker.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://formerslacker.com/blog</link>
	<description>A Journey to Productivity</description>
	<pubDate>Mon, 17 Nov 2008 18:10:25 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5</generator>
	<language>en</language>
			<item>
		<title>Giving Up The Credit Card</title>
		<link>http://feeds.feedburner.com/~r/FormerSlacker/~3/456255175/</link>
		<comments>http://formerslacker.com/blog/2008/11/17/giving-up-the-credit-card/#comments</comments>
		<pubDate>Mon, 17 Nov 2008 18:10:25 +0000</pubDate>
		<dc:creator>Derek Park</dc:creator>
		
		<category><![CDATA[Finance]]></category>

		<category><![CDATA[Success]]></category>

		<guid isPermaLink="false">http://formerslacker.com/blog/?p=59</guid>
		<description><![CDATA[I&#8217;ve been using a credit card for several years.  For the past two years in particular, I&#8217;ve put everything I could on my American Express Blue Cash card.  The card&#8217;s cash back benefits are pretty good, and it seems at first like there&#8217;s no reason not to take advantage of the free money.
As [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been using a credit card for several years.  For the past two years in particular, I&#8217;ve put everything I could on my American Express Blue Cash card.  The card&#8217;s cash back benefits are pretty good, and it seems at first like there&#8217;s no reason not to take advantage of the free money.</p>
<p>As of late, though, I&#8217;ve revised my stance on the credit card.  It&#8217;s not worth it.  No, I didn&#8217;t acquire massive amounts of consumer debt.  And no, I haven&#8217;t had any problems with American Express.  They&#8217;ve always treated me well. (They even waived a $40 late fee for me once.)  But I have decided that the card is actually more trouble than it&#8217;s worth.</p>
<h4 class="smallbottommargin">Card Benefits Barely Matter</h4>
<p>Sure, the 1% cash back, or whatever your card offers, seems nice.  Why not get some free money, right?  Okay, but it&#8217;s really not that much money.  Let&#8217;s say you get 1% cash back from your credit card.  Let&#8217;s also say you put $2000 per month on the card.  At the end of the year, you will have gotten $240 back.  Sure, it&#8217;s 240 dollars, and that&#8217;s nice, but that means <em>you charged $24,000 that year</em>.  Should you really be charging $24,000 to your credit card in one year?  If $240 really makes a significant difference in your finances, then <em>no</em>, you shouldn&#8217;t.  If $240 makes a big difference to you in the grand scheme of things, you need to stop charging and learn to save.</p>
<p>If I spent every single take-home dollar through my credit card (an impossibility), and got 1% cash back, then at the end of the year, I&#8217;d get less than 0.6% of my gross pay as cash back.  Um, wow.  Now I can afford that vacation to Aruba, if Aruba is a cheap hotel in a bad neighborhood.</p>
<p>That&#8217;s the way the math works out, though.  There&#8217;s simply no way to spend enough on a card to have the cash back (or other benefits) really matter.  The percentage just isn&#8217;t high enough.  It doesn&#8217;t matter how much you spend, you&#8217;ll still be getting only a small fraction back.  Yes, a little free money is nice, but is it really enough that you should be letting it sway your decisions?</p>
<p>Let&#8217;s look at it one other way.  A pack of gum costs about a dollar.  If you saw that pack of gum for 99 cents instead of a dollar, would you get excited?  No?  Maybe you find a new plasma TV you like.  It costs 1700 dollars, but you find it on sale for $1683.  Excited yet?  No?  Damn,  you&#8217;re hard to please.  If you don&#8217;t get excited when retailers offer you a 1% discount, why do you get excited when AmEx does?</p>
<p>Using a credit card for the cash back is like withdrawing cash from one credit card and transferring the balance to a new card with a low introductory rate, just so you draw a tiny bit of interest on the balance for a few months.  Yes, people do that, too, but it&#8217;s still stupid.  The payoff just isn&#8217;t worth the hassle.</p>
<h4 class="smallbottommargin">Living Month to Next Month</h4>
<p>Credit cards also encourage living month to month.  Even if you pay off your credit card every single month, you can easily find yourself behind.  It&#8217;s simple to deceive yourself about the real state of your finances when you rely on credit.</p>
<p>Up until recently, I was using my credit card for virtually everything.  I paid my bill, in full, every single month.  That makes it okay, right?  Well, no.  I realized a few months ago that I was basically living on my next month&#8217;s income.  I wasn&#8217;t destroying my savings yet, but slight overspending was building up, and it had gotten to the point where I didn&#8217;t have enough in my monthly expenses account to cover the total current balance and still pay the rest of my bills for the month.  I had let the credit card hide my debt.  Because I was paying it off monthly, I was convinced I wasn&#8217;t overspending, but I was.  I was living almost a month ahead of my income.</p>
<p>In theory, a closely monitored budget should avoid this problem.  At best, though, adding an ability to hide debt will add extra burden to your budgeting effort.  At worst, it will hide issues that will sneak up and bite you later.</p>
<h4 class="smallbottommargin">The Alternatives</h4>
<p>So, I&#8217;m giving up the credit card.  What does that leave?  Three things.</p>
<ol>
<li>Cash</li>
<li>Checks</li>
<li>Debit Cards</li>
</ol>
<p>I use checks for the same things I always used checks for.  Rent, car payments, other bills.  I use cash for food and discretionary spending.  I use the debit card for everything else.  In particular, I use the debit card for fuel.  Paying for gas with cash is a pain, and paying with a check is even worse, so the debit card is the only way I plan to pay for gas.</p>
<p>Having the debit card handy means that I have the same emergency support that I get from the a credit card.  i.e., I can always pay for a ride home if I break down.  Using the debit card also means that I never have debt build up on me unexpectedly.</p>
<p>It&#8217;s certainly possible to use a credit card and still maintain a budget.  It is not, however, possible for the credit card rewards to be &#8220;worth it&#8221;, when they are worth so little.  Do what you think is best for <em>your</em> finances, but don&#8217;t let yourself imagine that the small rewards have much value.  As for me, I&#8217;ve chosen simpler finances over a couple hundred extra dollars every year.  The easier budgeting, combined with the peace of mind I get from knowing exactly how much money I have is worth far more than 1% cash back.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/FormerSlacker?a=nsikN"><img src="http://feeds.feedburner.com/~f/FormerSlacker?i=nsikN" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/FormerSlacker?a=VebGn"><img src="http://feeds.feedburner.com/~f/FormerSlacker?i=VebGn" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/FormerSlacker?a=EZ97N"><img src="http://feeds.feedburner.com/~f/FormerSlacker?i=EZ97N" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://formerslacker.com/blog/2008/11/17/giving-up-the-credit-card/feed/</wfw:commentRss>
		<feedburner:origLink>http://formerslacker.com/blog/2008/11/17/giving-up-the-credit-card/</feedburner:origLink></item>
		<item>
		<title>New Job Part 2: Resume Polishing</title>
		<link>http://feeds.feedburner.com/~r/FormerSlacker/~3/406958458/</link>
		<comments>http://formerslacker.com/blog/2008/09/29/new-job-part-2-resume-polishing/#comments</comments>
		<pubDate>Tue, 30 Sep 2008 05:33:59 +0000</pubDate>
		<dc:creator>Derek Park</dc:creator>
		
		<category><![CDATA[Career]]></category>

		<category><![CDATA[Productivity]]></category>

		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://formerslacker.com/blog/?p=64</guid>
		<description><![CDATA[After my fiancée and I officially decided to move to Silicon Valley, I found myself in the market for a new programming job.  Before I even looked at any job openings, though, I updated my resume.  I strongly feel that the resume is often the make-or-break factor when applying for jobs.  A [...]]]></description>
			<content:encoded><![CDATA[<p>After my fiancée and I officially decided to move to Silicon Valley, I found myself in the market for a new programming job.  Before I even looked at any job openings, though, I updated my resume.  I strongly feel that the resume is often the make-or-break factor when applying for jobs.  A well-written resume can get attention, which can lead to an interview.  A poorly-written resume will likely get thrown in the trash.</p>
<h4 class="smallbottommargin">Advice</h4>
<p>I spent a lot of time reviewing resume tips (yes, <a href="http://formerslacker.com/blog/2007/02/08/9-resume-tips-that-should-be-screechingly-obvious-but-apparently-arent/">my own</a>, but also <a href="http://www.randsinrepose.com/archives/2007/02/25/a_glimpse_and_a_hook.html">several</a> <a href="http://www.lifeclever.com/give-your-resume-a-face-lift/">others</a>).  I don&#8217;t update my resume very often, but when I do, I always look for advice.  In the end, I actually threw away my original resume and completely rewrote it.  The basic content was the same, but the style was entirely new (and very heavily influenced by resume articles I read).  This took quite a bit of time, but was entirely worth it.  The final product was much higher quality than what I started with.</p>
<p>One really important thing I did was have coworkers, professors, and my fiancée read my resume.  I got some really good feedback from this.  I got a few style pointers, but mostly I got substance advice.  My fiancée pushed me to clarify and expand on my leadership experience.  My coworkers recommended relevant technologies that I should have included.  My academic advisor really pushed me to restructure the resume to make it more appropriate for the industry.  In particular, he had me highlight my skills and work experience.</p>
<h4 class="smallbottommargin">Formatting</h4>
<p>Another thing I would wholeheartedly recommend everyone do is to prepare both a formatted (ahem, PDF) and a plaintext resume.  I used my formatted resume almost everywhere.  However, I did use a plaintext resume for a few places that I  <em>knew</em> were going to strip my resume down to plaintext anyway.  In general, plaintext resumes are not very pretty, but for places that I know are going to strip away the formatting, I would rather provide a plaintext resume of my own creation.  Text extracted from formatted documents is rarely pleasant to read.</p>
<p>I do not, however, recommend using plaintext resumes for most job applications, because they still look like crap.  Use them only when you really have to.  And despite <a href="http://steve-yegge.blogspot.com/2007/09/ten-tips-for-slightly-less-awful-resume.html#text">what Steve Yegge says</a>, you don&#8217;t need to submit a plaintext resume to Google.  I don&#8217;t know why he implies that resumes at Google are stripped of their formatting.  I almost submitted a plaintext resume to Google because of his article.  I&#8217;m glad I didn&#8217;t, though, because the first guy who interviewed me showed up with a printout of my resume exactly as I had formatted it.</p>
<h4 class="smallbottommargin">The Cover Letter</h4>
<p>Every resume I sent was with a custom cover letter.  Form letters look lazy and half-assed, because that&#8217;s what they are.  A custom cover letter indicates at least a little actual interest in the job.  A generic cover letter screams &#8220;bulk mail&#8221;, which in turn yells &#8220;delete me&#8221;.</p>
<p>I also made my cover letters match my resume as closely as possible.  Some of the positions that I applied for were via an online form, and the only place to provide a cover letter was a text box.  For those, I submitted the cover letter in plaintext.  For the rest, I made my cover letters match my resume fonts, margins, etc.  I think this attention to detail is important.  When printed, the cover letter and resume should look as if they came from the same document.  This level of attention to detail may not be strictly necessary, but it definitely won&#8217;t hurt, and it really doesn&#8217;t take much time.  Create a cover letter template and you only have to make it match once.</p>
<p>Oh, and I saved every single cover letter I sent.  This allowed me to lift sentences when writing new cover letters, but it also gave me a lot of examples to read when I had trouble thinking of what to say.  (And I have them saved for the future as well.)  Whenever I had trouble deciding what to put into a new cover letter, I&#8217;d re-read the others, and several ideas would pop into my head.  A little socket work here, a little C++ work there.  Examples are extremely useful for me, even when they are my own.</p>
<p>Once I finished my resume and all those matching cover letters, I started sending them out to interesting positions.  I had planned on talking about that more in this post, but the resume chatter got long enough, so I&#8217;m pushing that off to next time.</p>
<p><em>By the way, if you want a lot of other good tips, read the comments on my <a href="http://formerslacker.com/blog/2007/02/08/9-resume-tips-that-should-be-screechingly-obvious-but-apparently-arent/">resume tips article</a>.  There were a lot of really good tips (as well as a few really bad tips) from the readers.</em></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/FormerSlacker?a=zZhGL"><img src="http://feeds.feedburner.com/~f/FormerSlacker?i=zZhGL" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/FormerSlacker?a=tgjLl"><img src="http://feeds.feedburner.com/~f/FormerSlacker?i=tgjLl" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/FormerSlacker?a=7jOBL"><img src="http://feeds.feedburner.com/~f/FormerSlacker?i=7jOBL" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://formerslacker.com/blog/2008/09/29/new-job-part-2-resume-polishing/feed/</wfw:commentRss>
		<feedburner:origLink>http://formerslacker.com/blog/2008/09/29/new-job-part-2-resume-polishing/</feedburner:origLink></item>
		<item>
		<title>DSL Hell - Or - Screw You, AT&amp;T</title>
		<link>http://feeds.feedburner.com/~r/FormerSlacker/~3/358030291/</link>
		<comments>http://formerslacker.com/blog/2008/08/06/dsl-hell-or-screw-you-att/#comments</comments>
		<pubDate>Thu, 07 Aug 2008 03:59:14 +0000</pubDate>
		<dc:creator>Derek Park</dc:creator>
		
		<category><![CDATA[Miscellaneous]]></category>

		<guid isPermaLink="false">http://formerslacker.com/blog/?p=65</guid>
		<description><![CDATA[I ordered DSL service from AT&#038;T recently.  There were a lot of things they did wrong early on.  They made it difficult for me to get naked DSL.  They refused to allow me to transfer my existing service.  (I&#8217;m in California now, but I had an account with Bellsouth in Mississippi.) [...]]]></description>
			<content:encoded><![CDATA[<p>I ordered DSL service from AT&#038;T recently.  There were a lot of things they did wrong early on.  They made it difficult for me to get naked DSL.  They refused to allow me to transfer my existing service.  (I&#8217;m in California now, but I had an account with Bellsouth in Mississippi.)  They didn&#8217;t support their own modems from Mississippi.  Etc.  But that&#8217;s not what I want to talk about.  I got my new modem today, along with it&#8217;s lovely installation software, and let&#8217;s just say that the installation wasn&#8217;t exactly smooth.</p>
<h4>Broken Out of the Box</h4>
<p><a href='http://formerslacker.com/blog/wp-content/uploads/2008/08/modem.jpg'><img src="http://formerslacker.com/blog/wp-content/uploads/2008/08/modem-300x178.jpg" alt="DSL modem" title="DSL modem" width="300" height="178" style="float:right;" class="alignright size-medium wp-image-72" /></a>First problem, it doesn&#8217;t work out of the box.  There&#8217;s no reason why a DSL modem shouldn&#8217;t just work when you plug in the wall.  AT&#038;T already <em>knows</em> who&#8217;s paying for the line.  There&#8217;s no question about that.  So why doesn&#8217;t it just work?</p>
<p>The modem wanted a username and password to connect.  Okay, this is stupid, but whatever.  I entered my username and password (actually the default one that tech support gave me when I was trying to get my old modem working).  It still didn&#8217;t work.</p>
<p>Oh, the DSL connection was established.  It passed all of its internal tests.  I could even ping, dig, etc. from the command-line.  But I couldn&#8217;t get my browser to connect to anything.  Why didn&#8217;t it work?  Damned if I know.  Apparently it&#8217;s intentionally shipped in a half-working state, so that you&#8217;re forced to use the install software it ships with.  The software is the source of the real problems.</p>
<h4>Stupid Software</h4>
<p>There&#8217;s is no reason any user should <em>ever</em> have to install software to get an external DSL modem to work.  The software is completely unnecessary to actually use the modem once it&#8217;s configured.</p>
<p>It is absolutely obnoxious that users are forced to install extremely invasive software that is unnecessary for actual use of the device.  All necessary configuration should be exposed through the modem&#8217;s own interface.</p>
<p>This software committed a lot of sins.  Very briefly:</p>
<ol>
<li>It&#8217;s slow.  Extremely slow.  The software felt like I was running it on a 386.  I could hear the hard disk and CD churning each time it loaded the next step in the wizard.  And oh yes, there were a lot of steps.  It probably took me 15 minutes to go through all the steps.  And of course, there was no option to skip any steps.  I had to click through ten pages on how to install line filters.  <em>I&#8217;m not using line filters.</em>  I bought naked DSL.</li>
<li>It&#8217;s invasive.  The software installed new hardware drivers.  Why in the <em>hell</em> is this software installing drivers?  I don&#8217;t even know what these drivers do, but they sure as hell aren&#8217;t necessary.  There&#8217;s no option to <em>not</em> install them, though.</li>
<li>It&#8217;s inconsiderate.  Aside from generally being all-around poor-quality, the software also installed icons on my desktop, changed my homepage, installed unnecessary services, and <em>rebooted my computer without asking me</em>.  After it installed it&#8217;s idiotic drivers, it actually rebooted my computer with no request and only about  two seconds of warning.  Who does this?  After it started back up, Windows requested that I reboot <em>again</em>, but at least Windows gave me the option to decline.</li>
</ol>
<p>There were plenty other issues with this software, but let me just move on to the grand finale.</p>
<h4>The Trojan</h4>
<p><a href='http://formerslacker.com/blog/wp-content/uploads/2008/08/att-trojan.png'><img src="http://formerslacker.com/blog/wp-content/uploads/2008/08/att-trojan-thumb.png" alt="AT&#038;T Trojan" title="AT&#038;T Trojan" width="320" height="200" style="float:right;" class="alignright size-full wp-image-71" /></a>After the AT&#038;T software finally finished installing, I got a nice message from my antivirus program.  Apparently, the AT&#038;T installer let a trojan in, or installed one directly.  Maybe it&#8217;s even a false alarm, because the installer just exhibits such inappropriate, trojan-like behavior.  I don&#8217;t know, and I really don&#8217;t care.  There is absolutely no reason that this should have happened.  This goes past incompetence into the realm of gross negligence.</p>
<p>In order to get my DSL modem, I had to install unnecessary software, sit through a ridiculously long install procedure, receive totally unnecessary drivers and services, have my computer reboot without warning, and be infected with a trojan.  Are you serious?  How much do you have to despise your customers to put them through this crap.  It almost makes me wish I&#8217;d gone with Comcast.  It definitely makes me wish I&#8217;d had more options.</p>
<p>Oh, and by the way, this software is version 7.6.  Does that mean that the previous versions were even worse, or that it took them 7 major versions to screw things up this bad?</p>
<p><a href='http://formerslacker.com/blog/wp-content/uploads/2008/08/att-trojan-vm.png'><img src="http://formerslacker.com/blog/wp-content/uploads/2008/08/att-trojan-vm-thumb.png" alt="AT&#038;T Trojan in Virtual Machine" title="AT&#038;T Trojan in Virtual Machine" width="320" height="201" style="float:right;" class="alignright size-full wp-image-69" /></a>I actually got all of AT&#038;T&#8217;s crap removed from my computer.  Thankfully, I installed their stupid, infectious software in a virtual machine, so all I had to do was revert to a previous snapshot.  I feel really bad for the majority of their customers, though.  The average person isn&#8217;t going to have access to a virtual machine, and wouldn&#8217;t know to use it anyway.  Instead, the average person will sit through the whole install, and then after it&#8217;s all done installing all its trash, wonder why their computer seems slower and less stable.</p>
<p>AT&#038;T, you should be ashamed.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/FormerSlacker?a=SjjLxK"><img src="http://feeds.feedburner.com/~f/FormerSlacker?i=SjjLxK" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/FormerSlacker?a=S4lg8k"><img src="http://feeds.feedburner.com/~f/FormerSlacker?i=S4lg8k" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/FormerSlacker?a=UXZ6MK"><img src="http://feeds.feedburner.com/~f/FormerSlacker?i=UXZ6MK" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://formerslacker.com/blog/2008/08/06/dsl-hell-or-screw-you-att/feed/</wfw:commentRss>
		<feedburner:origLink>http://formerslacker.com/blog/2008/08/06/dsl-hell-or-screw-you-att/</feedburner:origLink></item>
		<item>
		<title>New Job Part 1: Why Silicon Valley?</title>
		<link>http://feeds.feedburner.com/~r/FormerSlacker/~3/321408158/</link>
		<comments>http://formerslacker.com/blog/2008/06/27/new-job-part-1-why-silicon-valley/#comments</comments>
		<pubDate>Fri, 27 Jun 2008 15:43:23 +0000</pubDate>
		<dc:creator>Derek Park</dc:creator>
		
		<category><![CDATA[Career]]></category>

		<category><![CDATA[Productivity]]></category>

		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://formerslacker.com/blog/?p=63</guid>
		<description><![CDATA[You can call me a software engineer or a software developer.  You can call me a computer scientist.  You can even call me a Technical Yahoo! Software System Development Engineer.  Whatever.  I call myself a programmer, maybe a hacker on self-congratulatory days.
My first programming-related job was working as a systems administrator [...]]]></description>
			<content:encoded><![CDATA[<p>You can call me a software engineer or a software developer.  You can call me a computer scientist.  You can even call me a Technical Yahoo! Software System Development Engineer.  Whatever.  I call myself a programmer, maybe a hacker on self-congratulatory days.</p>
<p>My first programming-related job was working as a systems administrator during my senior year of undergrad studies.  I did a lot of network and computer maintenance that year, but I also had a chance to put together some custom software.  After that, I had a grant as a Master&#8217;s student to develop science and math projects for elementary school students.  As part of this job, I built a new website and database for the grant and all its associated projects.  Most recently, I was developing radar software for a small defense contractor.  This was my first full-time job, and also my first software-only job.  However, it was not a job in a software-only company, and I&#8217;ve decided that&#8217;s where I want to be.</p>
<p>I don&#8217;t want to work for the software division of some company.  I don&#8217;t want to work in network administration.  I definitely don&#8217;t want to be anyone&#8217;s &#8220;computer guy&#8221;.  I want to be a part of a <em>dedicated software firm</em>.</p>
<p>No one can truly thrive without continual learning.  You learn or you fall behind, regardless of what field you are in.  No matter how much you know, no matter how skilled you are, others will eventually surpass you if you don&#8217;t strive to stay ahead.  I know that there are many things I need to learn about building quality software, and I feel that I am likely to learn some of these things best in a dedicated software company.</p>
<p>In a software company, the focus is on the software (or it should be).  That means that there is more attention directed toward software quality, toward software development productivity.  It means that a lot of the management grew out of the developer pool, and should know what it takes to build quality software.  Most importantly, it means that there&#8217;s a wealth of talented and experienced developers to learn from.  I want to know how to built large systems.  I want to learn how hundreds of programmers can work together.  I want to discover how world-class software is grown.  Maybe I could learn these things at a non-software company, but it would certainly be harder.</p>
<p>There are a lot of software firms in the world, but I can tell you one place where most of them are not: Mississippi.  You can probably guess where I used to live.</p>
<p>Since Mississippi has few software firms, it would be rather difficult for me to find my ideal job there.  Besides, neither I nor my fiancée ever planned to live in Mississippi forever.  Neither of us were born or raised in Mississippi, and neither of us have any wish to grow old there.  We were destined to move eventually.</p>
<p>When my fiancée and I started investigating where we <em>should</em> live, we wanted to restrict our search to places that would have abundant jobs for both of us.  She&#8217;s a psychologist.  Most software companies are headquartered in or near large cities.  A luck would have it, most people are also in or near large cities.  Since more people imply more opportunities for psychologists, our fields&#8217; job opportunities overlap best in major cities.  (Funny how most opportunities seem to be where most people are . . . .)</p>
<p>We ranked some of the best cities for both of us, and three options came out on top: Boston, San Diego, and Silicon Valley.  She applied for jobs in those three areas, and we decided we&#8217;d go wherever she got an offer.  In the end, she received offers in both San Diego and Silicon Valley (specifically Palo Alto).  Of those two, Palo Alto appeared to have more of a future for her, as well as more opportunities for me.  That pretty much ended the discussion of where we should live.  She accepted a position in Palo Alto and I began the process of applying for jobs myself.</p>
<p>So, where does a programmer apply for jobs in Silicon Valley?  Lots and <em>lots</em> of places.  I&#8217;ll talk more about that soon.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/FormerSlacker?a=ZGKT0I"><img src="http://feeds.feedburner.com/~f/FormerSlacker?i=ZGKT0I" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/FormerSlacker?a=654a3i"><img src="http://feeds.feedburner.com/~f/FormerSlacker?i=654a3i" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/FormerSlacker?a=JOiNTI"><img src="http://feeds.feedburner.com/~f/FormerSlacker?i=JOiNTI" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/FormerSlacker?a=urmOuI"><img src="http://feeds.feedburner.com/~f/FormerSlacker?i=urmOuI" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://formerslacker.com/blog/2008/06/27/new-job-part-1-why-silicon-valley/feed/</wfw:commentRss>
		<feedburner:origLink>http://formerslacker.com/blog/2008/06/27/new-job-part-1-why-silicon-valley/</feedburner:origLink></item>
		<item>
		<title>New Job</title>
		<link>http://feeds.feedburner.com/~r/FormerSlacker/~3/318585771/</link>
		<comments>http://formerslacker.com/blog/2008/06/23/new-job/#comments</comments>
		<pubDate>Tue, 24 Jun 2008 03:46:09 +0000</pubDate>
		<dc:creator>Derek Park</dc:creator>
		
		<category><![CDATA[Career]]></category>

		<category><![CDATA[Productivity]]></category>

		<guid isPermaLink="false">http://formerslacker.com/blog/?p=62</guid>
		<description><![CDATA[I accepted a new job in Silicon Valley recently.  The short version is that I am now gainfully employed with Yahoo.  The long version will be arriving in several parts.  Look for part one soon.
The first part will cover the reasons we (my fiancée and myself) chose Silicon Valley, along with the [...]]]></description>
			<content:encoded><![CDATA[<p>I accepted a new job in Silicon Valley recently.  The short version is that I am now gainfully employed with Yahoo.  The long version will be arriving in several parts.  Look for part one soon.</p>
<p>The first part will cover the reasons we (my fiancée and myself) chose Silicon Valley, along with the beginning of the job hunt, the resume, etc., depending on how long I let the post get.  Some later posts will describe the interview process, offers, salary and benefits negotiation, and relocation.  This will take a while, but stay tuned if you&#8217;re interested in more information about the process I went through to get a job in Silicon Valley, or if you&#8217;re interested in hearing another opinion about Google and Yahoo&#8217;s interview process.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/FormerSlacker?a=uuDVwI"><img src="http://feeds.feedburner.com/~f/FormerSlacker?i=uuDVwI" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/FormerSlacker?a=aRzsvi"><img src="http://feeds.feedburner.com/~f/FormerSlacker?i=aRzsvi" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/FormerSlacker?a=E9CgaI"><img src="http://feeds.feedburner.com/~f/FormerSlacker?i=E9CgaI" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/FormerSlacker?a=DlSFqI"><img src="http://feeds.feedburner.com/~f/FormerSlacker?i=DlSFqI" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://formerslacker.com/blog/2008/06/23/new-job/feed/</wfw:commentRss>
		<feedburner:origLink>http://formerslacker.com/blog/2008/06/23/new-job/</feedburner:origLink></item>
		<item>
		<title>The Future of Former Slacker</title>
		<link>http://feeds.feedburner.com/~r/FormerSlacker/~3/288965966/</link>
		<comments>http://formerslacker.com/blog/2008/05/12/the-future-of-former-slacker/#comments</comments>
		<pubDate>Mon, 12 May 2008 21:31:02 +0000</pubDate>
		<dc:creator>Derek Park</dc:creator>
		
		<category><![CDATA[Website]]></category>

		<guid isPermaLink="false">http://formerslacker.com/blog/?p=58</guid>
		<description><![CDATA[Sick of the lack of posts?  Bored with some of the most &#8220;recent&#8221; ones?  Yeah, me too.  I&#8217;ve had a lot of people (okay, a few friends) ask me why I haven&#8217;t been updating lately.  I&#8217;ve got an answer for that.  If you thought some of the posts I made [...]]]></description>
			<content:encoded><![CDATA[<p>Sick of the lack of posts?  Bored with some of the most &#8220;recent&#8221; ones?  Yeah, me too.  I&#8217;ve had a lot of people (okay, a few friends) ask me why I haven&#8217;t been updating lately.  I&#8217;ve got an answer for that.  If you thought some of the posts I made were rather boring, I might have an response for that, too.</p>
<h4 class="smallbottommargin">A Problem of Motivation</h4>
<p>Believe it or not, lack of material hasn&#8217;t been a problem.  Lack of material I care about <em>has</em> been a problem.  I&#8217;ve got twenty-some-odd drafts in various states of completion, and dozens more topic ideas written in a notebook.  But I just don&#8217;t care enough about most of the topics to finish them, so I haven&#8217;t, and I won&#8217;t.</p>
<p>When I first started this site, I thought I would enjoy writing about personal development and especially personal finance.  It turns out that I don&#8217;t.  There are some personal development and finance topics that I have enjoyed (and will enjoy) writing about, but for the most part, I don&#8217;t have the dedication and desire to write about this stuff regularly.  And that comes through in the writing.  My posts about <a href="http://formerslacker.com/blog/2007/02/21/eight-practical-steps-to-achieving-your-goals/">goals</a> and <a href="http://formerslacker.com/blog/2007/01/31/track-your-money-without-watching-your-expenses/">finance</a> and such haven&#8217;t been nearly as well received as my more off-the-cuff posts about <a href="http://formerslacker.com/blog/2007/03/12/why-a-career-in-computer-programming-doesnt-suck-a-response/">programming</a>,  or <a href="http://formerslacker.com/blog/2007/02/08/9-resume-tips-that-should-be-screechingly-obvious-but-apparently-arent/">resume tips</a>, or even <a href="http://formerslacker.com/blog/2007/02/19/the-truth-about-the-law-of-attraction-or-the-secret-is-retarded/">the secret</a>.  The truth is that posts that I wrote to be interesting were just boring.  The posts I wrote because <em>I</em> was interested were fun.</p>
<h4 class="smallbottommargin">Lack of Time</h4>
<p>I frankly haven&#8217;t had a lot of time to dedicate to this site.  Each post I put up takes three hours, minimum, and many of them take considerably longer.  Maybe that means I&#8217;m a slow writer.  Either way, it&#8217;s just too much time to put into posts I don&#8217;t care about.</p>
<p>I&#8217;m working a full-time job, and I&#8217;ve been enrolled in graduate classes constantly since I started this site.  Those take priority over this site, and always will.</p>
<p>My girlfriend (now fiancée) has been living about seven hours away for the past year, which means I spend quite a few of my weekends traveling to see her.  Other weekends are spent when she comes to see me.  I also spend a decent bit of time on the phone through the week.  This is not the primary reason I stopped posting, but it has contributed.  My fiancée takes priority above this site.  Way, way above this site.</p>
<p>I&#8217;m not looking to excuse the fact that I haven&#8217;t been posting.  I&#8217;m just saying this is how it is.</p>
<h4 class="smallbottommargin">What the Future Holds</h4>
<p>So, we&#8217;ve established that I have neither the motivation nor the time to post here frequently.  What does that mean for the future of this site?  For starters, I&#8217;m only writing about things I&#8217;m interested in from now on.  No more posts that I write just because I think others might be interested.  I write for me.  If others like it, great.  If not, great.</p>
<p>When will I write?  Who knows.  Maybe once every week or two.  Maybe never.  I&#8217;m not going to make any promises about posting.  Every time I see someone do that, they make themselves into liars by disappearing again.  I&#8217;m not doing that.  Without promising anything, I will say that my plan is to post occasionally, a couple of times per month, at most.  So if you check in once in a while, you might might find some new posts.  If we&#8217;re both lucky, they might even be interesting.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/FormerSlacker?a=x0Tv4H"><img src="http://feeds.feedburner.com/~f/FormerSlacker?i=x0Tv4H" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/FormerSlacker?a=LaVHmh"><img src="http://feeds.feedburner.com/~f/FormerSlacker?i=LaVHmh" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/FormerSlacker?a=oElkUH"><img src="http://feeds.feedburner.com/~f/FormerSlacker?i=oElkUH" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/FormerSlacker?a=FVGpHH"><img src="http://feeds.feedburner.com/~f/FormerSlacker?i=FVGpHH" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://formerslacker.com/blog/2008/05/12/the-future-of-former-slacker/feed/</wfw:commentRss>
		<feedburner:origLink>http://formerslacker.com/blog/2008/05/12/the-future-of-former-slacker/</feedburner:origLink></item>
		<item>
		<title>Setting Real Goals</title>
		<link>http://feeds.feedburner.com/~r/FormerSlacker/~3/159250581/</link>
		<comments>http://formerslacker.com/blog/2007/09/20/setting-real-goals/#comments</comments>
		<pubDate>Fri, 21 Sep 2007 00:51:16 +0000</pubDate>
		<dc:creator>Derek Park</dc:creator>
		
		<category><![CDATA[Personal Development]]></category>

		<category><![CDATA[Productivity]]></category>

		<category><![CDATA[Relationships]]></category>

		<category><![CDATA[Success]]></category>

		<guid isPermaLink="false">http://formerslacker.com/blog/2007/09/20/setting-real-goals/</guid>
		<description><![CDATA[What do you really want to accomplish in the next month, the next year, the next decade?  Is your career on track?  Are your relationships developing correctly?  Do you really even know?
The Yardstick
We cannot measure our success without knowing what success will look like.  Our goals should be the yardsticks for [...]]]></description>
			<content:encoded><![CDATA[<p>What do you really want to accomplish in the next month, the next year, the next decade?  Is your career on track?  Are your relationships developing correctly?  Do you really even know?</p>
<h4 class="smallbottommargin">The Yardstick</h4>
<p>We cannot measure our success without knowing what success will look like.  Our goals should be the yardsticks for our lives.  If we are meeting our goals, then we are successful.  If we are not, then we need to adjust either our goals or our efforts.  Do you know what <em>your</em> goals are?</p>
<p>You might want a million dollars, but that&#8217;s not good enough.  That&#8217;s not a goal.  It&#8217;s a dream.  You can&#8217;t <em>act</em> on a dream.  Do you want to save a million dollars for retirement?  If so, then maybe your goal should be to &#8220;invest $250 in a mutual fund every month for the next 40 years.&#8221;  <em>That&#8217;s</em> a goal you can act on.  You are much more likely to invest $250 than you are to just &#8220;save a million dollars.&#8221;</p>
<p>Let&#8217;s look at another common example.  If you want to get in shape, then &#8220;eating better&#8221; and &#8220;going to the gym regularly&#8221; should not be your goals.  Even &#8220;lose ten pounds&#8221; shouldn&#8217;t be your goal.  Those are all just too intangible to reliably act upon.  Your goals should be to &#8220;eat no more than 1500 calories per day,&#8221; and to &#8220;go the gym from 6:00 to 7:00 on Tuesdays, Thursdays, and Saturdays.&#8221;  Anything less than that isn&#8217;t a real goal.  It&#8217;s just a dream.</p>
<h4 class="smallbottommargin">Toward a Goal</h4>
<p>Once you&#8217;ve made your goals into something tangible, something <em>measurable</em>, you can monitor your progress.  Did you save $250 last month?  If not, you need to adjust your budget and compensate.  Did you go to the gym last Tuesday?  No?  Then you need to make the time.</p>
<p>By setting a measurable goal, you can constantly evaluate whether you&#8217;re going to reach that goal.  If your dream is to spend more time with your kids, you can&#8217;t really track that.  How much is <em>enough more</em>?  If you want to spend 2 hours every weeknight helping your children with their homework and then going for a walk as a family, that&#8217;s something you can track.  You can try to track your success in your head, or you can actually keep a personal log.  Either way, the first step is to make the goal measurable.</p>
<p>I want to finish all of my degree, except for my dissertation, by the end of next spring.  That&#8217;s not very tangible, though.  So instead, my goals are to take my comprehensive exams and finish 12 hours of class this fall, and to take 6 hours of class and propose my dissertation in the spring.  These are by no means easy goals (I have a full-time, off-campus job), but they are measurable goals.  I know exactly what I need to do, and I know exactly when I need to do it.  I can and do track how my school goals are progressing.</p>
<p>Once your goals are measurable, you can make progress.  Until then, you&#8217;re just frustrating yourself with dreams that won&#8217;t come true.</p>
<h4 class="smallbottommargin">Big Goals</h4>
<p>Sometimes a goal might just be too big to really be tangible.  If that&#8217;s the case, you need to break it into smaller goals.  For example, starting your own company is a huge goal.  It&#8217;s definitely possible, because others have done it.  But &#8220;start a company&#8221; just doesn&#8217;t seam tangible, or very measurable, for that matter.  You&#8217;ve got to somehow break it up into achievable pieces.</p>
<p>If you want to start a software company, you should probably have a goal of spending several hours a day putting together a prototype product.  After that, maybe you need to find a partner or an investor.  So you should have a goal of spending some amount of time finding a partner.  Or a goal of hitting up everyone you know with more than $5 for investment money.  At every step of the way, there should be tangible goals.  Even if they aren&#8217;t all obvious from the beginning, you should be nailing them down as you go along.</p>
<p>Meeting goals can be hard.  It can be very hard work.  But the first step is to really know what the goals are.  Setting goals is not an extremely difficult thing to do.  It takes some time, a little personal honesty, and probably a pen and paper.  Whatever time and effort you put into setting your goals will pay itself back many times over, when you actually meet your goals.  Once you&#8217;ve actually set real goals, you&#8217;ll know what you want, you&#8217;ll know what you need to do to get it, and you&#8217;ll know how to track your progress.</p>
<p>People waste their entire lives dreaming and never doing.  All the hoping in the world won&#8217;t turn a single dream into reality.  But hard work can turn <em>goals</em> into reality.  Don&#8217;t sell yourself short.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/FormerSlacker?a=xoHR2zwB"><img src="http://feeds.feedburner.com/~f/FormerSlacker?i=xoHR2zwB" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/FormerSlacker?a=CuSxycqX"><img src="http://feeds.feedburner.com/~f/FormerSlacker?i=CuSxycqX" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/FormerSlacker?a=T8glu9ma"><img src="http://feeds.feedburner.com/~f/FormerSlacker?i=T8glu9ma" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/FormerSlacker?a=87MmsUh7"><img src="http://feeds.feedburner.com/~f/FormerSlacker?i=87MmsUh7" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://formerslacker.com/blog/2007/09/20/setting-real-goals/feed/</wfw:commentRss>
		<feedburner:origLink>http://formerslacker.com/blog/2007/09/20/setting-real-goals/</feedburner:origLink></item>
		<item>
		<title>How Quickly Does Programming Knowledge Become Obsolete?</title>
		<link>http://feeds.feedburner.com/~r/FormerSlacker/~3/103078898/</link>
		<comments>http://formerslacker.com/blog/2007/03/20/how-quickly-does-programming-knowledge-become-obsolete/#comments</comments>
		<pubDate>Tue, 20 Mar 2007 15:47:01 +0000</pubDate>
		<dc:creator>Derek Park</dc:creator>
		
		<category><![CDATA[Career]]></category>

		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://formerslacker.com/blog/2007/03/20/how-quickly-does-programming-knowledge-become-obsolete/</guid>
		<description><![CDATA[How rapidly does programming knowledge really become out-of-date?  Do things change so frequently that it has become unreasonable to expect programmers to keep up with the pace of technology?  I&#8217;m not so sure the pace is really that fast.
A few days ago, Half Sigma posted an article claiming that a career in programming [...]]]></description>
			<content:encoded><![CDATA[<p>How rapidly does programming knowledge really become out-of-date?  Do things change so frequently that it has become unreasonable to expect programmers to keep up with the pace of technology?  I&#8217;m not so sure the pace is really that fast.</p>
<p>A few days ago, Half Sigma posted an article claiming that a career in programming sucks.  I responded that <a href="http://formerslacker.com/blog/2007/03/12/why-a-career-in-computer-programming-doesnt-suck-a-response/">no, it doesn&#8217;t</a>.  In turn, I got quite a few comments supporting Sigma.  Several of them were centered around Sigma&#8217;s first argument, that programming knowledge becomes obsolete too quickly.</p>
<h4 class="smallbottommargin">Rapid Obsoletion of Programming Knowledge</h4>
<p>In an attempt to prove that programming knowledge has a very short expiration date, it&#8217;s easy &mdash; and common &mdash; to drag out an expired technology (Punchcards, Z80, Turbo Pascal, etc.) and then point at it and say, &#8220;Look! Look!  How does any of that still apply?&#8221;</p>
<p>Quite frankly, if you have to drag out punch cards to make your point, you don&#8217;t have one.  Punch cards died 30 years ago.  If that&#8217;s the best you can do, the computer science field must not be moving very quickly at all.  The Z80 died in the mid-1980s.  Even Turbo Pascal was gone before Windows 95 hit the streets.  Each of those technologies had more than a 10-year lifespan before it became obsolete.  Is it so unreasonable to tell programmers that they need to learn a new technology at least <em>once every ten years</em>?</p>
<blockquote><p><em>Hey, remember when plumbers used to use lead-based solder?  Plumbing knowledge is obsoleted so fast!</em></p></blockquote>
<p>Just like the basics of soldering are partially independent of any specific solder compound, so are the basics of computer science separate from any specific technology.  Punch cards are just a storage medium, like hard disks, so much of the knowledge gained during the punch card era is still relevant.  Similarly, a programmer who has good knowledge of the Z80 should be able to map much of his knowledge to modern processors.  And a skilled programmer who used Turbo Pascal should still be a skilled programmer in a new language, given a brief acclimation period.</p>
<p>If tomorrow morning we all switch to PowerPC computers, programmed in Python, using some funky crystal matrix for storage, my knowledge will not all be obsolete.  Certainly, my knowledge of the more quirky aspects of C++ won&#8217;t be useful anymore, but the basics won&#8217;t have changed.  It&#8217;s still a Von Neumann machine.  Algorithms are still important.  Software design practices are still relevant.</p>
<p>Nothing fundamental really changes very quickly.  The superficial stuff evolves rapidly, but if your knowledge is only superficial, that&#8217;s a different problem altogether.</p>
<h4 class="smallbottommargin">The Example Game, from the Other Side</h4>
<p>If we want to play the &#8220;look at this example&#8221; game, I&#8217;ll just trot out C and the x86 architecture.  Both of those have been around for more than 30 years, and they&#8217;re both still going strong.  They&#8217;ve been around since <em>before I was born</em>, and I still use both <em>every day</em> at work.  Likewise, C++ and IPv4 have both been around for more than 20 years, and show no sign of dying soon.  Even Java and PostgreSQL have been around for 10 years now.</p>
<p>There are many examples of technologies that have been around for more than a decade.  In fact, I challenge anyone to demonstrate a dead technology that was once popular and considered important, which didn&#8217;t last for at least ten years.  I doubt there are very many examples.  I think there&#8217;s a minimum lifespan before anything can really even be considered important, if for no other reason than it takes a while before a given technology becomes well-developed enough to be utilized by business.</p>
<h4 class="smallbottommargin">Knowledge Carry-Over</h4>
<p>Even when particular technologies die, they still influence future technologies, and so the knowledge base doesn&#8217;t disappear or become useless.</p>
<p>Pick any current technology, and you can trace its roots back toward previous technologies.  C# was influenced by Java.  Python was influenced by Lisp.  Ruby was influenced by Python, Smalltalk, and Perl.</p>
<p>Knowledge of any predecessor technology will spill over to the newer technology.  Certainly, not everything remains relevant, but there&#8217;s definitely some knowledge carry-over.  If you&#8217;re skilled with Java, C# is not a huge leap.  Things are different, but not completely alien.  If you&#8217;re comfortable with functional and object-oriented programming, you can pick up Ruby.</p>
<h4 class="smallbottommargin">What Do Employers Want?</h4>
<p>Some commenters argued that employers will only hire programmers who are already skilled in the latest technologies.  I agree that&#8217;s true for some employers.  However, I&#8217;d argue that it&#8217;s not true for most, shouldn&#8217;t be true for any, and won&#8217;t be true for the employers good programmers should want to work for.</p>
<p>Would I hire an experienced Clipper/dBASE programmer for work on an Oracle project?  <em>Yes.</em>  Would I hire a good C++ programmer to work on a C# project?  <em>Yes.</em></p>
<p>Good people are far more valuable than specific knowledge.  Any decent programmer can learn the syntax and APIs.  If you have demonstrated a strong knowledge of database programming, why <em>wouldn&#8217;t</em> your knowledge carry over to Oracle?  If you are a good C++ programmer, why <em>wouldn&#8217;t</em> you be a good C# programmer?  If you cannot move from one language to another, then your knowledge is purely superficial, and <em>you are not a good programmer</em>.</p>
<p>If a potential employer cannot recognize that a good programmer is much more valuable than a mediocre programmer &#8220;skilled&#8221; in the latest buzzwords, then you don&#8217;t want to work there.  You will almost certainly not be treated well, because the employer clearly doesn&#8217;t understand the value of a good programmer.</p>
<p>If your boss doesn&#8217;t want you to learn new technologies, then you&#8217;ve got a bad boss.  Your boss should want, and expect, you to be constantly learning.  What kind of idiot thinks that he&#8217;s hiring programmers with all the knowledge they&#8217;ll ever need?</p>
<h4 class="smallbottommargin">Technology Changes</h4>
<p>You people complaining about the obsoletion of knowledge sound like luddites.  It frankly sounds like you&#8217;re afraid of progress, and unwilling to learn new technologies.  You picked a fast-moving field.  Accept that some of your specific knowledge will be subject to attrition.  Knowing, for example, a particular object-oriented language&#8217;s syntax is transient knowledge.  Understanding how to program using good object-oriented methodologies is not transient.</p>
<p>Expect to learn new technologies.  It&#8217;s part of the field.  Learn them at work, or learn them on your own time.  But don&#8217;t complain to me that your knowledge of Clipper isn&#8217;t useful anymore because the world now uses Oracle.  If you didn&#8217;t learn anything useful while you were using Clipper that would be applicable to Oracle, then you probably didn&#8217;t <em>do</em> anything useful while working with Clipper.</p>
<p>Now, I&#8217;m not going to pretend that the computer science field doesn&#8217;t have any problems.  Certainly it has problems.  <em>Life</em> has problems.  That&#8217;s just the way things are.  But pretending that the problems are insurmountable doesn&#8217;t help anything.  Pretending that technology evolves so fast that no one could possibly keep up long term is just a way of hiding the fact that you aren&#8217;t interested in keeping up.</p>
<p>If you want to switch fields because you can&#8217;t or won&#8217;t keep up with the pace of technology, please do so.  If you find something you love, then that&#8217;s far better than doing something you don&#8217;t care about.  And if you find a field where you knowledge base never needs to evolve, let me know.  I&#8217;ll be sure to pass the news on to others who don&#8217;t want to program anymore.  I have to say though, I can&#8217;t think of a faster way to obsolete all your knowledge than by switching to a different field.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/FormerSlacker?a=hjlSNw8S"><img src="http://feeds.feedburner.com/~f/FormerSlacker?i=hjlSNw8S" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/FormerSlacker?a=Ao8gLACB"><img src="http://feeds.feedburner.com/~f/FormerSlacker?i=Ao8gLACB" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/FormerSlacker?a=EX9OCNz5"><img src="http://feeds.feedburner.com/~f/FormerSlacker?i=EX9OCNz5" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/FormerSlacker?a=3FbH69ym"><img src="http://feeds.feedburner.com/~f/FormerSlacker?i=3FbH69ym" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://formerslacker.com/blog/2007/03/20/how-quickly-does-programming-knowledge-become-obsolete/feed/</wfw:commentRss>
		<feedburner:origLink>http://formerslacker.com/blog/2007/03/20/how-quickly-does-programming-knowledge-become-obsolete/</feedburner:origLink></item>
		<item>
		<title>Why a Career in Computer Programming Doesn’t Suck (A Response)</title>
		<link>http://feeds.feedburner.com/~r/FormerSlacker/~3/101225224/</link>
		<comments>http://formerslacker.com/blog/2007/03/12/why-a-career-in-computer-programming-doesnt-suck-a-response/#comments</comments>
		<pubDate>Mon, 12 Mar 2007 22:18:12 +0000</pubDate>
		<dc:creator>Derek Park</dc:creator>
		
		<category><![CDATA[Career]]></category>

		<guid isPermaLink="false">http://formerslacker.com/blog/2007/03/12/why-a-career-in-computer-programming-doesnt-suck-a-response/</guid>
		<description><![CDATA[This is a response to the author of Half Sigma, who wrote a post about why a career in computer programming sucks.  This topic could be considered slightly off-topic for this blog, but I'm a programmer, so I feel it's career-related enough that it falls slightly into the realm of this blog.  Besides, I want to respond.]]></description>
			<content:encoded><![CDATA[<p><em>This is a response to the author of Half Sigma, who wrote a post about <a href="http://www.halfsigma.com/2007/03/why_a_career_in.html">why a career in computer programming sucks</a>.  This topic could be considered slightly off-topic for this blog, but I&#8217;m a programmer, so I feel it&#8217;s career-related enough that it falls slightly into the realm of this blog.  Besides, I want to respond.</em></p>
<p>Sigma (as I&#8217;ll refer to you throughout this post), you are way off.  I&#8217;m afraid that your arguments are weak and poorly formed.  You&#8217;ve made erroneous and biased assertions and based your arguments on those false premises.   You clearly don&#8217;t like being a programmer, but your personal dislike for the job (or the field) doesn&#8217;t make it bad.  It just makes it a bad fit for you.</p>
<p>I&#8217;m going to address your arguments point-by-point, so readers can more easily refer back to your post for context.</p>
<ul>
<li>
<strong>Temporary nature of knowledge capital</strong></p>
<p>You argued that because so much of the everyday knowledge in programming is transitory, there&#8217;s basically no benefit to hiring an experienced programmer over an unexperienced one (or a programmer with relatively little experience).  It&#8217;s true that Cobol is effectively dead, and &#8220;Significant Cobol Experience&#8221; isn&#8217;t exactly the best way to headline a resume these days.  It&#8217;s not true, however, that experience is worthless.  The transient parts of programming change: the languages, the tools.  But much of programming does not change.  Good software engineering practices and concerns have not changed: Encapsulation, clarity, patterns, security, stability.  These are all as important today as when they were first conceived.</p>
<p>The fundamentals do not change.  A linked list is still a linked list.  Binary searches and hash maps are still faster than linear searches on large data sets.  If an experienced programmer can write the code for a linked list, or understand when a linear search is bad (or &mdash; <em>gasp</em> &mdash; when it&#8217;s good), then he&#8217;s definitely got something to offer beyond the average recent graduate (who sadly, doesn&#8217;t understand pointers or Big-O notation).</p>
<p>There&#8217;s even a great deal of technology retention from the &#8220;transient&#8221; aspects of programming.  I still use Make at work, and it&#8217;s been around in various forms since 1977.  Some of the languages haven&#8217;t changed, either.  C is still C.  I&#8217;ve got the K&#038;R book, and it&#8217;s <em>still</em> a good reference.  Even newfangled languages like C# inherited a great deal from C.  Certainly, there have been massive changes, but variables still have to be declared, and a for loop still looks like a for loop.</p>
<p>New languages and tools don&#8217;t have to leave experienced programmers behind.  When Canola oil became popular, all the experienced chefs weren&#8217;t suddenly replaced by recent culinary school graduates.  Scrambling an egg is about more than just what fat is used.  Likewise, CAD didn&#8217;t put all the draftsmen and architects out of work.  And Java hasn&#8217;t put all the C programmers out of work, either.  There&#8217;s fundamental knowledge in any field that isn&#8217;t tied to a particular technology, and experience builds on this fundamental knowledge.  If all your knowledge is all tied to a particular programming language, or a particular API, that&#8217;s a huge problem, but not because Q# is newer than Y++.
</li>
<li>
<strong>Low prestige</strong></p>
<p>Sigma, I don&#8217;t know if you expected prestige when you signed up for your computer science degree, but if you did, it&#8217;s your fault.  Engineering and science disciplines simply do not have the prestige that law and medicine do.  This isn&#8217;t a problem with computer science any more than it&#8217;s a problem with physics.  It&#8217;s just a fact.  If prestige is what you&#8217;re after, the sciences are not for you.</p>
<p>You claim that Ivy League students aren&#8217;t majoring in programming.  Well, <a href="http://www.eecs.harvard.edu/index/cs/cs_index.php">I</a> <a href="http://www.eecs.mit.edu/acad.html">disagree</a>.  You say that what MIT teaches isn&#8217;t really programming.  Well, I don&#8217;t know  anyone but you who thinks MIT isn&#8217;t churning out real programmers.  Yes, MIT is actually teaching the fundamentals of computer science, but I&#8217;m unclear how that&#8217;s a problem.  Even &#8220;low-level&#8221; work in ASP.NET is benefited by a proper education.  If someone can&#8217;t understand recursion, then quite frankly, I don&#8217;t want them building my e-commerce site, because they&#8217;re unlikely to be able to understand basic security, either.  (I&#8217;m not sure exactly when ASP.NET became considered &#8220;low-level&#8221;, either.)</p>
<p>The fact that schools like Devry and the University of Phoenix churn out &#8220;programming&#8221; degrees doesn&#8217;t indicate that programming is low prestige.  All it indicates is that programmers are in demand, and the regulations are lax.  If Devry could churn out MDs, you better believe that they would.</p>
<p>Programmers aren&#8217;t lacking in prestige.  They get the same prestige that anyone else in the sciences does.  Civil engineers aren&#8217;t treated like lawyers.  They get the same basic respect that programmers get.  If you don&#8217;t think you&#8217;re respected at work, then leave.  If you think you should be treated better, then find a better job.  If you are <em>worth</em> more, then someone will <em>give</em> you more.
</li>
<li>
<strong>The foreignization of computer programming</strong></p>
<p>Quite frankly, your blurb about foreignization says more about your own prejudices and fears than it does about any real problem with the industry.</p>
<p>First off, outsourcing is not a real problem.  People have been saying that outsourcing would put everyone out of work since I started college.  It still hasn&#8217;t happened.  Yes, some companies have outsourced IT workers.  Those workers found new jobs.  (And many of those jobs came back, too.)  There are still more jobs to fill than there are programmers to fill them.  This is especially the case with good programmers.  Bad programmers might get their jobs outsourced and be in trouble.  Good programmers can always get other jobs.  The <em>really</em> good programmers never even work places that would be dumb enough to outsource the programming jobs.</p>
<p>As far as bringing in good foreign talent, I&#8217;m not sure why that&#8217;s a bad thing.  You&#8217;re being a complete alarmist by claiming that foreign IT workers are taking all the jobs from Americans, and that the domestic market has been nearly <em>abandoned</em> to foreigners.  Only someone who&#8217;s <em>not</em> good at their job should have to worry about losing it to someone who <em>is</em> good.  Bill Gates <a href="http://www.washingtonpost.com/wp-dyn/content/article/2007/02/23/AR2007022301697.html">stated recently</a> that the government issues 65000 H1-B visas each year.  Meanwhile, the number of computer science jobs is growing at a rate of 100000 per year.  He&#8217;s pushing for looser regulations on H1-B visas because there&#8217;s <em>still</em> a shortage of good programmers.</p>
<p>You say that foreignization causes a vicious cycle of low pay when combined with low prestige.  This only makes sense if programmers have low prestige, which is not the case.  Additionally, Microsoft and other companies pay the same wages to H1-B workers as citizen workers, according to Gates.  No one&#8217;s bringing in genius programmers and paying them minimum wage.</p>
<p>I don&#8217;t know why you care so much about how &#8220;America&#8221; views our &#8220;industry full of brown people&#8221;, either.  It may be that the average person thinks less of the profession because many programmers are foreigners.  But how is that even relevant?  Random Joe on the street doesn&#8217;t cut my paycheck, so it doesn&#8217;t matter if he thinks less of programmers.</p>
<p>You also say that Americans have more rights to the money created here than foreigners do.  Well, many of the people who&#8217;ve helped drive America to be a superpower were, and are, foreign-born.  If I hire a programmer, he is helping to create wealth for America.  It doesn&#8217;t matter if he&#8217;s foreign or not.
</li>
<li>
<strong>Project management sucks too</strong></p>
<p>Not everyone wants to move into management.  It&#8217;s also possible to be a highly-paid programmer without moving into management, so your initial premises are invalid.</p>
<p>Older programmers don&#8217;t have to move into management to avoid ending up &#8220;underemployed fifty-year-olds, only suitable for lower paying IT jobs like &#8216;QA&#8217; because they no longer know how to use the latest and supposedly greatest programming tools&#8221;.  I don&#8217;t know why you think experience is worthless, but I <em>really</em> don&#8217;t understand why you think it&#8217;s impossible for anyone older than 25 to continue to learn.  There&#8217;s no magical switch that flips when a programmer leaves college that stops him from learning new things.  If a programmer is 50 and hasn&#8217;t learned anything since he was 25, he probably deserves to be unemployed.  He&#8217;s clearly not the best asset.  If a 50 year old civil engineer had been unwilling to learn anything after college, he wouldn&#8217;t be able to use CAD, and he wouldn&#8217;t know the latest building codes, and he deservedly would be unemployed.</p>
<p>You also don&#8217;t seem to understand what &#8220;management&#8221; is if you think it shouldn&#8217;t involve planning and status reporting.  That&#8217;s <em>exactly</em> what management is.  The people who hold the purse aren&#8217;t managers, they are Directors and Executives.  Directors tell managers what to do, and managers <em>manage</em> the day-to-day details.  Management isn&#8217;t generally glamorous.  It&#8217;s not a situation unique to programming.</p>
<p>You also state that we need stronger industry bodies from the computer science profession.  On this, <strong>I completely agree</strong>.  The low quality of the average computer science graduate is enough to demonstrate that there are problems within the industry.  We need industry bodies to set minimum competency requirements.  The barrier to entry should be high, not to rule out foreigners, but to weed out incompetence.   I think this needs to grow from the programmers themselves (much as lawyers run the Bar and doctors head medical boards).  And I do agree that programmers should not be managed by non-programmers.
</li>
<li>
<strong>The working conditions suck</strong></p>
<p>Sadly, there is truth to this.  Some places do not appreciate their employees, and therefore do not treat them well.  This is not, however, a problem exclusive to programming.</p>
<p>This is an area where an industry body would help.  I think if we had an board which weeded out all the incompetent programmers, there would be less of a problem with poor tools.  I think many companies simply cannot tell a good programmer from a bad one.  And so they have a mix (mostly bad, a few good).  A bad programmer isn&#8217;t going to be more productive with two monitors, and I think companies recognize this, and assume they are better off not giving dual monitors to anyone, rather than trying to give them selectively, or wasting the money giving them to everyone.</p>
<p>Of course, there are many places that <em>do</em> appreciate their programmers, and do whatever is necessary to keep them happy.  These are the places that programmers want to work, and these are likewise the places that you will find most of the good programmers employed.
</li>
</ul>
<p>Sigma, for the most part, your arguments don&#8217;t reveal any deep problems with the programming profession.  They reveal instead serious issues that you seem to have with your choice to be a programmer.  Your aversion to learning new technology seems to be a major problem.  You chose one of the fastest-evolving fields in modern times, so this is unlikely to change.  Programmers need to be lifelong learners.   I&#8217;m not sure what else to tell you.  Lots of people change their professions.  It&#8217;s not too late for you.  Alternatively, you could find a job using a stable technology that you enjoy.  Maybe you should find somewhere that will let you use C or C++, both of which are unlikely to disappear anytime soon.</p>
<p>To the readers, pick a field that&#8217;s compatible with your own nature.  You&#8217;ll be much happier.  If you find that you&#8217;ve chosen the wrong field, change it.  It&#8217;s just a job.  Find something you actually enjoy, even if it means a massive career change.  It&#8217;s better to be poorly-paid and happy than highly-paid and miserable.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/FormerSlacker?a=NlXiaOMQ"><img src="http://feeds.feedburner.com/~f/FormerSlacker?i=NlXiaOMQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/FormerSlacker?a=rf51s9Ut"><img src="http://feeds.feedburner.com/~f/FormerSlacker?i=rf51s9Ut" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/FormerSlacker?a=9jjV9MFA"><img src="http://feeds.feedburner.com/~f/FormerSlacker?i=9jjV9MFA" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/FormerSlacker?a=w4hDuQHt"><img src="http://feeds.feedburner.com/~f/FormerSlacker?i=w4hDuQHt" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://formerslacker.com/blog/2007/03/12/why-a-career-in-computer-programming-doesnt-suck-a-response/feed/</wfw:commentRss>
		<feedburner:origLink>http://formerslacker.com/blog/2007/03/12/why-a-career-in-computer-programming-doesnt-suck-a-response/</feedburner:origLink></item>
		<item>
		<title>How To Drive With A Purpose</title>
		<link>http://feeds.feedburner.com/~r/FormerSlacker/~3/107581361/</link>
		<comments>http://formerslacker.com/blog/2007/03/07/how-to-drive-with-a-purpose/#comments</comments>
		<pubDate>Wed, 07 Mar 2007 18:24:03 +0000</pubDate>
		<dc:creator>Derek Park</dc:creator>
		
		<category><![CDATA[Interaction]]></category>

		<category><![CDATA[Productivity]]></category>

		<category><![CDATA[Success]]></category>

		<guid isPermaLink="false">http://formerslacker.com/blog/2007/03/07/how-to-not-drive-like-a-jackass/</guid>
		<description><![CDATA[Let's face it, we hate everyone else on the road.  We're all absolutely fed up with the terrible drivers.  Unfortunately, the bad drivers show no signs of disappearing.  If anything, the number of bad drivers seem to actually be increasing.  Maybe that's because <i>we</i> are the very same drivers we hate.  Here's my thoughts on what it takes (and what it means) to be a good driver.]]></description>
			<content:encoded><![CDATA[<blockquote class="startquote"><p>The one thing that unites all human beings, regardless of age, gender, religion, economic status or ethnic background, is that, deep down inside, we ALL believe that we are above-average drivers.</p>
<p>&ndash; Dave Barry</p></blockquote>
<p>Let&#8217;s face it, we hate everyone else on the road.  We&#8217;re all absolutely fed up with the terrible drivers.  Unfortunately, the bad drivers show no signs of disappearing.  If anything, the number of bad drivers seem to actually be increasing.  Maybe that&#8217;s because <i>we</i> are the very same drivers we hate.  Here&#8217;s my thoughts on what it takes (and what it means) to be a good driver.</p>
<h4 class="smallbottommargin">A Brief Detour</h4>
<p>Remember how yesterday the guy driving that green SUV nearly hit you when he merged into your lane without signaling?  The asshole!  What kind of idiot is he?</p>
<p>Well, you did the same thing to me last week.  And I did it to someone else the week before that.  Everyone makes mistakes while driving.  Yes, yourself included.  That doesn&#8217;t necessarily mean that everyone is a bad driver.  It means everyone is human.  Keep that in mind next time you see another driver do something really stupid.  We all make mistakes, so take a deep breath and just let it go.  Fuming in your car isn&#8217;t helping you or anyone else.</p>
<h4 class="smallbottommargin">Have a Driving Goal</h4>
<p>The most important thing you need in order to be a good driver is a <i>goal</i>.  You should have a clear goal whenever you pull onto the road.  I&#8217;m not talking about just getting from point A to point B.  I&#8217;m talking about an overall guiding principle to guide your driving, a driving philosophy, if you will.</p>
<p>Your goal might be, e.g., to maximize safety, certainly a good goal to have.  My goal is to promote overall traffic flow.  I feel that every driver has a responsibility to other drivers.  It&#8217;s not just you on the road.  It&#8217;s a shared resource, and it&#8217;s only responsible to try to maximize the utility of that resource.  It also turns out that the goal of promoting traffic flow is complementary to promoting safety.</p>
<p>Once you&#8217;ve got a goal, you can refer to it to fine-tune your driving.  Having a goal won&#8217;t put an end to all your mistakes, but you might be surprised how a goal can redefine your behavior in certain driving situations.  It&#8217;s simple to weigh two options and decide which one will help your goal the most.  Constantly evaluating your driving against a strong reference can certainly help you to become a better driver.</p>
<h4 class="smallbottommargin">An Example: When to Slow Down for a Turn</h4>
<p>Lots of drivers slow down before they really need to.  They slow down for turns, exits, etc.   Some drivers begin slowing down as much as a mile early for highway exits.  Let&#8217;s weigh this kind of behavior against a reasonable driving goal, and see how it holds up.</p>
<ul>
<li><strong>Safety.</strong>  By slowing down early, you are no longer following the flow of traffic.  You are therefore at a higher risk of being hit by someone behind you who&#8217;s not paying attention.  If you&#8217;re like most of the &#8220;early slowers,&#8221; you&#8217;re also not even braking, you&#8217;re just pressing the accelerator more gently, slowing without brake lights, further increasing the chances of an accident.  Now, you can say it&#8217;s the other driver&#8217;s fault if they rear-end you, and that&#8217;s fine, but that&#8217;s got nothing to do with safety.  Increasing safety means you want to minimize accidents, not just minimize the accidents in which a judge will find you at fault.</li>
<li><strong>Traffic Flow.</strong>  By slowing down early, you&#8217;re forcing those behind you to slow down unnecessarily.  You&#8217;re also encouraging them to swerve around you, potentially slowing other lanes down as well (and increasing the chances of an accident, see above).  Slowing down early hurts traffic flow unnecessarily.</li>
<li><strong>Fuel Efficiency.</strong>  An interesting argument for the &#8220;early slowdown&#8221; is fuel efficiency concern.  However, in many cases, you aren&#8217;t maximizing fuel efficiency by slowing down early.  If you slow down too early for some highway exits (e.g., those in which the exit ramp climbs toward an overpass), you&#8217;ll have to accelerate again later to reach the end of the exit ramp.  You&#8217;d likely be better off holding a steady speed and using the exit ramp&#8217;s climb to slow you.</lI>
</ul>
<p>As an aside, I also have serious doubts about the efficiency of slowing down while still applying <i>some</i> gas.  It seems that for maximum efficiency, you shouldn&#8217;t slow down for a turn, exit, or red light until your foot is <i>completely</i> off the accelerator.  The wind and the natural resistance of the car&#8217;s moving parts will bring your speed down fairly quickly, without braking, if you completely remove your foot from the accelerator.  And I can guarantee that your car is burning less fuel when your foot is completely off the accelerator than when you&#8217;re lightly pressing the accelerator.</p>
<p>It seems best to slow down only when necessary.  If your foot is still on the accelerator, you shouldn&#8217;t be slowing down.  If your foot is still on the accelerator, then you do not <i>need</i> to slow down yet, and there&#8217;s no logical reason to so so.</p>
<h4 class="smallbottommargin">One More Example: Merging at low speed.</h4>
<p>We&#8217;ve all seen people merge with highway traffic going 25mph, or try to.  It can be infuriating.  Rather than just be angry and dismissive, though, it&#8217;s again useful to think about <em>why</em> it&#8217;s so infuriating.</p>
<ul>
<li><strong>Safety.</strong>  Merging at low speed is unsafe for two main reasons.  First, if you merge moving slower than traffic, someone in that traffic is much more likely to hit you.  You&#8217;re also more likely to be hit by others behind you who are merging, and who are giving more attention to the traffic they&#8217;re merging with than they are giving to you.</lI>
<li><strong>Traffic Flow.</strong>  If you merge at low speed, others who are merging behind you are forced to slow down, as are those in the traffic you&#8217;re merging with.  You&#8217;re forcing numerous people to slow down when you merge at low speed.  This kind of poor merging can be a major cause of traffic problems on busy highways.</lI>
<li><strong>Fuel Efficiency.</strong>  This one&#8217;s barely even relevant here.  You&#8217;re (presumably) going to get up to highway speed eventually.  It makes sense to do that before merging.  In many (or most) cases, the on-ramp will be sloped downward, which is the perfect place to build speed with low fuel expenditure.</lI>
</ul>
<p>Merge at speed.  You should be moving at the same speed as the traffic you want to merge with.  Going slower makes it harder, not easier.  To be as safe and efficient as possible, always merge at the speed of traffic (but keep an eye out for the guy in front of you trying to merge at 25mph).</p>
<h4 class="smallbottommargin">Put Your Goal Into Practice</h4>
<p>I&#8217;m sure you can come up with plenty of other examples of driving problems, so I won&#8217;t bore you with any more.  The point isn&#8217;t just to pick out examples of bad driving, but instead to decide <em>why</em> they are examples of bad driving.  When you see someone do something stupid while driving, ask why it&#8217;s stupid.  Determine why they shouldn&#8217;t have done that, so that you can truly know why <em>you</em> shouldn&#8217;t do it either.</p>
<p>But don&#8217;t stop there.  Once you&#8217;ve picked your driving goal, use it to evaluate your own driving habits as well.  Part of being good at anything is working to improve.  If you want to be a good driver, think about how you drive.  Ask yourself how you could improve.  Find the parts of your driving that don&#8217;t fit well with your goal, and fix them.</p>
<p>Being a good driver means asking yourself where you can improve.  Having a goal can help you answer that question.</p>
<p><em>(Update: I&#8217;ve changed the title to hopefully better match the tone of the post.  The title was written before the actual post, and seemed out of place.)</em></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/FormerSlacker?a=tsjnUopP"><img src="http://feeds.feedburner.com/~f/FormerSlacker?i=tsjnUopP" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/FormerSlacker?a=qjyPvP83"><img src="http://feeds.feedburner.com/~f/FormerSlacker?i=qjyPvP83" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/FormerSlacker?a=2Ajh4IUg"><img src="http://feeds.feedburner.com/~f/FormerSlacker?i=2Ajh4IUg" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/FormerSlacker?a=JIOSQzdn"><img src="http://feeds.feedburner.com/~f/FormerSlacker?i=JIOSQzdn" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://formerslacker.com/blog/2007/03/07/how-to-drive-with-a-purpose/feed/</wfw:commentRss>
		<feedburner:origLink>http://formerslacker.com/blog/2007/03/07/how-to-drive-with-a-purpose/</feedburner:origLink></item>
	</channel>
</rss>
