そういえば、Webアプリを作る際の最低限の知識って多くね

現在の世界でWebアプリをゼロから作るとなると、結構膨大な知識が必要とされるように思う。羅列するだけでも

・プログラミング言語の基本的な運用
・ネットワークの基本的な知識
・OS、サーバーの基本的な知識
・ロギング、リソースマネジメント
・アプリのアーキテクチャ
・データベースの運用
・クラウドサービスへの親しみ
・データ構造への理解
・テスト、Docs整備
・大規模になった時の分散処理
・Gitとかのバージョン管理システム
・全ての項目に共通するが、適切なツールの活用
・他にも多分まだまだ

結構、専門的な知識だなと思った。

自分の場合、CPU、OS、ネットワークなどの基本的な仕組みを押さえてからやり始めたので、知識のキャッチアップは比較的スムーズに行けている部類だと思うが、それでも結構量多いよなと感じた。現在でもなかなか親しみがない領域が多いとも感じる。

そりゃ、Railsのチュートリアルとかいきなりやっても理解不能だよ。だってこういうのいきなり全部一緒くたにしてやるわけだから。

個人的にはCPU、OS、ネットワークの仕組みをそれなりにやっておくのは長期的に見て時間効率がとてもいいと思う。というのも、上にあげたような知識はそれらの基礎的な知識の上に成り立つものだから。とはいえもちろん、領域ごとに固有の知識とか知見は莫大にあるわけだが、根本を理解していると、詰まることが少ない。ああ、結局そういうことなのねと納得できるからである。

おまけに、各レイヤーを知っていると、だいたいどのレイヤーにも似たような概念が出てきて、遭遇回数が増えるため、親しみが増えて慣れやすいというのもある。

もちろん、全部知ってるからいいとかそういうわけではないんだが、知っていると知っていないとでは作業効率だったり時間効率が段違いになる知識が含まれていたりして、広く浅くキャッチアップすることはかなり重要なのだ。基本的なキーポイントは自動化、可視化、効率化なんだが、これらを上にあげたような観点から色々なライブラリやソフトウェアを使って実現する。それを使うのと使わないのでは日々のメンテナンスだったり開発にかかる時間に大きく差が生まれたりする。もしくは日々の中ではあまり見えないけど、ある日突然負債として重くのしかかってきたりする場合がある。

プロジェクトの中で開発の一部分に参加する場合だったら、全てにおいて気を配る必要はなくて、どこか一部分に強みを持てばいいわけだが、ゼロから作るとなると、ある程度全部の領域に浅く広く通じていないといけないわけである。

というのも、最初の方向性を間違えてしまうと、だいたい後から変えるのがめんどくさいから。だから、最初は少し丁寧に時間をかけてリサーチをして、のちの開発効率を最大化して結果的に最短だよねと思われる道を選択する方がいいだろう。

基礎が身についているならば、各種の浅い知識に通ずることは割と1週間でも出来る。

振り返ってみて、なかなか膨大な知識を身につけてきたんだなという感慨深さがある。確実に、大学での学習だけじゃなくて、こうやって別分野のものを実践を通じて学んでいけたっていうのはデカい。学習っていうものに対する理解度とかが上がった気がする。あと、コンピュータに強くなれたのはシンプルに嬉しい。コンピュータに親しみを持ちたい人、Web開発はキッカケとしてとても良いと思う。

あなたを記憶します