主にWebアプリケーションで作業するソフトウェア開発者として、TCP / IPおよびルーターが要求を管理する方法に関する広範な知識が必要ですか、それとも単なるブラックボックスの知識ですか?
IMO、あなたがソフトウェア開発者であるという事実(私はCSのバックグラウンドを持っていると思います)は、これらのことを知っているべきです。特に、Web開発を行う場合。私のコメントの1つで述べたように、ネットワーク/インターネットアーキテクチャの基本を知らない人が行った本当に馬鹿げたエラーを修正するだけで、コンサルティング料を大幅に削減しました。
ZOMG、私のウェブサイトに加えた変更は表示されません、助けてください!
*セッションがどこか、plzはTEHヘルプ!*キャッシュされているのでZOMG、人々のプロファイルが交差なっている
ZOMGを、我々は、認証されたユーザーのための安全なコンテンツを持っているが、人々は、ブックマークや血まみれの認証画面ヌヴェールでそれらを取得することができTEH PLZ、アップします助けて!」
...などなど...悲しいことに...
Webアプリとユーザーのブラウザーの間には、アプリ、アプリのNIC、ルーター、場合によってはファイアウォール、そしてhttpサーバーの内部NIC、httpサーバー、httpサーバーのアウトバウンドNIC、そして別のファイアウォールがあります。ルーターと最も確かにファイアウォール。次に、キャッシュデバイス、および場合によってはSSLデバイス。その後、より多くのルーターとキャッシュサーバーを使用してインターネットに接続し、最後にユーザーのブラウザー(およびその内部キャッシュ)に接続します。
膨大な数の問題が発生する可能性があり、ネットワーキング、ネットワークプロトコル、オペレーティングシステム/システム管理者、およびインターネットアーキテクチャに関する知識がなければ、IT OP部門の迷惑になります(ほとんどの開発者はインフラストラクチャにアクセスできず、トラブルシューティングの際にどこを探すべきかを知らない)。最悪の場合、それはあなたを本当にくだらないWeb開発者にします。
Web開発のプログラミングの側面は、まさにその1つの側面です。それを正常に実行することは、当然のことと考えたり、IT運用に盲目的に委任したりすることのできない他のスキル(特にネットワークとシステム管理)の上に真っ直ぐに座っています。ネットワーク/ OSのトラブルシューティングを担当する必要があるという意味ではありませんが、
a。ネットワーク/ OSレベルで何が問題になる可能性があるかを知って、アプリケーションの詳細な知識を決して得られないIT OPSに協力して指導する必要があります。b。このような知識により、システムを設計して、このようなエラーを回避するか、少なくとも改善し、優雅に対処することができます。
プログラミングは、エンジニアリングと開発の1つの側面にすぎません。それはあなたの第一のスキルになることはできず、一般的に企業開発の長期的には本当に成功します。特にウェブ開発では、これらはあなたが知る必要があるものです。そして正直に言うと、これらは学校で、または卒業前に(または就職直後に)自己学習を通じて(非常にしっかりと)学ばなければならないことです。
幸運を。