&gt; but I&#x27;d say that just comes down to what language you&#x27;re most comfortable with and how good of a problem solver you are.<p>Techniques and concepts influence your ability to reason about problems.<p>If you don&#x27;t understand dictionaries (hashes), or trees, or macros, or reflection, or first class functions etc, then you will think about a problem very differently.<p>If you <i>understand</i> the concepts then you can usually get away with not having those features readily available in your language.<p>For example if your language doesn&#x27;t have strong macro support you can get away with using code-gen instead.<p>Likewise if your language doesn&#x27;t have built in dictionary support, you can get away with rolling your own, or finding a library that adds it.<p>Or if your language doesn&#x27;t support first class functions you can often get away with patterns like the command pattern instead.<p>But if you don&#x27;t <i>understand</i> the concepts then your ability to think about the problem becomes much more limited.