自分の状況を簡単に説明します。
自分は未経験からエンジニアになり、業務経験は半年ほどです。
業務ではRubyを書きつつ、
・C言語の技術書を2冊半ほど写経(『苦しんで覚えるC言語』『新・明解C言語 中級編』『C言語で学ぶアルゴリズムとデータ構造(途中)』)
↓
・swiftの学習
と進んできています
よく話題になるテーマだと思うのですが、自分なりの切り口で書いてみようと思います。
「そんな未熟者が偉そうに…」と思われた方、すみません汗
適当に読み飛ばしてください。
自分の考えは、
###「必要でない場合が多いけど、できるならやっておいた方がいい。」
です。
理由は「参照情報が増えるから」です。
参照情報とは簡単にいうと記憶のことです。
例えば、
①今まで行ったことのない店に行く
②何度か通りかかったことがある店に初めて行く
③行きつけの店に行く
の3つを難しい順に並べるとどういう順番になるでしょうか?
いうまでもなく① > ② > ③の順で難しいです。
これらの違いは「道順をどの程度記憶しているか」に起因しています。
同じもしくは似た記憶が少しでもある方がやり易く、またその記憶も鮮明であるほど行うのが容易になっていきます。
自分たちが何かを理解しようとするとき、すでに持っている記憶や経験と照らし合わせて分かろうとします。
その意味で記憶=参照情報です。
なのでその事柄に関する記憶、もしくは似た体験の記憶があるほど理解と行動が容易になります。
プログラミングに話を戻すと、
C言語には他の言語では考えなくてもいい部分を考える必要があります。
他の言語では自動でやってくれる部分を手動で操作するようにできています。
自動車でいうと、オートマ車でもマニュアル車と同じくギアの切り替えはしていますよね。
ただその部分を自動車がやってくれるので運転手が意識する必要がなくなっているだけです。
それと同じことなんですよね。
逆に言えば、考えることが多いC言語を学習することで、プログラミングに関する豊富な参照情報を得ることができます。
その結果、コードを読んで理解するスピードが速くなったり、新しい言語を習得するのが簡単になったりします。
業務や独学の中で「ああC言語でいうとあれのことね」「これってC言語の構造体と似てるな」と記憶と紐づく場面が何度もあります。
ですので自分の結論は、
「必要でない場合が多いけど、参照情報を増やすためにC言語を学習した方がいい」
です。
###参考図書
小沼勢矢『自分の脳に合った勉強法』
https://www.amazon.co.jp/%E8%87%AA%E5%88%86%E3%81%AE%E8%84%B3%E3%81%AB%E5%90%88%E3%81%A3%E3%81%9F%E5%8B%89%E5%BC%B7%E6%B3%95-%E5%B0%8F%E6%B2%BC%E5%8B%A2%E7%9F%A2/dp/4894517906