<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Code Fury &#187; Life</title>
	<atom:link href="http://codefury.net/category/life/feed/" rel="self" type="application/rss+xml" />
	<link>http://codefury.net</link>
	<description>One programmer's formatted output stream</description>
	<lastBuildDate>Tue, 22 Jun 2010 23:36:44 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>How To Get A Job As A Programmer</title>
		<link>http://codefury.net/2010/06/how-to-get-a-job-as-a-programmer/</link>
		<comments>http://codefury.net/2010/06/how-to-get-a-job-as-a-programmer/#comments</comments>
		<pubDate>Fri, 18 Jun 2010 20:24:21 +0000</pubDate>
		<dc:creator>Kenny Katzgrau</dc:creator>
				<category><![CDATA[Jobs]]></category>
		<category><![CDATA[Life]]></category>
		<category><![CDATA[Offtopic]]></category>

		<guid isPermaLink="false">http://codefury.net/?p=227</guid>
		<description><![CDATA[It seems that for the better part of my life, America&#8217;s economy has been in murky water. I was born into a Reagan economy (good), graduated to Bush Sr. (bad), did my time with Clinton (good), and started looking for jobs as a developer during Bush Jr.&#8217;s tenure (bad). And while I&#8217;ll abstain from the [...]]]></description>
			<content:encoded><![CDATA[<p>It seems that for the better part of my life, America&#8217;s economy has been in murky water. I was born into a Reagan economy (good), graduated to Bush Sr. (bad), did my time with Clinton (good), and started looking for jobs as a developer during Bush Jr.&#8217;s tenure (bad). And while I&#8217;ll abstain from the more political conversation, Obama&#8217;s reign doesn&#8217;t look much better in terms of economic health (of course, he inherited a lot of trouble).</p>
<p>And throughout those recessions of the last ten years, there doesn&#8217;t seem to be a much more exciting topic for news anchors to talk about then joblessness. <em>The unemployment rate is up, it&#8217;s down, this year&#8217;s graduates can&#8217;t find jobs, and here&#8217;s the story of Marty McNoJob, who has been unemployed for 62 years</em>. Many people (grandmas in particular) eat it right up, and try and convince you to get into whatever field is <em>hot</em> at the time.</p>
<p>And accordingly, mountains of advice articles (like this one) try and give you a good idea of how to get a job in this tough economy. <em>Put these words on your resume, wear a suit, get a minor in management, send thank-you notes, get a degree if you don&#8217;t have one, and talk about how much you raised revenue at your last job, etc.</em></p>
<p>But here&#8217;s the startling truth about one-size-fits-all advice like this (<a href="http://www.google.com/search?hl=en&amp;safe=off&amp;q=job+search+tips&amp;aq=f&amp;aqi=g10&amp;aql=&amp;oq=&amp;gs_rfai=">which you can find almost anywhere</a>): These rules do not really apply to software development. Software development is a completely different ball game.</p>
<p>So now that I&#8217;ve given you a fairly lengthy segway into the actual topic of this post, let me be clear about my background:</p>
<ul>
<li>As a freelancer, I&#8217;ve been to a hell of a lot of interviews</li>
<li>Almost all of those interviews resulted in job offers (yes, in this economy)</li>
<li>I&#8217;ve interviewed plenty of people for employers and as a business owner</li>
<li>I&#8217;ve written plenty of resumes for co-workers and friends that have gotten them interviews</li>
</ul>
<p><strong>The number one rule to getting a job as a programmer is to be good at what you do. This applies to recent graduates too. </strong></p>
<p>When you go to school for a computer science degree, there&#8217;s a good chance you went somewhere that offered other engineering degrees such as Mechanical, Civil, and Electrical Engineering. Think of those other majors. How the hell is a Civil Engineering major going to get any real field experience before his first job? He can&#8217;t. But programmers have it completely different. Programmers can get field experience as early as they want. If a young programmer in middle school wants to write a website or a video game, he can learn how. He can read up on the vast, free resources on the internet and build up his awesomeness. If a Civil Engineering major wants to build a bridge in high school, he better like playing with Legos.</p>
<p>The programmers who get jobs in a tough economy are those with experience and projects they can associate their names with. That leads me to my next rule.</p>
<p><strong>The second rule to getting a job as a programmer is to have a portfolio.</strong></p>
<p>Software development is a wacky world in that good companies hire people based on talent, not on &#8220;years of experience&#8221;. In fact, 15 years&#8217; experience in the world of software development could mean absolutely nothing. This is something that recruiting firms have yet to grasp (which is why programmers should probably stay away from headhunting firms, which is for another post). Good hiring managers know this.</p>
<p>So you may be thinking, &#8220;I&#8217;m a recent grad, how can I possibly have a portfolio this early?&#8221; If you became a software developer because it supposedly paid well, you&#8217;re out of luck. You likely don&#8217;t love the craft, and you might lack the ambition to have done anything significant as a developer up until this point. But developers who love what they do can:</p>
<ul>
<li>Get an internship</li>
<li>Get involved in an open-source project</li>
<li>Roll your own project</li>
</ul>
<p>The point is to have something cool to talk about at your interview. If you&#8217;re being hired out of college, for the love of god, make sure that you have something that your interviewer can talk about other than what your favorite classes were in school.</p>
<p><strong>The third rule is that you can&#8217;t look like a rookie.</strong></p>
<p>Forgive the l33t talk, but in a tough economy, companies don&#8217;t have the money to risk on hiring a noob. They want to hire someone who can jump in on a project and hit the ground running. There is little to no &#8220;on the job training&#8221; in the world of software development.</p>
<p>So what can you do to avoid looking like a noob?</p>
<ul>
<li>Chances are, you shouldn&#8217;t wear a business suit to the interview. The goal is to look well put-together, but fairly casual.</li>
<li>Bring a nice stack of screenshots which showcase projects you worked on. Don&#8217;t unnaturally force the interviewer to take a gander, but if you&#8217;re explaining a project you worked on, it can be much more effective to put an image to the description.</li>
<li>Don&#8217;t use idiotic jargon on your resume. Example resumes online have absurd phrases like &#8220;goal-oriented, motivated individual seeking position in a fast-paced agile environment where they can grow, learn, and advance&#8221;. All I see when I read that is &#8220;n00b, noob, noob, I&#8217;m a fat scrub.&#8221;</li>
<li>Don&#8217;t use acronyms that you can&#8217;t back up. If you list both Ruby and PHP as languages that you know, be sure that you can answer thorough question on each. And expect to answer the fraud destroyer questions like, &#8220;So can you tell me about some of the ways that PHP and Ruby differ for both good and bad?&#8221; This is truly an open-ended question, and the interviewer is really just trying to gauge your expertise.</li>
</ul>
<p><strong>The fourth rule is that it&#8217;s okay to say that you don&#8217;t know.</strong></p>
<p>&#8220;I don&#8217;t know.&#8221; &#8212; A wonderful phrase used by millions of students in the world to get teachers off their backs when they&#8217;re called out because they weren&#8217;t paying attention. But in the business world, apparently &#8221;I don&#8217;t know&#8221; is <a href="http://www.forbes.com/2010/04/26/words-work-communication-forbes-woman-leadership-career.html">an invitation to disaster</a>.</p>
<p>Guess what? If you&#8217;re pitched a cut-and-dry question like &#8220;How is garbage collection handled in C#?,&#8221; and you don&#8217;t know, just say so! Essentially, be calm and say something like &#8220;that&#8217;s something I&#8217;ve actually never looked very deeply into, so I&#8217;m not entirely sure.&#8221; The interviewer may ask you describe how you <em>think</em> it works. This is when it&#8217;s okay to say something that might be wrong.. He just wants to hear you think out loud.</p>
<p>The worst thing you can possibly do is act like you <em>do</em> know, but be wrong. In software development, admitting when you need help or you don&#8217;t know how to do something is key to the success of the team. Project managers want someone with a &#8220;can do&#8221; attitude, but they don&#8217;t want someone who is going to throw the project off schedule because of his pride and his refusal to admit he needs help.</p>
<p>Also, saying you <em>don&#8217;t know</em> does not make you look like a rookie (see rule #3). Software development is a gigantic, always-changing field, and it&#8217;s impossible to know the ins-and-outs of everything.</p>
<p><strong>The fifth major rule is that you have to build street cred.</strong></p>
<p>Expect to be Googled (especially if you have a unique last name like <em>Katzgrau</em>). For me, no one&#8217;s name is safe from The Google. Whenever I&#8217;m about to work with another developer, I check up on their internet rep. Why?</p>
<p>Because if they have a website, blog, github account, stackoverflow account, sourceforge page, etc, I can begin to verify their authenticity. Suppose I get two resumes, and one of them has a GitHub account listed. If I can see some of their code contributions online, I have a much more realistic sense of who they are as a developer &#8212; not the actor that walks in the door trying to impress me. I would absolutely feel much better working with someone who&#8217;s code quality and contributions I can verify.</p>
<p>Get a website, blog, or some other public account where the smart guy that you are can really shine.</p>
<p><strong>A word on having a college degree:</strong></p>
<p>College degrees are not always required for some of the best development jobs. You can easily make 100k+ if you&#8217;re great at what you do, and you don&#8217;t have a degree.</p>
<p>That being said, you should probably have one. I hate to think it, but some companies and hiring managers will actually check to make sure you have a degree despite other fantastic credentials on your resume. It&#8217;s practically a stamp of approval from another institution.</p>
<p>But in reality, what good is a degree? There are certainly some institutions out there whose Computer Science degree courses are fantastic, useful, and progressive. But the majority of them &#8212; and I think I&#8217;m safe to say this &#8212; suck. Students are usually stuck in a classroom with professors who haven&#8217;t worked in industry for at least 20 years, if ever. They can&#8217;t tell you about things like unit testing, design patterns, version control, agile development, code reviews, or other industry shenanigans like that. But that&#8217;s just my take, and certainly doesn&#8217;t apply to everybody.</p>
<p>It&#8217;s really interesting, because the development fields&#8217; laxness in regard to degrees is in stark contrast to fields like Education. For many teaching jobs, you must have a Master&#8217;s degree. Did that Master&#8217;s really help any teachers teach more effectively? I don&#8217;t know the answer to this question, but I&#8217;m skeptical.</p>
<p>And a degree from a fancy-pants place like MIT will probably help you get in the door (if not from sheer prestige, than probably from networking), but it won&#8217;t carry you forever. Ultimately, it&#8217;s the work that you&#8217;ve done that gets you future jobs, and help you take over the world.</p>
<p><strong>Lastly, some smaller, but important notes that don&#8217;t deserve a spiel</strong></p>
<ul>
<li>Don&#8217;t pitch yourself as a language-specific developer. It&#8217;s important to list technologies that you&#8217;re really good at, but don&#8217;t make it seem like the only thing you&#8217;re interested in is one language. Java developers seem to do this a lot, but I have little basis for this other than observation.</li>
<li>If you&#8217;re still in school, maintain a good GPA, and above all, read this classic on the <a href="http://www.joelonsoftware.com/articles/CollegeAdvice.html">Joel On Software Blog</a></li>
<li>Know at least one language that is widespread. It&#8217;s cool to be a Python developer right now, but most job postings are looking for C, PHP, .NET, or Ruby devs. Python is something that is totally awesome, but it might not open all the doors that you&#8217;d like.</li>
<li>Always make sure your resume is up to date. When you work with a new language or you are on a new project, make sure it gets a spot.</li>
<li>Resumes, contrary to popular belief, do not have to fit on one page. If you&#8217;re a developer with a few or more projects, this can be somewhat difficult to achieve without sacrificing important information</li>
<li>Prepare for the interview. Look up questions commonly asked on the interview on places like <a href="http://glassdoor.com">GlassDoor.com</a></li>
</ul>
<p>Anyway, if you needed this advice, take it to heart, and build your cred. If you read it just to see what I had to say, pick out anything you agree or disagree with and comment. And if you think this is oh-so-absurd, start a flame war.</p>
]]></content:encoded>
			<wfw:commentRss>http://codefury.net/2010/06/how-to-get-a-job-as-a-programmer/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>MiFi &#8211; An Aircard Alternative for Linux, Mac &amp; Windows</title>
		<link>http://codefury.net/2010/01/mifi-an-aircard-alternative-for-linux-mac-windows/</link>
		<comments>http://codefury.net/2010/01/mifi-an-aircard-alternative-for-linux-mac-windows/#comments</comments>
		<pubDate>Mon, 25 Jan 2010 18:03:04 +0000</pubDate>
		<dc:creator>Kenny Katzgrau</dc:creator>
				<category><![CDATA[Gadgets]]></category>
		<category><![CDATA[Life]]></category>

		<guid isPermaLink="false">http://codefury.net/?p=163</guid>
		<description><![CDATA[I intend to finish my previous post about fixing up caching in CodeIgniter, but I wanted to write a blurb about a device that I just picked up today &#8212; the MiFi. I thought I should mention some of the highlights of the product, some points that weren&#8217;t immediately apparent when I was researching it, [...]]]></description>
			<content:encoded><![CDATA[<p>I intend to finish my previous post about fixing up caching in CodeIgniter, but I wanted to write a blurb about a device that I just picked up today &#8212; the <a href="http://www.novatelwireless.com/MiFi2200">MiFi</a>. I thought I should mention some of the highlights of the product, some points that weren&#8217;t immediately apparent when I was researching it, and some tips that could save you <a href="http://forums.wireless.att.com/cng/board/message?board.id=pccards&amp;thread.id=12093&amp;page=3">thousands in overage charges</a>.</p>
<p>I bought the MiFi, which was developed by Novatel Wireless, through Verizon. It&#8217;s a standalone mobile wireless router that acts like a traditional aircard. It uses Verizon&#8217;s 3G network for internet access, and puts out an 802.11b/g signal so up to five devices can connect to it at a time. Here&#8217;s a picture of it with my iPod Touch:</p>
<p><img class="alignnone size-medium wp-image-167" title="0125001131" src="http://codefury.net/wp-content/uploads/2010/01/0125001131-300x225.jpg" alt="" width="300" height="225" /></p>
<p>Area-wise, it is about the size of a credit card. In terms of thickness, it&#8217;s about 1/3 of an inch (~8.5 mm).</p>
<p>I&#8217;ve recently picked up a 6-month freelance contract at a <a href="http://hugeinc.com/">design firm in Brooklyn</a>, which is probably an hour and a half commute by train and subway. When thinking about the amount of time I&#8217;d be spending on the train, I immediately realized it would be wise to look into an aircard for my laptop so I could both browse and get some work done during the commute. There were a few big requirements that I had, but my initial research on the websites of wireless providers failed to answer all of my questions.</p>
<p>I&#8217;m writing this post to offer some answers to questions others might have about the MiFi.</p>
<p>When searching for an aircard, I had some requirements:</p>
<ul>
<li>It must play friendly with Windows, Mac, and Linux, because I use all three</li>
<li>It must have some common connection interface like USB &#8212; Expansion cards won&#8217;t do</li>
<li>It can&#8217;t have a goofy form factor, like a USB stick just asking to be knocked out of its slot</li>
<li>I&#8217;d rather I didn&#8217;t have to install evil-ware to use it</li>
<li>I can try before I buy</li>
<li>I want to be able to easily check that I&#8217;m not exceeding my data plan allowance</li>
<li>There must be positive reviews for the product</li>
</ul>
<p>Does it sound like I had some seriously stringent requirements? Probably, but the MiFi passed most of those. Let me roll through each.</p>
<p>Win/Mac/Linux compatibility: This isn&#8217;t so much to ask, but Linux tends to be under-supported in the aircard world. Initially, I wanted to learn exactly what kind of computers could use the MiFi. The answer, of course, is any computer that is WiFi enabled. The only catch is that the card has to be activated using VZAccess Manager (VZAM) which only runs in Windows and Mac OSX. After you activate the card, you can take it anywhere, connecting any devices that talk WiFi to the web, neglecting the box that actually has the software installed.</p>
<p>I&#8217;m sure I could have done this on my linux box in a Windows VM, but I decided to take the easy route and stick it on my secondary box at home (Windows 7). Actually, that&#8217;s something that wasn&#8217;t noted anywhere: The software is compatible with Windows 7. Alternatively, I believe you can attempt to do this online if you have an account set up on your cell provider&#8217;s website, and forgo VZAM altogether.</p>
<p>I answered the &#8220;common interface&#8221; question with the last point, so I&#8217;ll talk about form factor. The MiFi is literally small enough to fit in your pocket, although I wouldn&#8217;t recommend doing that. When you plan to use it, turn it on, and sit it on a table or place it in your bag. Then you can turn on your laptop and connect to your MiFi network, which will named something like &#8220;MiFi2200xxxxxxxx&#8221;. When you are done, it might be wise to turn it off. The device can apparently go into standby for 40-something hours, but I have thought of some real issues which I will talk about. While being used, the device will last about 4 1/2 hours.</p>
<p>I was told by the sales rep that if I had an issue or was dissatisfied, I could return the MiFi for a refund within 30 days. This isn&#8217;t quite a &#8220;try before you buy,&#8221; because I shelled out ~$189 with a 1 year contract. But if I need to, I can return the item to get my $189 back and a premature exit from the contract.</p>
<p>As for positive reviews &#8212; I only buy items that have been positively reviewed. <a href="http://www.boygeniusreport.com/2009/09/15/sprint-mifi-verizon-mifi-road-tested/">The MiFi is no exception</a>.</p>
<p>In total, I paid $189 for the device, and received a $50 mail-in rebate. Verizon has two data plans: $39.99 for 250 MB, and $59.99 for 5GB. For the first, any overage is charged at 10 cents per MB. For the second, it&#8217;s 5 cents per MB. I selected the $59.99/month 5-GB data plan. You might be thinking, 5GB? That&#8217;s too low! Sadly, there aren&#8217;t any wireless providers that go above this threshold. As far as I know, Sprint, AT&amp;T, and Verizon all have the exact same pricing and cap for their aircards. Sorry, we can&#8217;t get around this one.</p>
<p>That last point brings me to my next.<strong> Beware of processes on your machine which might use your internet connection in the background</strong>. The biggest offender I can think of it <strong>Windows Update</strong>. Consider the naive aircard customer who says to the Verizon sales rep, &#8220;Well, I will only be checking my email periodically while I work. That is the biggest reason I need it.&#8221; The Verizon rep then recommends the 250MB plan because it sounds like a good fit. Wrong!</p>
<p>You can&#8217;t really hold it against the two parties in this situation, because the customer it thinking her data usage will be light. The Verizon rep is not a computer expert in any sense of the  term, and also thinks the plan would be fine. But think about the types of processes that exist (specifically for Windows), that take your internet connection for granted.</p>
<p>Windows update, for instance, will literally download hundreds of megabytes worth of data quietly in your system tray. Sun Microsystems&#8217; Java updates will do the same. I certainly hope any aircard customers aren&#8217;t victims of spyware or malware, which will covertly send and receive data behind the scenes, eating up the usage allowance. Users will want to carefully check that any file sharing or torrent clients aren&#8217;t running in the background. Accidentally leaving one of those guys open can be a mistake worth thousands of dollars. And since you can connect up to 5 devices at a time, you might want to be wary of which computers you are sharing your connection with.</p>
<p>Luckily, if you point your browser to the standard router address http://192.168.1.1, you will find that you have a neat control panel that gives you information on your current connection. Here&#8217;s a screenshot below:</p>
<p><a href="http://codefury.net/wp-content/uploads/2010/01/Screenshot-MiFi-Admin.png"><img class="alignnone size-medium wp-image-165" title="Screenshot-MiFi-Admin" src="http://codefury.net/wp-content/uploads/2010/01/Screenshot-MiFi-Admin-276x300.png" alt="" width="276" height="300" /></a></p>
<p>If you want to edit the default settings of your network, such as the SSID or network key, you need to login to the box on the top-right portion of the page. Verizon did not print the initial password for the administration section <strong>anywhere</strong>. So I went digging on the Novatel wireless website and found that the default password is <strong>admin</strong>. Funny, that used to be the standard default password for Linksys routers too.</p>
<p>There are a surprising number of options. For instance, you can filter out certain MAC addresses from using your network, set up port forwarding (albeit on a very limited scale), and change your security configurations:</p>
<p><a href="http://codefury.net/wp-content/uploads/2010/01/Screenshot-MiFi-Settings.png"><img class="alignnone size-medium wp-image-166" title="Screenshot-MiFi-Settings" src="http://codefury.net/wp-content/uploads/2010/01/Screenshot-MiFi-Settings-276x300.png" alt="" width="276" height="300" /></a></p>
<p>In the end, the MiFi seems to be a pretty cool device. But I was watching my usage climb by kilobytes when logged into the admin panel, even when I wasn&#8217;t actively using my connection. Background processes? Maybe. But I sure hope it doesn&#8217;t run up my bill.</p>
<p>As a side note, before you take the plunge with one of these things, do your research online. I found that asking the sales people at the Verizon store questions on the technical side didn&#8217;t yield any answers. Although, when I asked one rep whether a USB aircard I was looking at would work with Linux, he said &#8220;Well, Linux is based on Windows, so yes.&#8221; I guess <a href="http://en.wikipedia.org/wiki/Unix">Dennis Richie and Ken Thompson</a> of Bell Labs <a href="http://en.wikipedia.org/wiki/Back_to_the_future">got in their &#8216;82 Dolorian</a> and robbed the Windows source code from Bill Gates, then traveled back to 1969 and released Unix.</p>
<p>Convincing.. Just kidding. But do your research before you walk in the door. That&#8217;s all.</p>
]]></content:encoded>
			<wfw:commentRss>http://codefury.net/2010/01/mifi-an-aircard-alternative-for-linux-mac-windows/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
