KogoLab Research & Review

遊ぶように生きる。Vivi kiel Ludi.

大学で獲得すべきプログラミング能力

——プログラミング能力の話題について、こんなメールが来ているよ。

私は、経済学部出身で外資でローレベルプログラマしてます。日本でも経済学は数学がないとお話になりませんでした(十数年前)。日本の経済学は米国の跡追いですからね。

さて、実際プログラマを雇う立場で大学で何を勉強してきたか問うとしたら、私の場合はローレベルプログラマなので、デジタル回路基礎設計です。その次が何でもいいからアセンブラでプログラムが組めることです。これは即戦力を雇う場合です。実際、米国本社で私の部署に入社してくる大卒は、みんなアセンブラとCができました。日本のように悠長に社員教育なんてしません。

ですから、実際に就職に何が役に立つか、という観点でいけば、最低Cであとはその分野によって異なると思います。Winのアプリを作っている会社にいきたいなら、Winの知識が必要でしょうし、サーバクライアント系になってくれば、それにさらにネットワークプログラミングが必要になってくるでしょう。これからは日本の企業も大卒に即戦力を求めるかも知れないので、プログラマになりたい方は、かなりターゲットを絞って勉強しても良いのではないかと思います。

即戦力を求めるという傾向は強くなっていると思う。昔は「大学では何も教えないでいい。社内教育で鍛えるから」という声も企業から聞こえてきたという話だが、最近はそういうことはない。ニーズの大きさからいうと、やはりC言語なのかな。Cを教える授業はたくさんあるので、個人的にはLispをやってみたい感じだ。もちろん最初はわけがわからないだろうが、わけのわからない世界にチャレンジしていくという体験が大切のような気がする。それができたら、どんなに難しそうに見えるものでも物怖じしなくなるんじゃないだろうか。そういう「態度」の教育という側面もある。Lispでなければ、もっと取っつきやすいLOGOの方がいいかもしれない。しかし、LOGOを教えているという話もだんだん聞かなくなってきたなあ。どうなんだろう。

——「DIME」という商品情報誌に「LEGO-マインドストーム」という教育用ロボット・プログラミング教材が紹介されていたね。なんでもMITが開発したということだ。「マインドストーム」はLOGOのパパートが書いた本のタイトルだ。

レゴブロックでロボットを組み立てて、それにプログラムをロードして動かしてみるというやつね。ブロックにはセンサーのものやモーターのものがある。プログラムもブロック化されたものをつなげて作るという形式で、言語系というよりはビジュアル系かな。それをCPUのブロックにロードしてロボットを動かす。

——面白そうだから、1セット買ってみたら?

考えてみる。さて、メールの続き:

”——ということは、プログラミング能力とは、自分の脳をコンピュータ化できる能力ということだ。”

には、前面的に賛成いたします。特にプログラマにとって大切な資質である、デバッグ能力に大きくかかわってきます。

なお、アルゴリズムを知っているかどうかは、はっきり言って関係ありません。なぜなら、本を読めばいくらでも載っているからです。自分でアルゴリズムを発見するのは大切なことですが、これはどんな分野も同じ気がしますが、何を調べれば問題解決ができるか、すばやくわかることもプログラマの大事な資質です。

これも納得できる話だ。私も学生時代にプログラム作成のアルバイトをしているときに、全く専門外のオペレーションズ・リサーチ(OR)の本を読みながらプログラムを作ったという経験がある。そういう場合にはORの理論の本質やバックグラウンドはわからなくてもいいわけで、とにかく本に書いてあることをプログラムの形に「翻訳する」という仕事に近いものになる。一種の翻訳家だね。プログラムに翻訳されたものは、正しく動くか動かないかはっきりとわかるので、すっきりとした世界だ。

さて、理系か文系かですが、私も一つだけ出身学部で困ったことがあります。今は身分的には外資の日本支社の社員なのですが、一度米国本社で雇ってもらえないか画策したことがありました。そのとき壁になったのが出身学部でした。会社の移民部の回答では、現在の仕事と学部の内容があまりにかけ離れているので、グリーンカードの申請が難しい、とのことでした。実績がある程度あれば(どうも年月のようで、同じ仕事を5年以上続けているとまた違ってくるようです)なんとかなるらしいのですが、私の場合は米国の上司の推薦のみでしたので、いろいろ障害があったようです。(要はなるべく移民を減らして、米国人の雇用を確保したいので、少しでもいちゃもんをつけられるところがあると、そこを移民局がついてくるらしいです)

まさか、こんなところで学部が云々されるとは思わなかったので、ちょっとショックでした。

そんなわけで、日本の大学が就職に直結していない、というのも問題があると思うのですが、将来の職業を見据えた大学進学を考える、ということも受験を控えた高校生のみなさんには薦めたいです。これは有名大学に入れば就職は安泰、ということではなく、その職業に最適な学部は何か、考えて欲しいということです。当たり前のことですが。

なお、プログラミングの最新の話題は、すべて英語で入ってきますので、英語はいやだという人は、はっきり言ってプログラマには不向きです。というか、言語特に文法が好きな人は、プログラマ向きかも知れません。

これからは大学の入学難易度ではなく、学部学科で選ぶ時代に入ってくるね。企業も採用の時に「何ができるか」ということを必ず聞いてくる。それに対応して、自分の学部学科の特色を打ち出していくことを怠ったところは、つぶれていくんじゃないかな。まあ、他人事じゃないんだけど。

言語能力とプログラミング能力との相関はあるのだろうか。ちょっと文献を調べてみたい。直観的には、英語に限らず、外国語をやるというのは文法構造を相対化できるという意味でポイントになりそうな気がするね。