4月からUnix/Linuxを使い始める計算機科学系の学部一年生へのアドバイス

担当している導入授業で良く見る不安に対する私なりの返答とアドバイスを書きます。

まずは、以下を用意しよう!

重要なことは記録です。自分の記憶力を信じてはいけません。記憶力は夕ご飯何食べるとか、あの子かわいいな/あいつかっこいいなとか有意義な情報に割り振りましょう。次に、情報の検索対象を絞り込むことが重用です。とにかく、まずはあそこを探せば良いという状況を作っておきましょう。

  • 計算機関連メモノート&筆記用具(ボールペン1本でOK)
    • 知らないコマンドや謎のエラー、概念図など計算機に関することを何でも書いておくノートを1冊用意しましょう。携帯やスマートフォンでもよいのですが、図がかけないことが弱点です。
  • カメラ付き携帯電話・スマートフォン
    • 謎エラーが出たときの強い味方がこれです。パニックになる前にとりあえず画面に表示されているエラーメッセージを撮ってしまいましょう。そうすれば、後で検索するときや詳しい人(教員含む)に相談するときに役立ちます。もちろん、部外者秘のものを撮影してはいけません。

次のことを認識しよう!

  • みんな初めは初心者
    • Unix系導入授業を担当して丸7年たちますが、受講者の8割の不安が「初めてなのでついていけるか不安です」というものです。5割ぐらいは「パソコン自体ほとんど使ったことありません」と言っています。周りの人がタッチタイピング(ブラインドタッチ)をしているのをみて、びびってしまうと思いますが、8割が初心者&不安をかかえています。これから覚えれば大丈夫です。
  • 道具になれるにはたくさん&継続的に使うしかない
    • 計算機は道具です。道具をつかいこなすための唯一の方法は「たくさん&継続的に使う」しかありません。その道具の使い方を覚えたいならば、効率的にとかは二の次、三の次にして時間をかけてたくさん使いましょう。この時間をかけてたくさん使うというポイントを学生生活にうまく組み入れることができるかどうかが、UnixLinuxに慣れるコツです。時間をつかわずに効率よくは9割9分失敗します。
  • どこを探せば良いのかがわかっているならば、覚えておく必要はない
    • Unixのコマンドが多すぎて覚えられません」と良く言われます。ポケモンのモンスターの数、サッカー選手の数に比べればUnixコマンドの量は大したことありません。でも、覚える必要はないです。前の節で書いたことと重複しますが、私たちは自分にとって重要でないことを覚えていられません。ですから、Unixコマンドを丸暗記するのは諦めてください。本、Google、man、info、各種設定ファイルなど説明や情報がありそうな場所を覚えて(どこかに記録して)、困ったときはそこから知りたいことを見つけてください。この癖とたくさん&継続的に使うことによって主たるコマンドは覚えます。

Tips

  • タッチタイピングを早く身につける
    • Unix系の強みはCUI(Character User Interface)です。これを最大限に生かすためには、キーボード入力が早くないといけません。そこで、アルファベット&数字だけで良いのでタッチタイピングを覚えましょう。ただし、別に入力オペレーターになるのが目的ではありませんから、そこそこできれば良いです。どうせ、プログラミング時には考えている時間の方が長いです。
  • 相談できる友達を数人つくりましょう
    • 困った時には友達と相談するのが重用です。なぜか?自分が困っていることを明確に言語化する必要があるからです。ですから、詳しい人を相談相手とする必要性はありません。
    • 自分の部屋でならば、くまのぬいぐるみ相手に相談しましょう → ベアプログラミング(テディベア効果)
  • バージョン、環境を調べる癖をつける
  • インストールログ、実行ログをWebページにまとめましょう
    • 二度あることは三度あるということわざを実感しない週はありません。みなさんは同じミスを十数回繰り返すと思います。そんなときのためにインストールログ、実行ログをつけましょう。そして、できればこのブログのようにそれをWebで公開しましょう。
    • コンピュータの設定メモをつくるときに記載すべきこと

たくさん触れるために

  • 学校の演習環境を自分のパソコン上に再現する
    • Linuxをインストールし、必要なソフトウェアを揃える経験をしておくと急激に知識がアップします。
    • まずは、Ubuntuあたりの親切心いっぱいのツールをインストールし、次にDebian GNU/Linuxでどうしたら良いのかわからなくなるのがよいのではないでしょうか。
  • 普段使いの言語を1つ用意する
    • 授業で使う言語とは別に普段使いの言語を1つ用意し、それを使って日常の細々したプログラムを組んでみるのは良い方法です。
    • 特に組むプログラムがないならば、自分の卒業要件判定プログラムを作成すると良いでしょう。履修案内を熟読でき、かつ、そこそこ面倒なプログラム(多くの大学の卒業要件は例外的条件が多い)を組む練習になるでしょう。組みあがったらそれをWebアプリで同じ学科・学年の人が使えるように拡張、次に、全学年に拡張、そして、学部に拡張、全学に拡張してみると良いでしょう。全学年に拡張あたりから吐き気がすること請け合いです。
  • Facebookアプリ、Twitterアプリ、iPhoneアプリAndroidアプリなどを作って小遣いか背偽稼ぎを試みる
    • 実際には稼げないと思いますが「稼げるかも」という期待はプログラムを始める良い動機です。実際に作り始めたら、作ること自体が楽しいと思います。

道具が使えるのは最低条件、求められているのはその先

みんな初心者なんですが、いつまでも初心者でいてはいけません。みなさんはエンドユーザーになるために進学したのではないはずです。ですから、道具は使えて当然。この意識が重用重要です。