全てを理解しようと試みよう! たとえそれが出来なくとも
全てを理解しようとしてみると、学ばねばならぬ事がいかに多い事か思い知る。
全てを理解しようと取り組んでみると、徐々に結びつきが増えて知識が縦横無尽に膨大に広がっていく。
gitのあの操作ってどうやるんだっけ? 特定の環境のサーバの設定ってどうすればいいんだっけ? これってC#で書き直したらどうなるんだ?
ファイヤーウォールの設定ってどうやればいいんだっけ?
ルータの動作がおかしいぞ?
こういう技術の詳細を当たり前のように享受している人が多すぎるんじゃないだろうか。
必要になったら、Slackでピロっとメッセージを送ってやってもらえばいい、なんて思っていない?
自分の使っているツールや言語ってどうやって動いているんだろう。
なぜ必要か知っている? どういうふうに使われるか知ってる?
Rubyのコードを実装した時、実際には何が起きているんだろう。
Dockerのコンテナを立ち上げたとき、実際には何が起きているんだろう。
君は、アプリケーションの開発者じゃないかもしれない。けれども、こうした本質的な仕組みを知っていれば、そのプラットフォーム上で堅牢なコードを開発することができるし、何か問題が起きた場合でもトラブルシューティングに役立つ。
「なぜ」「どうして」を考えよう。
次に職場に行くときに、自分の仕事の中で完全には理解していないことについて考えてみよう。それには2つのいい質問がある。
それは、「その仕組みはどうなっているか」と、「そうなるのはなぜか」だ。
質問にすぐに答えることはできないかもしれない。でも、こうした質問について考えるという行為そのものが、新しい考えをもたらし、自分が働いている環境について高い意識を持つことにつながる。
Railsは 一体どのようにしてブラウザにリクエストを渡しているのだろう。
URLを変化させたら動作が変わるのは何故だろう。
docker-compose up で環境が立ち上がるのはなぜ?
もちろんこの質問に答えることで、またわからない部分が出てくるかもしれない。
その場合は同じようにして質問を繰り返し、その仕組みの奥を探っていく。
道は長く険しい。幸運を。