The mighty C# migration misconception

Posted by James on Saturday Feb 28, 2009 Under software

This is such a common problem now.

By this I mean how common it is for engineering colleagues to go diving into C#, thinking they already know the language inside out.

The familiar C++ style syntax, the convenience of intelisense and WYSIWYG style editors.

The smug, naive notion that they can add yet another language to their dusty resume and think how easy it was to pick up.

39654992v5_350x350_front

I remember a C++ programmer telling me… “You’ll never have trouble finding work again… now that you’re an established C++ programmer”. This kind of arrogance runs wild in the industry. Frankly I’d hang my head in shame if ever I felt this way. They honestly believe it’s the pinnacle of their education. C# being just a dumbed-down, high level, subset of C++. And they can happily hack their way through until ‘it just works’.

My companies tools set is literally littered with these kind of ‘applications’. Owners long since abandoned them, waiting for the next tech bandwagon to leap in front of. Illusions of grandeur clouding their every judgment,  as they salivate at scrambling one step higher up the ladder.

End users don’t seem to care. In fact they seem to encourage the rapid development of  these fisher-price, my first app, style tools. It’s only the next poor developer that has to come and wade through the buckets of misunderstood ideologies that feels this pain. Often it’s several iterations of developers later that someone who actually knows what they are doing gets burdened with the task of maintenance. At this point it’s been gang banged into such a state that starting from scratch would be so much easier.

If only they understood basic design patterns. I mean even basic MVC isn’t that hard is it?  No, no, no lets interwind the whole lot and celebrate doing it.

What will the next one be? WPF? It seems to be spreading like wildfire. I wonder how many of them right now are hacking their way through the API, expecting to be patted on the head for being the first to do so on their team.

Is it fear of being left behind? Tempted by the pretty lights?

I’m also learning new languages, but I’m reading as much literature as I can on the subject. Asking respected veterans for their opinions and advice on the matter. The creators of C# and WPF had certain design philosophies; things that didn’t work that they have improved from previous iterations. To not align with them and embrace their ideas, through sure ignorance is like pissing in the wind.

It should reflect badly on the developer in a review process, but it doesn’t. Why? Should the reviewers attitude be, to punish a pioneers efforts to learn new technologies? Perhaps, if they do so in such a cavalier fashion. Well, no manager/lead I’ve met would like to do that. Maybe they respect them enough to believe they’ll do it right way.

Most mangers have also abandoned such selfish and career fueling drives such as this however, so they often know very little about the subject matter. Content to allow their underlings to spread their and wings and allowing such practices to continue. Certainly at my work, C# is still (generally) a non-senior engineer skill.

nightmare-on-elm-street-freddy-headshot-smallSo how can someone with no knowledge of a technology effectively critique someone? It’s very difficult…

  1. Insist on courses and read lots books / online literature.
  2. Do not allow C++ programmers who “think they know”.
  3. Teach high level ideologies first, syntax later.
  4. Stay on top of your game. You need to at least know vocabulary if you don’t learn the technology.
  5. Hire experts and learn from them!

I’m certainly not an expert myself, but I know that just following these simple steps you could prevent the maintenance nightmare that I’ve recently inherited.

Again I hope this generates some discussion.

0
0
  
Tags : , , | 12 comments