私がvimを教える理由

2020/11/17 06:23

Adam Michlin    
コンピューターサイエンスの講師
この記事は、著者の許可を得て配信しています。
https://blog.ceos.io/2020/11/14/why-i-teach-vim/

なぜvimが使われているのかという理由はかなり広範囲で説明がなされているので、今回は2020年になっても私が高校生にvimを教える理由を少し時間をかけて説明しようと思いました。

2008年の金融危機の直後、コンピュータサイエンス科の9年生から12年生までの混成クラスを担当することになったのがすべての始まりでした。金融破綻がきっかけで(Confickerウイルスが理由でもありますが)、私はVB 6.0とWindowsシンクライアントを使ったプログラミング入門を教えることになったのですが、それ自体がいい経験となりました。この経験は別のブログ記事として書く価値がありますし、私の専門分野の一つがコンピュータセキュリティを教えることであるよい理由付けにもなりました。

私は、AP CS A (AP CS A Java Courseコース)コースを含むすべてのレベルの学生と、時代遅れのWindows PC (少なくともシンクライアントはなくなっていました)を教えています。以前はどんなソフトウェアもインストールできず、C言語を教えたいと思ってはいましたが、Javaを教えなければならず、選択肢はほとんどありませんでした(これらはオンラインのWebベースのIDEの前の時代でした)。

UCSCでの素晴らしい教育のおかげで、UNIX のコマンドライン、主に Sun Workstations を使った経験があったので、それは問題ではありませんでした。1990年代にLinuxをいじっていたこともありましたし、それなりに成功していましたが、10年近く触っていませんでした。そこで私は、私のマンションの外のゴミの中に古いPentium 2の残骸を見つけ, ハードドライブをインストールし、ちょっと変ですがUbuntuと呼ばれるこの新しい(私にとっては、ですが)Linuxを試してみました。

私はこのマシンがあれば、すべての学生に一度にコーディングさせることができることにすぐに気付き、旧式のPCをサーバーに接続するために putty.exe (実行のためのインストール不要!)を接続すると、すぐに私の生徒がコーディングを始められるということが分かりました。

なぜ私は彼らにvimを教えたのでしょうか?当時、すべての選択肢の中で悩み抜いて、vimが教育的に最適な解決策だと判断したと言いたいところですが、実際のところ、ただ単に父親からviを教わっていたから私が大学で使っていたのはviだったというだけでした。私には幸運にもそういう業界で働いていた父親がいて、父はテキストエディタの歴史の中で脚注に名前が書かれるような人だったのです。多くのコンピュータサイエンスの先生に共通している厳しい試練というのは、自分が知っていることだからという理由で、そのことを教えることです。私は、すべての教師が教えるべき正しいエディタや1つの正しい言語を重要視するよりも、教師がエディタ、特にプログラミング言語を知っていることの方が重要であると思っています。

しかし、何年も経った今でも、私はvimとコマンドラインを教えています。ここでは、どのように私が自分の決断を正当化したかを説明します。たとえそれが自分自身に対する理由であってもです。

それは、とてもうまくいっています。新しい学校に行くたびに、IDEを動かすのに必要なソフトウェアをインストールするのに時間がかかります。ある学校では、 AP CS AクラスがMac OS X上でEclipseを使って大騒ぎしていました。学生がアドミニストレーターアクセスを必要としいたのですが、管理者アクセスを持っていなかったのです。私の現在の職場には素晴らしい技術部門がありますが、その部署でもVisual Studio Codeを生徒のMacBook Airにデプロイする方法を見つけるのに何週間もかかりました。そこで、私たちがPython3とJavaをデプロイする方法を見つけ出さなければなりませんでした。だから混乱もしませんでした。私は多くの統合開発環境 (IDE) と一緒にvimを教えていますし、複数のプラットフォームと複数のIDEを教えることは私の責任だと思っています。しかし、CLIとvimは常に私のセーフティネットなのです。

私の生徒は、現在クラウドベースのCLI Linuxマシン(LinodeとDigital Ocean、ありがとう!- どちらもたった月額5ドルでプランを提供してくれています。最高!) CLIを使用することで、文字通りあらゆるタイプのコンピュータ接続に対応することができます(iPadやChromebookもその対象です。ただ、vimユーザーとしては、仮想escキーがないために気が狂いそうになりますが)。学生は世界中のどこからでも接続することができます。こういったことが、パンデミックのリモートや、ハイブリッド学習(知識習得やテストなどを「eラーニング」で行い、ディスカッションや実地訓練などは「集合研修」で行うという、2種類の学習方法を併用する学習スタイル)において大変重要になりました。そして、これはすべて学生がvimを使っているからこそ可能なことなのです。

私はCSを専攻している多くの学生について把握していますが、確実なのは、彼ら全員がvimとCLIを教えた私に深く感謝していることです。多くの大学では、CS1 (computer science1) をIDEで始めて、CS2の学生はCLIのとても深いところまで学びます。CLIに精通した父親を持つことに関しては、誰もが私のように幸運なわけではありません。

また、最近ではオンラインIDEもありますが、それらには独自の落とし穴やプライバシーやコストの問題があり、それらを使って高度な作業をするのは不可能ではないにしても非常に困難だと感じています。

また、ここで明確にしておきたいのですが、nanoとEmacsはCLI Linuxのコンテキストでは非常にうまく機能していますし、1つの小さな議論を除いて、教師が同等に受け入れられるコマンドラインのテキストエディタではなくvimを使うべきだという主張はしていません。ほとんどの人が同意しているように、コンピュータのセキュリティにはコマンドラインとテキストエディタの知識が必要です。私はいつも生徒に「マシンにすでにインストールされているエディタはvimであり、別のエディタをインストールしなければならない時は最悪の日である」と教えています。おそらく、倫理的な侵入テスト(ペネトレーションテスト)に興味のある学生のためだけの問題なのですが…

appstore
googleplay
会員登録
URLからPICKする

会員登録して、もっと便利に利用しよう

  • 1.

    記事をストックできる
    気になる記事をPickして、いつでも読み返すことができます。
  • 2.

    新着ニュースをカスタマイズできます
    好きなニュースフィードをフォローすると、新着ニュースが受け取れます。