2024-02-17
基礎から学んでいく - ネットワーク編
後回しにしていた分野を勉強し始めた
先週くらいからネットワークの勉強を始めた。
今まであまり意識していなかったが今年の目標達成と後々今勉強しておけば役立つことがあると考えた。
ちなみにカテゴリーでコンピュータサイエンスとソフトウェアの基礎と分けているが,概念的なものと体系的なものとの学びかたの違いで切り分けようと思っている。
前提知識
昔少し勉強したことがあったがほとんど忘れている状態。
OSI参照モデルなどの概要やプロトコルの規格などは全くわからなかった。
特にネットワークインターフェース層とインターネット層の知識は皆無だった。
アプリケーション層については普段から慣れ親しんでいることもあり相対的に理解していた部分が多いように感じた。
モチベーション
普段利用している高レイヤーの土台になっている部分を学んでおきたかったから。
今後技術が変化していく中でも高レイヤーで扱えるものが増えていくものに比べ,普段意識することのない根本的なハードウェアや物理的な通信方法,ネットワークのルーティングは必要不可欠でありその環境が用意されている上で進化していくかもしれないと感じた。
インターネットという特性上,データ上のやり取りをすることになると思うので最低限の知識は学んでいこうと考えた。
以前gRPCを触れていた際にhttp2を利用していると出てきて,その違いは何か?またどのようにhttp1.1から変化したのか?などの詳細を見てみると言葉は聞いたことあるけど実際にイメージできないものが多すぎた経験から学ぶべきだと思った。
その際に最低限のことを知っていれば頭の中でイメージして落とし込むことができたと思うが知らないことばかりだったので前提知識がないことを実感した。
今後触れる機会があるかわからないがもしあった場合にその知識が生きてくる上でさらに知っていて無駄になることはないので,ならばこのタイミングで優先して一気に学んでしまおうという考えに至った。
実際にやったこと
「マスタリングTCP/IP」を読破と途中で出てきたわからない単語や個人的に特に大事だなと思ったことは単語帳のように記憶練習をした。
常に言葉を知っていくというより,その言葉の内容を頭の中で明確にイメージできるかどうかを意識していた。
正直まだ線ではなく点として覚えている部分が多いので自分なりに学んだことを言語化してまとめていっている。
今後やっていきたいこと
もう一度自分で学んだことをまとめる。
現状必須という知識は特にないと思うが,いつでも引き出すことができるようにしっかりと最低限の単語の暗記とイメージができるようにしておきたい。
またネットワークインタフェース層とインターネット層はもう少し知識を固めていきたい。
まとめ
まだまだ入門したてなこともあってほとんど何も知らない状態ではあるが今年の目標である基礎固めに引き続き取りんでいきたい。
またわからないことがあったらすぐに調べて腑に落ちるまで遠回りしてでも学んでおくべきということを改めて思った。
ネットワークの知識は今後も廃れることなく利用することができるので尚更しっかりと学んでおくべきだと感じた。
「Webを支える技術」は今後一度読んでいきたい。