よくプログラミングの勉強法として「とにかくコードを読め」と言われますが、GitHubを見てみると
.gitignoreとかconfigとかLICENSEなど見慣れないものがたくさん出てきます。
今の自分のコードといえばindex.htmlを書いてcssやjs,phpなどを入れていくだけのもので手元の本や勉強のサイトを見てもGithub上のプロダクトのようなよくわからないものが出てくる気配がありません。
そこで皆さんに質問なのですが、このようなものを理解し自分で使えるようになるにはどのようなことをしていけばよいのでしょうか
今の自分の勉強といえばいろんなサイトなどにあるサンプルを写経したりそれをいじったりしている程度なのですが、何か体系的な勉強や有名な本などがあるのか、または目にするたびに検索して調べていくしかないのかなどみなさんの意見を聞かせてください。
経験談などを聞かせていただけたら嬉しいです。
追記
多くの回答ありがとうございました。最初の回答をベストアンサーとしました。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
下記のような質問は推奨されていません。
- 質問になっていない投稿
- スパムや攻撃的な表現を用いた投稿
適切な質問に修正を依頼しましょう。
また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。

回答7件
17
ベストアンサー
きちんと、勉強するなら、書籍を購入して、まずは1冊きちんと、読破およりソースを書き読み、することだと思います。ソースを読んで勉強は、かなりレベルの高いエンジニアのやることです。
昨今は、Google先生で、いろいろな情報がでていますが、
・非常に断片的な情報が多い
・残念だが、間違っているコードも多数
・環境について詳しく記載されていないので、同じコードを書いても動かない
・そもそも体系的に学ぶには、不向き(スポット的な調査では有効かもですが)
っと、ネットの情報で学習しようという自体にも、正直無理があります。
しかも、GitHubの他人様のコードを読むなどというのは、相当なスキルが必要です。
「コードを読んで勉強せよ」というのは、自分が書いたコードと、同じような事ができる、エキスパートのコードを、比較してみると、、、というレベルで理解されるとよいかもしれません。
目的もなくソースを読むことは、苦痛なだけです。
それに、厳しい意見ですが、
「.gitignoreとかconfigとかLICENSEなど見慣れない・・・」
と思われる段階では、ネット上のソースコードを読み下すのは、正直無理です。
プロのエンジニアであっても、他人のソースコードを読むことは非常に、疲れる作業です。
でも、ある程度の経験がでてくれば、他人のコードをみて、
・このコードいいなとか
・このコード美しい!
といった、
ところがでてくるようになります。
そこまで成長するには、それなりに時間がかかるかと。
でも、そこまで成長するまでは、地道に、書籍で勉強して、地道に、いくつもの、バグだらけのプログラムをつくって、地道に、納期に追われて死ぬ思いをすることが、最も近道かと。
がんばってください!
投稿2016/04/12 13:23
総合スコア1283
8
ただ漫然と読むのではなく、「目的意識を持って」読むこと、そして「今の自分より、少しだけレベルの高い」ものを読むことが役に立つと思います。
たとえば何かしらのライブラリを使っていて、「この処理はどうなっているんだろう?」とか、「なんだかうまく動かない」というようなときにコードを読み進めてみると、見えてくるものがあります。取っ掛かりとしては、そういう「自分が使っているライブラリ」がいいでしょう。
時に「黒魔術」と呼ばれてしまうほどに、エレガントすぎて慣れなければ読みづらいコードもありますし、逆に「泥臭い」処理で読む気力が失せるようなものもあります。
最後に一言ですが、一度「世界観」を理解すると、それまで暗号にしか見えなかったコードが嘘のように読みやすくなる、ということがあります。どのような狙いを持って書かれたコードなのかをつかむのが、遠回りなように見えて近道かもしれません。
投稿2016/04/12 13:53
総合スコア144148
下記のような回答は推奨されていません。
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
このような回答には修正を依頼しましょう。
また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。
8
今の自分の勉強といえばいろんなサイトなどにあるサンプルを写経したりそれをいじったりしている程度なのですが
いいんじゃないですか?
写して自分なりにいじって動かして、色々な結果を得る。
というプログラミングの勉強法はすごくいいと思います。
ただ、Itoさんもおっしゃってますが、自分のレベルが入門レベルなのであれば、本は1冊読むべきですね。
基本をおさえなくては、どの道いずれ必ず行き詰まって基本に戻ってくるからです。
その言語の文法や用語、概念などが分かってくれば、今のその勉強法はすごくいいと思います。
そして、大体分かってきて、もうこの言語は分かった!ってなった時に、
天狗にならずに、もう1冊ぐらい本を読んだ方がいいかもしれないです。
独学では中々行き着かない書き方やテクニック、考え方というものがあります。
どの言語にも大体、入門書とは違う難しいことを書いている、やたらぶ厚い本があります。
そっち系の本ですね。
しかし、読んだところで中々使い所とかが分からなかったりします。
言ってる事は分かるけど、これって使うの?必要なの?のように思ったりします。
優秀なプログラマーのコードには、それらのテクニックがやはり使われているんです。
だから、コードを読めと言うわけです。
ここまでくると、あとは飽くなき「探究心」だけです。
これどうやってんだ?どこでやってんだ?からの解析の繰り返し。
他人のコードや、オープンソースを読み漁るのはもうちょっと後でもいいかもしれないですね。
「.gitignoreとかconfigとかLICENSEなど見慣れない・・・」
この辺は、プログラミングと関係のないところなので、
別に今の勉強法に疑問を持つ必要はないと思いますよ。
システム開発には様々なテクノロジーが集約しています。
プロジェクト管理、設計、テスト、デプロイ、データベースやサーバーなどのミドルウェア
ネットワーク、それらに伴うセキュリティ・・・などなど
必要な時に必要なものを必死で勉強すればいいです。
今、勉強したところで、実務でやってみなければ忘れるだけですしね。
「そういえば、これって本かネットで見たなぁ・・・なんだったっけ」程度の知識は、けっこう重要ですけど。
今は、プログラミングの勉強なのであれば、今のままでさほど問題ないと思います。
投稿2016/04/12 13:48
編集2016/04/12 14:08総合スコア4666
下記のような回答は推奨されていません。
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
このような回答には修正を依頼しましょう。
また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。
5
書籍での学習をお勧めします
いきなり Github に公開されているコードを読むのはハードルが高いと思います。
プログラミングのテクニックに関する書籍を読むことをお勧めします。
良書には優れたコードと優れた解説文が記載されているからです。
システムを作るときに、オブジェクト指向、デザインパターンなどのテクニックを使うことによって
プログラムの「可読性」や「保守性」を高めることができます。
これらを高めることで、あとからプログラムを修正するときの時間を短縮できます。
テクニックを学ぶための書籍について
個人的なおすすめは
増補改訂版Java言語で学ぶデザインパターン入門
ですが、
SatoshiAizawaさんは PHP を使っているそうなので、合わないかもしれませんね。
一度書店で立ち読みした後で、ご自分に合った本を探すといいと思います。
追記:
リーダブルコード
もおすすめ書籍の一つです
投稿2016/04/12 15:24
編集2016/04/12 15:37総合スコア205
下記のような回答は推奨されていません。
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
このような回答には修正を依頼しましょう。
また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。
3
これって、該当する事柄に基礎知識があるかどうかやら、
情報系の学校を出ていて、基礎知識と、実務の知識があって、
ウォークスルーして、、、:ホストコンピュータ時代は、全てが高価でしたので、人件費の方が安かった。
’
出来るだけ、実行環境に近いものを用意して、
動作を確認しながら、コードの動きを理解して、、、:っていうのが可能になった現在。
’
大学の先生方が作ったクソコードを、
清書するバイトもしましたっけ。(学生の方が全うなコードを書いていましたねぇ。)
’
私は、為にする学習は辛くて続かないので、
金、利益、快楽、快感、何れかに絡む工夫をします。
投稿2016/04/12 16:08
総合スコア2028
下記のような回答は推奨されていません。
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
このような回答には修正を依頼しましょう。
また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。
3
このようなものを理解し自分で使えるようになるにはどのようなことをしていけばよいのでしょうか
最初は解らない事だらけだと思います。とりあえず目標としているゴールはどこでしょう?何らかの技術を『使える』事が当面のゴールとかであれば、それに関連してそうな疑問点をただひたすらに調べ、手を動かして実践し続ける事が一つの方法です。コードを読むことは、そういった方法の内の一つでしかありません。既に腕を持った人が周りに居れば、教わるなんてのも手です。
個人で調べる方法は、書籍や技術情報の公開されているサイトを参考にすればよいでしょうが、最初は自身のレベル相応の入門書なり専門書を大型の書店で探してみる事をオススメします。個別のトピックに関してウェブは最新の情報もありますが、個人ブログなどの公開情報は間違った情報が放置されている事も多く見受けられ、それらが適切に判断できないであろう初学者にとっては、鵜呑みにすべきではありません。解らなければ参考程度に使うべきです。
相応の経験者や余程の素養や才能のある人であれば、書籍や技術の公開情報を読むだけでも、それらを使えるようになるかもしれませんが、基礎もできていない人には無理な話です。些細なものであっても良いので、コードを書いたり何らかの結果を出す形での実践をし続けなければ身につかないでしょう。もし、手を動かして実践する事が楽しめるなら、この分野にとても向いていると思いますよ。
そういった実践の際に、参考になりそうな既存のコードを探して、読んでみたり、自分なりにアレンジして組み込んでみたり、というのは学ぶ点が多く非常に有用です。是非チャレンジしてみましょう。逆に目的も無くコードを読むのは初学者にとっては難しいでしょうし、モチベーション的な意味でも向かない人の方が多いのではないでしょうか?
あと言えることは、そうですね。当事者意識や危機感なりを持って何年もコツコツと続けていれば、まず間違いなく身につきます。短期間に腕を劇的に伸ばす方法は・・・有ったら私に教えてください。
以上、ご参考になれば幸いです。
投稿2016/04/12 14:08
総合スコア433
下記のような回答は推奨されていません。
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
このような回答には修正を依頼しましょう。
また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。
1
「百聞は一見に如かず」という意味において、
他人が書いたコードを見るのは勉強になることもあるよ
くらいに考えていいんじゃないかなあ。
「一見は一行に如かず」という意味において、
自分で考え、自分で手を動かし、自分で結果を
出せるように「勉強する」のが上達の近道かと。
ちなみに、上記のような格言はありません。(^_^;
投稿2016/04/12 13:32
総合スコア7452
下記のような回答は推奨されていません。
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
このような回答には修正を依頼しましょう。
また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。
回答へのコメント

あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
同じタグがついた質問を見る
GitHubは、Gitバージョン管理システムを利用したソフトウェア開発向けの共有ウェブサービスです。GitHub商用プランおよびオープンソースプロジェクト向けの無料アカウントを提供しています。
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。
2016/04/14 06:29