個人的に新入社員に教えたい言語ベスト3

4月といえば、新入社員が入ってくる季節。

IT系企業または部署なら、電話応対を教えたら、すぐにプログラミングについて教えこんでいくんじゃないかと思う。

 

自分が新入社員に教えるなら、何を教えたいか?

自分が新入社員のとき、何を教えてほしかったか?

新入社員の将来を考えるなら何を教えるのがいちばんためになるか?

 

といった視点から、新入社員に教えたい言語ベスト3を考えてみた。

第3位 Ruby

Rubyはすばらしいプログラミング言語だと思う。

読み手が直感的に認識できる表現ができて、意識して読みやすいコードを記述したときの清々しさというものを実感できるし、なんといってもオブジェクト指向を学ぶにも適している。

言語の文法だけをみると、かなり評価できると思う。

言語だけでなく、DRY(Don’t Repeat Yourself)の精神も学べるのが教育によい。

プログラムは気合いで記述するものではなく、センスで記述するものだという認識を持ってもらうのに適した言語、それがRubyだと思う。

そして個人的にRubyが一番好きだという理由から、個人的に新入社員に教えたい言語ベスト3に挙げた。

 

ただ、Rubyはまだ枯れた言語ではないため、プログラミング初心者が情報を調べるのは少し敷居が高いかもしれない。

転がっているRubyの情報の多くは、どちらかというとGeek(ギーク)寄りな人が発信していることが多いように思えるのは気のせいではないと思う。

CGIプログラムを作るにしても、堅実さを求める人は、PerlやPHPを使いたがる傾向にあり、あえてRubyを使う人というのは、趣味として言語を学ぼうとしている人か、冒険心の強い中・上級者が多いためだからだと思う。

 

Rubyを教えた後、まず最初のうちは、日々の業務を効率化するために社内で使用するツールなどを作らせながら馴染んでもらう。そして徐々にWeb系にシフトさせていくと、新入社員でも早い段階から戦力として数えることができるようになると思う。

ユニットテストの習慣も同時に教えることをオススメしたい。品質の担保がしやすくなる。

第2位 C言語

C言語はいい。初めて学ぶなら、C++ではなくて、C言語がいい。

なんといっても、基礎が身につく。

型、変数、関数、どれを使うにも、意図しなくてもメモリやポインタについて意識させられるから、コンピュータが動作する仕組みをイメージできるようになる。

 

また、枯れた言語であるため、検索すれば簡単にいくらでも情報が見つけることができる。

(初心者は検索エンジンをうまく使いこなすスキルも低いことが多いため、検索のしやすさは意外と重要な事だったりする。)

 

ところで、C言語のコーディングはなかなか時間がかかる。

言語設計が手続き型であることと、コンパイラ言語なのに型チェックが寛容で、キャストを多用しなければいけないという言語仕様にあると思う。

 

C言語しか知らない人が他の言語を勉強するとまず、C言語以外の高水準言語の表現力の豊かさに驚き、一時的には覚えることが多いと拒絶反応があるかもしれない。

しかしそこから言語について馴染んでくると、C言語よりも他の高水準言語のほうが、はるかに簡単に開発できることに気づくはずだと思う。

ここまでになると、適切な表現を駆使したコーディングやオブジェクト指向の本当の大切さを理解した、一流の技術者への成長が期待できるようになる。

(高水準言語を覚えてからC言語をすると、C言語でも工夫次第で他の言語の表現と同じような記述ができる部分もあることに気づけるなら、その人はセンスがあるかもしれない。)

 

ただしC言語を覚えただけの段階では戦力にはならず、C言語の仕事をするにしてもC++を学ばなければ話にならないため、C言語を教えている間は本当に教育期間として割り切る必要がある。

ベンチャー企業かC言語スキルが業務に必要な企業であれば、C言語という基礎から教えていくことについて会社の理解を得やすいと思うが、その他一般的なレベルの企業では、なかなか理解が得られないかもしれない。

第1位 英語

それプログラミング言語じゃねー!

とツッコミたい気持ちもあるかもしれないが、この記事のタイトルをもう一度見てほしい。

「新入社員に教えたい言語ベスト3」だ。

英語だって言語なのだから、ランクイン可能ということにしてほしい。

 

ところで、なぜ英語なのか?

答えは当然、「技術者が技術力を高めるためには英語は必要な言語だから」だ。

新しい技術情報やニッチな情報は、日本語だけで探していたのでは見つからないことが多い。たとえ苦労して最終的に日本語で見つけることができた情報であったとしても、範囲を英語に広めて探せば実はすぐに見つかる情報だった、ということも多いと思う。

プログラムのエラー表示なんかも、英語で表示されることが多いわけだし。

 

話はそれだけにとどまらない。

よいプログラムの必要条件の一つが、適切な変数名、適切なクラス名、適切なメソッド名がつけられていることだ。

日本語を単にローマ字入力しただけの変数名やクラス名、メソッド名は、読みにくい。

ただでさえローマ字変数などは日本人が読んでも分かりにくいのに、日本人以外が読んだらおそらく、変数名、クラス名、メソッド名から情報を得ることはもう無理なんじゃないかと思う。

 

さらに、英語でカッコよく入力したつもりで単語の綴りが間違っていては、読み手の集中力を欠くノイズを作り出す。

「value」をミススペルで「velue」と書き、それがコピペでプロジェクト全体に広がっているなんてことは、残念ながら私の勤め先では日常茶飯事だ。

 

だから、技術者なら若いうちから英語に馴染んでおくべきだと思う。

私の場合、英語は話せるレベルではないし、おそらく正しい文法で英文を書くこともできないようなレベルだと思う。

でも、学生の頃から英和辞典を引きながら英語の技術文書を読んでいたおかげで、英語を読むことへの抵抗は無い。

今でも英文を読んでいると、分からない単語や熟語にたびたび出会うが、それでも調べながら読み進むことはできる。

技術者で技術力を身につけたいのなら、これくらいの英語力は当然として必要だと思う。

 

とはいえ、入社してから会社が教えていたのでは、利益を生み出す戦力になるまでにいったいどれほどの月日がかかるか分からない。

理想は英語に強い人を採用すること、そうでなかったら自主的な英語学習を勧めることだろう。

英語を教えていたのでは時間がいくらあっても足りないが、英語学習の大切さについてくらいは教える価値はあると思う。

言語がその人の技術力を決定する

日本人とアメリカ人では、なにかこう、テンションというか、ノリの質が違う。

それはその風土や文化、遺伝からくるものもあるかもしれないが、やはりコミュニケーションの基本である言語の違いというのも大きく関係していると思う。

 

プログラミング言語の場合も同じで、あるものを開発(表現)しようとするときに、表現力の豊かさや性質が、ものを作る能力に影響することは間違い無い。

だから新入社員に学ばせる言語は、テキトーに選ばずに、よく考えてから選んでほしい。

初めて学習する言語が何であるかによって、その新入社員のその後の一生を、大きく左右することになるかもしれないのだから。

コメントを残す

トラックバック: http://pgnote.net/wp-trackback.php?p=82