プログラマの人に質問です。

一通りプログラミングを勉強した後、オープンソースを読んでみたのですが、理解できない箇所・見たことがない記号などが多くあって落胆してしまいました・・・。
プログラマの人はコードを読んだとき(モノによりますが・・・)コードの内容は全て理解できるのでしょうか?
アンサーお願いします!

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2011/12/20 08:10:03

回答5件)

id:taknt No.1

回答回数13539ベストアンサー獲得回数1198

>一通りプログラミングを勉強した後、オープンソースを読んでみたのですが、理解できない箇所・見たことがない記号などが多くあって落胆してしまいました・・・。

その言語のすべてを 勉強したのでしょうか?
私は 一部しか理解していませんが、それでも プログラミングしています。

すべて勉強して理解できれば一番ですが、そこまでいってる人は 少ないと思います。
いろんな言語をやることも多く、それぞれ ある程度理解できればOKみたいな感じです。

なので、公開されているソースをみて または こちらの回答とかも 参考にして
いろんな使い方とか勉強しています。
わからないことがあれば 調べて理解しています。
ま、そこまでする必要がない場合は、そのままですけど。

なので わからないことは 多いですよ。


>理解できない箇所・見たことがない記号などが多くあって落胆してしまいました・・・。

それを調べて 理解すればいいだけじゃないですか?

他1件のコメントを見る
id:saikindarasine

回答有難うございます

2011/12/14 21:38:18
id:taknt

つまり、日本語を学んでも 理解できる文章もあれば 理解できない文章もあるということです。
だから 特に 落胆する必要もないでしょう。

2011/12/16 17:03:17
id:uwao No.2

回答回数180ベストアンサー獲得回数39

基本的にプログラムは読めば理解出来ます。
命令文や条件分岐などの基礎的なコマンドが理解出来ない状態で開発するのは難しい場合が多いです。
ただし、全てのコマンドを理解する必要はなく、自分なりに理解している命令文などで書けば良いので、人のものが理解出来ないと開発出来ないということはないと思います。
 
なお、人が書いたものを読むのは大変ですし、ものすごく時間がかかるものもあります。
例えば、「A = b = C = 10」と書いてあれば理解出来ますが、1000行目に「C = 20」と書かれると、Cだけ値が変わります。この1000行目の数文字を見落としただけで動作が全く異なるような場合があり、人が書いたプログラムを完全に理解するのは難しいと思います。
 
また、オブジェクト指向で部品が点在していたり、モジュールなどを使っていると、モジュールを理解しなければなりませんが、モジュール全てを読むわけではなく「だいたいこういう事やってるモジュール」という理解で進む事もありますし。
正規表現の長文などは読めば読めますが、読む気が起きないので、問題が無い限り、「だいたい、こういうことやってるだろう」と曖昧に理解する時もあります。
 
人の書いたものを参考にするのは良いですが、自分で作りたいものを書けるかどうか、という点が大切だと思います。

id:saikindarasine

お~!わかりやすい回答ありがとうござます!!

2011/12/13 21:16:11
id:TAK_TAK No.3

回答回数1136ベストアンサー獲得回数104

その言語は理解できているという前提ならば

一通りプログラミングを勉強した後、オープンソースを読んでみたのですが、理解できない箇所・見たことがない記号などが多くあって落胆してしまいました・・・。

記号が理解できないとは、言語を完全に理解できていないということなのではないのかとも思いますが..

コードの内容は全て理解できるのでしょうか?

出来る出来ないではなく、
そもそも理解する必要は無い のではないかと思います

本当に言語を習得したならば
時間さえ掛ければ理解はできるはずです....




特に、オープンソースのような使い方をするならば
ブラックボックスとして内部仕様を知らなくても期待する機能を使える(そうでなければいけない)はずですから。

id:saikindarasine

回答有難うございます!
参考になります!!

2011/12/14 17:27:47
id:kibitaki No.4

回答回数53ベストアンサー獲得回数4

オープンソースプロジェクトなどは、概して大きく複雑なものですし、一読しただけではわからないことも多いですよ。
勉強に挫折しそうであれば、もっと「小さい」プログラムから読み始めるといいです。

プログラムの勉強をしたというのは「書き方」を覚えたことになります。
他人のソースを見るというのは、「読む力」が必要です。
プログラムは言語を問わず「方言」のように、同じことをするにも異なる書き方ができます。
何日もかけて追いかけたり、自分にわかりやすいようにコードや変数、クラスをトレースしたり
書き換えたりしながら、そのソースの書き方(記法)も含めて調べたり理解していくことは
とてもいい勉強になります。
苦しんで読み解いた記法は自分の今後のコードにも役立ちます。
頑張ってください。

id:saikindarasine

わかりやすい回答有難うございます!
はい、まだまだ勉強中の身ですが頑張っていきます!!

2011/12/13 21:15:18
id:kyouryukun No.5

回答回数1ベストアンサー獲得回数0

わたしもプログラミングを勉強しています。

分からない関数やコードはそのつど調べ、解説付きでエバーノートにメモしています。
メモするだけです。無理に覚えようとはしてません。

わたしもsaikindarasineさんのように勉強したての頃は、同じように悩み落ち込みそうになりました。
けど、多くのプログラマーは「関数をすべて理解していない」と知ったことで吹っ切れましたね。

「なんだべつにいいのか」って。

だからと言うのもなんですが、あまり思いつめないほうがいいと思いますよ。

id:saikindarasine

回答有難うございます。
思いつめずに勉強頑張ります!

2011/12/14 17:29:27
  • id:windofjuly
    うぃんど 2011/12/13 11:24:44
    プログラマというよりSEとして自分も使えないと話しにならないって立場です
    だからコードを書くのは遅かったりしますし、いろいろな言語を扱うので、
    細かな文法は再確認しながらになったりします
    (え!?馬鹿だから覚えていられないだけだろ?  否定できないorz)
    (え!?鳥頭だからすぐ忘れるだけだろ?  否定できないorz)
    (え!?痴呆症始まってる?  うーーーむ)

    さて、本題ですが、
    プログラミング言語の習得とは、文法の理解だけではなく、
    生きたコードを相手にする必要があるということです
    (中学校で英文法を習って、良い点を取れるようになったからといって、
     英会話が出来るかというとそうではないというのと似ていますね)

    つまりは、
    旅の支度が出来たというだけで、まだ出発点のすぐそばにいるって事です
    プログラマとしての本格的な旅はやっとこれから始まるんです・・・
    (ひらがな習い終わって、
     文字のコミュニケーションができるようになったレベルと言ってもいいかな?)

    いずれにせよ
    出発早々落胆する必要なんてないです
    恐れず進んでくださいな
  • id:saikindarasine
    わかりやすい例え有難うございます。
    これから慣れていけるように頑張っていきます!
  • id:uwao
    「人が書いた英文が理解出来ない」!= 「外人と話が出来ない」

    という事ですね。
    人の書いたものが分からなくても、自分の言葉で話せればいいんです。
     
    ただし、人が作った良い文面を参考にすると、よりよい話が出来るようになります。
    同じ事だと思います。
  • id:uwao
    そういえば、人に見られたくないプログラム部分は、わざと分かりにくく難しく書きますね。
    タブやスペースやコメントアウトなどで分かりやすくする事もせず、本当は要らないんだけど記号だらけの部分を作ったりと・・・
    hogeでは「ほげ」と分かってしまうので、takoやikaなどを変数にしたタコイカソフトもありますね。
    そういう事かも。
  • id:saikindarasine
    皆さん回答有難うございます!
    皆さんの回答はわかりやすく、勉強になることが多いです!!
    めげずにプログラミング頑張ります!
  • id:tdoi
    ある処理をするためのコードは幾通りもあったりするわけで、それぞれに意図、あるいは、その人の癖のようなものがあります。
    人の書いたソースを理解するには、人の意図した設計を理解できないと、コードの内容をつかむのは難しいでしょう。

    ちなみに、何のソースを読んでみたんですか?
  • id:uwao
    タコイカソフトでグリスタ有り難うございます。
    調子にのって・・・

    awabi = tako + ika
    タコにイカを加算するとアワビ

    sazae = awabi / 5
    値段か?

    ebi = kani % koura
    カニの甲羅を割った残りがエビ

    と、タコイカソフトは見るだけで大爆笑。

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

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

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

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