James's profileJames's SpacePhotosBlogNetworkMore Tools Help

Blog


    May 29

    Why it _is_ possible to be a programming expert

    I thought this article was quite interesting: http://blogs.techrepublic.com.com/programming-and-development/?p=673
     
    Essentially the article argues you can't be a programming expert any more because of the pace of change of prorgamming languages and the variety of them out there on the internet.  I disagree!
     
    I agree the sentiment of the article, but I would differentiate between specific API knowledge and an understanding of how to design and write good software, and of the programming 'memes' over the last 20 years.  I would argue that the real pace of innovation is not that fast, if you have sufficient expertise & experience to distinguish between a new concept, and merely a new implementation of one.  AJAX was around for 5 years before the term became widely used, and is actually a simple use of DHTML, HTTP and XML, though some of the abstraction frameworks around it are great for productivity.  SOA is an attempt to describe ideas 10 years older in a more cohesive, and more standardised way.  An expert programmer sees Ruby and thinks 'cool implementation', not 'OMG I need to go buy a book'.
     
    The .NET / J2EE APIs are very different (e.g. swing vs. WinForms) and you certainly can't hold all of their details at the forefront of your mind.  However, the principles of being able to code well in either, and make good decisions about approach and API selection, are almost identical - not surprising because both are OO imperative languages with a JIT compilation, GC'd runtime.  People I know who are expert in one learn the other very, very quickly - and that's down to their programming expertise and experience.
     
    I don't think the problem is so new either, I think it's just that the bar has been raised significantly in the last 10 years with more competition to be productive, and hence to use higher level languages with rich, abstracted and large APIs.  You used to be able to get away in the early 90s with writing everything from scratch and still be perceived as competitive - now you can't.
     
    An expert programmer nowadays is someone with experience of multiple programming paradigms in a mixture of contexts.  e.g. imperative (C++/C#/Java), functional (ML/Scheme), who has worked at a systems level and business application level.  I know quite a few people like that.  They still pick up APIs and frameworks as the article describes, but they have the knowledge and experience that gives them a deeper understanding of why and how an approach should be taken.  If you're stuck with a complex technical problem, or a load of bugs, then someone like will solve it for quickly regardless of whether they know the API you're using or not.
     
    They know the relationship between a semaphore and a mutex, they know that the network is expensive and they should go for coarser grained messaging, they know the pros and cons of ATL vs. MFC, and are comfortable with regular expressions, SQL injection, transaction isolation levels and probably wrote their own equivalents of AJAX back before everyone called it that.  By my definition of expert programmer, there's still just as many as there ever were out there.
    May 14

    I'm married

    Well, as you may notice from my photos, I just got married!  Well actually it was on the 11th April - but I think I have my priorities right in only just blogging about it.
     
    Many thanks to my friends and family who made the day so special - our faces ached from smiling and if we could we'd do it again!  All the presents were greatly appreciated and we're sailing through the thank you letters at the moment Wink.
     
    People keep asking me "how are you finding married life"... well, much the same as before; we have lived together for 8 years after all Open-mouthed.
     
    The honeymoon in Morroco didn't quite match the wedding but it was great fun - we feel like we saw everything in Morroco - starting in Casablanca and travelling via Rabat, Meknes, Fez, Todra Gorge, the Sahara, High Atlas, Essaouira and Marrakech.  We even bought a rug :)... photos to follow shortly when we get them off the camera (now broken due to sand in the Sahara).
     
    See you all soon!