Monday, June 30, 2008

The number one piece of advice I can give anyone...

And this is particularly true if, like most of us in this program, you've been earning a living following one or two specific software technologies (i.e.: .NET, Java, etc)...

DOUBLE THE TIME YOU ANTICIPATE FOR ANY GIVEN PROGRAMMING ASSIGNMENT.

To answer your immediate question, yes, I was working on an assignment due at midnight up to the last hour last night. Yes, I underestimated the amount of time it required for completion. But did I screw myself over and start yesterday afternoon at 3pm?

Hells no, I didn't. I'll have you know I started this homework (HW 3 of my summer seminar -- The Practice of Programming) last Tuesday and had put at least a full 10 hours into it before Sunday arrived. 10 hours in and I was finally able to start answering the first problem Sunday morning at 8am.

My roommate found it funny. He didn't after I... um... hmmm... yeah, no, I didn't do anything to him. In fact, I think he put in about 7 hours of xbox360 and movie time as I labored away at the table a mere yards away. He kept offering words of wisdom and encouragement like "Hurry up" and "Still working on that thing?" He wasn't much of a help.

The purpose of this post is not a pity party of one for your cape-clad crusadin' coder. No, that goes little distance in the land of the internet. The purpose is that sentence above written annoyingly in all caps.

How did I manage to put 10 hours into an assignment and just be starting on the first question?

Setting. Up. The. Proper. Environment.

OK, quick you professional software developers (and I'm not talking to the masochists of ya'll out there -- you driver developers), when was the last time you built a C program? Wrote a makefile? Wrote a project in a completely different IDE than your bread and butter?

This past week had me doing all the above and more simply for this one assignment. For full disclosure (says the cape-clad coder), I'd consider myself predominately a .NET developer. My career is still young, but that's certainly the direction it has started off in, working almost exclusively within Visual Studio utilizing .NET related technologies (ASP.NET, WPF, etc). (For the benefit of those in the know, I prefer to simply black out the first two years of my career when I worked with Delphi.)

Last week, I wrote my first C program, makefile, and C++ program in YEARS. I downloaded two free C/C++ IDEs I had never used before (Quincy 2005 and Code::Blocks 8.02 -- Code::Blocks totally FTW). The spring semester saw me using MatLab and Alloy for the first time in addition to the free Java IDE, NetBeans.

And guess what? None of that is really factored in when you consider the time needed for any given assignment. Oh sure, it SHOULD be factored in. But, come on, when was the last time you factored in the 5-10 min of travel time for your commute spent simply at traffic lights and the sort.

So, 10 hours in, and I had a working C program using the book's source code. Joy. I was up on Sunday, at my homework by 8am. I had an hour off to go to HEB and another hour or off for eating/break. Other than that, I was working.

I turned in the homework around 11pm last night. It may not be perfect, but it's done. 10 hours previously in week + 13 hours yesterday = 23 hours total for assignment.

...

I can't hear my violins people!!!

No comments: