2014-04-29

新入社員に「どのプログラミング言語を学べばよい?」と聞かれたら

(と聞かれた時に答えられるよう、メモしておきます

まずは、いま自分の置かれている状況から、どの言語を選ぶべきかを考える。

複数の要素があるなら、優先順位をつけること。

参考として、僕の考える優先順位は以下のようになる。

 現在仕事>次の仕事自分が実現したいもの(システムアプリゲームなど)を作るための言語世間流行



世間流行最後に持って来るべき。

まずは目の前のことをきちんと片付けられるひとになろう。

焦燥感などあるかもしれないが、雑誌ブログ必要以上に煽る傾向がある。なぜならそれで稼ぐひともいるからだ。

他人が進める技術ポジショントークだと思って問題ない。自分とは立場が違うからと、参考程度に読むべき。

流行は過ぎ去るのが早い。習得したが流行が次に移る可能性もあるので、博打すぎる。

仕事で使われている言語は、採用された経緯が絶対にあるので聞いてみるべき。

ハードOSの都合」「パッケージソフト」「社内に有識者が居る」「お客様の指定」のように、だいたいは大人の事情であることが多く、選定される言語会社現場によって違う。

また、仕事ソースコードを書く場合は、作成後「保守」「運用」と言った、作ったものに手を加えることが必ずと言っていいほど発生する。保守運用は実装者以外が担当することも多い。それらを想定した引き継ぎや改修のコスト考慮され、言語の選定が行われている。

そのため、仕事で使用する言語はだいたい似たような作りになっている。あまりかけ離れたものだと技術者の確保が難しく、教育コスト馬鹿にならないからだ。

まりひとつ仕事で使用する言語を「高いレベルで」習得すると、他の言語になっても多少の違和感レベルで移行ができるようになる。繰り返すが、まずは目の前の仕事で使われている言語を修得することだ。

そして次のステップで、余裕ができたとき自分が実現したいもの制作しよう。

まず、実現したいもの要件定義をしよう。どんな環境で動くものなのか。ブラウザ必須アプリがよい?どんなライブラリを使ったら楽になるのか。データベース必要なのか。グラフィックは凝る必要があるか。

と、考えていくと、自ずと言語は見えてくるはず。

はじめての場合は、使用ユーザが一番多いものを選ぶとよい。ユーザが多いということは、情報がたくさんあるということ。ググったら出てくるのは素晴らしい。

そして、使用者が多いとバグも少なくなっているということだ。知らない分野であると、自分ミスなのかバグなのかの判断がとても難しい。

着手する前に、作りたいもの技術をどう実現できるかを前もって調べて、詰まって投げ出さないように予防線を張ろう。

また、1つの作品を完成させる経験は絶対に必要だと思う。

部分の理屈は解っていても手を動かさないと見えてこないものがある。

意外に準備が必要だったり、素材作りやデータ入力での反復作業、部品を結合したときに気づく設計重要性、リファクタリングテスト観点だったりと。

最初から最後まで見通すことができると、他人から作業を振られた時に、どの部分をやっているかが見えてくるようになる。振られた内容に不備不足を見つけてプロジェクトに進言できる人は、プロジェクトで重宝されて居心地がよくなるのでオススメ

ということで、まずは規模が小さいものを作るとよいと思う。大きいものチャレンジしても、社会人になると時間も少ないので途中でやめてしま危険もある。例えば、仕事中で感じる何か1手順を楽にするようなものとか、ある個人の作業が楽になるようなものなどが、要件が把握できる規模なので、ちょうどよいと思う。先ほど考えた「自分が実現したいもの」は、その後でもよいと思う。僕の経験から、大きいものを作っていると知識が溜まっていくに従って最初から作り直したい病が発生するからだ。

簡単に要点をまとめます



以上。着手前の心構え的な部分を書いてみました。

(と、僕も日本語を高いレベル習得したく、増田で練習しているわけでして…)

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん