読者です 読者をやめる 読者になる 読者になる

mcommit's message

大阪でソフトウェア開発の仕事をしている simotinこと宮崎といいます。記事の内容でご質問やご意見がありましたらお気軽にコメントしてください\^o^/

英語を勉強する理由

f:id:simotin13:20140830111641j:plain

中学高校生時代に勉強する5教科の中で、社会人になって、今一番自分の役に立っているのは

「英語」

だと思います。

僕は文系出身なのですが、恐らく理系の方が英語に接する機会は多いのではないかと思います。

社会人になってからずっとプログラミングの仕事をしていますが、
プログラマーとして英語に接する機会について少し書いておきたいと思います。

マニュアルを読む

私は主に組み込み系のプログラミングの仕事をしてきました。
組み込み系のプログラミングというのは、炊飯器やテレビや電子レンジのような家電製品や、
自動車やカーナビやコピー機(複合機)といった機械などを動かすためのソフトウェアのことを指します。※WebページやWindowsのソフト等を作るのとはまた違った知識が求められます。


組み込み系プログラミングでは、電子部品(CPUやIC等と言われます)の使い方を理解するところから始まります。

電子部品は当然その部品を作った会社が取扱説明書を出していて、プログラミングの仕方はもちろん、基板への設置の仕方等いろいろな情報を提供してくれています。

この取扱説明書は、一般的に「データシート」とよばれますが、
電子部品メーカーとしては、当然たくさん売りたいのでデータシートは英語で書かれていることが多いです。
※たくさんの言語のデータシートを作るのはそれなりに手間のかかることなので、英語で書かれていることが多いです。

海外のメーカーはもちろんですが、日本のメーカーの製品であっても、英語のデータシートしかない場合もあります。


例えば、最近ではRaspberry Piや、BeagleboneBlack等の小型Linuxボードが流行っていますが、
BeagleboneBlackで使われているCPU、AM3358のマニュアルはこちらになります。


1 Device Summary

を簡単に要約すると、

特徴として、
・最大1GHzで動作する、ARM Coretex-A8 を採用した 32bit RISC CPUである。
・内蔵メモリとしてL3 RAMを搭載している。
・外部メモリとして、DDR2,DDR3,DDR3Lと接続できる
・RTCを搭載している
・最大6CHのUART接続ができること

等々いろいろな情報が書かれています。

こういったデータシートは英語版しか入手できないことが多いので、きちんと部品について理解しようとすると
自身で読みこなして理解しなければなりません。
※自分で要するに英訳しろということです。

そして電子機器に限らず、テクノロジーに関する仕事では、英語の論文等からも情報を仕入れることが当たり前のように求められます。

そうはいっても英訳するというのはなかなか辛い作業なので、メーカー等では自社に関係のありそうな論文を人を雇って定期的に
翻訳させたりしている会社もあります。
※実際、英語が得意な非技術者の方が仕事でそういった論文を訳しているのを職場で見たことがあります。

オープンソース

オープンソースとは簡単にいうと、プログラムをみんなで共有して、力を合わせていい製品を作ろうという趣旨で、
ソースコードを公開することを指します。
基本的にはソースコードをインターネット上で公開するので、オープンソースに取り組む人たちは世界中の人たちと一緒に
取り組むことになります。
※現在ではGithubというソース共有サービスが凄く普及しています。

世界中の人たちと一緒に開発を進めるので当然「言葉の問題」が出てくるのですが、
必然的に「英語」を共通語として開発が進められることになります。

僕の好きなプログラミング言語Rubyという言語があります。

Rubyは日本人のまつもとゆきひろさんがオープンソースで開発を始めたものです。
最初は、まつもとさんを中心に日本人が開発をしていたのですが、Rubyが世界に普及していく中で
海外のプログラマーRubyの開発に参加するようになりました。

そして、開発の際のコミュニケーションも日本語中心から自然と英語中心に変わっていきました。

現在では英語のメーリングリストを中心に開発が進められており、日本人同士でも
英語を使ってコミュニケーションされています。
参考 https://www.ruby-lang.org/ja/community/mailing-lists/

海外の技術者とのコミュニケーションをとる

もう数年前になりますが

「オフショア開発」という言葉が流行った時期がありました。

ソフトウェアの開発には人件費がかかるので、海外の人件費が安いプログラマーに開発させようという取り組みです。

実際にやってみると、商習慣や文化の違いのためにうまくいかないことが多いみたいなのであまり流行っていないようですが
実際にオフショア開発する場合は現地の担当者とは英語で電話やメールのやり取りをする必要が出てきます。

私自身の経験でいうと、あるメーカーに派遣作業の面接に行ったとき、そのプロジェクトはインド人の技術者を使った
オフショア開発をしていたのですが、面接の場で

「英検2級は持っていますけど」

とお話しすると

「ほんとですか!?それは心強いです!」

とすごく食いついていろいろ質問してくださったことがありました。
技術者でも英語が苦手な人は多いので、そういった環境では少しでも英語ができると頼もしく思われることが多いです。

どのような英語力が求められるのか

こうやって書いてみると、ソフトウェアの技術者はすごい英語力が求められるように見えますが、
少なくとも技術文書等で書かれる英語というのは比較的シンプルな文章が多いです。
英訳する際は、専門用語が多く出てくるので気を付けなければいけませんが、技術者が日常的に使っている用語は
英語をそのままカタカナとして使っていることが多いです。
コンピュータ、CPU、クロック、フレームワーク・・・どれも日本語訳ではありませんし、日本語に訳するよりも英語のまま理解して使われる用語です。
※日本語訳の良し悪しは別としてコンピュータのことを計算機という人や、CPUのことを中央演算装置という人はあまりいません。

なので、基本的な文法をマスターしておけばある程度は理解できると思って大丈夫だと思います。
※残念ながら、ビジネス英会話に関しては自分もあまり経験がないのでこの場で触れることができません。
なので中高生・大学生の皆さんには英語に対する苦手意識を早めになくしておいて欲しいです。

僕も学生の時は、

「周りに外国人がおらんのに英語なんか勉強していつ使うんだろう?」
「外国人と関わらなければ一生英語なんか使うこともないやろう。」

と思っていました。

しかし、社会人になってみて上記のように英語に接する機会はとても多いことに気づきました。
インターネット社会になったことも要因として大きいと思います。
そしてこれからも日本社会で英語を使う機会が増えることは間違いないと思います。

いち、ソフトウェアの技術者の発言ですが、英語を勉強することに疑問を感じている
学生の皆さんはご参考にしてみてください。