I've had the occasion over the past few years in my capacity as a long-time developer to interview candidates for jobs within my company and for clients I've contracted for. As a result, I've had some time to formulate some opinions about what questions to ask developers who are applying for a position, and the types of answers to expect from a candidate that you'd want to hire.
Sadly, I think the market of good developers is far, far too small. I do subscribe to the philosophy that great developers are born, not made, although I also believe that you can produce adequate developers with good training and persistent oversight. It is really unfortunate that coders who want to get jobs aren't as versed in what makes a great developer great, and it's a frequent topic of discussion when hiring rounds begin.
I'd like to share a few of the qualities I like to look for in a web developer to both educate would-be coders as to what I expect, and educate would-be interviewers who wouldn't know a good developer if he hacked into his bank account and stole all his cash. ...
I work on several projects, both for work and for recreation, that require code editing by more than one person at a time. Some projects I've created on my own, while others were well established long before I came upon them. There are common threads between them, and I would like to try to point out some things that I've learned along the way.
When working collaboratively, a source code control system is mandatory. There is simply no other way in my mind to efficiently collaborate on a project of any size without source code management.
One might think that code control is not necessary for collaborating on small projects, but for those smaller projects it is especially true. If a project consists of a single file, and two people are working on that file, the only way to make the changes not continuously conflict with one another is to use some form of code control. The alternative of sending back and forth changes or keeping in constant contact to ask if another person is editing a file you need is not practical....
I feel sickness coming on. Thank goodness it's now and not at the end of the month when I'll be heading to LinuxFest. I think Riley brought home a bug from preschool, and now I've got that post-nasal sore throat thing going on, and am achy, and should probably be going to bed now instead of writing this.
Development on Habari continues. There's been a ruckus in the development lists lately about the look of the admin pages and the libraries used to develop them. Thankfully, we were able to get together "in person" in IRC and hash out some of those issues. IRC isn't great for permanency, but it sure makes the exchange faster. I think you lose something in email as you start to roll through paragraphs on your own line of thought, and others read different things into what you're saying when they don't get a chance to interject and clarify. So IRC has proved useful beyond a tool for hanging out and idle chatting.
Abby's first week of first grade went well. She's already making good impressions on the teachers, and I expect she's going to be one of those kids that the parents are really proud of, but the other kids scoff for throwing off the curve. Soon she'll be able to post to her own blog. That'll be neat.
The holiday weekend was really lazy. We didn't do anything. Actually, on Friday, we had the new carpet installed. We replaced the carpet in the living room, dining room, up the stairs, in the hall, and in three bedrooms, excluding ours. Big project. We had to move all of the furniture around. I don't know how Berta moved some of that stuff by herself, but she did.
I was thinking to do some coding, but I didn't. There were a few things I wanted to try, but just couldn't be near the computer. This week is going to be interesting, since I have a lot of things to do for work in a very short amount of time. Hopefully, the new guy can help me get this done by the deadline.
Finally, I wrote this post in ScribeFire, which I don't like because it's one of the ugliest add-ons for Firefox that I've ever encountered, but it does do XMLRPC posting. This is of interest because up until a few minutes ago, Habari could only post via APP. This means that I'll probably be able to post from Viddler, since their APP support doesn't seem to meet our APP specs (based on rev17, which looks to be the final version).
I have mentioned Firebug before, which is an extension to Firefox that allows you to do some incredible things with Javascript, HTML, and CSS.
One of the more powerful things it does is let you set breakpoints in your javascript. A breakpoint is a debugging tool that causes the script execution to stop at a specific line in your code so that you can examine the state of the script at that point, and potentially change values. I think that if you've never used breakpoints in your development before, then you're really crippling yourself in terms of how you debug. The problem seems to be that nobody really teaches this skill.
So I've put together a beginner's-level tutorial screencast of how to use Firebug. It covers the basic use of breakpoints, inspecting variable values at runtime, changing the values of HTML and CSS at runtime, and a few other neat Firebug goodies. It's not comprehensive, but it does give a pretty good introduction to what you can do with Firebug, and I think that anyone who develops on the web that doesn't already use it will benefit from it. I'm really shocked by the number of seasoned web coders I've met that don't use this tool - it's too handy....
I've been hosting my own content on the web since, oh, 1995. I've been on many hosts over that time, moving sites from host to host. During that time, I've been on some good hosts and some really awful hosts, and I have really yet to find the ultimate host that I can recommend unreservedly.
Perhaps you have been having sites hosted long enough to have acquired some horror stories. A while back, I had my sites hosted with a company called A World Wide Mall. AWWM was pretty reasonably priced, but as with most hosts, the customer service was pretty lousy. And one day, the guy who ran the service decided to fold up the company and move on without notifying any customers. He just took his datacenter and left. With all of my data. Lovely.
I'm sure that folks have similar (or worse) stories. I have had service where I thought I was getting protected backup and redundant storage, when really it was all on one box and when the box died, I lost a lot. I tried hosting at 1&1 once, and after playing with it, I immediately filled out their cancellation form. Total time with their service: about 5 minutes....