こんにちは、CTOの山岡(@hiro_y)です。
以前「Webエンジニアとして駆け出そうとしているあなたに」という記事を書きました。その中で「学習の高速道路」について触れましたが、その「高速道路」は最初からあったものなのでしょうか。また、「高速道路」の部分は通り過ぎたまま、先に向かってしまってよいものなのでしょうか。
お察しの通り、「学習の高速道路」は最初からあったわけではありません。元々砂利道しかないようなところから、自分たちが少しでも楽できるように、皆で少しずつ作って整備してきたものだったりします。
例えば、Webアプリケーションフレームワークの場合。今どきのフルスタックなものであれば、一通り必要そうな機能が最初から用意されていて、必要に応じてコマンドを実行すれば簡単にページや機能が追加できます。
PHPだと、LaravelやSymfonyなどが人気です。当然最初に作り始めた人(や会社)がいるわけですが、今ではソースコードが公開され(オープンソース)、誰でも開発に参加することができます。大勢の人が携わって開発が進み、その成果としてのフレームワークを我々は利用しているわけです。
コードを書くだけがオープンソース活動への貢献ではありません。バグの報告やドキュメントの翻訳、あるいは使い方を自分のブログや技術系の共有サイトに書いたり、勉強会で発表するなどのコミュニティ活動も含まれます。きっとあなたも、お世話になったことがあるはずです。
そうした経緯や携わってきた人たちに、思いを馳せてみてください。
そして少しずつ、「高速道路」を作る側にまわってみましょう。あなたが遭遇した問題には、きっと他の誰かも遭遇します(あるいは、未来のあなたがまた遭遇するかもしれません)。その問題を解決した方法や、どうやって調べたかを書いておくだけで助けになります。知識を独り占めにしても誰も得をしません。そうやって「高速道路」は伸び続けていくのです。
「高速道路」ができることで、目的地・ゴールには早くたどり着けるようになりました。でも実際の距離は変わっていません。通過することで考えなくて済んでいた、最初は意識しなくても大丈夫な部分。よくある機能、よくある処理、いつものあれこれ。それをずっと理解しないままでよいというわけではありません。
例えばWebアプリケーションの場合、HTTPプロトコルに関する知識や、セキュリティに関する知識、セッションに関する知識など実装に必要な知識は多岐にわたります。そういう泥臭い部分を覆い隠してくれるのがフレームワークだったりするのですが、「高速道路」を降りた先、自分で独自のコードを書いて進んでいくときにそのあたりの分野の知識が必要になることが多いです。
だから順番に、必要になってからで構わないので、「高速道路」で通過した基礎基本の部分を調べたり、勉強したりしてみましょう。なるほどそういうことだったのか、と新しい発見があります(この過程を楽しめる人はWebエンジニアに向いていると思います)。その部分がわからないと、結局どうやって自分のプログラムを作ればよいのかわからなかったり、できなかったりします。
きちんと基本に立ち返る(「下道」で来た道を戻るようなイメージです)勇気を持っておくこと。そのために必要な自信を、何度もチャレンジしてできるだけ早く身に付けておけるとよいと思います。