Saya membaca Coders at Work oleh Peter Seibel, dan banyak waktu telah disebutkan bahwa programmer yang tidak dapat menulis umumnya membuat programmer miskin - itu telah diklaim oleh Douglas Crockford, Joshua Bloch, Joe Armstrong, Dijkstra (dan saya sudah hanya baca setengah buku).
Apa pandangan Anda tentang ini? Apakah ketidakmampuan untuk mengekspresikan diri Anda secara tertulis dalam bahasa alami seperti bahasa Inggris merupakan hambatan dalam penulisan kode yang baik?
Jawaban:
Ada lebih banyak hal untuk pemrograman daripada 'menulis kode'. Sebagian besar menjadi programmer yang sukses melibatkan komunikasi; Mampu terhubung dengan pelanggan, memahami kebutuhan mereka, menerjemahkannya ke ranah teknis, mengungkapkannya dalam kode, dan kemudian menjelaskan hasilnya kembali kepada pelanggan.
Programmer yang memiliki kesulitan mengekspresikan diri mereka secara jelas dalam tulisan mungkin tidak dapat berkomunikasi dengan baik secara umum, sedangkan mereka yang memiliki pemahaman bahasa dan tulisan yang baik umumnya dapat menerjemahkan keterampilan tersebut ke kode yang mereka tulis.
Saya pikir tidak dapat menulis dengan baik, dan karenanya berkomunikasi dengan baik, akan membuat seseorang tidak menjadi programmer yang sangat baik.
Seperti yang dikatakan Jason Fried dan David Heinemeier Hansson (dari 37 tanda) dalam buku mereka, Rework:
sumber
Mampu mengkomunikasikan ide-ide Anda secara efektif adalah tanda pemahaman yang hebat. Ini berlaku untuk lebih dari sekedar bidang pemrograman.
sumber
Saya pikir jika kita memeriksa pertanyaannya, kita memperoleh jawabannya secara langsung:
Apa sebenarnya artinya menulis kode yang baik?
Ini berarti mengekspresikan diri Anda dengan jelas, ringkas, benar dan elegan dalam bahasa pemrograman.
Satu-satunya perbedaan antara mengekspresikan diri dengan terampil dalam bahasa Inggris atau bahasa pemrograman adalah bahwa bahasa Inggris jauh lebih memaafkan.
sumber
Saya tidak berpikir itu adalah penghalang utama untuk kode monyet (saya mengasumsikan tingkat dasar dasar / kemampuan untuk mengekspresikan diri seseorang dalam bahasa ibu mereka). Namun saya pikir itu dapat dengan cepat menjadi penghalang utama karena Anda (pengembang) harus mulai mengartikulasikan desain / lengkungan / rencana dengan lebih baik kepada audiens non-teknis. Dalam pengalaman saya menyampaikan sesuatu kepada orang lain yang kira-kira pada tingkat teknis yang sama seperti saya adalah lebih mudah dan mengambil keterampilan bahasa (alami) jauh lebih sedikit maka itu untuk mengartikulasikan sesuatu kepada klien dan / atau manajer. Pada saat yang sama bahkan ketika itu adalah audiensi teknis ketika materi pelajaran menjadi kurang konkret, orang yang menulis tentang itu (atau berbicara tentang hal itu) harus cukup pandai berbicara.
sumber
Itu tergantung pada apa yang Anda maksud dengan "kode yang baik".
Jika maksud Anda kode hanya berfungsi, hampir tidak ada hubungan antara kemampuan berkomunikasi dengan manusia dan kemampuan berkomunikasi dengan komputer.
Jika maksud Anda kode yang berfungsi, dapat dipelihara, dan dengan jelas menyatakan maksud kode tersebut, pasti ada hubungan antara menulis kode yang baik dan menulis dalam bahasa yang hanya diperuntukkan bagi manusia.
Meskipun Anda tidak memerlukan semua keterampilan berbeda yang diperlukan untuk menjadi penulis yang baik untuk menulis kode yang dapat dimengerti, masih ada beberapa elemen yang harus ada di sana, karena keduanya akan dibaca oleh manusia. Dalam beberapa hal bahkan lebih sulit untuk menulis kode yang baik, karena harus menggambarkan maksud dengan kode tersebut, sementara tidak menggunakan konstruksi yang akan berkinerja buruk saat dieksekusi oleh komputer.
sumber
Masalahnya, pengkodean juga merupakan keterampilan komunikasi. Jack Ganssle dalam buletin elektronik Embedded Muse-nya baru-baru ini mengutip Doug Abbott:
Programmer yang tidak tahu cara menulis prosa mungkin juga tidak tahu cara menulis kode.
Lebih banyak tentang artikel menarik ini:
Apakah Menulis yang Buruk mencerminkan Keterampilan Pemrograman yang Buruk?
sumber
Ini sepenuhnya anekdot, tetapi:
Salah satu programmer "bintang rock" terbaik yang pernah bekerja dengan saya adalah seorang penulis yang sangat miskin. Dan ketika saya mengatakan "sangat buruk", maksud saya tipe yang terlihat seperti dia sangat mabuk, atau hampir tidak bisa membaca - ketika Anda melihat email-emailnya. Kesalahan ketik, kurangnya tanda baca, kesulitan dalam mengekspresikan ide-ide dengan jelas, dan kesalahan ejaan yang umum ("mereka / mereka" dan semacamnya) semuanya berlimpah - kadang-kadang luar biasa. Membaca beberapa emailnya - saya akan khawatir tentang dia mengirim email kepada klien secara langsung (kami tidak perlu melakukan itu di perusahaan itu) - karena itu akan membuat perusahaan terlihat buruk!
Tetap saja, dia adalah programmer super star. Urutan besarnya lebih produktif dan diaktifkan daripada rata-rata.
Saya tidak yakin apa yang membuatnya. Saya sudah melihat ini beberapa kali dengan orang yang berbeda. Beberapa sepertinya tidak memiliki keahlian untuk duduk dan menulis hal-hal. Dan seringkali hal itu tampaknya tidak mempengaruhi bakat mereka di bidang lain (bahkan talenta "pekerjaan pengetahuan" yang relatif serupa, seperti pemrograman). Anda akan berpikir itu akan terhubung, tetapi saya telah melihat beberapa contoh hidup seperti ini di mana tidak. Meskipun saya kira itu sangat mungkin bahwa mereka adalah " pengecualian yang membuktikan aturan " - saya mungkin tidak pernah berpikir untuk melihat penulis buruk yang tidak programer, dan penulis yang baik yang berada .
sumber
Jika mereka tidak dapat menulis dengan baik, bagaimana mereka dapat meyakinkan Anda bahwa mereka adalah programmer yang baik?
sumber
Apakah seseorang yang tidak dapat mengekspresikan dengan tepat suatu sistem organisasi atau suatu gagasan dapat dengan menulisnya akan dapat menulis kode - yang merupakan instruksi yang tepat - ditafsirkan dengan benar oleh komputer (sangat) bodoh?
sumber
Saya pikir sangat penting bagi seorang programmer untuk dapat berkomunikasi dengan baik, baik dengan bahasa lisan maupun tulisan. Kemampuan menerjemahkan ide menjadi kata-kata merupakan prasyarat untuk menulis kode.
Apakah kita berkomunikasi dengan komputer atau seseorang, kita harus memasukkan kata-kata ke dalam urutan yang masuk akal mengikuti aturan tata bahasa. Kita harus mengucapkan kata-kata itu dengan benar atau mengejanya dengan benar agar pihak lain dari percakapan itu dapat memahaminya. Komputer akan melempar kesalahan sintaks, rekan kerja akan berkata "APA?" atau diskon apa yang dikatakan mengoceh gila atau lebih buruk, gangguan yang menjengkelkan.
Saya sangat tidak menyarankan untuk merekrut kandidat karena mereka tidak dapat menyelesaikan pemikiran atau tetap pada subjek. Satu orang dipekerjakan oleh bos kami, dan ternyata tidak dapat memberikan tugas sederhana tepat waktu karena ia terganggu oleh teknologi atau mainan baru yang cerah dan berkilau yang menarik perhatiannya.
Jadi, ya, penting bagi pemrogram untuk dapat berkomunikasi dengan baik. Jika mereka tidak dapat berkomunikasi secara efektif dengan manusia, mereka tidak dapat melakukannya dengan komputer.
sumber
Penulis miskin membuat penulis miskin, dan tidak ada yang lain. Keterampilan menulis yang buruk tidak berarti mereka tidak dapat berkomunikasi sama sekali, tetapi mereka tidak dapat menulis atau mengekspresikan dengan baik. Tentu saja siapa pun dapat mengatakan keterampilan komunikasi itu penting dan krusial di perusahaan dan seterusnya dan seterusnya, tetapi itu tidak berarti seorang programmer dengan keterampilan komunikasi yang buruk tidak dapat menyelesaikan pekerjaan dengan baik. Pemrograman dan penulisan adalah seni, tetapi sangat berbeda. Menulis adalah tentang bagaimana membuat orang lain memahami apa yang Anda katakan dan / atau bertindak sesuai, tetapi pemrograman tidak membuat komputer memahami kebutuhan Anda, karena tidak ada komputer yang memahami kebutuhan pengguna (setidaknya dalam 100 tahun dari sekarang IMO). Pemrogramannya adalah tentang bagaimana menerjemahkan persyaratan ke bahasa pemrograman, dan itu sebabnya keterampilan menulis tidak begitu terkait.
sumber
Benar-benar tidak!
Seorang penulis yang baik tidak lebih dari seorang penulis yang baik. Mintalah seorang penulis yang baik untuk menjelaskan konsep basis data kepada orang yang tidak teknis. Menurut Anda apa yang akan Anda dapatkan ...?
Seorang penulis yang baik, menulis. Programer yang baik menulis kode yang baik.
Saya akan terus dan terus tetapi saya lebih suka menghabiskan waktu saya menjawab posting lain. Saya pikir Anda tahu di mana saya berdiri tentang masalah ini.
sumber