Fog Creek Software
Discussion Board




History Repeating itself ?

First of all, I admit I am inexperienced and I’ve been learning raw Win32, MFC, wxWindow etc, to become a better Windows developer.  However, with all .Net stuffs coming from MS, sometime I question myself and seek other’s opinion on, if these materials will ever be more than something that’s good to know, but no practical use.  I never really had an answer.
About two months ago, I picked up yet another book on programming windows; this time for Win CE.  Not surprisingly, it is more or less the same as programming other Windows.
One thing I found it interesting is that while Win32 power has been diminishing for sometime due to ever increasing desktop PC resources, a need to understand low level API has been growing again for small devices such as Palm, PocketPC.  Basically what I am trying to say is that the history seems to be repeating itself;
Do you see the same way as I do?

RM
Saturday, February 21, 2004

Of course, small embedded devices have always required tighter code written in lower level languages because of memory and CPU constraints.

Realistically, though, to program >really well< for any particular platform or combination of technologies takes years of experience. I'm still learning ways to be a better programmer in C++/MFC, in ASP/VBscript, and in VB6.0 -- technologies I've been using regularly for a decade. There's no hope I could ever learn as much about programming in the Java world, for example, as I know about programming in the Windows world. You have to specialize; the world is too complicated to be a complete generalist any more.

Joel Spolsky
Fog Creek Software
Saturday, February 21, 2004

Kind of unrelated to the original post but...

I would have to put myself in the same category as a "Windows world" sort of guy, but I'm not sure I couldn't move to another world and become a pretty productive programmer within a reasonable time.  I think a lot of the lessons I've learned in my experience in windows would apply to programming in general, even Engineering in general.  I bet it would take far less time for one to become an expert in a second set of technologies than it took the first time around.  That said, you could argue that that time would be better spent becoming even more of an expert in one's primary technology.

I guess the question is: at a certain level of expertise, are there diminishing returns in acquiring even more expertise for a particular technology set?

ken
Saturday, February 21, 2004

It's hard to tell because "returns" are so "chunky" and not "smooth."

For example, the fact that I know a lot about COM and Excel Automation allowed me to build a certain thing in 9 developer weeks where a certain other company had failed to build the same thing with 12 developer years, simply because it never occurred to them that they could reuse Excel worksheets as the backend of an ASP page.

If you're a top Windows programmer, though, you have invested a lot of time in learning the difference between TCHARS, wchar_t*s, char*s, LPCSTRs, and BSTRs. So when you read a page in the Windows API documentation you can understand what it's talking about in a minute or two. If you knew C but were not as experienced with Windows programming you could still decipher the documentation but it would take much longer.

Joel Spolsky
Fog Creek Software
Saturday, February 21, 2004

*  Recent Topics

*  Fog Creek Home