【フリーランス・エンジニア向け】ネットワーク知識がプログラミングスキルよりも重要な理由

【フリーランス・エンジニア向け】ネットワーク知識がプログラミングスキルよりも重要な理由

最近、プログラミングスキルを身に着けさせる講座やセミナー、オンラインサロンが増えた。ところが、現場で必要なネットワークの知識が少ないため、現場に出てもなかなか戦略にならないケースも散見されるようになった。

今回は、現場の視点から、ネットワーク知識がプログラミングスキルよりも重要な理由について解説する。

プログラミングスキルは、習熟する機会が多く、数をこなせば身につく

正直なところ、プログラミングスキル自体は、個人による習得差こそあれ1-3年あれば身に着けることができる。プログラミング自体、アルゴリズムや処理フローの組み立てなので、条件分岐と繰り返しといった2大制御構文さえ押さえてしまえば、たいていどの言語でも習得することは可能だ(実際の現場のSEは、たいてい複数の言語を理解し、プログラミングしている人もいる)

ネットワークの知識は、そもそも経験する機会が少ない

ところが、ネットワークの知識(DNS・メール・Webサーバ構築)の知識は、そもそも習得する機会やそれを実施する機会が少ない。私の場合は、最初に従事した職種がサーバーエンジニアだったので、比較的ITのネットワーク構築やサーバー構築を担当していた。そのため、他のプログラマよりは、ネットワーク構築や運用に関するノウハウを多く持っている。

ところが、私のようなケースはむしろマイナーで、どのプログラミング教室も、ネットワークに関する知識を教えたり経験させることなく、ほとんどが言語の習得やUI、UXの構築で終わってしまう。

Web全体を理解するなら、ネットワークの知識は必須

今後、Web系プログラマよりさらに上位職種(プロジェクトマネージャ、システムエンジニア等)を目指すのであれば、プロジェクトを進行させる上でWeb全体の知識が必要になる。

例えば、

  • Web、DBサーバーの調達
     – レンタルサーバーでよいのか?
     – クラウドサービス上に構築した方が良いか?
  • ドメインの取得・移管・設定変更
     – ドメインのレジストラはどこか?
     – ネームサーバーはどこが管理しているか?
     – ゾーンの設定変更はどのように行うのか?
  • メールの設定
    – 迷惑メール対策(SPFレコードやDKIMの設定)は問題ないか?
    – メールボックスは必要か?

といった、細々としたタスクを分解し、必要に応じてメンバーに依頼したり外注する必要がある。

そういったタスクをこなすには、少なからずネットワークに関する知識は最低限必要になる。

特にフリーランスで仕事を受注しに行く際、顧客側もそれほど詳しい方がいらっしゃならないことがあるので、ネットワークの知識を活用して顧客のビジネスを支援できれば、それだけで意外と差別化できる要素なのだ。

最低でも、DNSは知っておいた方がよい

ここまで、ネットワークの知識が重要だという話をしてきたが、普段業務に携わっていない人たちからすれば、ネットワークの知識をすべて理解するのは難しい。だが、せめてDNSに関する知識は知っておいた方が良いだろう。

個人的には、

  • ドメイン
  • 指定事業者
  • ネームサーバー
  • ゾーン

といったキーワードと、その意味だけでも理解しておけば、Webに関するプロジェクトの進行は非常にスピーディに進めることができるはずだ。