DEV Community

Discussion on: When do you become a Jack of all trades but a master of none?

Collapse
 
scheidig profile image
Albrecht Scheidig

If you have a deep understanding of a lower level language (like C) and a higher level one (like Java) plus maybe a functional language, then adding more languages should not make you a Jack of all trades.
Instead you get the pattern of a new language faster and you should have a gut feeling of what is going on when you use certain features of those languages.

I started (in that order) with C, Assembler, C++, Delphi, Java (functional language still missing). Knowing how to connect C functions with Assembler routines is not a thing I need for my day to day work, but it helped to understand the concept of by-reference and by-value parameters, stacks, scopes etc.
Knowing how to allocate and dispose memory by hand (and how to avoid leaks using certain patterns) helps me also in languages with a garbage collector to avoid leaking resources and to avoid wasting CPU time by producing a lot of short-term objects for instance.

Conclusion: The point is to have a deep understanding of maybe two languages. Otherwise you would be a master of none, and not even a Jack of all trades.