数式アレルギーの人たちへ
数学者でプログラマの結城先生の《数式アレルギー》に関する文章を読みました。ぼく自身も理系の端くれですし,色々と思うこともあるのでちょっと書いてみようと思います。
先生の言うように,数式っていうのは,われわれ理系にとってはものすごく大事なものです。それこそ「ことば」であったり,「共通語」であったりするかもしれません。数式はほとんどすべてを厳密に表現できるし,だれが見ても基本的には同じ情報が伝えられるからです。
でも,そうであっても,それが
何を怒っているかというと「私は数式アレルギーでして(てへ)」といってる(自称)大人に怒るのだ。勉強不足を恥じろよ。若者を自分のレベルまで落とそうとするなよ。文系ですからなんていうなよ。きょうび文系でもしっかり数式はよむぜ!若者を自分のレベルまでおとしめようとするのに腹が立つのだ。」
だと言っていいことにはならないと思うんです。
漢字が読めない若者を怒るでしょう?英語を読みたくないという若者を叱るでしょう?数式はそれと同じだ。
たしかにそうかもしれないなあ,って思います。でも,英語や漢字と数式とでは「生きるために必要かどうか」っていうことが,かなり根本的に違ってくるような気がします。数式にまったく触れなくても生きていける人は数多く存在するけれど,英語と漢字に触れなくても生きていける人は,数式のそれに比べると圧倒的に少ないんじゃないか,ということです。 加えて,漢字や英語は「生きているだけで自然に」身につけていく人もいるものです。数式はきちんと教育を受け,トレーニングを重ねないと読み書きすることはできません。
というような文章を書こうと思っていたのですが,どうやら先生が伝えたいのはそういうことではないようですね。
自分が使える武器を磨こう。武器とは言葉だ。日本語も英語もプログラムも数式も、あなたの武器だ。
氏はこのようにも述べていて,
大人は真剣に勉強しよう。真剣に考え、真剣に学ぼう。
最後にはこのように締めくくっています。
全員が数式を数学者のように読めと言っているのではない。そうではなく、歴史的な《知》に対する敬意が感じられない発言に腹を立てているのだな、私は、きっと。
けれど「大人が数式を学ぶ」っていうのも,そう簡単にいかないんじゃないかな,とも思うんです。なぜかというとそれは,先生が述べるように 歴史的な知 であるからです。数学とは(数学だけには限らないことですが)本当に気の遠くなるような先人たちの知恵の結晶の積み重ねの上に,成り立っているものだからです。
たとえば高校2年生の終わり〜3年生くらいで習う「微分と積分」は,(諸説ありますが)実際に生み出されたのは17世紀です。つまり,1+1から始まって,がんばって高校生まで数学を勉強したとしても,300年も前の数学に追いつくのが精一杯だということです。
「お,数式なんだかおもしろそうだな」とか「数学ちょっとやってみようかな」と思って,実際に楽しくなるまでには,積み上がっているものがどうしても大きすぎるのです。数学の歴史が積み重ねの上に成り立っていたように,数学の教育も同じように積み重ね上に成り立っているからです。微分と積分がわかるためには,Σの計算と極限がわかっていなければならず,Σがわかるためには数列が,数列がわかるためには方程式が,といった具合です。
受験とか教育とかではよく言われていることですが,これが数学のむずかしいところであり,数学が得意な人と嫌いな人をわけてしまう大きな要因の1つでもあります。ある地点でつまづいてしまったとすると,そこからいくら学んでも,それは基礎の悪い建物を作るようなもの。積んでも積んでも崩れていってしまうばかりです。
そこで「つまづいてしまったところ」まで戻って,そこからまた積み重ね直す,っていうのもなかなか時間的にむずかしいことです。だからこそ《数学アレルギー》になり,とりあえず見なかったことにしてしまうのかもしれません。
そんなわけで,《数学アレルギー》もなんだかんだしょうがないのかもね,というお話でした。とはいえ,結城先生の「数学ガール」なんかは,また今までと違った切り口で数学を捉え直しているし,前に書いた「積み重ね」をそこまで意識せずとも楽しめる,とてもいい本なんじゃないかな,とは思うんですけどね。
そう思うと,比較的歴史が浅く,始めてから数年で仕事に使えるくらいのレベルに達することができる英語やプログラミングなんかは,なかなか「真剣に勉強しやすい」のかもしれませんね。とはいえプログラミングも「なにがどうなっているのか」をしっかり理解しようとすると《数式アレルギー》を克服しなければならないのですが。
だれのためになにをつくるのか
Webエンジニアとしてのアルバイト
さて,ここには書かなかったのですが,Webエンジニアとしてアルバイトを始めてからそろそろ1年くらいになります。なんだかんだ3つの会社を渡り歩いて来て,色々と思うこともありました。1つ目は大手IT企業を脱サラした2人が立ち上げたガチガチのスタートアップベンチャーで,2つ目は社員50人くらいのそろそろミドルに行きたいベンチャー企業,3つ目は社員数400人くらいのメガベンチャーでした。
ぼくがしていた仕事は,ちょっとむずかしく言うと「バックエンドWebエンジニア」という役割です。ものすごく大ざっぱに言うと,Webページの見た目を作るのではなくて,ユーザーごとに異なる動作をするとか,データベースを操作するとか,そういう「裏側」を作る人のことですね。 具体的にぼくがどんな仕事をしていたかというのは今回ほとんど関係がないので,まあそんな仕事もあるんだなくらいに思っておいてもらえば問題はないです。
今回はこのあたりにからめて なにかをつくるとはどういうことか ということを書こうと思います。
マニュアルを読めば
1つ目の会社で作っていたWebアプリは,主に官公庁や古くからある企業むけのものでした。基本的には「今まで紙ベースで行なっていたものをWebベースにしよう」という姿勢のもので,具体的には業務支援サービスや勤怠管理システムのことを示します。 そこでは ユーザーのことを考える ということは,残念ながらほとんどありませんでした。 「どうすれば使いやすいか」を考える暇があるならマニュアルを書けばいい といったような感じで,悪く言えば殿様商売といったところですね。
ここから先はぼくの邪推だけれど,開発者とユーザーの間にはこういう心理があるのだと思っています。
- 開発者
- どういう風に使っても案件が決まってしまえば使ってもらえる
- ユーザー
- どれだけ使いにくくても結局それを使うしかない
というもので,もう少し言い方を変えると,両方とも「天から降ってくる」ようなものだといえます。 ユーザーにとってそのサービスは, 天から降ってきたのだから仕方なく使うもの であるし,開発者にとってそれは 天から降ってきた案件なのだから最低限の仕様さえ満たしておけばよいもの でしかないということです。
こんな風に書くとSIerとか業務アプリといった業界を批判しているかのように見えるかもしれないけれど,そういうわけでもないのです。そこにコストをかける必要がないのであれば,そこにコストをかけないのはごく自然なことだからです。 そのシステムではそれは求められていない。
見たところ使いにくいなあ,と思っていたシステムではありましたが,それを使いやすくするためには時間もコストもかかります。まだまだ下っ端エンジニアだったぼくは「これはこういうものだ」と言い聞かせ,ひたすら上に言われた通りにプログラミングをしては,マニュアルを書いていました。 ほとんど「ログアウトボタンを押すとログアウトできます」なんてことが書かれたマニュアルを作らなければいけないことはそれなりに悲しくはあったのですが,そういう仕事なんだと思うしかありませんよね。学生アルバイトができることなんて,本当に微々たるものなのです。
新しい技術を取り入れていくべきか
その会社で使われる技術は,お世辞にもそこまで最新のものとはいえませんでした。ぼくはそこそこギークな人間で,はてなブックマークやらなんやらで「流行り」を追っかけるということが好きです。その会社ではその記事でもう時代遅れだと批判されているような技術やフレームワークがまだまだ現役でした。 そこにはバージョン管理という概念はなく,全員が本番サーバにターミナルからSSHでログインし,vimで直接ソースコードをいじるといったような環境です。
けれどこれも,それが必要とされていないから,変わることはないんですね。いわゆる「技術力が高い」と言われるITベンチャーなんかだと,最新の技術やフレームワークをどんどん取り入れていきます。
なるべく少人数でスピーディーに開発できるシステムを用いれば,人件費を下げることができます。どんどん効率化していかないと,競合するサービスに敵わないからですね。また頻繁な新機能の実装とテスト,セキュリティの維持,バグの修正,負荷対策などなど, 様々な問題をその高い技術力で解決していかなければいけません。
けれど,二回目になりますが,ぼくがかつて作っていた業務アプリケーションでは,そういうことは必要とされていなかったんです。いわゆる「作りきり」でお金もぽーんともらえるので,最新の技術を使う必要はないし,使われる場面も限られていますから,新機能が追加されることもほとんどありません。セキュリティだってお世辞にも強化されているとはいえませんでした。
まったく毛色の違う2つの会社で働いてわかったことは,結局 技術力は必要とされなければ高まらない ということでした。今となっては当たり前のように思えますが。新しい技術をどんどん取り入れていくことは,一見するとすばらしいことのようにも思えます。しかしそこにはドキュメントが少なかったり,開発できる人が少なかったり,導入コストが高かったり,色んな障壁も存在するのです。
なぜ技術が必要か
結局のところ技術力って「だれのため」のものなんでしょう。また「なんのため」にあるんでしょうか。 ぼくは結局それは 「ユーザーのため」であり,最終的には「エンジニアのため」 なんだと思っています。
エンジニアには大きく分けて2種類の人がいると思っています。技術が大好きって人と,ユーザーが大好きって人ですね。ぼくは残念ながら前者ではなくて,後者のエンジニアです。 じぶんの作ったものをなるべく多くの人が楽しく使ってくれたらうれしい。そういうエンジニアです。
結局そのために技術は必要なんです。 ユーザーに合わせて,速いスピードでプロダクトを評価,改善していって,どんどん使ってもらう。そういうことを繰り返していかないと,ユーザーに価値なんか提供できません。ユーザーから挙がってくる「ここは使いにくいな」とか「ここがもっとこうなるといいのに」ということを無視していたら, なるべく多くの人が楽しく使って くれることはないからです。
ぼくにとって技術は,ユーザーを喜ばせたいエンジニアのためにあるものだ,ということです。
なぜエンジニアなのか
ひとことに技術技術と言われるエンジニアがどんなことを考えているのか,一例としてなんとなくわかっていただけたんじゃないのかなと思います。
ぼくはエンジニアのすごいところ,おもしろいところは
少数の力で速いペースで世の中を良くすることができること
なんじゃないかなと思っています。医者とか政治家とか教師とかに比べて,圧倒的速いペースかつ,小規模のチームが世界に大きな影響を与えてきました。
これがぼくがエンジニアを選んだ理由でもあります。世の中にたくさん仕事はあるけれど,エンジニアならなるべく多くの人をなるべく早くハッピーにできる,と本気で考えているからです。
もちろん技術を使って仕事をする会社はたくさんあるのですが,やっぱり「なにか作ってだれかをしあわせにする」っていうことからは離れたくないな,といつも思っています。
予告みたいなもの
さて今回はいつも通りビジョンばかり書いて終わってしまいました。3つの会社を経験してきたことがあんまり活かせていないので,今後はそのことを書いたり,もう少し「はたらくとはどういうことか」ということを書けたらいいなと思っています。
数値化できないこと
ぴゅあだった頃の夏の話
専攻を語ってください
ぼくと大人と新幹線と
*1:「あの人たちは、私の知らない楽しみ方を、心から知っている」というのは、私にとって「大人」を感じるのに充分な事実でした。
わかりやすい,はえらくない?
少し前に「わかりやすいは1番えらい」といった内容の記事を書いたのですけれど,やっぱりそういうわけでもないかもな,と思うことが最近多いので書きます。
ぼくはずっと「わかりやすいこと」が好きでした。そしてそれを目指してきました。わかりにくいと伝わらないし,誰も読んでくれないと思っていたからです。
じぶんの中に何か《伝えたいこと》があって,それを伝えるためになるべく「わかりやすく」する。ぼくにとって書くことやコミュニケーションはそういうものなのかなあ,なんて思っていました。
でも《わかりやすい》は1番えらいわけではない。最近は本当にそう思うのです。《わかりやすい》はひょっとしたらつまらないかもしれない。そうも思うのです。
「わかりやすい」はしばしば《具体的》であることと言い換えられます。《具体的》であれば,なるべく多くの人が簡単に理解できます。容易にイメージできるからですね。
一方で《具体的》の対照的な言葉である《抽象的》はしばしば「わかりにくい」ものだとされてしまう。簡単にはイメージできないし,じっくりと噛み締めないとわからないからです。
そして人間は「わかりにくい」ものや「わからない」ものが嫌いです。なぜならそれは「怖い」に直結してしまうからです。未来のことが「わからない」から「怖い」のかもしれません。お化けが怖い人も,お化けが「わからない」から「怖い」のかもしれません。
でもそうやって「わかりにくい」から逃げ続けていてもあんまりよくないのかな,とも思うのです。「わかりにくい」にしっかりと向き合うこと。これはものすごく大事なことだと思うのです。
そんなことを「あみめでぃあ*1」を書くうちに思い始めるようになりました。
くわしくは上の段落内でのリンクを見てくれると嬉しいのですが「あみめでぃあ」のテーマは「《概念》を語る」ということです。
《概念》というのはそれこそ《抽象的》であって,かなり「わかりにくい」ものでした。
ぼくもなんとか《概念》を書いてみたのですが,すごく難しかった。考えて考えて悩んで,でもそれでも向き合って,なんとか書けたくらいのものです。
あんまり自覚はしていなかったけれど,今は「ぼくは「わかりにくい」《抽象的》から逃げていたのかな」と思います。普段から色んなことを考えているつもりだったけれど,本当は考えていなかったのかもしれません。ものごとに対して「これはどういうことなのか」とか《本質》をとらえることから,逃げていたのかもしれません。
「あみめでぃあ」の編集長のらららぎさんが,ぼくの書く文章について以下のように言ってくれました。
確かにぐらふくんの文章は具体に富んでて分かりやすいので、具体における分かりやすさ(速効性=ラノベ的•はてなブログ的)の他に、抽象における分かりやすさ(遅効性=詩的•思索的)の使い分けもできるようになれば、より一層面白い文章が書けるようになると思いますよ。
これを言われた当初は「そんなことないだろう」と思っていました。けれどしばらくした今,たぶんそういうことなんだろうな,と思うのです。
「『わかりやすい』はえらい」というのは確かにそうなのですが,ぼくが求め身につけてきたのは即効性をもつ「わかりやすさ」だったのでしょう。
思えばぼくはずっと「わかりにくい」ものと戦ってきました。身近な例を挙げるとすればそれは数学です。数学というのは「数」という概念を扱う学問です。
概念を扱えるようになるのはものすごく難しいです。それは《抽象的》であって「わかりにくい」ものです。
けれどしっかり向き合い,訓練を重ねながら*2ぼくらは《概念》を獲得していくのです。はじめは「学校でやれと言われているから」とか「なんとなくおもしろそうな気がするから」とかそんなものかもしれません。けれど,ひとたび「概念を身につけた」あと,ぼくらの世界は広がっていたはずです。世界の見え方は少し,変わっていたはずです。
そんなことを「あみめでぃあ」に参加するうちに思うようになりました。《概念》や《抽象的》であることからは,きっと逃げてはならないのです。
もちろんそれが「よりよく生きるため」に必要であるから,ということもできるのですがそればかりではありません。《概念》や《抽象的》であるということは,ぼくらの世界を広げてくれるのです。そしてきっとそれは,ものすごく楽しい。
「あみめでぃあ」に参加することで,今までずっと向き合ってきた「書く」ということにも,ある種のブレイクスルーが生まれたように思います。
そして「あみめでぃあ」に参加する人たちは,本当の本当に「おもしろい」人たちばかりです。編集のちくわさん,らららぎさんをはじめとする人たちと,らららぎさんのシェアハウス「ヌーベル」で語り合うひとときは,本当に素晴らしいものです。
あの空間に行くたびに,ブログ記事が1つ書き上がるような気さえするのです。
そんなこんなで「書く」とか「文章」のことばかり書いてきたこのブログですが,こんどぼくの書いたものが実際に紙の本となって形になります。宣伝というわけではないですが,ぜひお手にとっていただけますように。
ぼくが「わかりにくい」ものに向きあおうと思えたように,あなたの「わかりにくい」ものに向き合うための手がかりが,ひょっとしたら転がっているかもしれません。
今度の5/4にある文学フリマで販売します。実際に文フリ会場までお越しいただいても,通販フォームに入力いただいてもいいですよ。
*1:参加している「みんなでしんがり思索隊」という共同ブログの方々でこんど出すゆるふわ評論系同人誌。くわしくはリンク先のWebサイトをご覧ください。
*2:いわゆる演習というやつをくり返すことでしょうか。講義を聞くだけではわからない《概念》を頭の中に叩きこむことができます。