Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. narrow-and-deep or shallow-but-wide .. what is the best strategy ?

narrow-and-deep or shallow-but-wide .. what is the best strategy ?

Scheduled Pinned Locked Moved The Lounge
question
31 Posts 23 Posters 26 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • D Offline
    D Offline
    Duncan Edwards Jones
    wrote on last edited by
    #1

    There is so much in IT these days (so many languages, frameworks, architectures, platforms etc.) that it is unrealistic for a person to have a reasonable knowledge of all of it. That being the case, which is the best strategy to pursue: pick a narrow field and develop a deep knowledge about it or pick a set of fields and develop shallow (but non-zero) knowledge about them all?

    R D OriginalGriffO C V 21 Replies Last reply
    0
    • D Duncan Edwards Jones

      There is so much in IT these days (so many languages, frameworks, architectures, platforms etc.) that it is unrealistic for a person to have a reasonable knowledge of all of it. That being the case, which is the best strategy to pursue: pick a narrow field and develop a deep knowledge about it or pick a set of fields and develop shallow (but non-zero) knowledge about them all?

      D Offline
      D Offline
      den2k88
      wrote on last edited by
      #2

      Apart from all the double-senses of the title, I'd go for a narrow-and-deep. This is a personal preference: as I prefer working in R&D it is much more useful ans expendable a deep knowledge about some medium-narrow fields (i.e. x-ray computer vision, SCADA systems). For example I have virtually no knowledge of web frameworks and architectures, nor .NET framework or scripting languages as Python - my work is pretty much algorithmic and tailor made so there is nothing in any framework that can help me, not even OpenCV.

      Geek code v 3.12 {      GCS d--- s-/++ a- C++++ U+++ P- L- E-- W++ N++ o+ K- w+++ O? M-- V? PS+ PE- Y+ PGP t++ 5? X R++ tv-- b+ DI+++ D++ G e++>+++ h--- r++>+++ y+++*      Weapons extension: ma- k++ F+2 X }

      1 Reply Last reply
      0
      • D Duncan Edwards Jones

        There is so much in IT these days (so many languages, frameworks, architectures, platforms etc.) that it is unrealistic for a person to have a reasonable knowledge of all of it. That being the case, which is the best strategy to pursue: pick a narrow field and develop a deep knowledge about it or pick a set of fields and develop shallow (but non-zero) knowledge about them all?

        R Offline
        R Offline
        RossMW
        wrote on last edited by
        #3

        It really depends on your own personal preference. Being a jack of all trade, but a master of none generally means there is a lot more variety on the work you do. But you never become an expert in anything This does give you a broad knowledge base for IT management, if that's what you want Everyone is different. Personally I like the variety of different technology and work as I get bored doing the same thing all the time.

        P 1 Reply Last reply
        0
        • D Duncan Edwards Jones

          There is so much in IT these days (so many languages, frameworks, architectures, platforms etc.) that it is unrealistic for a person to have a reasonable knowledge of all of it. That being the case, which is the best strategy to pursue: pick a narrow field and develop a deep knowledge about it or pick a set of fields and develop shallow (but non-zero) knowledge about them all?

          OriginalGriffO Offline
          OriginalGriffO Offline
          OriginalGriff
          wrote on last edited by
          #4

          Primarily, narrow and deep - but with a "working knowledge" of the wider environment. Because if you don't, then you risk missing things which could really help in your specialisation.

          Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...

          "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
          "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt

          1 Reply Last reply
          0
          • D Duncan Edwards Jones

            There is so much in IT these days (so many languages, frameworks, architectures, platforms etc.) that it is unrealistic for a person to have a reasonable knowledge of all of it. That being the case, which is the best strategy to pursue: pick a narrow field and develop a deep knowledge about it or pick a set of fields and develop shallow (but non-zero) knowledge about them all?

            C Offline
            C Offline
            chriselst
            wrote on last edited by
            #5

            Duncan Edwards Jones wrote:

            pick a narrow field and develop a deep knowledge about it

            Just be careful which field you specialise in. A number of years ago I was told I was the most advanced in the UK at the technology I was using, then discovered there were only three other companies using it, and not many more in the rest of the world. Made finding new jobs in it kind of tricky.

            Some men are born mediocre, some men achieve mediocrity, and some men have mediocrity thrust upon them.

            1 Reply Last reply
            0
            • D Duncan Edwards Jones

              There is so much in IT these days (so many languages, frameworks, architectures, platforms etc.) that it is unrealistic for a person to have a reasonable knowledge of all of it. That being the case, which is the best strategy to pursue: pick a narrow field and develop a deep knowledge about it or pick a set of fields and develop shallow (but non-zero) knowledge about them all?

              V Offline
              V Offline
              V 0
              wrote on last edited by
              #6

              Honestly I believe a shallow-wide approach is better because you can do more in more areas and you can still dig down when time calls for, but, since I'm that profile myself, I feel this is not desired by companies who really want experts in a narrow field nowadays. However this trend of wanting experts might change again the future.

              V.
              (MQOTD rules and previous solutions)

              1 Reply Last reply
              0
              • D Duncan Edwards Jones

                There is so much in IT these days (so many languages, frameworks, architectures, platforms etc.) that it is unrealistic for a person to have a reasonable knowledge of all of it. That being the case, which is the best strategy to pursue: pick a narrow field and develop a deep knowledge about it or pick a set of fields and develop shallow (but non-zero) knowledge about them all?

                A Offline
                A Offline
                Amarnath S
                wrote on last edited by
                #7

                Jack of all, and Master of one. This is advice I heard about 30 years ago, and I like it.

                1 Reply Last reply
                0
                • D Duncan Edwards Jones

                  There is so much in IT these days (so many languages, frameworks, architectures, platforms etc.) that it is unrealistic for a person to have a reasonable knowledge of all of it. That being the case, which is the best strategy to pursue: pick a narrow field and develop a deep knowledge about it or pick a set of fields and develop shallow (but non-zero) knowledge about them all?

                  L Offline
                  L Offline
                  Lost User
                  wrote on last edited by
                  #8

                  Wide Wide Wide if you are in it for the long term and the fun of it. Specialise on many different things during your career. If you follow the narrow and deep, you could be lucky, or you could be the equivalent of a bloody brilliant VB6 developer.

                  PooperPig - Coming Soon

                  D 1 Reply Last reply
                  0
                  • D Duncan Edwards Jones

                    There is so much in IT these days (so many languages, frameworks, architectures, platforms etc.) that it is unrealistic for a person to have a reasonable knowledge of all of it. That being the case, which is the best strategy to pursue: pick a narrow field and develop a deep knowledge about it or pick a set of fields and develop shallow (but non-zero) knowledge about them all?

                    L Offline
                    L Offline
                    Lost User
                    wrote on last edited by
                    #9

                    Duncan Edwards Jones wrote:

                    That being the case, which is the best strategy to pursue: pick a narrow field and develop a deep knowledge about it or pick a set of fields and develop shallow (but non-zero) knowledge about them all?

                    Most team will have various specialists (more than one field) and multiple generalists. It would depend on which type of narrow field - it might not be the best strategy to specialize in something that is obsolete :)

                    Bastard Programmer from Hell :suss: If you can't read my code, try converting it here[^][](X-Clacks-Overhead: GNU Terry Pratchett)

                    1 Reply Last reply
                    0
                    • L Lost User

                      Wide Wide Wide if you are in it for the long term and the fun of it. Specialise on many different things during your career. If you follow the narrow and deep, you could be lucky, or you could be the equivalent of a bloody brilliant VB6 developer.

                      PooperPig - Coming Soon

                      D Offline
                      D Offline
                      Duncan Edwards Jones
                      wrote on last edited by
                      #10

                      I was a bloody brilliant minded VB6 developer... but that was ages ago :-)

                      L 1 Reply Last reply
                      0
                      • D Duncan Edwards Jones

                        I was a bloody brilliant minded VB6 developer... but that was ages ago :-)

                        L Offline
                        L Offline
                        Lost User
                        wrote on last edited by
                        #11

                        So you've *widened* your horizons - as per my advice ;)

                        PooperPig - Coming Soon

                        D 1 Reply Last reply
                        0
                        • R RossMW

                          It really depends on your own personal preference. Being a jack of all trade, but a master of none generally means there is a lot more variety on the work you do. But you never become an expert in anything This does give you a broad knowledge base for IT management, if that's what you want Everyone is different. Personally I like the variety of different technology and work as I get bored doing the same thing all the time.

                          P Offline
                          P Offline
                          Pualee
                          wrote on last edited by
                          #12

                          I'm really the opposite. I'd rather be the expert in a given technology and do the same types of things over and over, doing them very well and with confidence. However, it seems my life has turned into shallow but wide... probably because it is far easier to find a job like that. However, I think having a deep knowledge of 1 thing provides a much better salary (as evidence by the hiring process). Nobody values shallow but wide... they just think you have only a shallow understanding of the handful of skills they want.

                          1 Reply Last reply
                          0
                          • L Lost User

                            So you've *widened* your horizons - as per my advice ;)

                            PooperPig - Coming Soon

                            D Offline
                            D Offline
                            Duncan Edwards Jones
                            wrote on last edited by
                            #13

                            I have indeed. This latest question is related to my trying to decide whether it is worth my while undertaking the (significant) effort to learn the Modelling SDK to do CodeGen and DSL stuff or not...

                            1 Reply Last reply
                            0
                            • D Duncan Edwards Jones

                              There is so much in IT these days (so many languages, frameworks, architectures, platforms etc.) that it is unrealistic for a person to have a reasonable knowledge of all of it. That being the case, which is the best strategy to pursue: pick a narrow field and develop a deep knowledge about it or pick a set of fields and develop shallow (but non-zero) knowledge about them all?

                              M Offline
                              M Offline
                              Marc Clifton
                              wrote on last edited by
                              #14

                              Duncan Edwards Jones wrote:

                              pick a narrow field and develop a deep knowledge about it or pick a set of fields and develop shallow (but non-zero) knowledge about them all?

                              Neither. If there's a requirement for a particular tech which you don't currently know, then learn it on the job. On the other hand, at my personal leisure, I peruse various techs, check out some of the forums, etc. My basic conclusion is that there is a matrix a multidimensional matrix: 1. lightweight frameworks 2. heavyweight kitchen sink frameworks A. compiled languages B. JIT languages C. script languages X. Windows Y. *Nix Z. Android / iOS / Xamarin and their ilk I like to live in the 1-B-X box, and I really don't like the 2-C-Y box. Everything else is "ok, I'll give that a try and see how it goes." However, the C box is subdivided into things like 1) Javascript (possibly unnecessary evil, still haven't looked at Dart and TypeScript), 2) Python (had a decent experience with it), 3) and Ruby on Rails (refuse to ever code in it again, I'm actually going to take it off my resume, even if it leaves huge gaps.) So, I think it's actually worthwhile to fill out the matrix some more, figure out where you're most comfortable, what things you'd like to learn, and what experiences you've had that you never want to repeat. Marc

                              Imperative to Functional Programming Succinctly Contributors Wanted for Higher Order Programming Project!

                              1 Reply Last reply
                              0
                              • D Duncan Edwards Jones

                                There is so much in IT these days (so many languages, frameworks, architectures, platforms etc.) that it is unrealistic for a person to have a reasonable knowledge of all of it. That being the case, which is the best strategy to pursue: pick a narrow field and develop a deep knowledge about it or pick a set of fields and develop shallow (but non-zero) knowledge about them all?

                                N Offline
                                N Offline
                                newton saber
                                wrote on last edited by
                                #15

                                Both. But here's what I mean. Early on in your career you should: Be narrow and deep. Become an expert so you can get a specific job and get paid. Later on, as you progress in your career you should: Be (more) shallow and extremely wide. Know about a lot of things so you can know things are being done other ways so that when a problem arises you can go out, research it more in depth and make a good decision about whether or not you should incorporate that technology. That's why you really must be both. But give it time.

                                1 Reply Last reply
                                0
                                • D Duncan Edwards Jones

                                  There is so much in IT these days (so many languages, frameworks, architectures, platforms etc.) that it is unrealistic for a person to have a reasonable knowledge of all of it. That being the case, which is the best strategy to pursue: pick a narrow field and develop a deep knowledge about it or pick a set of fields and develop shallow (but non-zero) knowledge about them all?

                                  L Offline
                                  L Offline
                                  Lost User
                                  wrote on last edited by
                                  #16

                                  That depends, will you be a manager?

                                  1 Reply Last reply
                                  0
                                  • D Duncan Edwards Jones

                                    There is so much in IT these days (so many languages, frameworks, architectures, platforms etc.) that it is unrealistic for a person to have a reasonable knowledge of all of it. That being the case, which is the best strategy to pursue: pick a narrow field and develop a deep knowledge about it or pick a set of fields and develop shallow (but non-zero) knowledge about them all?

                                    S Offline
                                    S Offline
                                    Scott Serl
                                    wrote on last edited by
                                    #17

                                    Deep understanding of computer science fundamentals. Wide knowledge of current computer technologies (which you can quickly pick up using your deep understanding of fundamentals).

                                    G 1 Reply Last reply
                                    0
                                    • S Scott Serl

                                      Deep understanding of computer science fundamentals. Wide knowledge of current computer technologies (which you can quickly pick up using your deep understanding of fundamentals).

                                      G Offline
                                      G Offline
                                      Gary R Wheeler
                                      wrote on last edited by
                                      #18

                                      Best answer of the lot (says the geezer in the crowd).

                                      Software Zen: delete this;

                                      1 Reply Last reply
                                      0
                                      • D Duncan Edwards Jones

                                        There is so much in IT these days (so many languages, frameworks, architectures, platforms etc.) that it is unrealistic for a person to have a reasonable knowledge of all of it. That being the case, which is the best strategy to pursue: pick a narrow field and develop a deep knowledge about it or pick a set of fields and develop shallow (but non-zero) knowledge about them all?

                                        K Offline
                                        K Offline
                                        Kyle Moyer
                                        wrote on last edited by
                                        #19

                                        Shallow but wide. Why? If you only know how to use a hammer..... If you know enough about the various tools you have available to you, you're much more likely to pick the correct one for the job. Then, once you start that job, you can go deeper if you haven't already done so before.

                                        1 Reply Last reply
                                        0
                                        • D Duncan Edwards Jones

                                          There is so much in IT these days (so many languages, frameworks, architectures, platforms etc.) that it is unrealistic for a person to have a reasonable knowledge of all of it. That being the case, which is the best strategy to pursue: pick a narrow field and develop a deep knowledge about it or pick a set of fields and develop shallow (but non-zero) knowledge about them all?

                                          I Offline
                                          I Offline
                                          irneb
                                          wrote on last edited by
                                          #20

                                          Reminds me of a tongue-in-cheek saying in my mother language: "'n Halve verstand verg 'n goeie woord". Literal translation: Half a mind necessitates a good word. One meaning: To get someone to understand something partially, you need to describe it in complete detail.

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • World
                                          • Users
                                          • Groups