Sebagai pengembang perangkat lunak, terutama bekerja pada aplikasi web, apakah saya perlu memiliki pengetahuan luas tentang TCP / IP dan bagaimana router mengelola permintaan atau itu hanya pengetahuan kotak hitam bagi saya?
IMO, fakta bahwa Anda adalah seorang pengembang perangkat lunak (saya berasumsi dengan latar belakang CS) harus tahu tentang hal-hal ini. Khususnya jika Anda melakukan pengembangan web. Seperti yang saya sebutkan di salah satu komentar saya, saya telah melakukan sh * load dalam biaya konsultasi hanya memperbaiki kesalahan sangat bodoh yang dilakukan oleh orang-orang yang tidak tahu tentang dasar-dasar arsitektur jaringan / Internet.
ZOMG, perubahan yang saya buat pada situs web saya tidak muncul, tlg bantuan!
* ZOMG, profil orang-orang semakin banyak karena sesi sedang di-cache di suatu tempat, tlg bantuan! *
ZOMG, kami memiliki konten aman untuk pengguna yang diautentikasi, tetapi orang-orang dapat mengaksesnya dengan bookmark dan layar otentikasi berdarah nevers muncul, plz teh Tolong! "
... dan seterusnya dan seterusnya ... dengan sedih ...
Ada banyak hal antara aplikasi web Anda dan browser pengguna: aplikasi Anda, NIC aplikasi Anda, router dan mungkin firewall, lalu server http Anda internal NIC, lalu server http Anda, lalu server http Anda keluar dari NIC, lalu yang lain router dan tentunya firewall. Kemudian perangkat caching, dan mungkin perangkat SSL. Kemudian keluar ke internet dengan lebih banyak router dan server caching, lalu akhirnya ke browser pengguna Anda (dan cache internal.)
Jutaan hal bisa salah, dan jika Anda tidak memiliki sedikit pengetahuan tentang jaringan, protokol jaringan, sistem operasi / sysadmin, dan arsitektur internet, Anda akan bingung dan pada belas kasihan departemen OP TI Anda (karena sebagian besar pengembang tidak memiliki akses ke infrastruktur atau tahu ke mana harus mencari ketika memecahkan masalah). Paling buruk, itu akan membuat Anda pengembang web yang benar-benar jelek.
Aspek pemrograman pengembangan web hanya itu, satu aspek. Eksekusi yang sukses terletak tepat di atas keterampilan lain (khususnya jaringan dan administrasi sistem) yang tidak dapat diterima begitu saja atau didelegasikan secara membabi buta untuk operasi TI. Itu tidak berarti bahwa Anda harus bertanggung jawab atas pemecahan masalah jaringan / OS, tetapi
Sebuah. Anda harus tahu apa yang salah di tingkat jaringan / OS sehingga Anda dapat bekerja sama dan membimbing OPS TI yang tidak pernah memiliki pengetahuan intim tentang aplikasi Anda. b. Pengetahuan tersebut memungkinkan Anda untuk merekayasa sistem Anda sehingga terhindar dari, atau setidaknya memperbaiki dan dengan anggun polisi dengan kesalahan tersebut.
Pemrograman hanyalah salah satu aspek dari rekayasa dan pengembangan. Ini tidak bisa menjadi keterampilan utama Anda, dan benar-benar berhasil dalam jangka panjang dalam pengembangan perusahaan pada umumnya, dan dalam pengembangan web pada khususnya, ini adalah hal-hal yang perlu Anda ketahui. Dan jujur, ini adalah hal-hal yang seharusnya dipelajari (sangat tegas) baik di sekolah atau melalui belajar mandiri sebelum lulus (atau segera setelah memasuki pasar kerja.)
Semoga berhasil.