Many of the programs I write need a way to enter and edit a two-dimensional grid of data in the user interface. Such a grid doesn’t need to be a full-fledged spreadsheet, just provide flexible data entry and editing. Alas, there doesn’t seem to be such a thing and I haven’t created one that I’m satisfied with.
A few weeks ago, I wrote a post about “spare time” projects — programming projects undertaken to learn something new, try something out, see how something works. These are activities undertaken to improve your skills and, maybe, scratch an itch that’s been bothering you. These projects aren’t typically related to work.
In the past few days, Oren Eini (aka Ayende Rahien) wrote a couple of posts expressing the opinion that if you don’t do such projects, he probably doesn’t want to hire you. The posts generated a lot reaction on both sides.
My interpretation of his post is that he wants programmers that display a bit of interest in improving their skills beyond just professional reading. He believes that actually trying to implement new learning is superior to just reading about it. Doing these extra projects demonstrates a degree of passion for the craft beyond just a 9-to-5 job. Couldn’t agree more.
The opposition to his opinion seemed to boil down to the opinion that some people have no spare time to do such extraneous coding work. I can certainly understand that. It seems that life today is full of activity and commitments outside or work. But really? No spare time at all?
Mr. Eini does not seem to be one of those managers who believes his employees should be devoting every minute of their waking lives to enriching his company or to work on a single subject — quite the contrary. He is trying to shape the culture of his workplace. He wants people who are interested in what they are doing. He wants people who think of their job as being paid to work at their hobby. Sounds like someplace I would like to work!
Programming is one of the few professions where you regularly see self-taught practitioners. They have little or no formal education in the subject, but they often do quite well. In some cases, I’ve worked with some who were considered outstanding in their area of focus, like machine control or real-time.
One method I’ve used in a number of imaging tasks is Color Deconvolution. You can think of color deconvolution as figuring out how much of each of a group of colors contributes to the final color of the pixels in an image.