[ SE / PG ] 新入社員の技術者が覚えるべきたった1つの言語

Pocket

先日、とある有名な就職・転職支援企業の新入社員さんが営業にこられました。ここ最近いわく付きの名刺交換をしてほしいとのことでしたので交換しました。当然若い女性だったことが理由です。

「求人載せませんか?」って営業電話が鳴り止まなくなるのでしょうか?まさか、「転職しませんか?」って連絡はないですよね。

スポンサーリンク

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

個人的に新入社員に教えたい言語ベスト3」 ということで紹介されていた言語は、

第3位.Ruby

第2位.C言語

第1位.英語

です。特に英語を教えたい理由としては次のように言われていますので、一部抜粋して掲載します。

よいプログラムの必要条件の一つが、適切な変数名、適切なクラス名、適切なメソッド名がつけられていることだ。
日本語を単にローマ字入力しただけの変数名やクラス名、メソッド名は、読みにくい。

さらに、英語でカッコよく入力したつもりで単語の綴りが間違っていては、読み手の集中力を欠くノイズを作り出す。
「value」をミススペルで「velue」と書き、それがコピペでプロジェクト全体に広がっているなんてことは、残念ながら私の勤め先では日常茶飯事だ。

従って、技術者は英語が必要とのことです。もちろん、英語でしか得られない情報も大いにあるでしょう。私も、英語ができたほうが良いと思います。それに、金髪のおねーさんとお話したいから英語はできたほうが良いと思います。RFC なる英語の文書を読めるようになるために英語が必要というのとは、モチベーションが違います。

正直、第1位に英語とされた人の会社には、優秀な人ばかりいるのではないかと感じました。羨ましくも感じます。英語ができないために、適切なクラス名やメソッド名をネーミングできないのであれば、おそらくあっという間に改善すると思います。プログラムでよく使われる単語や慣例などは言語間の違いはあれど、たかが知れています。繰り返しますが、あっという間に改善するでしょう。

なぜかというと、私が出会うエンジニア・プログラマと言われる人たちは、英語ではなく日本語ができていないからです。クラス名やメソッド名は、何に対して、何をやっているかを表現しています。メソッド名と処理内容がまったく違うことがよくあります。この原因は、英語ができないないために適切なネーミングができないのではなくて、自分が何をやっているかを理解していないことが多い印象です。

メソッド名をつけた人に英語云々ではなく、日本語で何をするメソッドなのかを聞いてみるとわかると思います。おそらく、理解できていないことがわかるでしょう。また、設計者にもヒアリングすることが何よりも大切です。適当な設計書を書いて(仕事したフリして)、何も理解(設計)できていないことがわかると思います。やりたいことを箇条書きにするだけの人は必要ありませんから。

SE / PG などと呼称に違いがありますが、基本的にプログラムを書く PG ばかりが悪いわけでは決してありません。ここは特に言いたいです。意味不明な設計書であれば、適切でわかりやすい設計書とする必要があります。プログラミング以前の問題です。SE と呼ばれる人たちのほうが日本語の教育が重要だと思います。

私も日本語は苦手ですけどね。あと、SE / PG の区別がなくなると、日本では困る人が大勢います。

この記事を書き出す前は、

『 新入社員のエンジニアが学ぶべきたった一つの言語とは、日本語です。』

と締めくくりたかったのですが、すでに日本語の問題ではなくなってしまいました。わかりやすい表現を使うと 「バカを直せ」 と言っているようなモノですからね。

以上です。

英語圏の人から見たプログラム

プログラムを日本語で組めたら良いと個人的には思います。

もしも ( あいつがここにいたら ) 
{
    消えてしまえばいいのに(); 
} 
さもなくば
{
    出力 ("このルートを通ったら例外");

    例外飛ばす("ありえないから、まじで、消えて!!");
}

こんなネーミングはヤメロシリーズ

色々あるとは思いますが、個人的なモノです。親父の小言風に列挙しています。

  • common とか使うな
  • comm も使うな
  • com も使うな
  • check とか使うな。
  • 配列やリストはせめて複数形で定義しろ
  • 変な英語は使うな
  • 変な日本語も使うな
  • せめて path と name は区別しろ
  • kbn って使うな
  • コメントは変数の一部と思え
  • int session_id とかに、コメントで堂々とセッション番号とか書くな
スポンサーリンク

Pocket

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>