Staying sharp
One of my favorite books on the approach to software development is The Pragmatic Programmer. I refer to many of the concepts in the book in my course lectures, conference presentation, and even hallway conversations. One of the things that Hunt Thomas say in this book is that "pragmatic programmers" should try to learn a new programming language every year. I think it's a pretty good idea, and I applied this theory toward learning Perl, Ruby, Python and C# (can't remember the order) between 2001 and 2005. I'm certainly not an expert in any of those languages, but I know them well enough to get by, and may even be able to get a job writing with one of those languages if Microsoft fell into a giant sinkhole or something.
My "bread and butter" languages are C and C++. I know Pascal and Basic well enough, but I don't know if I'd want a job where those were the required main languages. One huge whole in my knowledge of programming is anything to do with web. Given that the Internet seems to have enough popularity to become significant (that's sarcasm for those of you reading without a sense of humor), I'm feeling a little out of the "cool loop".
My worry grows when I recall that I used to be one of the cool people who wrote web pages in notepad. For a brief time in my career, I was a tester on IE. I tested rendering of non-US characters and related functionality on IE2 and IE3. I tested every html tag that existed. I tested CSS before it ever worked in a browser. I wrote IIS extensions for the first version of IIS. I've written UI automation in javascript and vbscript, and written dozens of ActiveX controls to aid in this effort.
Today, I can barely create an html "Hello World" application. ASP is a mystery to me. Although I know how to exploit cross site scripting, I don't think I could create a web page that had the vulnerability. If local software applications disappeared, and everything went to the web tomorrow, I couldn't be the apprentice of an apprentice web developer (thank goodness I know how to test this stuff!).
This is all leading somewhere, and this is it. Tonight I thought it would be fun to convert one of my little utilities (basically a timer application - details unimportant) from a c# app to a Vista Sidebar Gadget. At the time I started searching, of course, I had no idea that the stupid things are web based. Still, I thought it would be fun for some reason, so I went to work. In the end, I discovered that the gadgets have very little HTML, but do require a bit of javascript (I'm sure vbscript would have worked too, but for some reason, I like js better). Over the space of an hour or two, I searched the web, I cut and pasted code, I cursed, and I clapped. I wrote some code and learned a lot of new things. When I was done, I had exactly what I wanted, and the gadget now sits proudly on my sidebar.
I haven't done anything new with programming over the last two years or so, and this experience reminded me how important (and fun) it is to try to make computers do something a different way. I'm certainly not off to be a web developer anytime soon, but I will find a way to stay sharp on web technologies.
I think I may finally learn how to use SQL next year.
Comments
- Anonymous
September 01, 2007
PingBack from http://msdnrss.thecoderblogs.com/2007/09/02/staying-sharp/ - Anonymous
September 02, 2007
You should put that little utility up on Codeplex or something similar. I'm sure there are others out there who would find it useful.-adam - Anonymous
September 04, 2007
I second Adam Goucher's motion. Funny, I was recently thinking about a lunch that I pulled together with Donald Knuth, who was in town researching some computer history, and young developers on my software research team (this was around 1970, so it is sort of a war story). Don turned to me and said that I and other senior developers needed to write more code and examples so that newcomers could see the difference our experience and perspective makes in the code we right. I'm not sure that was the first time he said that, but it sticks in my mind from that occasion. One thing that Knuth has always acknowledged is what there was to learn from reading the great code of others, and I think you will find it rewarding to demonstrate the way you, with your experiences, find out how to become fluent with something new. - Anonymous
September 04, 2007
Well, sometime the code we write is right. (One of my common speed-typing failings.) - Anonymous
September 04, 2007
I agree in principle that posting te gadget to codeplex could be beneficial.However, the big thing blocking me is that I stole the graphics I use for the sidebar from another gadget. Another thing I'm horrible at is creating graphics, so stealing rather than creating was the efficiend path of attack for creating this.If there's more interest, however, I may write up a short "creation report" on the main issues I ran into creating a gadget and share the relevant code (there isn't much).