言語は所詮道具なのでちゃんとしたエンジニアはすぐに覚えると言いますが

言語は所詮道具なのでちゃんとしたエンジニアはすぐに覚えると言いますが・・・、半分合っていて半分合ってないような。

確かに基本的な考え方というのは大体同じなので・・・OOP、関数型とかガラリと変わるとそうでもないか・・・、基本的な部分を理解するのはそうでもないと思う。

ただ、イマドキの言語ってやれることが増えていたりAPIやライブラリがやたらと充実しているので、それをどこまで「知っているのか」が生産性に直結するというか。
一昔前は「C言語知っていれば他の言語も大体なんとかなる」みたいなことをよく聞かされていたけど、明らかに状況が違う。

例えば、PHP
セッション処理は session_set_save_handler によりオーバライド可能という話もそれなりにPHPをやってきた人にとっては「当たり前といえば当たり前」なんだろうけど、仕事で初めて使うハメになったエンジニアはどの段階でそれに気付くのか。
逆にJavaの場合、自分はよく知らなくて「セッションにユーザ定義の処理を当てる方法」がいまだによく分かってないのだよね。
実際には「知らないだけですごくいい方法」があるはずであるのだが、下手をすると「いい方法」の何倍も手間隙かけて実装しちゃうかもしれないね。


また、PHPの例だけど。
2、3年ぐらい前の状況で話をすると、「PHPを仕事で使ったことがある」といった人々でもPEARのDBの存在を知らないことが割とあったのに結構驚いたことがあって・・・エンジニア歴10年とかそういう人達でもそういう状況ではあったので、その時も「知らないことを知る」といった意味で習熟度はあるのだなぁ、と思った。

だからこの先しばらく食えそうなものをひとつ「得意な言語」として決めて、ある程度極めるスタイルでいたほうがいい気がする。

たださ、不思議なんだけど、Webプレゼンテーションレイヤの言語だったら今はJavaPerlPHPRuby とか沢山あるんだけど・・・正直こんなにいらない・・・、他のアーキテクチャー・・・デスクトップアプリだったり携帯用アプリだったりとかって閑散としているよね。
携帯用アプリに対応できるLL言語ってないのかな。って、ある意味FlashLiteがそうなのかな、とか。

大体、「これを覚えればこれが出来る。あれを覚えればあれが出来る」って感じでどんどん興味が他のレイヤへ移っていくのが普通なんじゃないの?って思うのだけども、「これを覚えればこれが出来る」「あれを覚えればこれが出来る」というように、一つのレイヤの中でぐるぐる回っているだけなのがここ最近のトレンドの気がする。
どうなんだろ。