シェル・ワンライナー160本ノックのあとがきの代わり2: 学生時代の私は10分でワンライナーに飽きた
Sun Oct 3 22:02:17 JST 2021 (modified: Mon Oct 4 08:32:18 JST 2021)
views: 2542, keywords:シェル芸本, 日記 この記事は最終更新日が3年以上前のものです。
前回、シェル・ワンライナー160本ノックのあとがきの代わり1の続きです。 特に前回のを読む必要はありませんが、このなかで「自分は遠回りした」と書いたので、その話を少しだけ書いて寝ます。
ワンライナーとの出会い
私がパイプを始めて使ったのは、大学1年か2年のときの実習かなにかのときでした。 コンピュータは駒場の計算機センターのBSDかなにかでした。 端末でテキストファイルをプリンタの1ページ分ずつに分割し、 プリンターに流し込むワンライナーを書けと言われた記憶があります。 確か、最後のコマンドがlp
だったのですが、 その前段のコマンドは、残念ながら覚えていません。 ただ、これがUnixのやり方だという説明は受けたような気がします。
10分後訪れたワンライナーとの別れ
私は1回この作業をして、課題を提出しました。 しかしこれ以後、 30歳になるまで意識的にパイプを使ったことは一度もありませんでした。 「これがUnixのやり方」を聞いた私の反応は、残念ながら「なんだこのローテクは」でした。 私は初心者ながらも入学祝いに買った98ノート(当然OSはWindows95)を使っていて、プリンタも持っていたので、 クリックひとつで絵でも何でもプリントアウトできる環境をすでに持っていました。 そういう学生から見たら、テキストファイルを単にプリントアウトしてもなんも面白くありません。 パイプでつなぐというやり方が少し面白いとは思ったんですが、 これがもっといろんなこと(実はプログラミングの基礎であることなど)につながるとは、あまり考えませんでした。
その後のいくつかの講義でも、Unixのコマンド覚えろみたいな課題は何回かあったのですが、 ものすごく面倒で、とりあえずギリギリ単位が来たらいいやという気持ちで適当にやっていたのをなんとなく記憶しています。 「大学って古いもの使うなあ」という認識でした。 「これを覚えれば点数が取れる!」みたいな素直な学生ならよかったのですが、 点数にはさほど執着がなく、それよりWindowsでC++覚えることに全力を注いでいました。 退学するところでした。
研究室に配属されてからはLinuxを使う機会はちょこちょこありましたが、OfficeもMFCもないWindowsという感じで使っており、 端末を開くことは最小限に留めていました。
当時を振り返って
そんな状況から私が「シェル芸」などと騒ぐことになった経緯については機会があれば後日書きますが、 とりあえず駒場のときは、私の「Windowsでいいんじゃないの?」に、 誰も私を納得させる答えを持っていなかったし、 私もしつこく人に聞かなかったことを覚えています。 私が頑固だった、ということは大きな要因ですが、 今も私のようになってしまう学生は多いんじゃないかと思います。 大学のカリキュラムにWindowsを導入するということも考えられない時代であり、 かつ熱心に講義をする大学教員の割合も少ない時代だったので、 今の基準で考えると「なんでわざわざこんなこと(Unixを使うということ)をしているのか」 というプレゼンテーションが強くなかったのは確かです。 東大の駒場というところは、同じクラスの学生の進路が全員バラバラなので、 これも教員にとってはプレゼンテーションが難しい問題だったかもしれません。 私でも、ここで全員に当てはまる「なぜコマンドやワンライナーを使うか」を一言では書けません。 あ、でも、今ならWindowsでもWSLが使えるので、 コマンドを覚えるといろいろ便利だよとは言えるかもしれません。
幸い、自分の場合は1年生から学科が決まっている学生を相手にしているので、 講義で「なんでわざわざこんなことをするのか」 ということをクドクド言うようにしています。 教員の役割って、勉強を教えるというよりは、 興味を持ってもらうことにあるとも考えています。 しかし言うは易しで、自分の講義を受けた人の一部は、 課題に追われてLinuxを嫌いになっているだろうということも自覚しており、 日々、どうしたものかと頭をかかえています。 半期で時間に追われるまま終わってしまう講義というものは、点数をつけるほうにもつけられるほうにも、 継続的な学習には最善でないことは明らかなのですが仕方ありません。 もし大学で悪い成績であっても何年もかければ挽回できるので、 自分の講義で「○○嫌い」にならないよう、祈る日々です。
シェル芸界隈のこと
学生のときの私もそうですが、入門するかどうかギリギリの人というのは、 「先輩」にあたる人たちが重要だと考える物事に興味を持たず、安易な方に行ってしまいがちです。 その安易さは、一見合理的に見えても、実は消費者的な考えが支配にされており、 何かの作り手になるためには非合理的なものです。 誰でも使える武器をお金で買って使うなら、平均を大きく超えないと、 「Twitter駆け出しエンジニア勢」が目指す年収1000万は無理です。
それは、「先輩」にあたる人たちにとっては、 意味不明な行動であったり、滑稽に見えたりするわけで、 Twitterで文句を言っているベテランの人もいます。 自分も「駆け出しエンジニア勢」については、 なんか悪人たちの餌食になりそうなので度々Twitterで言及していますが、 もしかしたら良くないかなとはいつも気にしてます(言及しちゃってますが)。
結局、「なんでいまのシェル芸界隈があんな雰囲気なのか」というのは、 私の学生のときの「後輩」としてのダメな行動や、Twitterの「先輩」の方々の、 本人は悪気のないダメツイートの反省を踏まえたものです。 わざわざ私を訪ねて来て「教えて下さい!」という人にはストレートに何かを言えばいいのですが、 そうでない人に例えばシェルの話をするには、まず心を開いてもらう必要があります。 「心を開いてないのに一方的にTwitterで意見する」のと真逆を行かなければなりません。 なので、シェル芸界隈は「その真逆」をやっているわけです。 これは種明かしというより、言っておかないと、 ただふざけてウンコとか○○コを連呼するだけの人が出てしまうので、定期的に言っていることです。 また、こう書くと私が全部裏で仕掛けているような感じがしますが、 そうではなくて、「その真逆」をやっていけば、「その真逆」ができる人が集まるわけで、あとは自然に・・・ということになります。
ということで、その界隈から誕生した「シェル・ワンライナー160本ノック」は、 当然そういう雰囲気を持っているので、ここまで読んだ人は買ってください。 (結局言いたいのそれかよ。) 講義みたいにタイトルに「半年」と書いてはありますが、 単位や点数はつきません。末永く愛読をよろしくお願い致します。
- 1日1問、半年以内に習得 シェル・ワンライナー160本ノック (Software Design plusシリーズ)
- 上田 隆一, 山田 泰宏, 田代 勝也, 中村 壮一, 今泉 光之, 上杉 尚史
- 技術評論社 2021-09-27