##基礎をやり直して地力を鍛える
皆さんこんにちは。
フロントエンジニアとして胸を貼って言えるようになるために日夜奮闘しております。
そこで、なんとなくでしかなかった知識をこのタイミングで基礎から叩き直そうと思いました。
理由は主に下記の3点です。
- あやふやな知識のままではこれ以上の成長は望めない
- プログラムの仕様を理解することで応用力を身につける
- 人の書いたコードを編集するには上辺だけの知識では足りない
特に今回は入社されて間もない方、来年入社される方は自分の持っている知識を「誰かに教えることができるか」を基準に今一度自分の持っている知識について考えて欲しいと思います。
今回勉強するにあたって下記の本を参考にしました。
「開眼! JavaScript ―言語仕様から学ぶJavaScriptの本質」
##そもそも「JavaScript」って?
簡単に言うと「JavaScript」はWebページに動きをつけるためのプログラミング言語です。
また、世の中には「Java」というプログラム言語も存在します。
「Java」はPCのアプリケーションの開発やAndroidの開発で使用されるプログラミング言語です。
私自身も学ぶまでは勘違いしていましたが、まずは違うものだと認識していただければいいと思います。
また、誰かに質問や話をする際には
- 「Java」は「ジャヴァ」
- 「JavaScript」は「ジェイエス」
と伝えると伝わりやすいと思います。
(カタカナで書くと少し気持ち悪いですが・・・)
##DOMってなに?
「JavaScript」を学ぶ上で重要になってくるのがこの「DOM」と言われるものです。
DOM(Document Object Model)とは、xmlやhtmlの各要素、
たとえば「pタグ」とか「imgタグ」などの要素を操作する仕組みのことです。
よく「DOMが・・・」なんて会話の中で言われますが難しく考えなくて良いです。
プログラミングを学び始めた方は特に聞いた途端に難しく捉えてしまう方も多いかと思います。
(特にデザイナーの方などには多いような印象を受けます)
##jQueryってなに?
一言で言うと「JavaScript」のライブラリです。
ライブラリというのは、「JavaScript」を少ない記述で使いやすくするためのファイルです。
有名なライブラリとしては
- D3.js
- Chart.js
- Vue.js
他にも「JavaScript」のライブラリはたくさんあるので興味があれば試してみてください。
##他人のソースコードを編集していると起こる問題
チームで仕事をするということは当然誰かが書いたコードを編集することになります。
そこで起こる問題としては、「上手く動作しない」「予期しない値が取得されている」などがあげられます。
簡単に言ってしまえば「他の人が書いた処理」が「自分の書いた処理」に影響を与えているわけですが、
そんなときソースコードを読み解く力がないと問題が起こっている原因を突き止められないなんてことが起こります。
- グローバル変数
- ローカル変数
- スコープの考え方
- プロトタイプ継承
など「JavaScript」自体の言語の仕様について知らないと解決できない問題もあったりします。
##ソースコードを読み解く力
一朝一夕で身につけられるものではないです。
どれだけ沢山のソースコードを書いたか、プログラミング言語の仕様を知っているかということに尽きると感じます。
エラーが起こったときに「とにかくいろいろ試してみる」この対応の仕方で始めはいいですが仕事のスピードや生産性を考えたときに限界がやってきます。
また、自分の成長を考えた時も同様で成長できない状態であると思います。
便利なライブラリが沢山あるのでそれでもいいと思われるかもしれませんが、目指す職種によっては全ての元になっている「JavaScript」に対する言語の理解は外すことができない事項だと言ってもいいとすら感じています。
##まとめ
言語の仕様を知らないことで同じ処理を何度も記述してしまったり、無駄に変数を定義したり汚いソースを記述することになります。
一度に全てを理解することは難しいことだと思います。
ただ、「JavaScript」の特性をなんとなくでも知っているだけで問題解決や作りたいものを作るまでの時間は圧倒的に早くなると思います。
言語のリファレンスは英語で書かれていることが多いですが、新しい言語を触るときにはリファレンスを読んで言語の特性を理解することに努めることが本当の意味で使えるプログラムを書けるということだと思います。