ITのスキルというのは本当に幅広くて、プログラミング言語だけでも多数あり、これに加えてインフラの技術など多岐にわたる。
全てを完璧に使いこなせるようになれば最高なのですが、よほどの天才でない限り現実的ではありません。
となると、ある程度的を絞って習得して行く必要があります。
そこで悩むのがタイトルの問題。
①各スキルを広く浅く学び、ある程度守備範囲を広げておく
②特定の技術を徹底的に学び、その分野のスペシャリストを目指す
人それぞれの価値観だと思うので、どちらを目指してもいいと思うのですが、個人的には①の方がリスクが少ない印象です。
②の場合、その技術が長く使われ続けるものであれば良いのですが、トレンドではなくなりあまり需要がない技術となった時に苦労することになる可能性があります。
技術者である以上はスペシャリストを目指したくなり、憧れたりもします。
しかし、フリーランスとして安定して活動して行くには、トレンドに左右されて選択肢が少なくなってしまうのは大きなリスクとなるので、守備範囲を広くしておくのが安全かなと思います。
特にITの場合はスキルの移り変わりが早いので。
ちなみに、これはある程度の経験がある人の場合です。
新人さんや駆け出しの方は、まずは特定の技術を徹底的に学んで基礎固めをするのが最優先です。
基礎ができていれば、新しいスキルを身につける時にあまり時間をかけずに習得できるようになるので、基礎ができていない時は色々なところに手を出さずに徹底的にそのスキルの習得に専念することをおすすめします。