人類働くべからず

いずれ労働は贅沢になります

ソフトウェアエンジニアの新卒の学習用の言語は何がよいか2017

はじめに

毎年のようにソフトウェアエンジニア新卒がどの言語でプログラミングを覚えるべきか論が出るので、参戦しておきたかった。

結論

Go or Python(3)

理由

初めてプログラミングをしてみた時、今思えばどうでもいいようなことにハマって、最初のコードを動かすまでに手間取ったり、おまじないが多すぎて腑に落ちない部分が多かったりしなかっただろうか。

そこそこ普及していて、かつ言語仕様がさほど大きくなく、Hello world するまでにおまじないが少ないものあたりがわかりやすい理由。
例えその組織のメイン言語でなくとも、プログラミングの本質的なところを理解するためにはこれらを採用した方がベターかなと思う。

Go は標準ライブラリが充実した、Google が考えたさいきょうのベターC言語な感じがするので、やりたいことに集中できる感じ。
Python も初学者の学習レベルであればほぼおまじないはいらないし、まあまあ簡潔に書けるので、これもまた同様にやりたいことに集中できる。

理由に対する反論(自問自答による)

  • 本質を理解するならC言語でいいのでは??
    • C99以降のC言語ちゃんとわかってる人、いうほどいないのでは?古いC言語を教えても完全に教材用となってしまう。
  • Java がやっぱり手堅いのでは?
    • おまじないはやっぱり多いし……
  • Hello world! までおまじないが少ない方がいいならPHPでいいのでは?よく使うし実用性・即戦力育成観点からもありなのでは?
    • PHPは個人的には好きだし便利だけど、プログラミング初学者にやらせるには行儀が悪すぎるし変なクセがつきそうなので却下。繰り返しになるが個人的には好きな言語。
  • Ruby でいいじゃん?
    • すみません、好みの問題です……ありだとは思います。
    • ただ、教える側の質的な問題で、Railsでアプリ書けますむしろRailsしか知りません!みたいな人しかいない場合、PHPとはまた違った意味で変なクセがつきそうなので、「わかってる」人がメンターにつくならいいと思います。

おわりに

Go はいいぞ。Pythonもいいぞ。