Apakah bahasa asli seseorang memengaruhi kualitas kode?


9

Ada aliran pemikiran dalam linguistik bahwa penyelesaian masalah sangat terkait dengan sintaksis, semantik, tata bahasa, dan fleksibilitas bahasa lisan asli seseorang.

Bekerja dengan berbagai tim pengembangan internasional, saya dapat dengan jelas melihat budaya mental (jika Anda mau) dalam basis kode. Selain bahasa pemrograman, coding bahasa Jerman sangat berbeda dari rekan-rekan saya di India. Selain itu, kode jelas berbeda di Amerika Tengah seperti di Pesisir Amerika (sebenarnya, IBM perhatikan tahun ini lalu).

Apakah Anda memperhatikan dengan kolega internasional Anda (dari negara mana saja) bahwa gaya pengkodean dan penyelesaian masalah sejalan dengan bahasa ibu?


Mungkin ada beberapa perbedaan, tetapi yang saya tahu adalah bahwa ada programmer yang buruk dari setiap negara.
ozz

Bagaimana Anda tahu apakah perbedaan itu disebabkan oleh bahasa ibu atau latar belakang budaya?
mouviciel

@ mouviciel, keduanya sebagian besar tidak dapat dipisahkan, namun saya secara anekdot melihat sintaks dari bahasa yang diucapkan mendorong semantik bahasa pemrograman; contoh bahasa Jerman di bawah ini dalam komentar saya hanya satu. Saya dapat dengan jelas melihat perbedaan dalam gaya pengkodean bahkan antara wilayah AS meskipun bahasa yang sebagian besar mirip yang (seperti yang Anda sebutkan) seharusnya lebih dikaitkan dengan perbedaan budaya.
Jé Queue

Jawaban:


5

Sampai sekarang dengan pengalaman saya, saya telah memperhatikan bahwa rekan kerja internasional saya melakukan pekerjaan yang sama dibandingkan dengan yang bukan asli. Masalah muncul ketika mereka mencoba menjelaskan konsep atau persyaratan. Lain saya kira nama sintaksis tidak memainkan banyak peran sampai Anda membaca apa yang mereka lakukan. Setelah seorang programmer memperoleh pengetahuan tentang sintaks maka tidak menghitung apa arti sebenarnya dari kata yang digunakan untuk sintaks.


1
Lihat, saya menemukan bahwa terjemahan bahasa lisan asli (dan proses berpikir) ke dalam bahasa pemrograman yang berbeda memiliki hasil materi yang berbeda. Tidak baik atau buruk, hanya sangat berbeda. Saya mencatat banyak tumpukan / deklarasi variabel global dan persiapan data dan kemudian set panggilan prosedur oleh Jerman, vs Amerika yang cenderung inline atau secara anonim menggunakan variabel / fungsi saat diperlukan. Hasil akhir = sama, hanya pendekatan yang berbeda.
Jé Queue

+1 untuk ringkasan cerdas Hasil akhir = pendekatan yang sama, hanya berbeda
Zerotoinfinity

3

Saya belum melihat banyak perbedaan selain dari komentar kode . Di sana kadang-kadang saya dapat dengan jelas mengatakan bahwa bit ini ditulis oleh seseorang yang bahasa pertamanya bukan bahasa Inggris.


6
Saya juga, kurangnya kesalahan ejaan adalah petunjuk yang kuat. :)
biziclop

3

Apakah Anda memperhatikan dengan kolega internasional Anda (dari negara mana saja) bahwa gaya pengkodean dan penyelesaian masalah sejalan dengan bahasa ibu?

Benar. Ini fakta yang sulit. Namun rantai sebab-akibat lebih kompleks.

Wilayah, ekosistemnya, kondisi cuaca, kehidupan tanaman dan hewan telah mempengaruhi perkembangan agama budaya lokal yang menjadi bagian darinya.

Budaya dan agama telah memengaruhi pembentukan dan pengembangan bahasa lokal.

Budaya dan bahasa telah meninggalkan bekas pada model masyarakat untuk kelompok etnis tertentu ini.

Model masyarakat telah mendefinisikan model perilaku - gaya hidup, sikap kerja, hubungan sosial, prioritas dan nilai-nilai individu. Itu bagian yang kita inginkan.

Orang-orang dari budaya yang berbeda akan mendekati penyelesaian masalah dengan bagasi warisan budaya mereka - bagaimana mereka memikirkannya, sikap apa yang mereka bawa ke pekerjaan, metodologi dan pola pemecahan masalah apa yang akan mereka terapkan, prioritas dan nilai apa yang mereka tetapkan.


Berbicara tentang contoh, saya dapat memberi Anda dua. Jika kita membawa Jerman ke tempat saya tinggal saat ini, ada beberapa pola yang saya amati.

  1. Merencanakan segalanya di muka dan untuk jangka panjang adalah cara hidup. Pertemuan malam dengan teman dapat direncanakan beberapa minggu dan bulan sebelumnya. Orang-orang muda sudah peduli dengan pensiun mereka (asuransi dll). Ayunan mood, improvisasi, kemauan dan kemampuan untuk menyesuaikan saat Anda pergi sangat rendah. Secara alami dipindahkan ke cara kerja. Perencanaan dan ketertiban memainkan peran besar. Menjadi gesit dianggap sebagai karakteristik yang luar biasa untuk menggambarkan orang / tim modern dengan pemikiran progresif. Namun sebagian besar proses lincah yang saya amati di tim-tim Jerman tampaknya lebih seperti eksekusi mesin dari langkah-langkah yang telah ditentukan (bahkan jika orang benar-benar mencoba untuk menjadi gesit), tetapi tidak ada semangat lincah seperti itu.

  2. Prediktabilitas segala sesuatu adalah norma kehidupan. Orang terbiasa mengetahui apa yang akan terjadi, di mana dan kapan. Itu membentang dari kehidupan sehari-hari di atas gaya kerja hingga hubungan pribadi. Anda bisa melihatnya misalnya ketika orang menyeberang jalan. Mereka menunggu lampu hijau dan mulai bergerak tanpa melihat apakah mobil benar-benar berhenti - karena mereka mengharapkannya. Orang-orang bangga dengan kemampuannya untuk mengendalikan setiap aspek kehidupan mereka. Namun ketika kehidupan kembali dengan sesuatu yang tidak terduga, ketika hal-hal di luar kendali, orang-orang menjadi takut. Jika ditransfer ke pemrograman saya telah melihat bahwa pengkodean dilakukan agak optimis, tidak ada obsesidengan memeriksa input, kunci asing untuk memverifikasi integritas data dan sebagainya. Juga tidak ada rekayasa ekstra untuk menjaga kode sampai batas tertentu tahan terhadap kegagalan dan beradaptasi dengan perubahan masa depan tertentu, hanya untuk memenuhi harapan hari ini (yang tidak mungkin berubah menurut keyakinan mereka).

  3. Menyimpan uang dan mengoptimalkan pengeluaran mereka sangat penting dalam budaya. Itu tercermin pada artefak kerja. Karakteristik dan kualitas cocok dengan perencanaan tetapi tidak tiba-tiba melebihi mereka (untuk membuatnya lebih dingin atau hanya "dalam kasus"). Sisi lain dari permainan adalah keengganan untuk berinvestasi ke dalam perangkat keras dan lunak modern, untuk merekayasa ulang kode kerja, untuk refactor, untuk membuat segalanya lebih baik hanya untuk tetap sejalan dengan keadaan saat ini, untuk mempersiapkan masa depan. Karena tidak ada kemenangan langsung dan tidak ada yang membayar untuk perubahan, tidak ada yang benar-benar akan bergerak.

  4. Kewirausahaan dan kreativitas agak rendah dalam budaya. Keengganan untuk mengambil risiko pada akun mereka sendiri adalah tinggi. Hasil kerja jarang mengandung cetakan yang tidak biasa, tidak terduga, kreatif. Orang-orang cenderung mengikuti jalan yang dilalui, sedikit eksperimen atau pengaturan yang tidak biasa "karena penasaran". Orang tidak suka mengambil inisiatif ke tangan mereka sendiri terutama ketika dipasangkan dengan tanggung jawab. Saya juga mendengar orang Jerman mendarat di Belanda terkadang mengalami kesulitan karena orang-orang di sana terbiasa bekerja secara mandiri tanpa bimbingan yang ketat. Pemrograman-bijaksana itu berarti sedikit percobaan dengan bahasa baru, alat atau perpustakaan, versi baru tidak diadopsi karena takut akan perubahan. Orang-orang mengambil pola desain dan menerapkannya secara membabi buta karena mereka diajarkan demikian di universitas dan tidak mempertanyakan penerapannya.

  5. Berfungsi melebihi mode. Itu terlihat dalam kehidupan sehari-hari. Gaya urban umum, desain bangunan, dekorasi jalan, semuanya turun ke minimum yang diperlukan untuk berfungsi, tetapi biasanya tidak ada yang hanya untuk gaya, keindahan. Pemrograman-bijaksana itu terlihat pada kurangnya desain UI yang indah. Sebagian besar situs perusahaan dan pribadi agak kuno dan membosankan. Anda juga tidak dapat membujuk bos dan kolega untuk melakukan pemolesan karena mereka tidak melihat manfaat nyata.

  6. Kompleksitas dan birokrasi adalah bagian dari gaya hidup. Orang mengambilnya lebih jauh dan melamar ke mana-mana. Hubungan pribadi. detail pekerjaan, keputusan, dan solusi sering menghasilkan banyak artefak untuk mendokumentasikan apa yang telah dilakukan. Kode pemrograman sering kali muncul dengan elemen yang tidak perlu, level abstraksi dan komposisi karena tampaknya bagi orang-orang lebih serius seperti itu. Prinsip KISS tidak terlalu populer.

  7. "Menyelamatkan wajah" tampaknya sangat penting, untuk terlihat sukses, tidak menunjukkan tanda-tanda kelemahan atau kegagalan kepada orang lain (jika Anda memilikinya, hampir pasti akan digunakan untuk melawan Anda). Dalam praktik kerja mengakui kegagalan itu agak sulit, orang melakukan segalanya untuk tidak "kehilangan muka". Menerima kritik juga sulit. Mengkritik seseorang (dengan alasan baik atau tidak) adalah cara yang pasti untuk membuat musuh. Mengatakan apa yang ada dalam pikiran tidak dipraktikkan yang membuatnya agak sulit untuk memahami siapa yang berdiri di mana.

Intinya adalah, pelaksana yang baik, perencanaan dan penjadwalan top, presisi baik. Namun, inovasi dan kreativitas tidak diharapkan.


Contoh kedua berkaitan dengan budaya Rusia tempat saya berasal. Sangat berbeda.

  1. Jadwal dan perencanaan tampaknya tidak memiliki nilai tertentu. Penyimpangan kecil tidak menjadi perhatian orang kecuali / sampai mulai mengancam hasil yang lebih besar. Orang tidak suka hidup sesuai rencana, lebih suka kebebasan mental, melakukan apa pun yang mereka suka dan ketika mereka ingin melakukannya. Dari segi pemrograman, mereka mungkin mengabaikan "tidak penting" seperti menulis dokumentasi dan mengerjakan tugas. Orang lebih mudah datang dan pergi, jika mereka bosan dengan proyek, tidak menyukai atmosfer, dan sebagainya. Komitmen jangka panjang per-kehidupan tidak diharapkan, orang tidak ingin terikat, jangan berharap mereka datang sekali dan tinggal sampai pensiun. Ini terlihat bagus di pasar ponsel. Sementara di Eropa / AS di mana-mana memiliki kontrak selama 2 tahun, di Rusia hal ini tidak dilakukan. Orang tidak

  2. Orang-orang tidak menyukai birokrasi dan lebih suka hubungan informal. Sedikit atau tidak ada pekerjaan kertas, sesedikit mungkin diskusi dan pertemuan, cukup lakukan pekerjaan itu. Kompleksitas dalam kode tidak disukai, keputusan sederhana dan cara langsung lebih disukai. Rutinitas yang membosankan tidak disukai. Beberapa tugas "tidak penting" seperti berkomentar dan dokumentasi mungkin diabaikan. Orang mungkin menunda hal-hal membosankan tertentu dan melakukan hal-hal yang lebih menarik atau melakukan bagian membosankan dengan cara yang tidak terduga yang akan membuat mereka tetap termotivasi.

  3. Biaya tidak terlalu penting. Orang suka mendapatkan sesuatu yang lebih baru, lebih dingin, lebih menarik dan lebih modern begitu saja, tanpa kasus bisnis. Jika memberikan kepuasan, mereka biasanya tidak akan resah tentang biaya tambahan yang dikeluarkan.

  4. Orang-orang sangat antusias dengan segalanya. Makanan, musik, pakaian, artefak, dan ide dari berbagai negara dan budaya melewati pintu terbuka. Orang-orang yang mengerti pemrograman akan bereksperimen dengan bahasa, alat, atau perpustakaan baru, karena penasaran, dengan kasus bisnis atau tanpa. Berbagai filosofi dan metodologi, semuanya dengan senang hati diambil, disentuh, digigit, dicoba dan dicampur bersama dalam cara yang funky.

  5. Kecantikan dan gaya sangat penting. Orang akan menghabiskan waktu dan uang ekstra untuk sesuatu yang tidak memiliki manfaat nyata tetapi hanya memuaskan rasa artistik. Seringkali mereka lebih suka sesuatu yang gaya daripada sesuatu yang lebih fungsional. Desain UI yang indah sangat dihargai. Orang-orang yang mengerti pemrograman akan merekayasa ulang kode yang tampak kikuk dan tidak terstruktur hanya untuk menambah gaya padanya, bahkan jika itu berfungsi dengan baik sebelumnya, menghasilkan waktu ekstra yang dihabiskan.

  6. Resep dan aturan sering diabaikan dan bahkan dihina, orang mungkin melakukan sesuatu yang sama sekali berbeda jika mereka diyakinkan itu akan menjadi lebih baik (atau lebih dingin - tidak bisa menolak itu). Banyak keputusan dari atas akan dipertanyakan dan diperdebatkan. Dan ya, semua orang memiliki pendapat yang kuat tentang segalanya.

  7. Prediktabilitas kehidupan cukup rendah sehingga orang selalu merencanakan segala kemungkinan. Hal yang sama sering tercermin dalam kode, sikap yang agak pesimistis, dengan cek ganda dan rencana mundur. Arsitektur mungkin mencerminkan kesiapan terhadap perubahan yang mungkin terjadi di masa depan, tetapi bukan arsitektur-seperti astronot. Agile bukan metodologi modern tetapi cara hidup. Orang juga terbiasa dengan perubahan dan tidak mencoba mengendalikan setiap aspek kehidupan mereka. Ketika sesuatu yang tidak terduga terjadi, orang hanya mengangguk, mengatakan "akan lebih baik lain kali" dan melanjutkan tanpa menjadi mental, mulai minum, narkoba dll. Kegagalan proyek tidak mengakibatkan bunuh diri, diambil dengan mudah.

  8. Kebenaran politik rendah sehingga orang mungkin hanya mengatakan apa yang mereka pikirkan di depan ketika Anda tidak mengharapkannya. Dipersiapkan.

Intinya yang berbeda adalah, mengharapkan yang tidak terduga, sesuatu yang tidak biasa dan kreatif tetapi tidak mengharapkan presisi alat berat, menjadwalkan dan mengikuti aturan.


Mana yang lebih baik tidak bisa dijawab dengan mudah. Satu jenis pekerjaan lebih baik dicakup oleh satu kategori pekerja, yang lain oleh yang berbeda. Buruk jika orang ditugaskan tugas yang salah untuk mentalitas mereka. Saya kira itu adalah tantangan bagi manajer tim internasional untuk mengenali masalah itu. Saya tidak yakin itu pernah dibahas dengan aplikasi ke industri TI.


1
Terima kasih atas komentar anekdotal. Saya melihat gaya sangat terpengaruh, dan menarik untuk membaca komentar Anda.
Jé Queue

Meskipun ada beberapa kebenaran dalam pengamatan Anda terhadap orang Jerman, saya harus memahaminya karena ini adalah generalisasi yang terlalu luas yang Anda sebutkan (Tidak semua orang Jerman adalah cara Anda menggambarkan mereka - sama dengan orang Rusia, saya kira).
Jas

Astaga, kedengarannya seperti contoh konsep "Klasik" dan "Romantis" dari buku "Zen dan Seni Perawatan Sepeda Motor" untuk dua populasi secara keseluruhan! Luar biasa.

2

Saya tidak yakin tentang kualitas kode, tetapi sudah pasti bahwa setiap programmer melakukan tugasnya secara berbeda.

Dikatakan bahwa bahasa alami memengaruhi pemikiran kita (jadi saya kira itu akan memengaruhi pemrograman), aliran pemikiran ini telah mengarah pada pengembangan bahasa buatan dengan paradigma yang berbeda dalam upaya untuk membuktikannya: Loglan , misalnya. Saya tidak tahu apakah banyak yang keluar darinya.

Namun, yang saya yakini adalah bahwa pendidikan (di mana bahasa berperan, tetapi hal-hal lain juga) tentu memengaruhi sudut pandang seseorang tentang masalah khusus.

Saya memiliki kolega yang pergi ke sekolah "teknis", dan belajar isi C / C ++ saat di sekolah, dan mereka cenderung memiliki pendekatan teknis untuk masalah tersebut, sementara saya memiliki kecenderungan untuk duduk kembali, memikirkannya (kadang-kadang untuk waktu yang baik) sebelum saya merasa saya memiliki pemahaman yang cukup mendalam untuk sampai ke sana ... namun kita dibesarkan di negara yang sama (kebanyakan), berbicara bahasa yang sama, dan memiliki budaya yang kurang lebih sama (hanya latar belakang pendidikan yang berbeda).

Satu-satunya pengalaman saya dengan kolega "asing" adalah Spanyol (dua tahun lalu) dan Italia (sampai hari ini), dan mereka berdua bekerja kurang lebih seperti anggota tim lainnya (Prancis). Mungkin jika saya bertemu di suatu tempat dari latar belakang non-latin saya bisa melihat perbedaan.

Karena itu, saya tidak yakin bahwa bahasa adalah penyebab utama perbedaan gaya. Saya pikir pendidikan dan karakter mungkin memiliki dampak setidaknya sama banyaknya.


+1 untuk menunjukkan bahwa individualitas jauh lebih penting daripada kebangsaan.
Jas

1

Ini bukan bahasa tetapi semacam latar belakang budaya, "karakter nasional". Yang tampaknya bekerja secara keseluruhan (misalnya orang Inggris keren, bahasa Jerman akurat dll.), Tetapi gagal pada masing-masing orang.

Bagaimanapun, terserah pada Anda untuk mengetahui sistem pengukuran, memilih proyek dari repositori open source, memeriksa kode, dan membuat beberapa statistik.

Akan lebih baik jika Anda dapat mengumpulkan beberapa atribut penulis lain: usia, pendidikan, industri, dll.


Saya tidak yakin maksud dari beberapa pernyataan Anda. Apakah Anda mengatakan Anda TIDAK percaya bahasa lisan asli memengaruhi pendekatan penyelesaian masalah dalam pemrograman?
Jé Queue

1
Ya, saya tidak percaya bahasanya mempengaruhi. Saya pikir "karakter nasional" lebih penting. Dan saya pikir, bahwa "karakter nasional" ini bukan nama yang baik, "pengaruh budaya" harus lebih baik (dan paling tidak, sepertinya tidak rasis). Bayangkan metropolis desa VS, kita-hanya-out-of-40-tahun-komunisme-mimpi buruk VS demokrasi-untuk-200-tahun.
ern0

Dia mengatakan Anda harus menerima SEMUANYA, bukan hanya semantik bahasa yang mengesampingkan hal-hal lain. Terpilih pria setidaknya untuk menangkal ketidaktahuan beberapa orang.
Filip Dupanović

+1. Saya tinggal di Austria, kami berbicara bahasa Jerman di sini, tetapi gaya pengkodean khas rekan kerja Jerman saya sangat berbeda dari rekan kerja Austria saya.
user281377

0

Bahasa ibu seseorang tidak memengaruhi cara Anda membuat kode. Akan tetapi, memahami bahasa Inggris cukup penting, karena kebanyakan buku pemrograman, blog, situs QA, seperti SO, dll. Cenderung dalam bahasa Inggris

Perbedaan budaya mungkin menjadi faktornya. Universitas di berbagai negara dapat mengajar dari sudut pandang yang berbeda. Beberapa negara mungkin memiliki gerakan gesit yang lebih kuat daripada negara lain. Sebagai contoh, pabrik-pabrik Jepang terkenal dengan manufaktur Lean mereka, yang banyak mencoba untuk ditiru, tetapi gagal karena mereka tidak memahami nilai-nilai mendasar yang mendasarinya.


0

Saya pikir pendidikan (maksud saya gayanya, bukan kualitas) adalah faktor yang jauh lebih kuat. Bahkan matematika dasar (yang orang anggap cukup universal) diajarkan dengan cara yang sangat berbeda di seluruh dunia, apalagi sesuatu yang tidak berwujud dan kabur seperti pemecahan masalah.

Jadi jika ada efek bahasa (yang secara pribadi saya ragukan, berdasarkan pengalaman saya), itu dibayangi oleh gaya pendidikan.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.