I got started in software in the late 90s. At that time, there were immense philosophical differences between the communities that drove each programming language. Perl had a well known culture, which was utterly different than what the Python folks were doing. The people around Java were excited about the thought of building the ultimate enterprise language, and there was talk of some day automating UML schemas so that projects would only need architects, not actual coders -- an idea utterly foreign to the Python crowd. Ruby's culture was shaped by Matz, who said that programmers should experience joy while working. PHP rejected all the hype about Object Oriented Programming, instead, PHP was for people who wanted to write programs using a collection of functions, with an emphasis on quick and dirty projects -- and in an era when there were no package managers, PHP's "all in one" philosophy was a real blessing. A huge amount of code was included in the default install of PHP. And C programming was a different beast depending on whether you were focused on Unix machines, or Windows, or Macs.<p>The idea of Open Source was still in its early days, and only Perl had a great central library of code that was free for anyone to use.<p>And of all these languages, most were hot with a fanatic idealism about how Object Oriented Programming would solve the problems of the tech industry. Those languages that rejected Object Oriented Programming (Python and PHP, and also, to a lesser extent, Perl) were proud of their defiance, till the moment (a few years later) when they gave in and decided to become Object Oriented.<p>There has been a convergence of culture. Nowadays most programming languages have all of the same things:<p>1.) package managers to manage your dependencies<p>2.) frameworks with command line tools to automate setup and database migrations<p>3.) multi paradigm -- most languages now facilitate Object Oriented Programming, but also Logic programming and Functional programming and pattern matching, and other paradigms.<p>4.) open source libraries of code for everything, typically on Github<p>Nowadays I can go from writing in Python to writing in Javascript, and most of the stuff I expect is exactly the same in both languages. I can think these words about practically any language that I am asked to work with: "Oh, I have to write a module to send email to new users? Okay, let me look up the open source libraries that handle email. There are probably a dozen projects on Github"<p>There is much more of a mainstream to computer programming than their used to be. This "normalization" happened first with software for the Internet, though lately its even been spreading to hardware projects. A few languages (Clojure, Haskell) still have strong philosophical differences from the mainstream, but they offer the common basics, like any languages that nowadays wants to make a programmer feel productive.<p>So these lists of skills are less meaningful than they used to be. Once upon a time it would take months to give up one language and learn a new one, whereas nowadays the switch is easier, since so many assumptions that are true in one language remain true when you switch to a different language.