「プログラミングなんて必修にしなくていい論」への反論

10月 20th, 2013 | Posted by admin in テクノロジー | プログラミングを考える | 経営

直接のご面識はないのですが、クレイア・コンサルティングの調 祐介さんが、ブログ記事「プログラミングなんて必修にしなくていい論」に、かつてこのブログに投稿したプログラミング科目を必須にすべき3つの理由をご紹介いただきました。どうした形であっても、取り上げていただけることは歓迎すべきことですので、まずは、御礼申し上げます。

 とはいうものの、タイトルは、”プログラミングなんて必修にしなくていい論”、以前、投稿した内容は、プログラミング科目を必須にすべきという主張なので、こちらと真逆の主張です。ただ、重要なのは、弁証法的というか、お互いの主張をぶつけることで、さらに議論を深めていくのは重要と思うので、あえて、”反論”したいと思います。

「プログラミングなんて必修にしなくていい論」

調さんの記事は、No–You Don’t Need To Learn To Code を基にしていて、とてもよく日本語にまとまっています。

このオリジナルの主張をかいつまむと、

・プログラミングすることは楽しい、でも、一人前になるためには、10年くらいかかるし、常に勉強しなくてはいけない。

・プログラミングは問題解決の道具に過ぎない。そして、プログラミングをマスターしたからといって、世の中のすべての問題を解決できるわけではない。もっとも大きな問題は人間の内部に根差した予測できない問題であることが多く、これはプログラミングでは解決することはできない。

・それでも、プログラミングに興味があるのであれば、かわって、プログラマーを理解すべき。プログラマーは、ビジネスミーティングなど”邪魔”されるのが何より苦手。だから、彼らを理解する、あるいは、ビジネスの言葉を彼らにわかりやすく翻訳することは大切。

・むしろ、プログラミング時代を学ぶより、ソフトウェア、ネットワークがどのようにして動いているのかをしることが大事。車の設計を知らなくても運転はできるけど、車の構造を知るとより深く対応ができるのと同じ。パイソンのコードなんか書くよりは仕組みを知ることのほうが重要。

・人生は短い、モノづくりはたくさんある、プログラミングだけがモノづくりじゃない、文章を書いたり、音楽を演奏したり、などやることはいっぱいある。何をすべきか賢く選択すべき。




職業としてのプログラマ

 筆者の主張はだいたい共感できるし、なるほど、と思われるところもそれなりにある。

ただ、筆者のスタート地点と自分のスタート地点は違っていると思う。そして、彼女のスタート地点は、”職業としてのプログラマー”ということだと思う。

 世の中には、プログラムを書いて、収入を得る、職業としてのプログラマが多数存在する。結局のところ、システムを作るうえで、プログラマは必須であり、インド・中国にアウトソーシングしているところもあるけど、日本国内においてもプログラマとして生活をしている人はたくさんいる。そして、自分の知ってるプログラマも、彼女が指摘するように、邪魔されるのを何よりも嫌うし、視野が狭いといわれたら、そうかもしれない。

プログラマというキャリア

結局のところ、これはプログラマとしてのキャリアはどうあるべきか、という話なのかもしれない。よく言われるのは、プログラマ35歳定年説。システム会社に新卒で入って10年くらいはプログラマをやるけど、10年くらい経過して、1.管理職へのシフト、2.新しい技術のキャッチアップの限界、3.体力的な限界、などで35歳がプログラマーの限界といわれている(ただ、これは前から言われていて、かつ、最近では、管理職はともかくとして、技術、体力はあまり関係ないようにも思われる)。

  35歳限界説はともかく、一生の仕事として、職業プログラマーができるか?という話だと思う。

自分の理解では、プログラマーとして生涯のキャリアを過ごせるかといえば、できるけど、すごく大変。たとえば、社会保険のシステムを作ったり、銀行のシステムを作ったり、大規模なシステムを作るにはプログラミングが当然必要。ただ、これは一人ではできない、だから、ゼネコンのように大きな会社が元請をして、2次、3次、場合によっては、4次くらいまで下請け(外注)を導入して、その下請けがプロジェクトの一部分だけのプログラミングを請け負う。こうしたスキームの場合、人月単価などから、生涯現役モデルは妥当ではないと思う。

 むしろ、生涯現役プログラマーモデルは、誰も正解がわからないものにチャレンジすることに価値があるように思う。かつて、自分が学生のころ、学術目的でIPv6のアドレス配布をやっていたことがあった。そのときに、いとぢゅんさんというIPv6を開発している天才プログラマーがいました。今でこそ、IPv6はそれなりに使われつつあるものの、当時(1998~2000年くらい)は、まだ実装も、ラフに決めた仕様書(RFC)があったくらい。そうした”未知”がたくさんあるなかで、彼は自分で一番シンプルな解法を探して、それを実装して、国際コミュニティに提案して、IPv6開発をリードしてきました。

 たしかに、マネジメントとかCEOとか関係ないし、プログラムですべてを解決することはできない、でも、未知のものをプログラムで形にしていく、そういう職業プログラマーはやっぱり必要だと思う。

プログラミングは必須にすべき?

 で、長くなったけど、本題。プログラミングは必須にすべきか?自分の意見は前と同じで必須にすべきだと思う。たしかに、職業プログラマーとしてやっていくのは、すごく大変。だけど、1.目に見えないシステムを理解すること、2.プログラミングのすそ野を広げること、そして、3.問題の切り分け能力を涵養すること、これはプログラミングから学ぶことも多いと思います。

という意味で、「プログラミングなんて必修にしなくてもいい論」の話に即すると、プログラミングを学習することで、システム、ネットワークといった仕組みを理解する手助けになると思う。そして、それがもとで未知の問題を切り開くプログラマーがでてくれば、日本にとってもとても良い話と思うのです。

You can follow any responses to this entry through the RSS 2.0 Both comments and pings are currently closed.