My Kingdom for a Geek
Where have all the geeks gone? I know they exist - I am one, and I talk to people like me. They're abundant online - just see places like CodeBetter (of course), weblogs.asp.net, geekswithblogs, devauthority.
I'm not even that special in Australia - the aus-dotnet mailing list is a fantastic example of that.
In Canberra - I know there's geeks. I've met some.
So why can't we find any when we have a job opening? We have a contract position open where I work. People apply, I interview them, I feel disappointed.
Now, I know I'm an uber-geek. That's not to say I know it all (or much, even), but if I'm feeling bored or tired or happy or anything, my way of relaxing at home is to open visual studio and play. I like playing with code. I like finding out how stuff works.
When I needed to figure out how a few webby things worked, I wrote myself a web server so that I could get a feel for what a request and a response looked like.
Back in the VB 6 days, if I wanted some common controls that weren't part of the VB tool box, I worked out the right win API methods to call to create all my controls on the fly - doing it the C++ way.
A couple of years ago a friend and I were putting together an ISAPI filter as a proof of concept - proof of concept my ass! We were doing it in our own time, so to me the fun part was now to get it super fast and super small. So I taught myself enough assembler to a couple of functions that way - because the algorithm I wanted was more efficient at the assembler lever. By calling a specific instruction directly I saved myself about a hundred clock cycles per call.
This is fun to me. It's my passion.
I'm not expecting to find as sad a case as I am. I know that there's not really that many people around who are as bad.
But surely we can find people that are close? By close, I mean just in the rough sort of neighbourhood. I'm not after an uber-geek. I just want someone who finds it all interesting. That wants to tinker. That can tinker. Someone who can ask for help in decent places (like newsgroups and the aus-dotnet list), but also learns from the answers.
At the interviews we held today, I asked a couple of questions that I was really hoping they'd know the answer to. Before I asked the questions, I would have put them at medium difficulty - not stuff beginners should know, but definitely stuff most people should know.
What's the difference between a GET and a POST request? Is it too much to ask that they know a little more about the web environment than just dragging controls from the tool box onto a web form? I guess not. No one knew.
One guy had heard of the terms, if not knew the answer. What's a HEAD request? This was just for bonus points. No go.
I moved to the winforms area. I asked one guy if he'd ever noticed that in the code for, say, a button click, the whole form locked up and nothing happened until the code was finished running. He had. He had a progress bar that didn't update - it just went from 0% at the start, to 100% at the end in one jump, and was locked up in between.
Great, I thought. So what caused the problem, and how did you fix it? 'I don't know,' says he. 'I removed just removed the progress bar and there was no problem any more'.
I asked if they'd worked with threads. Sure they say. And problems did you face - dealing with thread safety and stuff like that? None apparently - I eventually worked out that the real answer was no, they'd not done any threading work.
Am I expecting too much? I'm not looking for another me, I just want someone competent enough to keep up with what we do - and to keep up, you should understand your environment.
I think that whatever field you choose to commit to making a career of, you should at least have some interest in it. Chef's should search for better recipes. Builders for better ways to build. A desire to research the why and the how, more than just the bare minimum to get the job done. All the people I spoke to had an MS certification in C#. Everyone (well, most - not me, that's for sure) thinks that C# is better, C# coders are better, and yet I keep on being shown C# guys that just don't know enough to do anything other than really simple programming.
Are there any geeks in Canberra looking for some contract work? I'd love to hear from you. Contact me using the contact link on my blog. Remember: we're a VB.net house. If you're not willing to do it in VB, we're not willing to use you. It's sad, given that the whole point of .net is that languages end up being unimportant, but there's more politics here than you know, so no attacking me please :)