|
I think some people get lucky and can get away with living off being very deep in one language only, for long periods of time (like 10+ yrs). Eg. they are hardcore C++, and write compilers, or games, or find a good oppty at one of the big companies where they optimize code that runs on 100K+ servers, so it's a stable and well-paying job with lots of impact. But I think for most people, including me, having a good grasp of a "ground layer" of languages is the way to go. It just makes you more swiss-army-knife, it reduces risk, opens up opptys. For me, the base languages are: - C/C++: so you understand what happens under the hood, how memory is actually managed, how it can "leak" - Javascript(+HTML): so you can write your webapps - Python: useful on the server side, for data science, etc; the most useful overall probably - SQL: to get data out of your RDBMS; many people don't understand how powerful SQL is and end up writing imperative code that could be replaced with 5 lines of SQL, so this is a surprising blindspot for many otherwise good programmers. Beware of anybody telling you SQL is not a PL or it's not useful. A lot of your life runs on SQL, you just don't know about it. - Bash scripting: nobody actually remembers Bash, we just monkey our way to something that works :) ... and of course take some (sometimes entertaining) detours into Haskell, Prolog, etc. For me, the big blind spot is mobile development, so maybe +1 for that. |