最近米国では、コーディングの学習が大きな話題になっています。NBAのスーパープレイヤーからオバマ大統領までさまざまな人々がコーディング学習について話し、一部の下院議員にいたってはプログラミングを外国語の単位として扱う計画を進めています。
本日、トニー・カルデナス(Tony Cárdenas)議員(D-サンフェルナンドバレー)が「416d65726963612043616e20436f646520 Act of 2013」を提出しました。この法案は「America Can Code Act」とも呼ばれます。これは、コンピュータプログラミング言語を「重要な外国語」として指定することによって公立学校や地域の学校での学習を推進し、コンピュータサイエンス教育を幼稚園から始めることを目指すものです。
カルデナス議員は次のように述べています。「法案名からわかるように、プログラミングとは単なる言語なのです。外国語を学び、外国語でコミュニケーションを行うことは、文化と教育の両面で生徒に非常に大きな影響を与えます。コンピュータプログラミングを学習すれば、同様の効果が期待できるだけでなく、今日のグローバル経済で不可欠のスキルを身につけることができるのです」。
バラクーダネットワークスは優秀なプログラマの獲得に積極的に取り組んでいますから、このような取り組みには大きな関心を寄せています。この点について、バラクーダネットワークスのエンジニアリング部門担当VPであるブレア・ハンキンズ(Blair Hankins)に意見を聞いてみました。
「プログラム開発の早期教育の必要性が議論されることは喜ばしいことですが、社会で生きていく上での条件として考えた場合、プログラミングスキルは、数学や言語ほど必要だとは思いません。というのは、数学や言語は、社会生活や仕事をする上で誰もが必要とする基本的なスキルだからです。事務系の仕事ではほとんどの場合ソフトウェアをツールとして使用しますが、モバイル端末でスプレッドシートやアプリを使用するのに、プログラミングの知識は必要ありません。
確かに、高校やそれよりも早くプログラミングを始めた人は、大学のコンピュータサイエンス学科でプログラミングを始めた人よりも有利です。ここ数年、卒業したばかりのCS専攻の学生にインタビューしてきましたが、その多くが優秀なプログラマとは言えませんでした。成績が良く、コンピュータサイエンスの原理をよく理解しているからといって、素晴らしいコードやしっかりとした設計開発ができるわけではありません。
優れたプログラマになるには、複雑な関係性をすべて頭に入れた上で、全体像を把握しながら、モジュールごとのきめ細かなコーディングを行う才能が必要です。このような才能を生まれつき持っている人もいれば、プログラミング作業を繰り返し積み重ねていくことで身につける人もいます。
この記事でジェフ・アトウッド(Jeff Atwood)氏は「コーディングを本気でやりたいのなら、利用可能なリソースは豊富にあるのだから自分でできるはずだ」と述べています。私も同感ですが、その一方で、プログラミングの早期教育は、プログラミングが好きになり得意になる学生数の増加につながるのではないか、と考えています」。
バラクーダネットワークスはこれまで数々のプログラミングコンテントを開催してきましたが、もちろんブレア(左端)も参加しています。これは、先頃ミシガン大学で開催されたコンテストで撮影した受賞チームとの記念写真です。
ブレアへのメッセージは、Twitterアカウント(@blairhankins)にお寄せください。
コーディング学習については、Codeacademy、Hour of Code、Lifehacker、Udacityなどのオンライン学習サイトをご覧ください。このようなサイトで学習してもソフトウェアエンジニアになれるわけではありませんが、条件やループといったプログラミングの基礎や概念を学ぶことができます。
※本内容はBarracuda Product Blog 2014年2月4日 Voices of Barracuda: Does everyone need to code? を翻訳したものです。
クリスティーン・バリー(Christine Barry)(バラクーダネットワークス、チーフブロガー)
本稿は、バラクーダネットワークスのWebサイトに掲載されている『バラクーダラボ』2月21日付の記事の転載です。