【JS】ガチで学びたい人のためのJavaScriptメカニズム
What you'll learn
- JavaScriptの動作原理について深く学びます。
- JavaScriptがどのように実行されるのかについて深く学びます。
- ES6+の最新のJavaScriptの記法について幅広く学びます。
- 変数や参照の仕組みについて深く学びます。
- オブジェクトのメカニズムについて深く学びます。
- 関数のメカニズムについて深く学びます。
- スコープの仕組みについて深く学びます。
- プロトタイプのメカニズムについて深く学びます。
- 反復処理のメカニズムについて深く学びます。
- ジェネレーターやイテレーターについて深く学びます。
- コールバック関数について深く学びます。
- 非同期処理のメカニズムについて深く学びます。
- モジュールの仕組みについて深く学びます。
- クロージャーの仕組みについて深く学びます。
- レキシカルスコープの仕組みについて深く学びます。
- アロー関数の特徴について深く学びます。
- thisの仕組みについて深く学びます。
- bind、apply、callの動作原理について深く学びます。
- クラスと継承の仕組みについて深く学びます。
- ReflectやProxyなどの強力なオブジェクトへの理解を深めます。
- Map,Setなどの強力なコレクションについて実践を交えて学びます。
- よく使用される強力な実装パターンを演習を交えて学びます。
- 独自のフレームワークを構築していく中でJavaScriptのメカニズムについて理解を深めます。
Requirements
- JavaScriptについてなんとなく知っている方。
- 他の先生のJavaScriptの入門編を受けられたことがある方。
- ドットインストールでJavaScriptの入門編を終えられたレベルの方。
- ProgateでJavaScriptの入門編を終えられたレベルの方。
- JavaScriptについての理解を深めたい現役エンジニアの方。
- JavaScriptでif文、for文、関数、変数を使ったことがあるレベルの方。
- 簡単なHTMLを書いたことがある方。
- 他のプログラミング言語を使ったことがある方。
- JavaScriptでなにか開発してみたいと考えている方。
Description
JavaScriptは誰でも簡単に、そして素早く実行できる素晴らしい言語です。
しかし、その本質は未熟なプログラマーが罠にかかるのを待つ悪魔の顔を持っています。
少し昔の話をしましょう。
多くのプログラマーはJavaScriptのメカニズムを理解せず、React、Vue、AngularJSなどのフレームワークを使った開発に携わります。
私もその中の一人でした。
最初は問題ありませんでした。
しかし、月日が経つにつれて雲行きは怪しくなってきます。
JavaScriptの本質から目をそらし、自分の思うままに書いたコードは次第に私を拒絶するようになりました。
コンソールのエラーは何度も私にコードの書き直しを要求しました。
数え切れないくらい、Googleでエラーメッセージを打ち込み、解決方法を検索しました。
数え切れないくらい、自分で意味を理解していないコードをコピーしました。
そして数え切れないくらい、コードが動かなくなることを嫌い、コードを整理することから逃げました。
Googleではたくさんの具体的な解決方法や記述方法を簡単に見つけることができました。
しかし、その本質的な問題が裏でつながっていることを当時の私は知りませんでした。
でも、当時の私を攻める気にはなれません。
なぜなら、JavaScriptの動作原理に関して学ぶ機会というのはあまりにも少ないからです。
私はJavaScriptと名の付く書籍や記事を日本語、英語問わず読み漁りました。
そして、断片的な知識が一本の線につながった時、そこにはこれまでと全く違う景色が広がっていました。
JavaScriptにはその便利な機能の裏に多くの「隠しルール」が存在します。
表面的な利便性を保つためのメカニズムは、時に未熟なプログラマーを深い沼へといざないます。
それを知らずにJavaScriptで開発を行うことは、暗闇の中、手探りで目的地を目指すようなものです。
もし、あなたがJavaScriptを難しく感じるのであれば、今あなたが学ぶべきはJavaScriptのメカニズムです。
フレームワークやライブラリに惑わされないでください。
Reactを使っていても、
Vueを使っていても、
AngularJSを使っていても、
JQueryを使っていても、
Node.jsを使っていても、
Firebaseを使っていても、
WEBサイトを作るときでも、
WEBアプリケーションを作るときでも、
その複雑さの裏には必ずJavaScriptのメカニズムが隠れています。
JavaScriptのメカニズムを習得したあなたが恐れるものは何もありません。
*** コースの目的 ***
こちらのコースではJavaScriptが動いている仕組みを深く理解することによって、使用場面に左右されないJSの基礎を習得します。
「JSの入門書などで出てくるコードは問題なく読めるけど、Githubに上がっているコードや熟練者が書いたコードはよくわからない。」
「上から下に順番に処理を書いて、自分の動かしたいようにプログラムは組めるけど、制御ごとに分けて記述したり、整理するのは無理。」
「他の人が作ったコードをコピーしてきて、少し変更すると動かなくなった。」
このようなことは初学者の時に起こりがちです。
そして、これらの原因の根本にあるのが、JSの動作原理への理解不足です。
プログラムはパズルのようなもので、様々なメカニズムが絶妙に組み合わさって動いています。
そのため、同じような記述でも少し状況が違ったり、少し書く場所を変えるだけで途端に動かなくなったりします。
動作原理を理解すると、「こうすれば動きそうだな。」とか、「ここがこうなってるから、エラーがでるんだな。」といったことが論理立てて説明できるようになってきます。
また、他の人が書いた一見複雑に見えるコードでも、一つずつ分解していくと、基本的な動作原理の組み合わせによって成り立っていることがわかってきます。
これまでのプログラミング教育ではプログラムの基本的な書き方を学んだ後に、いきなり複雑なモジュールが登場するため、そこに大きなギャップが生じてしまい、多くの入門者がコードの意味がわからなくなり挫折してしまいます。
このコースでは基本的な書き方を学んだ人が、実践的なステップに入っていく際に知っておいてほしいJavaScriptの裏側の仕組みについて詳しくまとめています。
コースの最後にはそれらの技術や知識を集約して独自のフレームワークを作成します。
初級者の方には難しいと思いますが、上で述べたように、落ち着いて一つづつ読み解いていくと、このコースで取り扱っている基礎的なメカニズムの組み合わせで構成されていることに気付くはずです。
是非、最後までチャレンジしてみてください。
*** 補足 ***
このコースはJSで基本的なプログラムを書いたことがある方で、理解が曖昧だなと感じている方に受けていただくとスキルの向上を一番実感いただけると思います。もちろん、JSをあまり触ったことがない方でもご理解いただけるようなコースの作りを心がけています。また、他の言語を扱ったことがある方で、JSがどのような言語なのかを知りたいといった方にもおすすめです。
もし、私が別で出している「【JavaScript&CSS】ガチで学びたい人のためのWEB開発徹底入門(フロントエンド編)」のご購入を検討の場合には、こちらのコースを先に受けていただくことで、先のコースのJSのセクションの理解度が格段に増すことと思います。
Who this course is for:
- JavaScriptをコアの動作原理からキチンと理解したい方。
- 自分の思った通りコードが動かずに悩んでいる方。
- 自分の思った通りに動かず、気付いたら解決するのに1日経ってしまっていた経験のある方。
- React, Vue, Angularが使いこなせず悩んでいる方。
- JavaScriptの不可解な動きが理解できず、苦しんでいる方。
- 少し複雑なコードを書こうとすると、ぐちゃぐちゃになって整理しきれず、悩んでいる方。
- JavaScriptを本気で勉強したいと思っている方。
- JavaScriptの変態仕様に苦しんでいる方。
- JavaScriptが苦手なプログラマーの方。
Instructor
皆さん、こんばんは。CodeMafiaです。
私はWEBプログラミングの初学者から中級者向けの学習コースに特化して提供しています。
私のコースの中では「なぜ?」「どうして?」の説明を必ずつけるように心掛けています。「なぜそうなるのか?」「どうしてその方法で実装するのか?」それは、私が駆け出しエンジニアだった時に一番知りたかったことでした。しかし、そこまで丁寧に答えてくれる人はなかなかいませんでした。そのため、私のコースの中ではなるべく生徒さん達にモヤモヤを持ってほしくないと思い、「なぜ?」「どうして?」をできる限り説明するようにしています。基礎が理解できれば、未知の状況でも自分で考えて応用することができます。私のコースが皆さんの基礎固めのお役に立てば幸いです。
- 授業を受けてくださった皆様へ
ご受講いただきまして誠にありがとうございます。
是非、皆様のコースに対する正直な意見をお知らせください。
フィードバックをいただけると大変モチベーションにつながりますし、コースの改善に大変役立ちます。
良い意見も悪い意見も大歓迎です。
是非忌憚のない意見をお知らせください。
- 近況報告
本を出版しました。JavaScriptの動作原理について詳しく書いた本になります。思い通りにコードが書けなくて悩んでいる方は是非一度ご覧いただけますと幸いです。(全国の書店でご覧いただけますので、書店にお立ち寄りの際は是非見てみてください。)
「独習JavaScript新版」翔泳社出版 2021/11/15発売
- 略歴
- 北海道大学 工学研究科 応用物理学専攻 修了
レーザーと超音波の研究やってました。超高解像の微弱な超音波を物体に派生させることによって物性を計測する研究に携わっていました。
- ソフトバンク SE兼、開発で新卒入社〜4年間勤務
大手IT企業がどんどん世界を変えていくのを目の当たりにして、ITに興味を持ちソフトバンクに入社しました。
数億円規模のプロジェクトの立ち上げに携わる一方、大規模WEBアプリケーションの長期保守とアジャイル開発に携わっていました。フロントエンドからバックエンドまで幅広い領域を担当していました。
- フィリピンで半年間語学留学
ソフトバンクをやめてからはフィリピンに半年間語学留学していました。英語はおおよそ思ったように喋れる様になりましたが、別のところで色々ありました。笑
- 起業~現在
世界の著名な起業家になりたいという中二病的発想で何も考えず会社をやめて独立しました。ただ、そんなに世の中うまくいくわけもなく、なかなか大変な時期もありました。笑
一歩ずつ前進していけるようにこれからも精進していきたいと思います!
- 強み
もともとソフトバンクで働いていましたが、今は独立してIT業界に携わっているため、大規模アプリケーションの開発の進め方から、小規模アプリのスピーディーな開発の進め方まで多様な開発手法について知っていると思います。そのような経験の中から有益な情報を皆様にお伝えできれば幸いです。
- 行動指針
失敗してもいいから「とりあえずやってみる」ことを心掛けています。
- その他
無料で公開しているコースについては初期に収録したコースになります。お見苦しいところもあるかと思いますが、少しでもお役に立てば幸いです。
では、皆様のより一層の飛躍を心よりお祈り申し上げます!