Fog Creek Software
Discussion Board

Coder to Developer: warning!

I always listen to Joel's recommendations. So, I went to Borders to check the book ...and what a surprise. This is heavily MS-centric (C#/.NET/etc.) book. It's unfortunate that not book title nor reviewers mention this fact. It still might be a very good book, but it should be named "C# coder to developer", or something like this. Big disappointment for me.

Sunday, May 9, 2004

What computer language would you have preferred? And why does it make a difference?

Sunday, May 9, 2004

Language indifference is one of the primary steps in transitioning from coder to developer

Sunday, May 9, 2004

That's true but the original poster is still correct... much of the book's value consists of links to utilities and practical tips, and those are _exclusively_ for Visual Studio .NET 2003 and the C# language (sometime VB.NET as well).

Chris Nahr
Sunday, May 9, 2004

Any language that is somewhat common and has a free compiler works great for books about general coding or development.  C# is fine.

Sunday, May 9, 2004

igrek is correct that the bulk of this book is very specific to one flavor of programmer: the Windows programmer.  I too was disappointed at the bookstore, expecting from Joel's forward to find something in the class of The Pragmatic Programmer, or The Practice of Programming.  No luck.

Even though I don't write much Windows software anymore (nor even use Windows much anymore) I bought the book anyway, and I'll read it hoping that there might be bits of good general information hiding in there.  I buy a lot of books, so to me the risk is minimal: two lunches worth of cash, and maybe a couple nights worth of reading time.  If it turns out to be irrelevant to me, I'll just give it to a Windows person or the local library, and not recommend it.

One of the things that my pure Windows-programming-only friends (or Unix-only, or Java-only, or Ruby-only, or embedded-only, etc) seem oblivious to is that much of their day-to-day concern and accumulated wisdom is not universal.  For instance, to a good Java programmer who does test-first development, a debugger is rarely if ever needed.  To many of my C++-in-Windows friends spending hours a week in their debuggers, that's inconcievable.

Just from skimming the book, I've noticed several Windows-only issues that Gunderloy gives considerable attention.  One is choosing and using an installer tool, primarily a Windows thing.  For instance my main machine, a Mac, installing applications consists of dragging them from the CD or disk image into the Application folder.  In delivering Mac software, there's nothing similar for me to consider.  "Uninstall" consists of clicking the application name and pressing Command-Delete.  To my firmware colleagues, install is something like burning a ROM.  Installation scripting is simply not even close to being a universal concern.

Sunday, May 9, 2004

Don't people get paid to write a foreword?

Sunday, May 9, 2004

Reading my own post, and thinking again...

The embedded-only folks suffer no delusions that their concerns are universal.  They *know* that they are in a unique world.  They deserve to be dropped from my list above.

It really does seem to be the Windows-only people that suffer most from the belief that their approaches and concerns are universally relevant.

That's reason enough to try to shift one's career onto another track.  I think about one of the sharpest and most knowledgable programmers I worked with in my Windows programming days, perhaps ending 8 years ago.  When I get together with him now, I find that he hasn't changed the way he works or thinks much about programming.  Oh sure, he uses a later version of Visual Studio, has tinkered with C# stuff from his MSDN universal subscription, uses the latest SQL server, and whatnot.  But the biggest change from a decade ago in how he works is that he now has dual displays.  He can't barely carry on an interesting discussion about programming with non-Windows programmers anymore, he's so stuck in that single rut, wide as it is.

Sunday, May 9, 2004

[can't barely]  -->  [can barely]

Sunday, May 9, 2004

I think Joel likes it cause Gunderloy uses FogBugz.

Jorel on Software
Sunday, May 9, 2004

Maybe Joel should have mentioned the book's website:

that would have probably given you a better idea.

Mike is an excellent writer (I have bought his previous books as well as this book).

You should subscribe to his blog - one of my favourites.

Prakash S
Sunday, May 9, 2004

Well, if I go into the bookstore and find that a book is Unix-centric or Linux-centric, then I get upset.

I am a professional Windows programmer. I couldn't ever get Linux projects, even if I tried quite a lot, and even if I have done some Linux development on university projects.

Joel's site is Windows-centric. Why are you upset if he reviews a Windows-centric book?

Sunday, May 9, 2004

Sounds like business is not doing well and Joel has succumbed to writing forewords for people. I wonder how much he charges for his services?

Professional Forewords Writers
Sunday, May 9, 2004

>>> Joel's site is Windows-centric. Why are you upset if he reviews a Windows-centric book?

That's not the problem. People are upset that Joel reviewed a Windows-centric book without identifying it as such.

From my limited online interaction with Mike G., on a book review mailing list, I can vouch for how well he thinks things through and expresses himself.

Sunday, May 9, 2004

Cabby raises a good point. Do Windows-only people "suffer most from the belief that their approaches and concerns are universally relevant"?

I've always just assumed that my growth as a developer has always moved me toward increased skills of the universally relevant kind, but now that the question has been raised, I realize there's a paradox inherent in the assumption.  That is that my development universe consists of everything and only everything I know, not that actual development universe in totality.  So obviously to me everything I learn seems universally relevant, but odds are that in reality its relevance is of some lesser scope -- one that could range from "almost universal" to totally myopic.

So what concepts are the truly universally relelvant ones, versus the ones that we assume are so, because they are relevant to the extent of our own universes.  And, how often is that discrepancy a Windows-only phenomenon?

Moreover, does cabby actually eat $10+ lunches everyday, and am I the only one who eats at Taco Bell for less than $5?

Monday, May 10, 2004

I don't know why you're off your meds or whatever the question was but I just in case some C# user backs off the purchase now, I wanted to point out that "Coder to Developer" is indeed a well-written book with much helpful advice and well worth the money... if you're developing C# applications using Visual Studio .NET.

(Not just Joel failed to point that out, by the way; it's not even mentioned on the book itself. You don't find out until you read it.)

Also, like another poster said, Mike Gunderloy's weblog ( ) is a great source of almost daily developer news and should be on your blog roll.

Chris Nahr
Monday, May 10, 2004

Interesting tale there - why he won't write for Fawcette anymore. Apparently they didn't pay what they said they would, and took months to do it too.

Lots of technical publishers are indeed used to exploiting gullible writers, but I wouldn't have placed Fawcette in that category. Interesting.

Monday, May 10, 2004

"He can't barely carry on an interesting discussion about programming with non-Windows programmers anymore, he's so stuck in that single rut, wide as it is. "

A rut? How is that a rut? I call it an area of a profession that he has specialized in. What is up with techies who have such large egos that they think that they have to know every single technology under the sun?? There is nothing wrong with a develop who chooses to focus on a particular platform.

Do you think a criminal lawyer gets all concerned with the vagaries of patent law? Probably not. Do you think a pediatric physician cares if she's not up with all of the latest techniques in brain surgery? Nope.

There is a market for developers that are strictly Windows developers. Furthermore, there is a market for people that are just .NET developers. They don't need to know, or even care, about how Linux or Macs operate. This is their chosen specialization.

Monday, May 10, 2004

As I said: the biggest change from a decade ago in how he works is that he now has dual displays.  He's largely oblivious to advances in our field that occur on other platforms.  He has almost completely ignored what we've learned about how to write software over the past ten years, such as test-driven development, because that action has occured in different communities.  His conception of late binding is limited to Windows constructions like DLLs, which has architectural implications.  His understanding of OO is as shallow as Windows programming demands.  etc.

The problem isn't entirely that he works only on a single platform, but that he hasn't matured as a programmer in a decade.  There are a number of factors to blame, but that he uses the exact same technology base he used 13 years ago has nearly eliminated his need to step back and look at the landscape of how he works.  His knowledge of that platform is quite deep, and that lulls him into a sense of complacency that hides from him his own weaknesses in the broader field of programming.

Think of a batter who has faced only one pitcher for a decade.  Sure, he can probably hit every strike that pitcher throws, but is he a generally good batter?  And what if his sole pitching partner isn't even an especially good pitcher?  He might bat .015 against other pitchers.

Sure, there is great motivation to specialize in a particular platform, and plenty of jobs for specialists.  But if you want to be a specialist, know the costs, so you can avoid the dangers or tolerate them as you wish.  For my money, the best route is the most adventurous route in all situations, so I'd prefer to face a wider range of challenges.  The side effect in my career is that I've had to become adept in a broader range of environments, and I believe that's made *me* stonger than *I* would have been had I stuck with my pal in the Windows world.

Monday, May 10, 2004

"A human being should be able to change a diaper, plan an invasion, butcher a hog, conn a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. Specialization is for insects."
-- Robert Heinlein (through his character Lazarus Long)

Monday, May 10, 2004

Which explains why he just *wrote* about highly literate, politically astute, technically brilliant, musically talented sexual demigods.  He specialized in writing science-fiction (with a good background in astrophysics).

Monday, May 10, 2004


Well it sounds like your friend is a dolt. And probably a lousy programmer to boot.

To extrapolate that all Windows developers are like him is quite naive.

I'm sure we can find just as many Mac or Linux developers who know nothing about good architectural, design or testing skills.

I also think it's a little much to suggest that some development paradigms are widely established in one field, while totally absent in another. Test driven development was not a mainstay of the Unix world before it was equally as common in the Windows world.

Tuesday, May 11, 2004

*  Recent Topics

*  Fog Creek Home