質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.35%

  • PHP

    21301questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • Python

    9163questions

    Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

  • Ruby

    8182questions

    Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

WEB制作以外のコードが読めない

解決済

回答 7

投稿

  • 評価
  • クリップ 2
  • VIEW 549

yomi2201

score 1

現在Progateを終えてSinatraや生phpでWEBサービスを作ったまではよかったのですが
占いや天気予報を取得してTwitterに反映させるなどのTwitterAPIに興味を持ち
Qiitaに出ている情報、Githubに公開されているコードを読んで勉強しています
WEBサイトは参考書で真似をしていてなんとなくコードが読めるのですが別のことをしているコードは少しも理解できません
このギャップを埋めるためにはどんなステップを踏めば良いのでしょうか
なんとなく思ったことだけでも良いのでコメントお願いします

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • yomi2201

    2018/05/10 11:55

    あなたはどうなりたいのか?についてですがその他のコードを学んでいるという点で説明していたつもりですが不足していたみたいですねすいません。色々興味を持ったことを調べて自分で作成したいと思っています。興味を持ったこと全てに挑戦していきたいです。

    キャンセル

  • mts10806

    2018/05/10 11:56

    その部分がボヤッとしているので「もっと具体的に質問本文に記載してください」と依頼しました。学ぶのはあくまで過程ですよね。学ぶことだけが目標なんですか?

    キャンセル

  • mts10806

    2018/05/10 11:57

    タイトルだけだと「WEB制作以外のコードが読めるようになったらOK」としかとれませんしね。

    キャンセル

回答 7

+5

私はC#で何かを書いたことは一度もありませんが、C#で書かれたアプリケーションでもソースを読めば6~7割くらいは理解できるようになりました。でも、昔はそうじゃなかったです。このように読めるようになるには、最低でも以下の2点が必要だと思います。

  1. なんでも良いのでモダンなプログラム言語を1つ、中級程度(=入門書に書いてあることはだいたい知っているし、そこにあるコードも自分で難なく書けるような状態)に使えるようになる。
  2. 読もうと頑張る回数が一定数(2~3回ではなく数十~数百回程度)を超える。

ので、ギャップを埋めるステップは「1と2の足りないところを頑張る」だと思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/05/10 21:05

    シンプルに極める感じですか
    他の方の写景とかと合わせて頑張ってみます!ありがとです!

    キャンセル

+4

「文法を覚える」「単語の意味を覚える」の2ステップで考えるといいと思います。

分かりやすく一般的な言語に置き換えましょう。
例えばI love you.Ich liebe dich.という2つの文章があります。
ここに「この言語もSVC構文である」「2つの文章はどちらも『私はあなたを愛しています』という意味である」という情報があればI = Ich / love = liebe / you = dichだなと推測することが出来ます。
これを元にすればIch hasse dich.という文章を見た時に「私はあなたに何かしている」ということは分かりますし、後はhasseの意味を調べればいいだけになります。
逆に事前情報一切無しでMahal kita.と言われても全く意味不明だと思います。(※ちなみにこちらはタガログ語)


プログラム言語で言うなら、文法とは構造や表記上のルール(タグは<>で囲むとか、$は変数を指すとか、functionは関数の定義とか)、単語の意味とはメソッドや命令文の仕様や使い方です。

「何となくコードが読める」のは「文法が見て分かりやすい or 自分の分かる言語と似ている」「読めば分かる単語が使われている」からでしょう。

「ぱっと見で読めない」ということは多分文法からして分かっていない、自分の知識と照らし合わせられないということなので、分かるまで色々なパターンを読む&作るしかないです。
いわゆる「写経」はこの為にあります。
「こういう構造だとこう動く」→「ということは、ここをこうするとこう動く」ということを繰り返していけば徐々に分かるようになると思います。

ただし、(良くも悪くも)「何でこれで動くんだ?」というコードも世の中にはあるので、お手本は選んだ方が良いとは思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/05/10 21:04

    写景するのってそうゆうことなんですね!
    色々調べたら写景するところが多いので自分もやってみますありがとです
    それとタガログ語はやめてください笑

    キャンセル

  • 2018/05/10 21:25

    写景でなくて写経(しゃきょう)ですね。本来の意味も調べるといいかもしれません。
    他にも意図がきちんと伝わっているのが若干不安ですが、頑張ってください。

    キャンセル

+3

予備知識0でなんでも読める人はいません。

Webのコードはなんとなく読めるくらいにはなったんですよね。そこまで到達するのに、どんな風に勉強してきましたか? たくさんググったり参考書を読んだりしたと思います。

わかるようになりたいと思う分野で、同じことを繰り返してください。そうすればできるようになります。

色々やっていけば「経験値」「工夫」「それまでやってきたことによる予備知識の積み重ね」で多少効率は良くなりますが、せいぜい必要な労力を数分の一にできるかどうか、といった程度です。

情報系は勉強し続けないと駄目と言われる所以です。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/05/10 21:07

    The王道で自分の通ってきた道そのままですね
    しかしTwitterとかイジるのは本があまりない…
    少しずつ自動化させるプログラム見て頑張ってみます!
    ありがとです!

    キャンセル

+2

要素技術に対しての理解が足りていないせいでコードが理解できないのだと思います。
例えば、各種 API を使用するのであれば、
・OAuth
・http(s)
への理解が必要ですし、その受け取ったデータの処理には
・JSON
を知っている必要があります。

また、生 PHP で Web サービスを提供しているのであれば、入力値確認や出力時のエスケープ、DB 操作を都度用意するのは大変だと気がついていると思います。

フレームワークの使用を視野に入れると、一段ステップをあげることが出来ます。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/05/10 21:10

    JSONがよくわかってなくてやっぱり知識不足なところありますよね…
    そもそもプログラムが読めないので両方補いながらがんばりますありがとです(>ω<)

    キャンセル

+2

私が小学生の頃、「信長の野望」の第1作が出まして、今から見ると信じられないかもしれないですがBASICというインタプリタ言語で書かれていました。
実行を中断したりレジュームしたりソースコードを見たり書き換えたりすることができるので、メッセージを書き換えたりチートをしたりして遊んでいました。
「ここを書き換えるとこうなるはず」→「あれ?ダメだったな」という行為の繰り返しは、プログラムの書き方を学ぶのにちょうどよい教材でした。

改造、改変をすることから入ってみてはいかがでしょうか。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/05/10 21:08

    既存コードの改変でトライ・アンド・エラーですか
    てかそんなゲームでやるとかすごい(^o^;
    写景のアドバイスされたのでそれを改変したりしてトライしてみますね!ありがとです

    キャンセル

+1

なんとなく思ったことだけでも良いのでコメントお願いします

いっぱい書いて動かしていっぱい失敗すること。
失敗したらなぜ失敗したか考えて1つずつ着実に解決していくこと。

繰り返すうちに「こうすれば実現できる」「ここは調べて埋めないといけない」
切り分けができるようになってきます。

ただ読んでる(ボーっと眺めている)だけでは身につきません。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/05/10 21:10

    がんばります!

    キャンセル

check解決した方法

0

とりあえず参考になる意見を胸にまたがんばって色々試していきたいです
ありがとうございます!

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.35%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る

  • PHP

    21301questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • Python

    9163questions

    Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

  • Ruby

    8182questions

    Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。