アカウント名:
パスワード:
「学習曲線が延々と続く上り坂」という状態はやはり避けるべきではないでしょうか。
unixの世界はもっと広く楽しいはずです。
私はかけ算や漢字のドリルを繰り返す苦行が勉強だと勘違いしてるやつらはレベルが低いと言ってる
私の経験から言わせてもらえば、程度の低い研究をする人ほど「人間努力が大事」と言いたがります。
いや、あなたの周りにまともな研究者がいないだけの話だと思いますよ。
いや、あなたのレベルが私の周りにまであがってきていないだけでしょう。あなたの周りの人間がやっている努力が見えていないだけ。 脳みそと言うのは、筋肉同様鍛えなくてはいけません。鍛えなければ優れた発想を『周囲に理解できるレベルまで落としこむ』事はできないのです。なにしろ、人間の体の中で最も『怠惰』にできている器官ですからね。 情報を入力し、解決策を探って探って探って…もう駄目だという所でさらにもう一押しして…「だぁっ!! 今日はもうおわりっ!!」と言って諦めて風呂に入る…と知恵が出てく
「初心者でも使える」エディタという意味ならば(snip)「初心者を鍛える」エディタ、と言う意味ならば、vi系とemacs系は両方使わせる必要がある。おそらく状況によって違うだろうが、root として育てたいならばviを先に、プログラマとして育てたいならばemacsを先に、だろう。しかしいずれにせよ両方、だ。 vi使えないとだめだとかemacs使えないとだめだとか、そんなどうでもいいことで新人いじめてどうするんですか?
重要な部分を読み違えているのではないかと思いますが、新人に限らず、一般ユーザ、管理者教育、プログラマ教育とを分けて書かれているようですよ。 また、お二方、同じような話題を各々が違
>なんというか構文エラーが治せない学生は、
>配布資料をプログラムとして打ち込んでいるわけでなく、文字列として打ち込んでいるだけのような気がする。
初心者を鍛えるためには、viやemacsを使わせるのではない。viやemacsでなければいけない状況に追い込むことだ。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
※ただしPHPを除く -- あるAdmin
『初心者向け』の意味による (スコア:2, 興味深い)
「初心者を鍛える」エディタ、と言う意味ならば、vi系とemacs系は両方使わせる必要がある。
おそらく状況によって違うだろうが、root として育てたいならばviを先に、プログラマとして育てたいならばemacsを先に、だろう。しかしいずれにせよ両方、だ。
.
vi を教える理由は2つ。「正規表現を教えるため」と「システム管理者として必要な技能である」から。
正規表現は計算機を「生産性高く」使う上でどうしても必要なものだ。これを知っている人と知らない人とでは、作業速度が1桁違う。
一方で、システム管理者たるもの、GUIがない世界でも仕事をしなくてはいけない。「すでに動いているサービスに対する影響を最小限に抑えたまま」という条件がつくと、emacsのような重たいエディタは使えない。
当然だが、カーソルキーを触ることは厳禁。Xの場合、わざとxmodmapでブロックする事もある。hjklを覚えないと、『本当にカーソルキーが無いマシン』にぶち当たったときに不幸を見るからだ。「専用サーバ」(NASサーバとか)の管理端末の一部には、まじでカーソルキーの無いものがあるので、この訓練はどうしても必要。
.
emacsを教える理由は、なによりも、まず「キーバインディングは変更できるのだ」と言う事を教えるため。ほとんどのエディタはキーバインディングが固定だ。カーソルを動かす方法はもちろん、「aというキーを押したときに何が起こるか」の果てまでも書き換えられるエディタは、いまだにemacsぐらいなもの。この「柔軟性の高さ」が「エディタのキーは決まっている」とか「この環境のキーバインドは使いにくい」とか、そういう固定概念を破ってくれる。優れたプログラマを育てる上で、実はこの『ショック』がとても役に立つ。
また、emacsは「emacs上だけで全てができる」と言われるほど、柔軟でもある。「なぜそんなに柔軟な状態を作れるのか」を理解する過程で、中がどうなっているのかを意識してもらえる。
最後に、Garbage Collection の存在。Javaを使っている人も含めて、ほとんどの初心者プログラマはGCの影響がどのように起こるのか、『体感』していない。emacsは時々、ガクッと遅くなり、disk IOがゴリゴリ動き出す。GCが動いているからなのだが、それを「調査」させる。何が起こっているのか、なぜ起こっているのか、それはなになのか。便利なのか不便なのか、Prosは? Consは? これらを説明できるところまで調査したなら、立派な中級プログラマだ。
というわけで、ここまで「教育環境」として優れているものは他にない。
もちろん、その柔軟性は実用の上でもすばらしい。
.
というわけで、初心者を鍛えるという目的であれば、emacs と vi は必須。
他のエディタだろうが統合環境だろうが、ここまで「それ自体が教材として優れており」かつ「学習を極めると性能が上がる」エディタは、いまだに他にない(それ自体が教材なので、学習効果が即座にわかる、というのが最大のメリットだ)。
学習曲線が延々と続く上り坂だ、という意味でもあるので「楽」ではないんだが。
fjの教祖様
そして初心者はみんなwindowsに逃げ帰った。。。 (スコア:3, すばらしい洞察)
それに「初心者を鍛える」という発想もいかがなものでしょう。それより「初心者はなまあたたかく見守る」というほうが、現実に即していると思いますよ。師が弟子に自ら来た道を最前の道として教えてしまったら、弟子は師を永遠に越えることはないでしょう。「俺はこうしてきたけど、おまえはどうする?」と問えば、あるいは弟子が師を越えていくということも将来あるかもしれません。
それにunix上のスキルだけがすべてではないと、私のように小学校の頃出会ったbasicでプログラム覚えた人間からすれば思います(どうでもいいことだが、basicのエディタはあれはあれで楽しかった)。入口なんてどこでもいいのですが、楽しくないとだめです。
notepad.exeを使い込んだって、たいして編集スピードは速くなりませんが、emacsであれば使い込めば使い込んだだけ編集スピードが速くなります。それは玄人からみた事実ではありますが、ここはあえて「まあとりあえずgeditでもつかってろよ」と言ってあげた方が、新人さんにはいいんじゃないでしょうかね。彼らの創意工夫に、もっと期待しましょう。
Re:そして初心者はみんなwindowsに逃げ帰った。。。 (スコア:2, すばらしい洞察)
なぜ?
一般に学習曲線は「急峻に上がる」ほど学習しづらく、使えるようになるまでが大変。つまり、厄介なのは「崖」のような部分がある場合。「坂」が延々続くのはむしろ「よい」環境なんですが。
もちろん、「坂が無い」状態が一見よいように見えますが、実際には「坂が無い」とは「役立たずなソフト」だという証でもあります。初心者と熟達者が同じレベルの作業しか出来ないなんて、使えない。
また、坂がそこにあるからと言って「登らなくてはいけないわけではない」。
学習する暇が無いなら、とりあえず知っている事を使って。チャンスがあったら坂を登って。目の前の問題を解決できる。
.
という「自発的学習」の概念が無い人だけ、篩から落ちていくのですが。
そういう人は「自発的学習の重要性」に気がつくまで、十分置いてきぼりを食らわないと目が覚めないので、しばらく放置プレイ。
fjの教祖様
Re: (スコア:0)
なんだかあなたの話を聞いていると、emacsをマスターするのが苦行の連続のような印象を受けるのですが、実際そうでしょうか?
私がemacsを触り始めた最初の印象は、viよりもプルダウンメニューがあって便利だなぁと、だから使ってみようってことでした。なんだか触っている内にmewとかdiredとかw3mとか便利な機能があるらしいことに気づく。eshellとか使えば、いちい
Re: (スコア:0, フレームのもと)
「掛け算なんか覚えられなくても、算数って言うのはもっと楽しいはずです」
「漢字なんか読めなくても、国語って言うのはもっと楽しいはずです」
と言う小学2年生の如し。
本当の本当に楽しい世界をちゃんと見てから言おう。
そういう世界では、正規表現もGCも「おはよう」と同じレベル。
だから広くて楽しいんじゃないか
fjの教祖様
Re: (スコア:0)
> 「漢字なんか読めなくても、国語って言うのはもっと楽しいはずです」
と言う小学2年生の如し。
何か話をすり替えようとされているようにも思えますのではっきり申し上げますが、私はかけ算や漢字のドリルを繰り返す苦行が勉強だと勘違いしてるやつらはレベルが低いと言ってるだけのことです。
普通の日本の成人でかけ算ができない奴とか漢字が読めない奴なんていますか?こんなもん普通に生活してりゃ、誰にでも身につきます。正規表現だって長くunixに触れてりゃそのうち普通
Re: (スコア:0, フレームのもと)
正規表現が苦行だというのも同じことだ。
私に言わせれば、そういうことを言う奴で、研究と呼べることをやっている奴などいません。
fjの教祖様
Re:そして初心者はみんなwindowsに逃げ帰った。。。 (スコア:1, すばらしい洞察)
> 私に言わせれば、そういうことを言う奴で、研究と呼べることをやっている奴などいません。
いや、あなたの周りにまともな研究者がいないだけの話だと思いますよ。Phys. Rev. A-E or lett.とかJ. Phys.とかいうジャーナルを聞いたことがありますか?
Unixは何もITやSEのためだけにあるわけじゃないのですよ。スパコンだって立派なunixです。mpiとかtorqueとか聞いたことがありますか?並列分散処理を如何に効率よく実行するか。これはコンピューターに高速を求めつづけた人類があくなく続ける探求の世界です。
ちなみに、私のいる世界で「正規表現を知ってれば作業速度が1桁違う」なんて普通ありえません(数学的に問題を解決することで100倍以上速く問題が解けるということは良くあることですが)。自分の狭い経験だけでものをしゃべるのもほどほどにされたらいかがでしょうか?
私はあなたのことを全否定するつもりはありません。おそらくはプログラマーとして優秀な方ではあるのでしょう。ただ、おそらくは私が上司として持ちたいタイプではないと思います。自分のやりかたが全てだと思っている上司ほど邪魔な物はありません。
Re: (スコア:0)
物理の世界だけがこの世の研究なの?なんでそんな専門的なジャーナル知っているか聞いているの?
Re: (スコア:0)
Net Present Valueって知っていますか?(この単語を知らない人が研究していないというつもりはありません。)当たり前ですが、費やした努力に見合ったリターン(の現在の価値)が費やした努力の価値を上まわるときだけ投資をするのが最善です。
私にとっては、Emacs習得コストはサンク・コストなので、大変便利に使っていますが、Windowsだけの世界で生きてきた知人・友人にEmacsを勧めるかといわれれば、答えはノーです。
Re: (スコア:0, フレームのもと)
いや、あなたのレベルが私の周りにまであがってきていないだけでしょう。あなたの周りの人間がやっている努力が見えていないだけ。
脳みそと言うのは、筋肉同様鍛えなくてはいけません。鍛えなければ優れた発想を『周囲に理解できるレベルまで落としこむ』事はできないのです。なにしろ、人間の体の中で最も『怠惰』にできている器官ですからね。
情報を入力し、解決策を探って探って探って…もう駄目だという所でさらにもう一押しして…
「だぁっ!! 今日はもうおわりっ!!」
と言って諦めて風呂に入る…と知恵が出てく
fjの教祖様
Re: (スコア:0)
Re: (スコア:0)
Re: (スコア:0)
ちなみに俺は、ネットワーク管理するなら当然viを教えるが、そうじゃなければ、プログラミング含め、必要とその子に応じて、GnomeだのKDEだのEclipseだのを使わせる。Emacs使ってみる?とは聞いては見るけど推奨はしないな。#1376831のGCのくだりとかこじつけすぎ。
#つか、こういうアホがいるからEmacs使いが減るんだよ。このアホめ。
Re: (スコア:0)
>ちなみに、私のいる世界で
どの世界ですか? どう検証すれば良いの?
ついでに、あなたは奥山氏の分類では vi も Emacs もその使い方を学ぶ必要の無い人でしょ。
Re: (スコア:0)
Re: (スコア:0)
重要な部分を読み違えているのではないかと思いますが、新人に限らず、一般ユーザ、管理者教育、プログラマ教育とを分けて書かれているようですよ。
また、お二方、同じような話題を各々が違
Re: (スコア:0)
>
> もちろん、「坂が無い」状態が一見よいように見えますが、実際には「坂が無い」とは「役立たずなソフト」だという証でもあります。初心者と熟達者が同じレベルの作業しか出来ないなんて、使えない。
学習曲線は、学習「達成」曲線であって、学習「要求」曲線ではありません。
学習者の学習行動を「記述する」グラフです。
学習曲線が急峻に上がるなら、それは急速な学習が生じると言うことであり、
学習しやすいということになります。
同様に、坂がないのは学習が生じないと言うことであり、つまり学習しなく
ても使えるか、使えるようにならないということです。
投稿の趣旨は理解できますが。
Re:そして初心者はみんなwindowsに逃げ帰った。。。 (スコア:1, 興味深い)
どうしても使えなかったので、Linux使うときは隣にWindowsのノートPC設置して、そちらのメモ帳で編集したファイルをftpで送っていました。とてもめんどくさかったですが、あのわけのわからない操作を覚えるよりはマシだと思って耐えました。それ以来Linuxは触っていません。
使いこなせば便利だといわれても、最初のハードルが高すぎて初心者には無理です。
Re: (スコア:0)
多分半分はそれが目的でしょう。
所謂篩いにかける。
あと、
>師が弟子に自ら来た道を最前の道として教えてしまったら、
道を教えて越えられない弟子は結局それだけのレベル、と言うことですね。
逆に、いちいち問うと言うことは、弟子を成長させない手段ですね。
#自分で疑問点を考えさせない→疑問は与えられるもの
#と言う考えを弟子が持ちます。
まあ、あなたはそれが目的なんでしょうけどね。
レス元がACなのでAC
Re:『初心者向け』の意味による (スコア:1)
何が問題かというと、例えばC言語の予約語がハイライトされたり、括弧の対応を視覚的に示したり、文字列の””の対応が悪いとハイライトで示したりといたせりつくせりですが、初期教育の時にはこの手の事を自力で見つける能力を養成する必要があると考えています。
まぁ簡単に対応するにはC-Modeを使えなくすればいいだけですけどね。
Re:『初心者向け』の意味による (スコア:1)
Re:『初心者向け』の意味による (スコア:2)
EmacsのC-Modeのハイライト機能でわかるのは初歩的な構文エラーのみです。この手の構文エラーが自力で発見出来ないようでは、さらに複雑なバグが発見出来るわけがありません。
Re:『初心者向け』の意味による (スコア:1)
> さらに複雑なバグが発見出来るわけがありません。
構文エラーと bug が同じだとお考えなのですね。
複雑な bug が発見できる人が身近にいらっしゃって、
その人は、構文エラーも自力で発見できるのでしょう。
しかし、それは物事の表面しか見えていない。
# つまり構文エラーしか見えていない。
より複雑な bug を発見するのに必要なのは
テストとロジカルな思考です。
# 目が沢山あれば...などと馬鹿は言うです。
# 揃いも揃ってガラス玉とふし穴というリスクを考えないらしい...。
構文エラーの発見には、テストとロジカルな思考は必要ありません。
# 反復練習や、コーディング規約の方が、よほど重要です。
因果関係について、深く思慮される事をお勧めします。
Re:『初心者向け』の意味による (スコア:1)
その学生の傾向として、前述のような意見を述べたのですが、再考してみます。
関連性があるか無いか。。
なんというか構文エラーが治せない学生は、配布資料をプログラムとして打ち込んでいるわけでなく、文字列として打ち込んでいるだけのような気がする。
Re:『初心者向け』の意味による (スコア:1, すばらしい洞察)
コンパイラやインタプリタがエラーを吐いてくれてるのに直せないようなら、
英語や、検索エンジンやドキュメントによる調べ方(エラーメッセージやエラーコードで検索)を教えるべきです。
これは同感ですが、直せない原因は「発生しているのが何のエラーなのか分かっていない」、「構文エラーが何なのか分かっていない」という所にあるのではないかと思います。
わざと構文ミス(Cなら単純なセミコロンのつけ忘れなど)の時のエラーを見せて、このエラーはこれこれこういうミスによるもので
コンパイラはこう解釈しようとするのでこの位置でこういうエラーになっているんだよ、
という説明をして理解を深めてもらうのが良いでしょう。
自分で悩んで貰うのが必ずしも悪いわけではないのですが、
構文エラーが原因で別のエラーが発生する場合などは多少なりとも知識と経験が必要です。
コードを良く見直せば構文ミスの箇所は特定できると思いますが、なぜこのエラーになるのかという理由はまず分かってもらえません。
自力で理由まで気づくのはもっと理解が進んでからで、本当の入門者がそれまでに教わった内容だけで気づくことは出来ないと思います。
そして理由を理解しないまま直したところで得られるものはほとんど無いでしょう。
それは結局、
という事になってしまいます。
Re: (スコア:0)
> 構文エラーが自力で発見出来ないようでは、さらに複雑なバグが発見出来るわけがありません
という理屈もよくわかりません。構文エラーが机上で発見できないような人には、ロジックのバグやメモリのバグを見つけることは不可能ってことですか?
Re: (スコア:0)
C/C++に関してはコンパイラも教えてくれない事が多くて嫌になる。クラス定義の最後にセミコロン一つ忘れるとずっと後の方で謎のエラー出したり。
まあそういうのはエディタでもわからないかもしれないけど。
Re:『初心者向け』の意味による (スコア:1)
何故向いているかというと、例えばC言語の予約語がハイライトされたり、括弧の対応を視覚的に示したり、文字列の””の対応が悪いとハイライトで示したりといたせりつくせりで、初期教育の時はそれら構文を意識しないことによるバグが多いからです。最初のうちは構文を意識する意味でもハイライト機能等は重要だと思います。
自力で見つける能力は、必要ならそのうち身につくので問題ないです。
Re: (スコア:0)
Re:『初心者向け』の意味による (スコア:1)
Re: (スコア:0)
Re:『初心者向け』の意味による (スコア:1, すばらしい洞察)
初心者を鍛えるためには、viやemacsを使わせるのではない。viやemacsでなければいけない状況に追い込むことだ。
そうでなければ、ある程度使いこなせるようになったところで、上級者のエディタを使いこなしているという錯覚に陥り、成長がそこで止まってしまう。
もし、そういう状況に追い込めないのであれば、viやemacsは必須ではないってことだ。
Re:『初心者向け』の意味による (スコア:2, すばらしい洞察)
emacs入れるのも禁止…
その頃の先輩から「hjkl」でカーソル移動するよう厳しく指導されました。
理由はやはりカーソルキーのないマシンを触らなくてはいけないことがあるということでしたね。
私はそのような機会には会いませんでしたけど…
ほかの便利なエディタを使える環境で育っていたら、vi覚えてなかったと思います。
選択肢がほかにあると、覚えようとしませんね、確かに。
む、viに関する限りそれは正しい。 (スコア:1)
特に root として鍛える場合は、viに追い込むのは必須といえよう。申し訳ない。私が甘かった。
だが、emacsでなければいけない状況って…難しくないか?
vi → emacs という順序の場合、emacsがあるのにviがない環境ってのが難しいと思うんだが。そして、そこそこのvi使いはemacsを「使いこなすことなく」大抵の事をしてのけてしまう。
おそらく例外は Lispマシンぐらいなもので…
fjの教祖様
Re: (スコア:0)
初心者のレベルにもよるだろうけど、自力でその辺を戻せるくらいなら、もはや矯正は諦める段階かと。
Re:『初心者向け』の意味による (スコア:1, おもしろおかしい)
教祖様じゃ仕方がないな。
Re:『初心者向け』の意味による (スコア:1)
でも、それ故になじめなかったんだよな
正直やり過ぎ
特に日本語入力とかemacsだけ孤立してる感じがした
まぁ、不便なことを理解できただけでも勉強になると言えばその通りなんだけどさ
Re: (スコア:0)
カスタマイズが出来ないということは、作者にとってその仕様に余程の自信があるのでしょうが。
ですが、初心者がカスタマイズの対象であるという点はよくわかりました。
Re: (スコア:0)
当然だが、VT端末を持ってくるのはは厳禁。Xの場合、わざとterminfoを破壊しておく事もある。edを覚えないと、『本当にterminfoが無いマシン』にぶち当たったときに不幸を見るからだ。客先の管理端末の一部には、まじでterminfoが無いものがあるので、この訓練はどうしても必要。