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のセクションの理解度が格段に増すことと思います。