Apa maksud Dijkstra ketika dia merekomendasikan penguasaan bahasa ibu seseorang yang sangat bagus? [Tutup]

28

Dijkstra menulis di sini :

Selain kecenderungan matematis, penguasaan bahasa ibu seseorang yang sangat baik adalah aset paling vital dari seorang programmer yang kompeten.

Saya tidak mengerti bagian terakhir dari kutipan ini. Bisakah Anda jelaskan atau jelaskan?

PS Saya besar di India. Saya berbicara bahasa Bengali di rumah; Saya berbicara Marathi di komunitas tempat saya tinggal; Bahasa Hindi adalah bahasa nasional dan sangat banyak digunakan, jadi saya tahu itu, dan di sekolah dan perguruan tinggi saya diajarkan dengan bahasa Inggris sebagai bahasa pertama. Tentu saja, sekarang saya berpikir dalam banyak bahasa dan saya harus mengakui bahwa saya tidak memiliki penguasaan atas apa pun . Apakah ini benar-benar memengaruhi kemampuan pemrograman saya? Jika ya, bagaimana? dan adakah solusi ?

Chani
sumber
20
Menarik ... Saya punya teman baik yang orang India (Tamil), dan saya pernah melihatnya membeku sepenuhnya ketika seseorang bertanya kepadanya bagaimana cara mengucapkan ungkapan "dalam bahasanya". Membicarakannya dengannya kemudian, saya datang untuk mengetahui bahwa dia tidak PUNYA bahasa. Dia dan istrinya tumbuh sepenuhnya berbicara bahasa yang berbeda, dia tidak bisa berbicara dengan mertuanya. Mereka berdua cukup banyak berbicara bahasa kota tempat mereka bertemu, dan bahasa Inggris. Sangat menarik. Saya tidak tahu bahwa India sangat terfragmentasi secara bahasa.
Dan Ray
4
Bukan kebetulan bahwa programmer yang sangat baik cenderung juga menjadi penulis yang sangat baik; mengetahui cara mengekspresikan pikiran Anda dengan jelas adalah suatu keharusan bagi kedua kerajinan.
Jon Purdy
1
Mau tak mau aku bertanya-tanya apakah akan ada lebih sedikit penafsiran kata-kata Dijkstra jika mereka ditulis dalam bahasa ibu (Belanda), di mana (saya berasumsi) ia memiliki penguasaan yang sangat baik.
Brendan

Jawaban:

29

Sementara saya setuju dengan apa yang dikatakan alex dan quick_now, saya percaya bahwa mungkin ada putaran yang berbeda. Ini adalah teori saya sendiri dan saya tidak menyarankan bahwa Dijkstra memiliki arti yang sama.

Apa itu "penguasaan bahasa": Ini adalah kemampuan untuk mengambil blok bangunan dasar dari suatu bahasa dan menempatkannya ke dalam frase dan kalimat yang konstruktif dan berguna. Huruf dan karakter tidak ada artinya dalam dirinya sendiri. Anda harus menyatukan mereka dan mendapatkan makna dari itu. Kata-kata tidak ada artinya sendiri; hanya ketika Anda menempatkan mereka dalam urutan yang tepat berdasarkan sintaks dan tata bahasa yang mereka ungkapkan ide konkret.

Bukankah sama persis dengan pemrograman komputer? Kami mengumpulkan beberapa kata kunci dan simbol dan membuat hal-hal konkret yang bisa diterapkan. Bahasa pemrograman memiliki simbol dan tata bahasa seperti bahasa alami. Penguasaan bahasa pemrograman membutuhkan kemampuan untuk menyatukan semua simbol dan aturan ini (secara individu tidak berarti) untuk membuat sesuatu yang bermakna dan berguna.

Saya percaya ini berarti bahwa ada korelasi langsung antara kemampuan seseorang untuk belajar bahasa manusia dan bahasa komputer. Keduanya membutuhkan serangkaian kemampuan manusia dan kemampuan berpikir yang sama. Lihatlah di antara kolega Anda, dan Anda akan menemukan bahwa mereka yang memiliki keterampilan pemrograman yang buruk juga adalah orang-orang yang tidak dapat berbicara atau menulis sejelas orang lain. Mereka yang pandai memilih bahasa manusia memiliki keterampilan yang diperlukan untuk menjadi programmer yang baik juga.

DPD
sumber
3
+1, ini adalah interpretasi awal saya atas pernyataan Dijkstra ketika saya membacanya.
Rob
1
@quickly_now: "banyak sekali programmer yang dapat menulis kode yang sangat bagus tetapi kurang dalam kemampuan untuk berkomunikasi dengan baik dalam salah satu baik berbicara atau menulis" Saya akan membantah itu. Saya akan mengubahnya dari sangat baik menjadi dapat diterima . Setelah 30 tahun sebagai kontraktor, saya bertemu banyak programmer. Yang tidak jelas mungkin - pada akhirnya - menghasilkan kode kerja. Tetapi programmer yang baik sebenarnya dapat menulis dalam berbagai bahasa, baik alami maupun buatan.
S.Lott
4
Inti dari menjadi programmer yang baik adalah menjadi komunikator yang baik. Begitulah cara saya menafsirkannya.
Neil
8
@quickly_now, Neil, Onesimus; Saya pikir ini sedikit lebih dalam daripada komunikasi verbal atau tertulis. Saya percaya dia berbicara tentang hubungan antara bahasa dan kognisi, misalnya. web.mit.edu/newsoffice/2008/language-0624.html . Saya pikir itu berarti penguasaan atas beberapa tonque (biasanya tonque asli seseorang, karena tidak biasa menjadi lebih mahir dalam bahasa kedua atau ketiga) menunjukkan konstruksi linguistik mental yang kuat yang secara langsung sesuai dengan kemampuan pemrograman.
Rob
1
@OnesimusUnbound, saya pikir Dijkstra menyebut bahasa ibu karena logis untuk mengharapkan orang menjadi baik dalam bahasa ibu mereka (yang dalam banyak kasus tetapi tidak semua, juga bahasa mereka yang tidak terbangun) tetapi tidak harus dalam bahasa kedua / ketiga mereka . Namun di dunia modern ini bisa berbeda, misalnya saya jauh lebih baik dalam bahasa Inggris daripada di bahasa ibu saya. Tapi itu karena saya tidak pernah mempelajarinya di sekolah
DPD
23

Dijkstra mengatakan bahwa Anda harus dapat menulis dan berbicara dengan jelas, ringkas, dan kuat dalam bahasa lingkungan tempat kerja Anda. Dia benar sekali: kecuali Anda dapat berbicara dan menulis tentang masalah teknis (dan non-teknis) dengan cara yang dapat segera dipahami orang lain, Anda terhambat dan agak tidak efektif sebagai insinyur perangkat lunak.

Idenya adalah bahwa menulis tentang kode sama pentingnya dengan menulis kode itu sendiri.

SO adalah contoh sempurna: berapa kali kita melihat pertanyaan yang bagus, tajam, dan berharga meledak atau ditutup karena poster itu tidak dapat mengekspresikan diri dengan baik dalam bahasa Inggris? Jawab: terlalu banyak.

Pete Wilson
sumber
7

Kutipan mengatakan bahwa Anda perlu tahu bahasa ibu Anda (misalnya Marathi dalam kasus Anda). Ini adalah aset penting.

Para psikolog umumnya berpikir bahwa mengenal bahasa dengan baik akan membantu Anda mengekspresikan pikiran Anda dengan lebih baik. Beberapa mengatakan bahwa semua pemikiran yang kita lakukan terbatas pada bahasa utama kita. Semakin kaya bahasa (dan pengetahuan tentang itu), semakin baik orang tersebut dapat berkomunikasi dan menyusun gagasan.

Mengetahui banyak bahasa juga membantu memahami berbagai model pemikiran.

alexwriteshere
sumber
7
Jika "Ada yang mengatakan bahwa semua pemikiran yang kita lakukan terbatas pada bahasa utama kita" benar, maka bahasa ibu saya bukan (tidak lagi) bahasa utama saya? Com'on. Bahasa ibu dan bahasa utama saya adalah bahasa Belanda, tetapi bahasa pemikiran saya saat pemrograman adalah bahasa Inggris ... Dan bukan hanya karena sebagian besar terminologi dan hampir semua artikel yang membantu saya berpikir tentang tantangan pemrograman adalah dalam bahasa Inggris. Bahkan, saya merasa kesulitan untuk bekerja dengan komputer yang berbicara bahasa Belanda di / kepada saya, tidak dapat menemukan apa pun dan sangat bergantung pada lokasi menu. (Alasan lain mengapa menghisap menu yang dipersonalisasi).
Marjan Venema
7

Melihat keseluruhannya, itu adalah daftar yang menarik tetapi berasal dari tahun 1975. Cukup adil untuk mengatakan bahwa sampai batas tertentu, waktu telah berubah dalam periode intervensi, membuat bagian-bagian dari daftar prinsip yang agak usang.

Keterampilan kunci yang saya percaya harus dimiliki oleh programmer adalah kemampuan untuk berkomunikasi secara efektif. Ini tidak hanya berarti penjelasan; itu berarti pengertian. Terlepas dari apa bahasa kerja Anda pada akhirnya, Bahasa Inggris untuk Anda, meskipun bukan bahasa ibu Anda, mereka yang mengalami kesulitan berkomunikasi secara efektif dalam bahasa asli mereka tidak akan merasa lebih mudah di tempat lain.

Sebagai catatan umum, adalah adil untuk mengatakan bahwa terlepas dari apa posisi Anda dalam hidup, jika Anda memiliki kesulitan dalam bahasa ibu Anda, Anda akan dirugikan dalam kehidupan sehari-hari Anda.

Saya tidak akan tersinggung dengan apa yang dia maksud dengan penguasaan - berdasarkan kontribusi Anda di atas, saya curiga Anda memiliki lebih dari cukup perintah bahasa Inggris dan dari itu, saya memperkirakan bahwa Anda berkomunikasi secara efektif dalam bahasa Anda yang lain.

temptar
sumber
Benar. Saya pikir Dijkstra ada benarnya, tetapi kata "programmer" harus diganti oleh "ilmuwan komputer". Tentu saja seorang ilmuwan harus dapat berdebat dan menulis dalam bahasa yang jelas. Hal yang sama berlaku untuk programmer: Anda tidak membujuk saya untuk berpikir bahwa Anda berdebat dengan kolega Anda (juga penutur asli) dalam bahasa lain. Di sini, di Belanda, semua lingkungan pengembangan menggunakan bahasa Inggris, tetapi ketika saya berdebat dengan kolega saya tentang sepotong kode, kami melakukannya dalam bahasa Belanda.
vstrien
@vstrien, jadi beri tahu saya teman apa yang akan Anda lakukan jika masing-masing kolega Anda berbicara bahasa asli yang berbeda? itulah situasinya di sini. setiap orang berasal dari "negara" India yang berbeda dan mereka memiliki bahasa yang berbeda (saya tidak bermaksud dialek .. maksud saya bahasa) harap Anda dapat menempatkan kepala Anda di sekitar itu: P dan ini persis seperti pertanyaan saya .. saya tidak benar-benar berpikir dalam bahasa tertentu (saya tidak mampu karena saya harus berbicara hampir 3 bahasa dengan 6 ppl berbeda dalam rentang satu jam) Apa yang ingin saya tanyakan adalah apakah ini akan menjadi praktik yang buruk
Chani
RYUZAKI, ini adalah situasi yang dilanda banyak orang di berbagai lapisan masyarakat. Saya dulu bekerja di organisasi yang memiliki 3 bahasa kerja. Di perusahaan seperti milik Anda, jika Anda memiliki satu bahasa yang digunakan, Anda melakukannya dengan baik. Apa yang akan Anda temukan adalah bahwa ada bagian-bagian tertentu dari hidup Anda yang akan berfungsi dalam bahasa tertentu.
temptar
@RYUZAKI: maaf, saya tidak mengarahkan Anda ketika saya mengatakan bahwa Anda tidak berdebat dengan kolega Anda dalam bahasa yang bukan bahasa asli :). Tetapi saya pikir dalam hal ini penting untuk menemukan cara berkomunikasi dengan jelas - dan hal termudah yang dapat saya pikirkan adalah menggunakan satu bahasa untuk menjelaskan satu sama lain. Sekali lagi, saya tidak berpikir itu mempengaruhi Anda dalam keterampilan pemrograman Anda, tetapi tentu saja itu mengganggu produktivitas jika Anda tidak dapat berkomunikasi melalui kode ..
vstrien
1
@ temptar: "jumlah programmer yang signifikan dan terus bertambah di seluruh dunia tanpa latar belakang matematika terapan" sama sekali tidak membatalkan pernyataan itu. Pengamatan Anda berjumlah "orang tanpa pelatihan formal dalam matematika masih bisa belajar beberapa matematika terapan di balik pemrograman." Saya setuju dengan pengamatan Anda. Tapi itu tidak membatalkan pernyataan Dijkstra sama sekali. Memang, tampaknya saling melengkapi.
S.Lott
5

Saya menduga dia merujuk pada memiliki pemahaman yang baik tentang apa yang orang inginkan dari Anda - dengan kata lain, kemampuan komunikasi verbal yang baik.

(Untuk menempatkan kemiringan saya sendiri di atasnya: Bagian dari ini berarti, dalam konteks pemrograman, bahwa kadang-kadang Anda perlu memahami apa yang orang DONT katakan, atau apa yang mereka katakan tetapi tidak terlalu jelas.)

dengan cepat_now
sumber
1
Saya juga akan melemparkan di sana kemampuan untuk menyampaikan ide-ide Anda dengan jelas kepada orang lain. Satu sama pentingnya dengan yang lain :)
Demian Brecht
1
Saya setuju dengan apa yang Anda katakan, tetapi saya tidak berpikir itulah yang Dijkstra bicarakan sama sekali.
Rob
1
Ini semua mengingatkan saya pada kelas sastra Inggris di sekolah menengah. Anda bisa berdebat selama berjam-jam tentang apa yang dimaksud penulis. Saya selalu bertanya-tanya mengapa kita tidak pergi dan bertanya kepada mereka. Oh ... Sastra Inggris. Beberapa dari mereka sudah mati sekarang. (Saya selalu berpikir bahwa Anda tidak boleh mencoba dan menafsirkan F Scott Fitzgerald terlalu banyak - pandangannya tentang dunia dibentuk dengan melihatnya melalui botol wiski. Guru bahasa Inggris saya juga tidak suka saya mengatakan itu.)
quick_now
Anda bisa berdebat sia-sia selama berjam-jam, atau Anda bisa mendukung argumen Anda dengan fakta. Misalnya, lihat kutipan Dijkstra lainnya di halaman yang sama, mis. "Secara praktis tidak mungkin untuk mengajarkan pemrograman yang baik kepada siswa yang telah memiliki paparan sebelumnya untuk BASIC: sebagai programmer potensial mereka secara mental dimutilasi di luar harapan regenerasi." - Sekali lagi berbicara tentang tema bahasa dan kognisi.
Rob
Dan pernyataan seperti itu hanya menghasut. Crikey, saya memulai pemrograman di BASIC sekitar 30 tahun yang lalu karena hanya itu yang ada. Saya tidak menganggap diri saya sebagai superman, tetapi saya juga "dimutilasi secara mental melampaui harapan regenerasi". Saya menemukan pernyataan seperti itu cukup ofensif, dan itu berarti bahwa saya memperlakukan hal lain yang katanya memiliki kredibilitas terbatas.
cepat
2

Saya pikir mahir dalam bahasa (apa pun) melayani ini -

Jika poin Anda tidak jelas, Anda dapat berpikir, merevisi, menyatakan kembali dengan cara yang lebih baik. Sampai apa yang Anda katakan adalah persis apa yang Anda ingin orang (atau mesin) selanjutnya mengerti.

essbeev
sumber