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

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

ただいまの
回答率

89.64%

最も効率的な学習スタイルについて

解決済

回答 6

投稿

  • 評価
  • クリップ 1
  • VIEW 1,438

study

score 59

目標

Webサイトやスマホアプリ、Webアプリ等をがっつり自作したいと思いプログラミングの勉強を始めました。
短期間で効率的に習熟するために、皆様がベストだと思う学習スタイルを教えて頂けないでしょうか?
(来年4月以降であればセミナーの受講もできますが、それまでは自宅学習に限られます。)

補足

今は基礎を学ぶために、日本語の情報が多くWeb系への応用がし易そうなruby(とrails)を学んでいます。
将来的には上記目的からJavaやLAMP、Andoroid(HTMLやCSSも)等についても習得しなければならないので、
時間はいくらあっても足りません。やりたいことが多くて恥ずかしいのですが、自然言語処理やクローリング、
スクレイピング等にも興味があるのでPythonも勉強したいです。

ですから、なるべく時間を浪費せずに済む、効率の良い学習スタイルを探しています。

参考までに現在の学習スタイル

・ドットインストール、Progate等のサービスで基礎を学ぶ(現無料プラン、近々有料プランに加入予定)
・分からない事があれば、上記の有料サポートでオンラインで教えて貰う。
・理解を深めるためにPaiza等の問題サイトで、問題を解く
※Paizaは有益なサービスですが、学習サービスではないため間違い箇所が指摘されず正解例も見れません。
※正解に辿り着くまでに非常に時間がかかり効率が悪いのでもっと良い方法を探しています。

現在のレベル

・rubyでFizzBuzz問題をギリギリ回答できる。
・rubyのメソッドやクラス等はドットインストールで見たものしか知らない。
・Paizaで最も簡単なDレベルの問題に調べながら挑戦するが、満点じゃなかったり解けない場合がある。
・HTMLやCSSは綺麗にデザイン出来ないけど、テンプレートを試行錯誤して調整できる。

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

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

回答 6

+7

私も作りたい物がいくつかあるのですが、ruby, LAMP, JAVA等の複数の知識が必要そうです。

なんとなく、行動する前に、一生懸命道具を揃えようとしているようですね。
まずは、作りたいものがあるのだったら、作り始めて見てはいかが?
もしかしたら、必要のない道具を揃えようとしているかもしれませんよ。

作り進めていくうちに、必要なものが見えてくる のではないでしょうか。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2016/12/24 22:19

    ありがとうございます。
    まずはrubyで勉強しています。
    一通りrubyの基礎を終えたらrailsを学びながら簡単なwebサービスを作ってみようと思います。

    キャンセル

+5

私が薦めるのは、定評のある入門書で基礎から学ぶことです。「たのしいRuby」とか。このサイトでも、入門書の前半に書いてあるレベルの質問がめずらしくないです。
学んだ結果として、Ruby リファレンスマニュアルの中の「Ruby の文法: 」の部分は理解できて、覚えている必要があります。車の運転を学ぶ前に「どれがハンドルか」レベルは知らないと厳しい。

各種クラスのメソッドの機能は覚える必要は無く、都度調べれば良いです。ただ、「標準でどんなクラス・モジュールがあるか」くらいは知らないと探すのも大変かと思います。まあ、何度か調べているうちに覚えると思いますが。あるいは、逆引き本を買うのも良いかと思います。

基礎を学んだら、あとは読み書きですね。良いコードを読むのと、下手でも良いので作ってみる。ウェブアプリを作るのは、他に知らないといけないことが多いので、数学的なもの、パズル的な物から始めるのはどうでしょうか。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2016/12/24 21:13

    コメントありがとうございます。
    なるほど。オンライン学習を中心に考えていたのですが、入門書で基礎をしっかり学ぶことは後々の効率を上げそうですね。「逆引き本」というもの良さそうですね。

    仰るように今の私のレベルは「どれがハンドルか」を知らず、ペダルやアクセル等、目についたものを取り合えず動かしているような手探り状態で不安です。

    基礎を学んだ後の「良いコード」を読むという事に関しては、私自身は良いコードと悪いコードの見分けが出来ません。良いコードが集まっておりコードを読むのに適したサイトはないでしょうか?

    キャンセル

  • 2016/12/24 23:20

    > 良いコード
    標準で付いてくるライブラリとか。

    キャンセル

  • 2016/12/24 23:40

    なるほど。ライブラリという存在を初めて知りました。
    標準品を参考にするという点で、rubyで言えばrailsのコードを読むという事も良いコードを読むことになるのかなと思いました。

    キャンセル

+3

こんにちは。
過去に夏の開発インターンシップに参加しました。そこではチーム開発でしたが、私のチームには最高の技術力を持ったメンバーがいました。「神」と呼んでいました。

そんな神にどうやってそこまで技術力を上げたのかどのような勉強方法を取り入れたのかを聞いたところこんな答えが帰って来ました。

作りたいと物を作っていたら自然と身についた。勉強っぽい勉強はしたことがない。

その人は実際に自作PCを自慢する動画サイトを立ち上げていました。

人によって適性が違うとは思いますが、神の勉強法はこのような感じでした。
ここからは下らない持論ですが、勉強の仕方は人それぞれです。多くの情報を取り入れてそこから自分に最も合う勉強法を取り入れてください。

何かの参考になれば幸いです。頑張ってください。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2016/12/24 18:36

    応援ありがとうございます。
    私も作りたい物がいくつかあるのですが、ruby, LAMP, JAVA等の複数の知識が必要そうです。
    必要となるスキルが多そうなので、出来るだけ効率的な学習方法を試すことで挫折するリスクを減らしたいと考えています。
    少し学習方法にこだわり過ぎでしょうか?

    キャンセル

  • 2016/12/24 22:03

    挫折するかどうかは、効率的な学習方法とか関係なくて、やってて楽しいかどうかだと思うから、「うごいた!」「一発でコンパイル通った!」とかが大切だと思う。

    キャンセル

  • 2016/12/24 23:44

    なるほど。楽しいかどうかは確かに大切ですね。
    あまり方法論にこだわり過ぎて窮屈にならないように気を付けたいです。

    キャンセル

checkベストアンサー

+2

学習方法は人によって合うやり方が異なるので、いろいろな意見を参考に自分に合いそうな方法を試してみてください。
というわけで自分の場合の学習方法はこんな感じです。

オンラインでの学習をある程度されているなら、やはり書籍で学習をおすすめします。
RubyとRailsの入門書や逆引き本があれば十分です。
ただし、もうある程度オンラインで学習されているので入門書は辞書的に使う感じです。

挙げてもらった現在のスキルを見ると、既に自分が一から考えたWebサービスを作ってみる段階に入っています。
本当は、ブログなどをやられているなら、ブログを自作するのがおすすめです。
htmlもcssもbootstrapなどを使わず手書きで書くと学べる事が多いです。
自分が頻繁に使うサービスを自作して、VPSなどを使って公開する事で運用のノウハウも学べます。
また、railsの学習では開発環境(development)で止まってしまう方が多いと思いますが、
サーバ構築を含めた本番環境(production)までやらないと片手落ちです。

クローリングやスクレイピングについては、Rubyでも可能ですのでPythonは不要です。
AI、機械学習の分野に手を出すならPythonのほうが書籍も続々と出版されているので、充実している感じがします。

Androidアプリについてまったくの知識がないのであれば、Javaの入門書とAndroidアプリの入門書を購入しましょう。
そして、いきなりAndroidアプリの入門書を進めていきます。
Javaの入門書は、文法などで不明な事が出てきたら調べるために使います。
気持ち的には、Javaをしっかり学習してからAndroidに行きたい気もするかもしれませんが、時間効率的にはこっちのほうが断然良いです。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2016/12/25 15:51

    コメントありがとうございます。
    > いきなりAndroidアプリの入門書を進めていきます。
    > Javaの入門書は、文法などで不明な事が出てきたら調べるために使います。
    > 気持ち的には、Javaをしっかり学習してからAndroidに行きたい気もするかもしれませんが、時間効率的にはこっちのほうが断然良いです。

    こちらのご指摘は時間効率を大切にする上でとても参考になりました。
    ある程度Javaを学んでからアプリの勉強にとりかかろうかと考えていましたが、ご指摘の方法の方が確かに効率が良さそうですね。

    また、「bootstrap」という言葉についても初めて聞いたので勉強になりました。
    こういうものを使うと効率よくデザインができるのですね。

    とても勉強になりました。

    キャンセル

+1

勉強してから作るより、作りたいものを先に考えて、作りながら必要な知識を勉強する方が楽しい。
ただ、基礎だけは時間をかけてでも何度も反復練習?するべきだと思う。
作りたいものは作れるけど、基礎がしっかりできてないから無駄が多かったり勉強でつまづきやすいのが俺の悪い例。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2016/12/24 17:49

    コメントありがとうございます。
    基礎が大切というご指摘について、どのように学習すると効率が良いでしょうか?
    Progateで学んでいますが、これだけでは何度反復しても同じ課題・同じ基礎しか出題されず、
    基礎中の基礎しか学べないため不十分だと考えています。

    キャンセル

  • 2016/12/24 21:59

    文法の基礎(if while for tryなど)が理解できたら、次はそれぞれの言語特有のもの(APIの使い方や継承の仕方など)を覚えたり、既に作ったプログラムをより短くスマートに書き直してみたり、逆に長くなるけど拡張性のあるものに変えてみたりすると理解が深まるかも

    キャンセル

+1

自分も、Kosuke_Shibuyaさんが回答した通り、必要のないことを覚えるよりは、実践した方がよいと思います。
また、目標は質問者さんの場合、Webサイト、スマホアプリ、Webアプリなどの複数あります。
実際に僕も複数の目標を設定して、どの目標を達成すればいいかわからなくなりました。
目標を決めるということはすごく大切なことですが、最初は、順番を決め、1つの目標に集中した方がいいと思います。
最も効率的な学習方法ですが、自分の学習方法は、まず最初に学習サイトを一通り完走し、その後、目標を達成するために実際に作ってみて、そして書籍で学習するというものです。
学習サイトですが、最後に1つの作りたい分野のものを作るというものがおすすめです。
Progateでしたら、道場コースなどで自分で作ることもできますし、楽しいので、ぜひやってみるといいと思います。
書籍は、パーフェクトシリーズで、しっかりと身に付けるといいと思います。

この回答が質問者さんに役立つことを願います。頑張ってください!

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2016/12/25 22:20

    応援ありがとうございます。

    > 最も効率的な学習方法ですが、自分の学習方法は、まず最初に学習サイトを一通り完走し、その後、目標を達成するために実際に作ってみて、そして書籍で学習するというものです。

    > 学習サイトですが、最後に1つの作りたい分野のものを作るというものがおすすめです。

    効率的に学習するには、インプットだけではなく、アウトプットも大切だという事ですね。
    現在のアウトプットはProgateでコードを書いて模範解答と比べたり、少し書き直して別の表現で動作するか試しています。

    ある程度学んだらアウトプット学習の一環としても、皆さんが仰るように早い段階で作りたいものを作るのが良さそうですね。
    また、アウトプットの一つとしてpaizaのような課題を解くのも良い勉強になるなと感じました。

    キャンセル

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

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

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