Fellow ranters, what are your thoughts on if an developer should strive to be an expert on a single language/skill (deep knowledge) vs knowing a little about everything (wide knowledge)?

  • 0
    I think that having one expert skill will always pay better than having several skills at intermediate level... but (depending what that one expert skill is) it limits the amount of jobs you can apply for, and you may be to expensive for many company's.

    A good example is devs working with ERP systems like Microsoft Dynamics AX or NAV. They (in Scandinavia) typically makes from USD 6000 to 12000 pr month. Thay are experts at exactly one system (or even one module of the system) and are payed very well compared to a web developer. But if Microsoft decides to pull the plug on Dynamics, they'd be screwed! That can't use C/AL or X++ anywhere else!
  • 1
    It's a mixed bag and I think it should be based off of what motivates you. I am intermediate at a lot of languages and keep jumping to new ones. I find it fun. You will start to see similarities and can pick up on them quickly.

    I think the reason I didn't lock into one language was from wanting to code games, mobile apps & web. There really isn't one language that does it all well.

    I thought that was going to be an issue for me, but then an opportunity opened up for me to became a software architect and that's where an intermediate knowledge of more became better. (For me)

    You can hyper focus on anything and I don't think there is a right or wrong answer. Just go with what motivates you!
  • 0
    I'd say if your comfortable with learning a new language or for framework and you have the time for it, do it. You will have much more possibilities in the future and learn of solving problems in different ways.
  • 0
    I would go for wider. If you learn all obscure construction your language permits, you are still not going to use it if you want your code to be maintainable. Also you can jump to different oportunities if your preferred language stops being the hype. Ok, there are some safe languages like C or Java (if you like banking sector) but others are more of fasion wave and you don't want to miss interesting oportunities.

    And if you are skilled enough, you pick up new language fast and it's problem solving skills that matter, no name the most obscure feature of this language. If somebody asks for that in interview - how would program behave in this obscure situation when you have this cryptic code - it is definitely a warning sign, especially if they don't like the answer that they shouldn't write crappy code in the first place.
  • 0
    You are probably better off becoming an expert in a specific field rather than in some specific language.
    Languages, frameworks, etc come and go, those that live on for a long time tend to change drastically over time anyway and new languages tend to borrow heavily from old ones.
  • 0
    Not wide not deep but a T. Dabble in many things but specialize in 1 or 2 things
  • 0
    I have deep knowledge and experience in a couple of technologies that really interest me. It has always brought me good jobs and contracts that also payed very good. Employers and customers were always impressed because they knew I could do anything they asked me.

    So, I would say, get expert knowledge in a few technologies and throughout the years broaden your knowledge through experience.

    As an example: many concepts, such as OOA, OOD and OO in general, are apllicable to many languages. It really doesn't matter which OO language you choose, if you're good at designing your software in language x you'll do equally well in language y.
Add Comment