Thursday, June 21, 2012

Have You Ever Done Any Debugging?

A while ago I was contacted by a recruiter.  One of the screening questions was, "Have you ever done any debugging?"

Maybe there is some type of software development that I am not familiar with where you don't debug code.  In my definition of software development debugging is mostly the main job.  Not only are you debugging the code you write and the code others have written, but you also have to debug the users process and perceptions.

Even if you count out debugging the user, I can't imagine why someone would list debugging as a requirement for a software developer, since it is implied in the title.

I also find it somewhat ridiculous that one that is sent to find candidates for a programming job hasn't been trained enough to know that programmers debug by definition.  It makes the recruiter look less than competent.  It makes the recruiting company look bad.  It also makes the company that is looking for a programmer look like they don't have it together.  Quite likely the company looking to hire someone is perfectly fine, but the recruiter hasn't been trained properly to be able to find candidates.

What's In a Name

Over the last 15-20 years of my programming career my title has changed all over the place while doing essentially the same job.

In some jobs I have been titled a programmer.  In others an application developer.  Still others I was called a software developer.  One employer called me a software engineer.

The engineer title was a little much for what was going on.  Even the title architect seems a bit much.  Perhaps there are those that get degrees in software architecture or software engineering, but it kind of leave my paradigm of what engineers and architects are.

The name 'Request' does not exist in the current context

I receive this message today in Visual Studio when trying to get at the Request object of a web page and it stumped me for a bit, since it did not represent what the actually problem was.  "The name 'Request' does not exist in the current context"

I had this code in the Page_Load event:
     if (Request("myFlag")=="1") DoSomething();

Since I had seen similar code elsewhere and I was in a Page_Load I was pretty sure I had the Request object available to me.

I tried going at the base page.  I tried using "this".  None of them worked.

As I flipped things this way and that I had something pop up that made me realize I had wrapped the parm of the Request object in parenthesis instead of brackets.  Once I changed that it fixed the problem.
    if (Request["myFlag"]=="1") DoSomething();

The error message was misleading.  While a method named Request was not in the current context, the problem actually was that I was using an object like a method.  I will admit that I probably made this mistake because I bounce back and forth between VB and C#.  Perhaps developers that exclusively do C# and Java would not be tripped up by this.