素人がプログラミングを勉強していたブログ

プログラミング、セキュリティ、英語、Webなどのブログ since 2008

連絡先: twitter: @javascripter にどうぞ。

高校生から、アメリカに行ってエンジニアリングを学びたい中学生への手紙

アメリカに行ってエンジニアリングを学びたい中学生 - Togetter
404 Blog Not Found:アメリカに行ってエンジニアリングを学ぶ前に用意しておくべきもの

14歳の、アメリカに行ってエンジニアリングを学びたい少年へ

を読んで。

自己紹介

僕は18歳で、今年からオーストラリアの大学にコンピュータサイエンスを学びに行きます。16歳の頃に語学留学でオーストラリアに1年半行きそちらでの進学を決め、日本に帰国し渡航の準備中です。
若い世代として、思っている事を書きます。長いですが、なるべく正直に、思っている事を書いたつもりです。

僕はエンジニアではありませんが、ベンチャー企業でフロントエンドのプログラミングに関わっていた事があります。数千行以上あるプログラムを書いていたのはその一度だけです。普段は趣味で適当にプログラムを書いて遊んでいます(iPhoneを振り回して近くのパソコンに写真を飛ばすアプリを書いてみたりとか)。プログラミングを勉強しはじめたのは中学2年の中盤です。

プログラミングを覚えるということ

プログラミングを習得するのに必要な知識は、主に三種類に分けられると思っています。

  • プログラミング言語の知識(コードの書き方、動かし方、ライブラリの使い方など)
  • アルゴリズム、数学、低レイヤー(OSやネットワークの仕組みなど)の知識
  • 大規模なプログラムを破綻せずに書く方法、メンテナンス、テストなどの知識

の三つです。

大学で学ぶべきなのは、アルゴリズム、数学、など学術的な分野です。学問は独学は難しいし、自分で学ぶのは効率が悪いです。こういった知識は、例えばfacebookの知り合い候補を出す仕組みであったり、Twitterのトレンドキーワードを出す仕組みに応用できます。僕はこういった知識を得るために、大学に行きます。

一方、プログラミング言語の知識は、学問とは違います。独学で身につける事ができます。プログラミングについての本は本屋にいけばいくらでもありますし、インターネット上にもとてもたくさんの情報があります。本やインターネットから情報を仕入れて、自分でプログラムを書いて動かしてみることで、十分にプログラミング言語の知識は身につける事が出来ます。多くのプログラマは、独学でプログラミングの知識を身につけています。若いプログラマはなおさらです。

独学の一例として、少し恥ずかしいけれど僕自身のブログのリンクを載せます。プログラムを学び始めた時の記事です。
http://d.hatena.ne.jp/javascripter/archive/200803
ほぼ全て独学ですが、一年後にはアルバイトでプログラムを書ける程度の水準にはなりました。

大規模なプログラムの知識をつけるには、実際にたくさんのコードを書いてみて長期にわたってメンテナンスしてみることです。今はGitHubというウェブサイトを使ってオープンソースのプロジェクトを見たり、実際にいじったコードを、pullリクエストというものを使って送ったりして、その気になればいくらでもプロジェクトに参加することができます。

プログラミングを覚えたいなら、独学である程度プログラムを書けるようにして、必要であれば大学でそれを支える知識を身につけて、オープンソースのプロジェクトに参加するか、働いてみると良いと思います。
まずは、インターネットや本を「プログラミングの家庭教師」にしてみるといいんじゃないでしょうか。

もちろん、どうしても分からないことはTwitterSkypeで技術者に聞けば良いと思います。僕も、何度も知り合いに助けてもらいました。でも、なんでもかんでも手取り足取り教えてもらおうとするのと、分からないことを教えてもらうのは、全然違います。自分で出来る事は自分でやる。当たり前の事だと思います。

留学するということ

留学自体には賛成です。お金の問題はありますが、留学できるのであればしたほうがいいと思います。

僕は留学をして英語が普通のスピードで読めるようになって、得られる情報源が飛躍的に増えました。頻繁に更新されている生きたプログラムのドキュメントや最新の技術や開発者のやり取りなどは英語でしか見れないことが多くて、そいうものを読めたり、必要であれば開発者と英語で会話できるのは、技術者としてアドバンテージになります。

http://j.ktamura.com/archives/1826
の記事にもあるように、他国の文化に触れることは、自分自身が持っている先入観を気づかせてくれます。そういった意味でも、留学には大きな意義があると思います。

ただし、留学をすれば英語がすぐに喋れるようになるわけではないことに、気をつけてください。幸い僕は今、英語が使えますが、こうなるまでには多大な努力が必要でした。長い間英語圏にいてもそんなに英語がうまくない人もいまし、海外に行った事が無くても英語がきちんと使える人もいます。留学は英語を学ぶ上で強力な手段ですが、それが唯一の手段というわけでもありません。

404 Blog Not Found:アメリカに行ってエンジニアリングを学ぶ前に用意しておくべきもの
の記事にはアメリカの名門大学に入るために必要なことが書いてありますが、これはごく少数の人しか超えられない最難関の大学の話です。正直言って、脅かし過ぎだと思います。

ハードルは確かにありますが、それは超えられない壁ではないと思います。個人的な話になってしまいますが、僕は中学校に一年半くらい行っていませんでした。難関私立に通っていたということもありますが、学校に通っていたときに最後に受けたテストは最下位でした。高校もいわゆる誰でも入れるレベルの学校に入って、勉強を何もしてないような時期がありました。でも、オーストラリアで語学留学中にかなり努力をしたので、今年からオーストラリアの名門大学に留学できます。

結論

アメリカとオーストラリアでは事情が違うと思いますが、高校の3年間は、いろいろな可能性が残されている時期です。正しく時間を使えば、「アメリカでプログラマになること」も、「スーパーハッカーになること」でさえも可能だと思います。

お互い、頑張りましょう。