既存のソースコードをエディタに打ち直す行為はプログラムの理解に意味があると思いますか?

ノートに字を書いたり、絵を模写したりするのは上達するといいますよね。

回答の条件
  • 1人1回まで
  • 登録:
  • 終了:2010/05/17 21:05:50
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答5件)

id:koriki-kozou No.1

回答回数480ベストアンサー獲得回数79

ポイント20pt

書き写すだけではほぼ無意味

関数の一覧や、関数を呼び出している箇所の一覧などを表示させるプログラムでも作って、流れを追うようにでもしたほうがいい

単語に関しては、それらの中で頻繁に使われているステートメント/プロパティ/関数/定数などから学んでいけばあらかた足りるようになってくる

id:mijusawa

無意味ですか、、、

2010/05/17 16:38:30
id:dev_zer0 No.2

回答回数332ベストアンサー獲得回数25

ポイント20pt

> 既存のソースコードをエディタに打ち直す行為は

> プログラムの理解に意味があると思いますか?

私は「全く意味は無い」とは思いませんが、

それよりも有意義なことはもっとたくさんあると思います。


例えば、「あえて」車輪の再発明である標準のライブラリを作らせてみるとか、

やたらに長い関数を分割させてみるとか、簡単なデバッグをさせてみるとか

基本的な機能の他にもっと便利な機能を追加させたりしてみるとか

私はそういうソースコードを新規で書いたり、修正してみる方が、

有意義な方法だと思います。


ただ打ち直す方法はタッチタイプには意味があると思いますが、

プログラミングの理解に意味があるとはあまりおもえません。

id:mijusawa

まず、自分の力で考えてみたほうがいいということですね

2010/05/17 16:39:22
id:doropon No.3

回答回数94ベストアンサー獲得回数16

ポイント20pt

おおいに意味があると思います。

御自身のお話であれば、是非やってください。

もちろん時間はかかりますが、スキルアップとしては有意義です。

目と手を動かすのは、やはり効率の良い勉強です。

速読なんかもはやっていますが、地道に続けることが回り道でも近道になると。考えます。

できれば、質の良いプログラムがいいですね。

アルゴリズムなども一度自分で動かしてみることで理解が深まります。

模写も作業的になってはあまり意味がないですし、ある程度理解できるようになっているのであれば、模写だけでなく、既存のコード読んでそれをカスタマイズしつつ進めていければ上達します。

これは間違いないです。

id:mijusawa

意味があるですね

2010/05/17 16:41:40
id:Bombastus No.4

回答回数409ベストアンサー獲得回数52

ポイント20pt

意味はあると思いますよ。


打ち直しているうちに、そのプログラム言語の書き方(構文)を覚えることができます。

また、用心深く打ち直していたとしても、最初のうちは打ち込みミスがあり、コンパイルエラーや実行時エラーが出るものです。その原因を探っていくことで、そのプログラム言語の構文の特徴を知ることができます。

id:mijusawa

意味があるですね

2010/05/17 16:53:25
id:kaz No.5

回答回数200ベストアンサー獲得回数42

ポイント20pt

絵の模写においても、

写真に紙を重ね、何も考えずにトレースする行為はほとんど意味が無いように、

ソースコードの意味や構造を考えずにひたすら打ち続けても、

タイピング技術以外はほとんど上昇しないと思います。


この部分を作っているのはこのソースか。

よく見かけるこれがお約束なんだな。

気になった数値を変えてみる....ああ、ここでこうなるのか。

でもここは変えたら動かない.....その理由はなんだ?


漠然とタイプするのではなく、

これらを考えながら、時には一部を取り出してテストしてみるなど、

積極的に「骨組み」を見ようとする視点が大切だと思います。

id:mijusawa

ひたすら打つのは意味が無いですか。

2010/05/17 16:53:52
  • id:mijusawa
    ソースを読み(理解)つつ打ち直すということです。
  • id:mijusawa
    絵のトレースは意味があるらしいですよ
  • id:koriki-kozou
    koriki-kozou 2010/05/17 17:13:24
    絵のトレースは練習の1つだがいつまでもそれをやるわけでもない
    C言語入門であればHello World!の段階といえばわかるだろうか?


    Cなどはライブラリをどのように組み合わせていくかというのが主な仕事のようなものだ
    いつまでも読み(理解)しつつなどという事をしていると、なかなか全体が見渡せず
    結果として理解は遅々としたものとなってしまう


    君はいつまでHello World!の段階をうろうろし続けるのか?
    回答1のようなコメントにした意味を再考してもらいたい
  • id:kaz
    > 絵のトレースは意味があるらしいですよ

    (ソースコードのタイプも含め)もちろん効果がゼロではありません。
    特に絵の場合は、行為の種類がプログラムと違うため、幾分マシな効果があります。
    しかしその場合でも、元写真の構造(人体なら目分量でもいいから骨格)を
    ある程度意識してトレースしない場合、身に付くのは「慣れプラスα」程度です。

    写真をトレースするなら、適当でもいいので、
    (人体の場合)首・肩・肘・手首・腰・足の付け根・膝などの
    関節を意識して写真上に棒人間を書き込み、
    トレースの際にその節目を意識すると、漠然と写すよりも遥かに効果があります。

    逆に言うと、漠然とトレースしても身に付く
    「慣れプラスα」というのは、無意識に構造を捉えている分です。
    同じ構図の絵を思い出して描く、ある程度の助けにはなるかもしれません。
  • id:ken3memo
    絵と書いているのを 絵=悪だくみ じゃなくって 絵=全体の構図
    全体の構図から設計/設計書と強引に読み替えると面白いかも。
    イロイロな絵/全体の設計/流れ(制御)を見るのは勉強になると思います。
    .
    あとは、チョコチョコソースコードを打ち込むのもいいんですが、1つ深くやりきるといいのでは?
    手前味噌な自分の記事ですが
    http://www.ken3.org/guchi/backno/guchi142.html
    ↑トンネルの話、貫通後、横に広げるのは簡単?的な発想で、1つ何かを完成させてみるのが良いと思います。
    ※その1つが難しかったりしますが。
    自分にあった学習方法が見つかるとイイですね。
  • id:doumoto
    8086のマシン語でも効果あるのかな。(´ー`)y-~~。
  • id:ken3memo
    マシン語...NEC8801-XXでN88BASIC時代、雑誌(BASICマガジンだったかなぁ)のコードを10本ぐらいかなり時間をかけてセッセと打ち込んだ記憶が。
    DATA 20,81,...
    と気が遠くなるくらいの時間打ち込みを続けるんだけど、確かにマシン語は覚えなかった。※10本ぐらいで打ち込みの量が少ないから?1000本打てば覚えたのかなぁ(ぉぃぉぃ)
    暴走してから、縦横のチェツクサムをチェックしていた記憶しか残っていなかったり。
    でも、打ち込んだソースが無事に動くだけで面白かった/感動した記憶もありますよ。
    ※今は付録DVDやネットからソースが簡単に落とせるので 打ち込み 動いた の 感動は無いのかなぁ。
    ※※打ち込みの効果って何かあるのかなぁ不思議ですよね。
  • id:fukken
    ファウラーはリファクタリングしながら読む事を勧めてたと思った(結果は破棄して元に戻す)。
    「目から手へ」で脳を経由せずにダラダラ打ち込むのは効率が悪いので、きちんと処理の流れを頭で考えるための手段としても効率的。
  • id:h_kondo
    文字をなぞってトレースするのではなく、デバッガーでステップ動作をさせて動きをトレースしたほうがよいのでは?。

    打ち込みの効果は、タイピングが早くなることくらい。
    タイプが早くなるとプログラミングが楽しくなるのは事実。

この質問への反応(ブックマークコメント)

トラックバック

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません