Thursday, March 1, 2012

Beef up on Starvation

For reasons of which I am not entirely aware, I decided to go cold turkey vegetarian this past December.  Of course the first things I noticed were the usual: weight loss, less sleep, better GI system, etc.  As I adjusted to my new lifestyle, however, a more subtle change began to emerge.  With the limited vegetarian options both at the store and in restaurants, I was forced to start actually thinking about what I eat.  Not only did I have to avoid meat and it by-products, but I also had to carefully watch my intakes so as not to fall short on key nutrients.  Over time, I became more and more aware of what foods I was eating, rather than mindlessly grazing as I had done in years past.  Trips to the store suddenly became more focused and planned; I actually started making lists!  Eating out became a luxury to be used prudently.  In short, I finally became aware of the eating experience, and in doing so managed to both maximize enjoyment and health, whilst minimizing costs.

Now, you may be wondering why I'm rambling on about my eating habits on a blog supposedly dedicated to programming?  Well, shortly after realizing all the benefits that I reaped from a simple deprivation in my diet, I decided to see whether it worked in other aspects of my life.  Naturally my first instinct was to turn to my Computing habits.  What could I limit myself from?  For starters, I turned off my mouse.  For one whole day, I vowed to navigate entirely via keyboard.  24 hrs later, I was zipping through windows, tabs, and hot-keys faster than ever.  Already a simple deprivation had forced me to assess my habits and optimize. My next goal was to do a weeks worth of coding entirely within the terminal, full on Unix-style.  While my productivity certainly took a hit, and I ended up with code that had bugs crawling out of the woodwork, I emerged with a whole host of new tricks and a great appreciation for OSX's Unix underpinnings.

Wednesday, February 8, 2012

What's a Mechanical Turk?

So, the other day I was browsing reddit and decided to brave the ominous 'random' button.  After stumbling across all sorts of subreddits, some interesting, others border-line disturbing, I came upon r/mturk.  This subreddit focused on Amazon's Mechanical Turk program, which apparently allows users to make a few bucks doing mundane tasks on the Internet.  My interest piqued, I did what any red-blooded denizen of the 'net would do and went straight to Wikipedia.  After scanning the article, and glancing at my ever-growing stack of unpaid bills, I decided to go on over to mturk.com and give it a shot.

When I got there, I went through the standard registration hurdles (email, password, etc), but paused when I was prompted for my SSN.  Hold on a second!  Nervous, I went back to Google and did a bit more research.  Fortunately, a few quick searches reassured me.  It was legit.  Returning to the site I finished the registration and was soon underway on my first HIT (the little tasks you get paid for).  My task was to type certain strings into Google and copy/paste the URL of the 'best' search result.  Easy enough.  I hit submit and after a few minutes my submission was approved and my account was credited with $0.20.  Hooray I just made my first .20c on mturk!

After about 15 minutes or so working on the "best search result" HITs, I decided to branch out and see what else mturk had to offer.  The first thing that caught my eye was a offer for Duke University.  $0.50 to take a quick survey.  Minutes later, the survey was submitted and I had another 50 cents in my account.  I spent the next hour or so taking every survey I could find and eventually worked my way up to around $6 in earnings with another 10 or so surveys pending approval.  Not too shabby. 

Now of course, you are probably thinking $6 for an hour's work is borderline slave-labor.  And you'd be right.  But there's a catch: I was able to do this while watching tv and chatting with some friends on Facebook.  I'd say $6 to click a few links while watching Workaholics reruns is a pretty good deal.  At the very least its a way for me to get a little extra beer money. :)

Thursday, January 12, 2012

So much to learn, so little time.

As of late I have found myself with a great deal of free time.  At first I thought this would be a great opportunity to buckle down and fine tune my programming skills.  Unfortunately, however, the shear amount of information available on the web is quickly becoming overwhelming.

Where should I focus?

Java Swing / UX Design
Scala / Scheme
Discrete Math / Combinatorics
Data Structures / SQL
Shell Scripting

Monday, January 9, 2012

Am I up for the challenge?

I am currently considering jumping headfirst into an advanced level course on Algorithms.  My only formal CS training to date is the introductory course I took last semester.  I have, however, made ample use of online course materials from MIT, Stanford, and Harvard.  I believe that with access to this material along with communities like the Stack Exchange network I can succeed.  It will be hard.  There is no doubt about that.  But I think the challenge will be good for me.

Wish me luck!

Thursday, January 5, 2012

How do you rank as a programmer?

I recently stumbled upon the Programmer Competency Matrix, which essentially allows you to rank your programming expertise in a number of different areas.  Looks like I have some work to do...

The chart is quite large so I've decided to work my way through it piecemeal, isolating the areas where I need the most work.  I'll start with the first block:

COMPUTER SCIENCE
 Data Structures - somewhere between 1 and 2.  Arrays Linked Lists I can grasp, but could use some work on hashing and tree structures.  Need to find a resource here...

Algorithms - solid 1 here.  Currently working my way through MIT's Intro to Algorithms course online.

Systems Programming - again a 1.  Memory, compiler/interpreter stuff is good.  Need work in the final points, esp threading, kernal specific stuff, and assembly.

I hope to continually update this post with resources I find for each area, eventually creating a sort of  directory for those wishing to round out their skill sets.