Apakah penulis miskin membuat programmer miskin? [Tutup]

16

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?

Gablin
sumber
9
Saya tidak tahu tentang keterampilan sebagai seorang programmer, tetapi untuk MENJUAL diri Anda sebagai seorang programmer, pintar = seksi di dunia lepas. Oleh karena itu, jika Anda dapat menulis (dan berbicara) dengan baik, Anda akan dianggap cerdas dan dianggap lebih dapat dipercaya sebagai pengembang (meskipun mungkin tidak sepenuhnya dikerjakan).
Dan Rosenstark
Dengan "tidak bisa menulis," apakah maksud Anda tata bahasa mereka salah? Itu mungkin masalah yang lebih besar daripada hal-hal seperti aliran yang buruk, dll.
Maks.
1
@ Maxm: Mungkin, tetapi juga ketidakmampuan untuk menyampaikan maknanya secara tertulis, meskipun secara tata bahasa benar.
gablin

Jawaban:

30

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:

Jika Anda mencoba memutuskan di antara beberapa orang untuk mengisi posisi, pekerjakan penulis terbaik.

Menjadi penulis yang baik lebih dari sekadar menulis. Tulisan yang jelas adalah tanda pemikiran yang jelas. Penulis hebat tahu cara berkomunikasi.

Eric King
sumber
2
Yup, dan saya pikir hampir semua orang setuju bahwa salah satu kualitas programmer yang baik adalah kemampuan untuk mengekspresikan diri dengan jelas dalam kode sehingga ini tidak akan mengejutkan saya bahwa kemampuan untuk mengekspresikan diri secara jelas dalam tulisan berkorelasi dengan kemampuan untuk mengekspresikan dengan jelas dalam kode Anda (dan sebaliknya). +1
n1ckp
2
Saya akan yang kedua ini. Anda perlu berkomunikasi - tidak hanya dengan mesin. Orang-orang di sekitar Anda dan pemrogram yang datang setelah Anda memerlukan kejelasan dalam komunikasi, baik lisan maupun tulisan. Diucapkan karena cepat atau lambat Anda harus berbicara dengan orang-orang, dan menulis karena itulah kode Anda DAN KOMENTAR ANDA.
cepat,
Saya menemukan jawaban Anda sangat menarik! Tetapi ketika saya mengingat kembali ingatan saya untuk menemukan siapa programmer terbaik yang pernah bekerja dengan saya, bekerja untuk atau bekerja untuk saya, saya menemukan banyak dari mereka yang sangat buruk dalam menulis. Namun, mereka sangat baik. Namun, saya akan tetap mengingat jawaban terbaik Anda dan akan mencobanya di masa mendatang. +1
16
  • Jika Anda tidak dapat menjelaskan sesuatu dengan cukup baik, Anda mungkin tidak memahaminya dengan cukup baik. Menjadi orang yang cerdas berarti Anda akan bekerja dengan orang-orang pintar lainnya dan Anda harus berkomunikasi dengan mereka secara efektif.
  • Gagasan hebat apa pun yang Anda miliki tidak ada gunanya jika hanya ada di kepala Anda.
    Mampu mengkomunikasikan ide-ide Anda secara efektif adalah tanda pemahaman yang hebat. Ini berlaku untuk lebih dari sekedar bidang pemrograman.
Kirk Fernandes
sumber
4

Saya pikir jika kita memeriksa pertanyaannya, kita memperoleh jawabannya secara langsung:

Apakah ketidakmampuan untuk mengekspresikan diri Anda secara tertulis dalam bahasa alami seperti bahasa Inggris merupakan hambatan dalam penulisan kode yang baik?

Apa sebenarnya artinya menulis kode yang baik?

Program harus ditulis untuk dibaca orang, dan hanya secara kebetulan untuk dijalankan mesin.
- Abelson & Sussman, Struktur dan Interpretasi Program Komputer

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.

back2dos
sumber
3

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.

Ken Henderson
sumber
3

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.

Guffa
sumber
2

Masalahnya, pengkodean juga merupakan keterampilan komunikasi. Jack Ganssle dalam buletin elektronik Embedded Muse-nya baru-baru ini mengutip Doug Abbott:

Ketika Anda menulis sebuah program, apa yang sebenarnya Anda lakukan adalah berkomunikasi dengan manusia lain tentang apa yang Anda inginkan dari komputer. Pemrograman adalah tentang komunikasi, sama seperti bentuk tulisan lainnya. Jadi ya, mahasiswa ilmu komputer harus terpapar tulisan yang bagus. Tetapi karena ada begitu sedikit yang berharga dalam ilmu komputer, mungkin mereka hanya perlu beberapa kelas menulis kreatif dasar.

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?

Tony
sumber
2

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 .

Tabel Bobby
sumber
3
Selalu ada pengecualian untuk aturan tersebut. Saya telah bekerja dengan beberapa orang yang juga brilian, yang kami tidak pernah biarkan dekat dengan pelanggan karena mereka akan dibuat menjadi daging cincang. Saya menghabiskan waktu lama mengoreksi kesalahan pengetikan dan sebagainya dalam dokumentasi mereka. Beri mereka masalah teknis dan kilasan wawasan dan solusi yang luar biasa. Ini semua hanya menunjukkan bahwa jawaban di sini adalah generalisasi. Namun, generalisasi berlaku untuk sebagian besar orang.
cepat,
3
@quickly_now: Saya akan bertanya-tanya (karena Anda tidak menentukan) bagaimana kode mereka dibaca. Mereka bisa menjadi pemecah masalah yang sangat pintar dan bagus tetapi jika kode mereka tidak dapat dibaca mereka bukan programmer yang hebat jika Anda menginginkan pendapat saya.
n1ckp
@ n1ck: Sekarang setelah Anda menyebutkannya, orang yang saya pikirkan tidak terlalu baik dalam mendokumentasikan kodenya. Kode itu sendiri bagus dan dirancang dengan baik, tetapi dia tidak memberikan komentar di sekitar potongan kode yang rumit, yang berarti lebih sulit untuk mempertahankan daripada yang seharusnya. Tidak memikirkan itu. :)
Bobby Tables
Saya setuju dengan @ n1ckp. Saya juga berani bertaruh nama pilihannya untuk variabel / metode / kelas kadang-kadang akan samar dan membingungkan. Saya cenderung sangat waspada terhadap programmer dengan produktivitas yang sangat tinggi, karena sering kali harus mengorbankan sedikit waktu ekstra untuk meningkatkan pemeliharaan jangka panjang.
Disillusioned
2

Jika mereka tidak dapat menulis dengan baik, bagaimana mereka dapat meyakinkan Anda bahwa mereka adalah programmer yang baik?


sumber
0

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?

Klaim
sumber
Tetapi Anda mendapatkan loop umpan balik yang sangat jelas dan langsung dari komputer jika kode Anda tidak ditulis dengan benar. Saya menduga Anda bisa memiliki bahasa Inggris tertulis yang sangat buruk dan bahkan tidak pernah diberitahu tentang hal itu, apalagi diberi umpan balik yang perlu Anda tingkatkan.
Carson63000
Anda harus belajar untuk menjadi jelas dan benar bahkan dengan kompiler karena jika tidak, Anda tidak akan pernah mengkompilasi apa pun pada akhirnya.
Klaim
0

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.

Manusia Timah
sumber
0

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.

tia
sumber
1
Bagian dari tugas seorang programmer adalah mengekspresikan dirinya dengan jelas dalam kode (dan komentar) sehingga, tidak hanya komputer, tetapi juga manusia lain dapat membaca kode. Akan masuk akal (tetapi tidak terbukti AFAIK) bahwa keterampilan ini berkorelasi.
n1ckp
0

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.

  • Kode yang dapat dibaca orang lain enam bulan setelah dikembangkan.
  • Kode itu masuk akal pada jam 2:00 pagi ketika sistem gagal dan proses debug sedang berlangsung.
  • Kode yang orang lain suka pinjam karena mereka memahaminya dan dapat memodifikasinya dengan mudah
  • Kode yang berfungsi 24/7 365

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.

Michael Riley - AKA Gunny
sumber
1
Saya pikir poin 1,2 dan 3 mengharuskan seseorang untuk menjadi penulis yang baik selain menjadi programmer yang baik. Intinya, Anda mempertimbangkan keterampilan menulis yang baik sebagai sifat tersirat.
Mamta D