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

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

ただいまの
回答率

90.33%

  • JavaScript

    17496questions

    JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

そもそもとして、独学の最短学習法は?(javascript編)

受付中

回答 3

投稿

  • 評価
  • クリップ 0
  • VIEW 968

garchomp

score 101

現在html cssの学習を終え、javascriptの学習をしています。

javascriptと合わせて、jqueryの学習も進めていますが、どのような方法が最短ルートなのかなと改めて思い立ち、多くの方の意見を募ろうと思いました。

ちなみに現在の現状は、Progateで手を動かしながら基礎を覚え、ドットインストールで要点の確認・復習(夕食食べながら見てたりしてます。)schooで分かりやすい解説を聞きながら基礎を覚えてみる。というのをやっています。

ある程度腑に落ちたらcodeprepで様々なブックを網羅してみるのも良いかなと思っていますが、今は「確かな力が身に着くjavascript入門)を読んで、基礎を理解しておこうと思っているところです。

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

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

回答 3

+4

 クロスブラウザ

JavaScriptはブラウザ毎の実装に差異があり、あるブラウザでは動くが、他のブラウザでは動かないという事は多々あります。
下記サイトは各ブラウザの実装状況、バグについて compatibility table で網羅されているので参考になります。

 仕様書

ブラウザ毎に動作が違う原因は主に2つあります。

  • ブラウザに該当機能が実装されていない
  • ブラウザに実装されているが、標準仕様に準拠していない(実装バグ)

標準仕様を確認する事で、動作の異なるブラウザ間の中でどのブラウザが標準仕様に準拠しているのかを確認する事が出来ます。

学習は次の順番をお勧めします。

  • HTML 仕様
  • CSS 仕様
  • ECMAScript 仕様
  • DOM 仕様
  • その他、JavaScript API 仕様 (XMLHttpRequest, Fetch, Web Strage, Indexed Database ...etc)

 その他、リファレンス&書籍

書籍やWebで公開されている資料は仕様に厳格である事が重視されていない為に説明が不正確であったり、間違っている事が多々あります。
日本語で平易な説明をされている為に取っつきやすいと思いますが、初めに身に付いた不正確な知識を後から仕様書を読んで矯正する必要がある為、最短で学習する事を望むなら参考にすべきではありません。
原則は仕様書を確認し、その他の情報は補完的に読む目的(英文が苦手な人にとっては比較的正確な日本語資料が手元にあると解読しやすいです)で利用して下さい。
私が比較的まともだと感じているのは次の2つです。

MDNはFirefox開発者が運営しているだけあってほぼ正確ですが、仕様を見ると微妙にニュアンスが間違っていることもあります。
MDNは英語が先に更新される傾向にあり、日本語は古い資料が多いのも特徴です(例: 日本語では非標準と説明されているが、英語では標準仕様と説明されている等)。参考程度にとどめておくと良いと思います。

uhyohyo.net は個人サイトですが、説明の内容が仕様に忠実である事を目指している事が分かるのでお勧めです。
仕様書と読み比べながら解読すると理解が深まると思います。

私が所有しているのは『JavaScript 第5版』ですが、仕様と比較して読むと説明の便宜上使われている独自用語を許容すれば、かなり正確な内容で説明されていました。
ECMAScript, DOM の基本はこの書籍で学べるので、基本を体系的に網羅したいなら購入する価値はあると思います。

巷で勧められている『パーフェクトJavaScript』を私はお勧めしません。
私も購入してみましたが、用語の使い方が滅茶苦茶であり、仕様と比較して読むと読者が混乱する事は間違いないと感じています。
(実際にここで質問された方がかなり誤解されていました。)

 開発者ツール

ブラウザの内部動作を知るのに開発者ツールは有用なので、各々の使い方を覚えておく必要があります。

 更新履歴

  • 2017/04/18 13:47 リファレンスとして uhyohyo.net を追記

Re: garchomp さん

投稿

編集

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

+2

『同時に複数のことを学習しようしない!』
一歩一歩確実に知識をつけていったほうが、結果的には短期間で修得できます。

例えば、Javascriptの知識があやふやな段階で、jqueryを利用したプログラムを書いたとします。
そのプログラムがうまく動かなかった場合、jqueryの部分に問題があるのか、Javascriptの部分に問題があるのかを適切に判断することが出来ません。
でも、Javascriptの知識が十分なら、Javascriptの部分に問題はないのでjqueryの部分を集中して調べる事ができます。

Javascrptとピアノのように全く関係の無いことであれば、同時に学習しても混乱しません。
しかし、Javascriptとjqueryのように似たところの多いものを同時に学習すると、混乱・混同による思い込みや誤解で無駄に時間を費やす恐れがあります。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

+1

最短ルートはわかりませんが私が新しい言語やFWを使う場合はある程度動くシステムを作るようにしています。

「作るシステム」は使いたい機能・使えそうな機能・必ず使う処理(画面遷移やデータの受け渡しなどなど)などを実装しているだけです。

手順?としてはこんな感じです。

  • 公式docをさらっと読む(←理解しているつもりになる)
  • 公式docのquick startをやる(←マスターしたと勘違いする)
  • システムを作る(←壁にぶち当たる)
  • 頑張る(ググったり、公式docを見直したり)

エラーメッセージを見慣れることは非常に有益ですし、エラー解決能力も高まります。

「百聞は一見にしかず」という言葉がりますが、「百回見る(コピペ)より1システム作ったほうが得る情報は多い」と感じています。

このやり方が私に合った「最短ルート」ですかね。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

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

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

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

  • JavaScript

    17496questions

    JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。