Scribble at 2022-01-10 11:53:47 Last modified: unmodified

システム開発やプログラミングについては、なるべく原理・原則を理解していることが色々な与件なり要件に対応できる応用力(受託のベンダーで働く場合だけでなく、ITベンチャーで働くには、この手の応用力はコンピテンシーに匹敵すると思う)をつけることが望ましく、いまのところこういう応用力を手堅く身に着けるには、はっきり言って理工系の大学で修士レベルまでの課程を終えるのが最善だと思う。独学では色々な点で限界があり、独りよがりな理解や偏った(特にネットの情報だけで知識の外延を決めてしまう)知識しか持てないというリスクだけでなく、簡単に言えば自分の興味に応じてものを調べたり知ろうとする身勝手な情報ばかりが身についてしまう。こういうことは、基礎や原則にかかわる事であればあるほど、(知的な意味で)ぶん殴られる経験が必要であり、またそこでの疑問や反発こそが次世代の業績をもたらすのだ。未熟なガキのくせに、本を何百冊か読んだていどで学問や仕事を一人の力でできるなどというのは、思い上がりもいいところであろう。

しかし、それはあくまでも理想であって、多くの国や地域や境遇に置かれた人々には選択の余地がない。したがって、高等教育の機会には及ばなくても、その一部の経験なり知見を伝えたり共有できる手段として、ウェブ・ページなり動画サイトなりを利用することが望ましい。ただ、いまのところリソースとしては限られているのが実情だ。

たとえば、システム開発やプログラミングを高度に理解していると言いうるための条件として、よくオンラインのブログ記事や SNS の殴り書きで見かけるのは、やれコンパイラを自力で書けるだの(つまりオリジナルのプログラミング言語を作り出せるということ)、CPU の論理回路を FPGA などで設計できるだの、あるいはアセンブリ言語を読み書きできることが必要だと語られたりする。しかし、多くのシステム開発の技術者や、とりわけウェブの制作会社で働くプログラマは、おそらく 99% がこうした条件を満たしていない(つまり100人に1人くらいしか満たしていない)。もちろん、言っている方も必要性を力説しているのだから、そもそも大半の人たちがそれらの技能や知識や経験を持っていないことを知っていて言っている筈である(国家資格の要件みたいなものであれば、わざわざ医者が「日本で医師となるには日本語の読み書きができなくてはいけない」などと書くわけがないだろう)。

100人に1人くらいは条件を満たしていると推定できるのは、システム開発やプログラミングに従事している技術者の100人に1人くらいは、大学のコンピュータ・サイエンスの学科で修士の学位を得ているだろうと思うからだ。そして、大学の課程で学んでいる人の多くは、当たり前だが「計算機」科学としての基礎的な素養をもっていて当たり前であり、紙と鉛筆だけで(つまりパソコンなしで)プログラミング言語を素手で書いて設計できるのが当然であるし、アセンブリ言語も大多数のニーモニックを記憶しているだろう。なぜなら、よほど特殊な専攻でもないかぎり、離散数学も含めて大学の授業で誰もが教わるからだ。逆に、グラフ理論も論理回路も知らないで CS の学位を持ってるなどと言うやつは、確実に学歴詐称と言ってよい。あなたが IT ベンチャーの採用担当者なら、その人物が卒業したという大学の卒業証明書を要求するか、その大学に照会して「コンピュータ・サイエンスの学位」を取得したのかどうか、確かめるべき事案だろう。

よって、僕も含めて CS の学位を持っていない大多数の技術者は、もちろん自力で大学卒業レベルに相当する勉強をすればいい。問題は学位をもっているかどうかというシグナリングではなく、何を知っていてできるのかだからだ。その最も有効なガイドとなるのが、まったくありふれていて拍子抜けするとは思うが、資格試験の参考書や大学のテキストである。結局のところは、オーソドックスなリソースを信用して丁寧に勉強するのが、最も有効で、知識や技能の極端な偏向や不足が生じない堅実な手立てである。そして、実はこういう堅実な手立てに役立つ筈のリソースが、まだ日本では不足しているのだ。

たとえばアセンブリ言語を一つ取ってみても、アマゾンで日本語のテキストを検索してみればわかるように、体系立てて解説された〈まともな〉テキストは5冊くらいしかない。また、その中には self-contained とは言えない、大学の授業で教員が補足しないと意味不明な文章の「授業ノート」と言うべき欠陥商品だ(僕は、そういうものは所属する大学の出版局から製本して生協で実費販売すればいいようなものだと思う。つまり「授業のプリント」のようなものでしかなく、書店で販売するのは馬鹿げていると思う)。

プログラマならこれこれできるのが当たり前だとハードルを設けて、自分の立場を確保したくなるのも分かる。確率論の計算はできても、幼稚園児ていどにしか成熟していない個体の習性というものだ。しかし、コンピュータ・サイエンスの博士号をもっているていどの未熟者であろうと、仕事での実績を除けば、自分が勉強したことを整理して説くといった貢献はできる。

  1. もっと新しいノート <<
  2. >> もっと古いノート

冒頭に戻る


※ 以下の SNS 共有ボタンは JavaScript を使っておらず、ボタンを押すまでは SNS サイトと全く通信しません。

Twitter Facebook