幕間 真辺が残した物
石川達は、真辺の家を事務所にして作業をしている。
27名も入れる広さではないが。ほとんどの人間が、ドクター松本の施設で作業しているので、困る事がない。
真辺の家は、郊外にある一軒家で、周りと見比べても大きい。石川達も驚いたが、すでにローンも完済しているという事だ。そんな条件もあって、事務所に使う事になった。
家の所有者は、最初は篠原にするという話しになったが、篠原が、真辺の意思を継ぐのは、石川だから、石川名義にする事になった。石川はそれを拒否しようとしたが、周りからの強い脅迫・・・いえ、説得で石川名義になった。これらの事をやったのは、全部株式会社マナベの顧問弁護士になった森下美和だ。普段彼女は田舎に居るが、月に数回会社を尋ねてくれる。
今事務所には、常に3名が常駐している。
石川と山本貴子と篠原の妻だ。篠原の妻は、経理一般を担当している。それを、山本貴子がサポートしている。
そして、石川と山本は、事務所に住所を移して、上の住居スペースに住んでいる。
真辺の家は、3階建だった。一階は広めのLDKがあって、二階と三階に別々の玄関から入れる住居スペースになっている。二世帯住宅になっていた。真辺がなんでこんな家を購入したのかは不明だが、そうなっている。一階部分を改装して事務所スペースにした。机を5つ入れた。一つは真辺が会社で使っていたパソコンを置いてある。一番近い場所に石川と篠原、篠原の隣に山本貴子残りの机は、山本・井上・小林の端末がそれぞれ置いてある。
そして、皆びっくりして呆れたのが、地下室があり、地下室がサーバルームになっていたのだ。そして、実際にそのまま動かし続けて見てさらに呆れたのが、月の電気代が4万を越えていた。山本が1ヶ月かけて、サーバの中身を攫って統合したので、多少は良くなるだろうという事だ。家に居ないのに契約しているネットワーク回線もすごかったし、SIMも複数契約していた。
そして、サーバルームとは別にCATVも契約してプライベートで使う回線は別にしていたようだ。契約チャンネルもそんなに見ないだろうって位契約していた。
そして、二世帯住宅の為に、女性が二人住む事になった。通勤時間0分の夢の職場が出来上がった。
お風呂を始め水回りも別々になっている。弁護士に相談したら、家主を、石川にして、山本貴子は同居人にすれば、節税できると言われた。また世帯数としては1世帯となるので、諸々の契約を名義変更だけで済ます事ができそうだった。かなり乱暴な手法も確かに使われた。弁護士は、石川を、真辺の内縁の妻と認定して契約変更を推し進めた。それが一番ラクな方法だと解っていても・・・だ。
こうして、諸々の真辺が残した物が整理されていった。
石川と山本貴子の普段の作業は、真辺が残した資料をまとめる事と真辺が作成したアプリケーションの整理だ。
石川に取っては、この作業がとてつもなく楽しい。故人となった真辺との会話を楽しめるからだ。アプリケーションからは、ソースレベルで真辺が語りかけてくれているように感じる。資料からは、真辺が何をしようとしていたのかがよく分かる。
◆◇◆◇ 真辺の資料。
小学校/中学校の技術の時間で、パソコンに関しての授業が行われる事になっている。教える側に立って考える時に、『何を教えたら良いのか?』そんな事を考えてしまう。プログラムを教えると言う事も幅が広い、セキュリティ関連の事を教えるにしても基礎ができていなければ、海外で通じない英語と同じような事になってしまう。
これは、社会に出てからプログラムを教える時にはもっと顕著になってしまう。
プログラムを作るだけなら、本に乗っている物やWebサイトにかかれている物をコピーして貼り付ければ、動かす事が出来るだろう。しかし、それではプログラムを教えるという事にはならない
それでは、プログラムを教えるとはどういう事をいうのだろう。
プログラムは言語を覚える事でもなければ、Webサイトを表示させる事でもないと思っている。
プログラムを作ると一言で言っても、ネットワークの基礎/ハードウェアの基礎を考察する事で、作るプログラムに幅を持たす事が出来ます。また、動作環境の違いからくる得手不得手・言語による動作の違いや得手不得手を代表的な物からまとめる事で、何か『作りたい』と思った時の選択肢が広がる事につながっていく。
よく聞かれる話だが、”プログラマやシステムエンジニアは、理系の方がいいの?”
理系/文系など関係ないと思っています。
文系・理系と分けるのがナンセンスだって話は置いておくとして、何かアプリケーションを作るという段階においては、専門性が重要視されるだけで、それが文系だろうが理系だろうが関係ない事です。
専門性は、八百屋でもいいし、アプリケーションを必要だから作っていくが、大切な事です。
八百屋さんでも、帳簿を付けます。それは帳簿のソフトで付けているかもしれません。でも、八百屋特有の仕入れや管理には適していないかもしれない。その時に、今ある物で我慢するか、手書きに戻るかではなく、手書きでやる事をアプリケーションにしてみるという考えが、プログラムの最初なのです。全部は無理かもしれない。それなら、一部だけでもいい。そうして、作ってみれば他にはない専門性を持ったアプリケーションをプログラミングする事になります。
簡単に言っていますが、そのアプリケーションが難しいといわれるのかもしれないが、それは当然です。
それを生業としている人が居るのですから・・・。そう言ってしまえば話は終わってしまいますが、その生業としている人と同じ事ができると考えるのではなく、自分が必要としている物だけを作る事に集中すればそれほど難しくないでしょう。
プログラムを大きく考えれば、運動会の順番もプログラムという。あれと同じで、まずは自分がやりたい事の手順を紙に書き出す所から始めればいい。
書き出せれば、プログラムの前段は終わった様な物です。
そこから、今度は、その一つの手順をまた細かくしていけばいい。
その時に、出てくるのが、”判断”と”繰り返し”だ。八百屋なら、みかんの在庫が10個を下回ったら仕入れるとかなると思う。これが判断になる。店頭に、3個ずつにした台の上に並べる場合は、何回並べるのか解らないがこれが、繰り返しになる。
こうして、手順を書き出してみて、これ以上細かくならないと思った手順の中で、アプリケーションでやる部分を考えて、一つ一つパソコンやスマホといったプログラムを実行する機械に、解る言語で書いてあげるのです。
人間がやる事は、人間がやればいい。アプリケーションにやらせる部分は、ここまでできていれば、実際に言語を使って記述するわけだが、ここからは言語の世界の話しになってくる。
プログラミングは、『条件が同じなら何度考えても同じになる事』を『利用する言語で記述する』事にある。
みかんの在庫が10個を下回ったら仕入れを行う。
この時の条件は”10個”という条件だけで判断している。しかし、夏場と冬場では売れる数に違いがあるかもしれない。その夏場/冬場を判断するのが、気温なのか、カレンダーの月なのか、それともみかんの卸値なのか、人間はそれを”経験”という記憶を下にした条件で判断を行っている。アプリケーションには、経験がない。その為に、条件をしっかり考えていく必要がある。
気温なら、予報でいいのか?実際の気温にするのか?それは朝なのか?昼なのか?夜なのか?天気や湿度は必要なのか?条件を追加する事で新しい条件が産まれる。この条件で、利用者が入力した方がいい物と自動で取得可能な物に分けられる。気温や天気の予報なら、インターネットの天気予報を使えば取得可能である。このように、条件を掘り下げていけば、より人間に近い判断が出来るようになってくる。しかし、人間にできて、アプリケーションが苦手としているのが、”イレギュラー”な状態への対応だ。条件を考えていても対応出来る物ではない。それなら、ばっさり諦めるという選択も取れる。アプリケーションは、あくまで人間が行う作業の補助なのだ。全部を行おうと考えるのが間違っている。補助だと割り切る事で、より使いやすい物になっていくのだ。
ここまで考える事が出来れば、プログラムを書く準備が整う。
でも、プログラムはできるようになっているのは間違いない。言語知識が足りないだけという事になる。
ここまで来てやっと言語の選択になるというわけだ。
プログラムの学習=言語の習得
だと思われている人が多いようですが、プログラムの学習と言語の習得は別物です。
個人的には、プログラムは考え方であって、言語はその考えた事を、パソコンやスマホに解るように記述する命令だと思っている。したがって、どう勉強したらいいかと聞かれたら、まずは、プログラムを覚えようという事になる。
しかし、ここで問題になるのが、考え方をつらつらやっていても、なかなか覚えられない。実際に動かしたほうが覚えやすい。そう考えて、言語をから入るのも悪くはない。悪くはないが、正解でもないという事になってしまう。
最初に勉強する言語はなんでも良いと思うが、できれば、コンパイル言語であり、スタンドアローンで動く物が良いと思っている。
Javaでもいいと思うし、VB.NETやC#と言った物でもいい。
最近の開発ツールは優秀だから、ヒントも大量に出るので、最初の取っ掛かりさえ間違えなければ、十分プログラムを書けるようになると思う。
言語的なブラックボックスが少ないのは、C++などだろうとは思うが、すこし敷居が高いように思える。
初めて触るのなら、Java か C# が良いと思っている。PHPやRubyと言った言語もいいとは思うが、すこしブラックボックスが多いように思える。それに、言語理解の時に、ネットワークの理解やら動作原理の理解が入ってくる。無くてもプログラムは作れるが、PHPしかかけない人間が出来上がってしまう。会社などで即戦力とか言っているがそれは間違っている。使い潰されるだけだ。
古い・・・古い話で、COBOL だけで育った人をVB.NETが使えるようにして欲しいといわれた事がある。
プログラムとしては書けるが、汎用機的な考え方が抜けないので、なかなかイベントやプロパティやメソッドという考え方に馴染めないでいた。しかし、内部のコードに関しては完璧に書くことができる。多少の戸惑いはあるが、コードを書くという事では、COBOLだろうと、VB.NETだろうと、PHPだろうと変わりはない。言語特有の考え方ができるようになるかどうかに関わってくる。
だからこそ言いたい。
プログラムの学習は、言語に依存しない部分だけを教えて、そこから、各言語特有の考え方を、ハードウェアやネットワーク交えて教えていく。それがいいと思っている。
◆◇◆◇
「石川さん。この資料ってプログラム学習の為の資料ですよね?」
「そうだね。なんで?」
「私もプログラムを覚えようと、いろんな本を読んだのですけど、Javaがどうのとか、Cがどうのとかそういう記述が多くて、いきなりソースを書く準備をしてみようって奴が多くて・・・。諦めたのですけど、真辺さんの資料って、一切そういうのが出てこないのですよね。これで、プログラムが書けるようになるのですか?」
「う~ん。難しい質問だよ。ナベさんなら明確な答えがあったと思うけど・・・。でも、言語を覚えるのは、後回しでいいと思うよ。まずは、業務理解とやりたい事と出来る事の整理かな」
「この資料。石川さんが編集し続けるのですよね」
「うん。そのつもり」
「あ・・・後。資料ってよりも、小説なのかな?あれはどうするのですか?」
「え?あぁナベさんが書いていた、異世界に転生して、異世界の魔法をプログラミングする話?」
「そ。真辺さんにあんな趣味があったとは知りませんでした」
「私もだよ」
「でも、この小説・・・主人公、真辺さんですよね?」
「あぁ貴子ちゃんもそう思う?」
「はい」
「そうだよね。多分、ナベさん。異世界に転生してもプログラムを作ったり、火消しをしたり、しているのだろうね」
「あぁ私もそう思います。私、一度だけ、それも短い間だけでしたけど、真辺さん。なんか楽しそうにしていましたよね」
「うん。多分、あの人は、システムエンジニアでもなく、プロマネでもなく、管理者でもなく。根っからの”プログラマ”なんだろうね」
「でも、この主人公。結局どうなるのでしょうね。気になっちゃいますよ」
「そうだね。また、読み返してみればいいよ。気になったら、貴子ちゃん続き書いて、発表してみれば?」
「えぇ辞めておきます。こんなプログラムの事ばかり書いてあるラノベなんて、絶対に人気出来ないですよ」
「だよね」
二人は笑いあった。
パソコンのディスプレイには、書きかけの文章の一つがあった
『魔法の世界でプログラム』
それは、こんな書き出しで始まっている小説だった・・・。