Anadilde konuşulan dil kod kalitesini etkiler mi?


9

Dilbilimde problem çözmenin kişinin kendi ana dilinin sözdizimine, anlambilimine, dilbilgisine ve esnekliğine çok bağlı olduğu bir düşünce okulu vardır.

Çeşitli uluslararası kalkınma ekipleriyle çalışarak, kod tabanında bir zihin kültürü (eğer isterseniz) açıkça görebiliyorum. Programlama dili bir yana, Alman kodlaması Hindistan'daki meslektaşlarımdan oldukça farklı. Ayrıca, kod Orta Amerika'da, Kıyı Amerika'da olduğu gibi belirgin bir şekilde farklıdır (aslında, IBM bu yıllar önce fark etti).

Uluslararası meslektaşlarınızla (HERHANGİ bir ülkeden) kodlama stilinin ve problem çözmenin anadillerle aynı hizada olduğunu fark ettiniz mi?


Bazı farklılıklar olabilir, ancak bildiğim her ülkeden kötü programcılar var.
ozz

Farklılıkların anadilinden mi yoksa kültürel geçmişten mi kaynaklandığını nasıl anlarsınız?
mouviciel

@mouviciel, ikisi çoğunlukla ayrılmaz, ancak ben anekdotla konuşulan dilin sözdizimini programlama dilinin anlambilimine yöneltiyorum ; Aşağıdaki yorumda sadece bir Alman örneği var. (Belirttiğiniz gibi) kültürel farklılıklara daha fazla atfedilmesi gereken büyük ölçüde benzer bir dile rağmen, ABD bölgeleri arasında bile kodlama stilindeki farkı oldukça net bir şekilde görebiliyorum.
Jé Queue

Yanıtlar:


5

Şimdiye kadar yaşadığım deneyim ile yerli arkadaşımın yerli olmayanlara kıyasla aynı işi yaptığını fark ettim. Sorun, kavramı veya gereksinimi açıklamaya çalıştıklarında ortaya çıkar. Başka sözdizimi adının, tam olarak ne yaptığını okuyana kadar çok fazla rol oynamadığını düşünüyorum. Bir programcı sözdizimi bilgisini edindikten sonra sözdizimi için kullanılan kelimenin gerçek anlamının ne olduğunu saymaz.


1
Bakın, anadili konuşulan dilin (ve düşünce sürecinin) farklı bir programlama diline çevirisinin farklı materyal sonuçları olduğunu görüyorum . Her iki şekilde de iyi ya da kötü değil, sadece oldukça farklı. Çok sayıda yığın / küresel değişken bildirimi ve veri hazırlığı ve daha sonra ihtiyaç duyulduğunda değişkenleri / işlevleri satır içi veya anonim olarak kullanma eğiliminde olan Almanlar ve Almanlar tarafından yapılan prosedür çağrılarını not ediyorum . Nihai sonuçlar = aynı, sadece farklı yaklaşımlar.
Jé Queue

Akıllı özet için +1 Nihai sonuçlar = aynı, sadece farklı yaklaşımlar
Zerotoinfinity

3

Kod yorumlarında çok fazla fark görmedim . Bazen bu bitin ilk dili İngilizce olmayan biri tarafından yazıldığını açıkça söyleyebilirim.


6
Ben de yazım hatalarının olmaması güçlü bir ipucudur. :)
biziclop

3

Uluslararası meslektaşlarınızla (HERHANGİ bir ülkeden) kodlama stilinin ve problem çözmenin anadillerle aynı hizada olduğunu fark ettiniz mi?

Kesinlikle. Bu zor bir gerçek. Ancak neden sonuç zinciri daha karmaşıktır.

Bölge, ekosistemi, hava koşulları, bitki ve hayvan yaşamı, yerel kültür dininin bir parçası olan gelişimini etkilemiştir.

Kültür ve din yerel dil (ler) in oluşumunu ve gelişimini etkilemiştir.

Kültür ve dil, bu etnik grup için toplum modeline damgasını vurmuştur.

Toplum modeli davranış modelini tanımlamıştır - yaşam tarzı, çalışma tutumu, sosyal ilişkiler, bireylerin öncelikleri ve değerleri. İstediğimiz kısım bu.

Farklı kültürlerden insanlar, kültürel miraslarının bagajı ile bir sorunu çözmeye yaklaşıyor olacaklar - bu konu hakkında nasıl düşünüyorlar, işe nasıl bir tutum getiriyorlar, hangi metodoloji ve problem çözme kalıplarını uygulayacakları, hangi öncelikleri ve değerleri belirleyecekler.


Örneklerden bahsetmişken size iki tane verebilirim. Almanya'yı şu anda oturduğum yere götürürsek, gözlemlediğim belirli kalıplar var.

  1. Her şeyi önceden ve uzun vadede planlamak yaşam biçimidir. Arkadaşlarla akşam toplantıları haftalar ve aylar önceden planlanabilir. Gençler zaten emeklilikleri (sigorta vb.) Ruh hali salınımı, doğaçlama, istekli ve gittiğiniz gibi ayarlama yeteneği çok düşüktür. Doğal olarak çalışma yoluna aktarılır. Planlama ve sipariş büyük rol oynamaktadır. Çevik olmak, ilerici düşüncesi olan modern bir insanı / ekibi tanımlamak için istisnai bir özellik olarak kabul edilir. Bununla birlikte, Alman takımlarında gözlemlediğim çoğu çevik süreç, daha önceden tanımlanmış adımların (insanlar gerçekten çevik olmaya çalışsa bile) makine yürütmesine benziyor, ancak bu kadar çevik bir ruh yok.

  2. Her şeyin tahmin edilebilirliği yaşamın normudur. İnsanlar ne olacağını, nerede ve ne zaman olacağını bilmeye alışkındır. Günlük yaşamdan çalışma tarzına, kişisel ilişkilere kadar uzanır. Örneğin, insanlar yolun karşısına geçtiğinde görebilirsiniz. Yeşil ışığı beklerler ve arabaların gerçekten durup durmadığına bakmadan hareket etmeye başlarlar - çünkü beklemelerini beklerler. İnsanlar hayatlarının her yönünü kontrol edebilmekle gurur duyuyorlar. Bununla birlikte, hayat beklenmedik bir şeyle geri döndüğünde, işler kontrolden çıktığında, insanlar çıldırırlar. Programlamaya aktarılırsa kodlamanın oldukça iyimser bir şekilde yapıldığını gördüm, saplantı yokgiriş kontrolü ile, veri bütünlüğünü doğrulamak için yabancı anahtarlar ve böylece. Ayrıca, kodları bir ölçüde başarısızlıklara karşı dirençli tutacak ve gelecekteki belirli değişikliklere uyarlanabilir, sadece bugünün beklentilerini karşılamak için (ki bunların inandıkları muhtemel değildir) bazı ekstra mühendislik.

  3. Paradan tasarruf etmek ve harcamalarını optimize etmek kültürde son derece önemlidir. İş eserlerine yansır. Karakteristikler ve kalite planlamayla eşleşir, ancak aniden onları aşmaz (daha serin veya sadece "durumda"). Oyunun diğer bir tarafı, modern donanım ve yazılıma yatırım yapma, yeniden çalışma kodunu yeniden düzenleme, yeniden düzenleme, işleri sadece mevcut durumla uyumlu tutmak, geleceğe hazırlanmak için daha iyi yapmak istemiyor. Hemen kazanmadığından ve değişiklikler için hiç kimse ödeme yapmadığından, hiç kimse aslında harekete geçmeyecek.

  4. Girişimcilik ve yaratıcılık kültürde oldukça düşüktür. Kendi hesaplarında risk alma isteksizliği yüksektir. Çalışma sonuçları nadiren alışılmadık, beklenmedik, yaratıcı izlerini taşır. İnsanlar, zorlu yolu, çok az deneyi veya "meraktan uzak" alışılmadık düzeni izlemeye eğilimlidirler. İnsanlar, özellikle sorumlulukla eşleştirildiklerinde inisiyatif almayı kendi ellerine almayı sevmezler. Ayrıca, Almanların Hollanda'ya inişlerinin bazen zorlandığını duydum, çünkü orada insanlar sıkı bir rehberlik olmadan bağımsız olarak çalışmaya alışkınlardı. Programlama açısından yeni diller, araçlar veya kütüphaneler ile çok az deneme yapmak anlamına gelir, değişim korkusu için yeni sürümler kabul edilmez. İnsanlar tasarım kalıplarını alıp körü körüne uyguluyorlar çünkü üniversitede öğretiliyorlar ve uygulanabilirliklerini sorgulamıyorlar.

  5. Moda üzerinde fonksiyon. Günlük hayatta görülür. Ortak kentsel stil, bina tasarımı, sokak dekorasyon, hepsi işlev için minimum gerekli ama genellikle sadece stil, güzellik için hiçbir şey. Programlama açısından güzel UI tasarımının eksikliğinde görülür. Çoğu kurumsal ve kişisel site oldukça eski ve sıkıcıdır. Ayrıca patronu ve iş arkadaşlarını parlatma yapmaya ikna edemezsiniz çünkü somut fayda görmezler.

  6. Karmaşıklık ve bürokrasi yaşam tarzının bir parçasıdır. İnsanlar bunu daha ileri götürüyor ve her yere başvuruyor. Kişisel ilişkiler. iş detayları, kararlar ve çözümler genellikle yapılanları belgelemek için birden fazla eserle sonuçlanır. Programlama kodu genellikle gereksiz unsurlar, soyutlama seviyeleri ve kompozisyonlarla ortaya çıkar, çünkü insanlara bu şekilde daha ciddi görünür. KISS prensibi gerçekten popüler değil.

  7. "Yüzünü kurtarmak" çok önemli gibi görünüyor, başarılı görünmek, başkalarına zayıflık veya başarısızlık belirtileri göstermemek (eğer varsa, neredeyse kesinlikle size karşı kullanılacak). Başarısızlığı kabul etmek iş pratiğinde oldukça zor gelir, insanlar "yüzünü kaybetmemek" için her şeyi yaparlar. Eleştirmen almak da zor geliyor. Birini eleştirmek (iyi bir sebeple ya da değil) düşman yapmanın kesin bir yoludur. Zihinde neyin var olduğunu söylemek uygulanmaz, bu da kimin nerede durduğunu anlamayı zorlaştırır.

Alt satırda, iyi uygulayıcılar, planlama ve zamanlama üst, hassasiyet iyidir. Ancak yenilik ve yaratıcılık beklenemez.


İkinci örnek, ait olduğum Rus kültürünü ele alıyor. Oldukça farklı.

  1. Program ve planlama belirli bir değere sahip görünmemektedir. Küçük sapmalar, daha büyük sonucu tehdit etmeye başlayana kadar insanları ilgilendirmez. İnsanlar plan başına yaşamayı sevmezler, bir tür zihinsel özgürlüğü tercih ederler, istedikleri şeyleri ve ne zaman yapmak istediklerini yaparlar. Programlama açısından, dokümantasyon yazmak ve kağıt işi yapmak gibi "zorunlu olmayan" ı göz ardı edebilirler. İnsanlar projeden sıkıldıysa, atmosferi beğenmediklerinde gelip gitmeyle çok daha kolay. Hayat başına uzun süreli bağlılık beklenemez, insanlar bağlı olmak istemez, bir kez gelmelerini ve emekliliğe kadar kalmasını beklemezler. Bu cep telefonu pazarında güzel görülür. Avrupa / ABD'de 2 yıllık sözleşmeler yapmak her yerde bulunurken, Rusya'da bu uygulanmaz. İnsanlar yok

  2. İnsanlar bürokrasiden hoşlanmazlar ve gayrı resmi ilişkileri tercih ederler. Çok az veya hiç kağıt çalışması, mümkün olduğunca az tartışma ve toplantı, sadece işi yapar. Koddaki karmaşıklık sevilmez, basit kararlar ve doğrudan yollar tercih edilir. Sıkıcı rutin tercih edilmez. Yorum yapma ve dokümantasyon gibi bazı "zorunlu olmayan" görevler göz ardı edilebilir. İnsanlar bazı sıkıcı şeyleri erteleyebilir ve bunun yerine daha ilginç şeyler yapabilir veya sıkıcı kısmı motive edecek beklenmedik bir şekilde yapabilirler.

  3. Maliyetler o kadar önemli değil. İnsanlar bir iş vakası olmadan daha yeni, daha havalı, daha ilginç ve daha modern bir şey elde etmeyi severler. Memnuniyet sağlarsa, ortaya çıkan ekstra maliyetlerden genellikle rahatsız olmazlar.

  4. İnsanlar her konuda çok hevesli. Farklı ülkelerden ve kültürlerden gelen yiyecek, müzik, kıyafet, eserler ve fikirler açık kapılardan geçer. Programlama açısından insanlar yeni bir dil, araç ya da kütüphane ile meraktan, bir iş vakası olsun ya da olmasın deneyler yaparlardı. Farklı felsefeler ve metodolojiler, hepsi memnuniyetle alınır, dokunulur, ısırılır, denenir ve korkak bir şekilde karıştırılır.

  5. Güzellik ve stil çok önemlidir. İnsanlar somut faydası olmayan, ancak sanatsal bir duyguyu tatmin eden bir şeye ekstra zaman ve para harcarlardı. Genellikle daha işlevsel bir şey yerine şık bir şey tercih ederler. Güzel UI tasarımı çok takdir edilmektedir. Programlama açısından insanlar, daha önce mükemmel bir şekilde çalışsa bile, daha fazla stil eklemek için beceriksiz ve yapılandırılmamış gibi görünen kodu yeniden yapılandıracak ve daha fazla zaman harcayacaktı.

  6. Reçete ve kurallar genellikle göz ardı edilir ve hatta hor görülür, insanlar daha iyi olacağına ikna edilirlerse tamamen farklı bir şey yapabilirler (veya daha serin - buna karşı koyamazlar). Yukarıdaki birçok karar sorgulanacak ve tartışılacaktır. Ve evet, herkesin her şey hakkında güçlü bir fikri var.

  7. Yaşamın öngörülebilirliği oldukça düşüktür, bu nedenle insanlar her zaman olası bir durum için plan yaparlar. Aynısı genellikle çift kontroller ve geri dönüş planları ile kötümser bir tutum olan koda yansıtılır. Mimari, gelecekteki olası değişikliklere hazırlığı yansıtabilir, ancak astronot benzeri aşırı yapılandırmaya değil. Çevik modern bir yöntem değil, yaşam biçimidir. Ayrıca insanlar değişime alışırlar ve hayatlarının her yönünü kontrol etmeye çalışmazlar. Beklenmedik bir şey olduğunda, insanlar başını sallar, "bir dahaki sefere daha iyi olacak" deyin ve zihinsel olmadan, içmeye, uyuşturucuya vb. Başlamadan devam edin.

  8. Politik doğruluk düşüktür, bu yüzden insanlar beklemediğinizde ne düşündüklerini söyleyebilirler. Hazır ol.

Farklı bir sonuç, beklenmedik, sıradışı ve yaratıcı bir şey beklemek, ancak makinenin hassasiyetini, zamanlamasını ve kurallara uymayı beklemeyin.


Hangisinin daha iyi olduğu kolayca cevaplanamaz. Bir iş türü bir işçi kategorisi tarafından daha iyi kapsanır, diğeri farklı bir kategoridir. İnsanlara zihniyetleri için yanlış görevler verilirse kötüdür. Sanırım uluslararası bir takım menajerinin bu sorunu tanıması zor bir iş. BT endüstrisine uygulama ile tartışıldığından emin değilim.


1
Anekdot yorumları için teşekkürler. Stilin çok etkilendiğini ve yorumlarınızı okumak ilginç olduğunu görüyorum.
Jé Queue

Almanları gözlemlemenizde bazı gerçekler olsa da, -1'i söylemek zorunda kaldım çünkü bunlar bahsettiğiniz büyük aşırı genellemelerdir (Tüm Almanlar onları tanımladığınız şekilde değildir - Ruslar için de aynıdır).
Jas

Tanrım, "Zen ve Motosiklet Bakım Sanatı" kitabından "Klasik" ve "Romantik" kavramların iki popülasyonda bir örneği gibi geliyor! İnanılmaz.

2

Kodun kalitesinden emin değilim, ancak her programcının işini farklı yaptığı kesin.

Doğal dillerin düşüncemizi etkilediği söylenmiştir (bu yüzden programlamayı etkileyecektir), bu düşünce okulu bunu kanıtlamak amacıyla farklı paradigmalara sahip yapay dillerin gelişmesine yol açmıştır: Loglan , . Bundan çok fazla çıkıp çıkmadığını bilmiyorum.

Bununla birlikte, emin olduğum şey, eğitimin (dilin rol oynadığı, ancak diğer şeylerin de rol oynadığı), kişinin özel bir sorun hakkındaki görüşünü kesinlikle etkilediğidir.

"Teknik" okullara giden ve okuldayken C / C ++ 'ın bağırsaklarını öğrenen meslektaşlarım var ve problemlere teknik bir yaklaşım sergiliyorlar, ancak arkanıza yaslanma, düşünün (bazen iyi bir zaman için), ona ulaşmak için yeterince derin bir anlayışa sahip olduğumu hissetmeden önce ... ve yine de aynı ülkede büyüdük (çoğunlukla), aynı dili konuştuk ve az çok aynı kültüre sahibiz (sadece bir farklı eğitim durumu).

"Yabancı" meslektaşları ile olan tek deneyimim bir İspanyol (iki yıl önce) ve bir İtalyan (bu güne kadar) oldu ve ikisi de ekibin geri kalanı (Fransızca) gibi az çok çalışıyor. Belki de latin olmayan bir arka plandan bir yerde karşılaşacak olsaydım bir fark tespit edebilirdim.

Bu nedenle, dilin stil farklılıklarının birincil nedeni olduğundan emin değilim. Eğitim ve karakterin en azından etkisi olabileceğini düşünüyorum.


Bireyselliğin milliyetten çok daha önemli olduğunu belirtmek için +1.
Jas

1

Dil değil, bir çeşit kültürel geçmiş, "ulusal karakter". Genel olarak çalışıyor gibi görünüyor (örneğin İngilizler serin, Almanlar hassas vb.), Ancak bireysel kişilerde başarısız.

Her neyse, ölçüm sistemini bulmak, açık kaynak havuzlarından projeler seçmek, kodu incelemek ve bazı istatistikler yapmak size kalmıştır.

Yazarların diğer bazı özelliklerini toplayabilmeniz daha iyi olurdu: yaş, eğitim, endüstri vb.


Bazı ifadelerinizin nedeninin olduğundan emin değilim. Anadilde konuşulan dilin programlamada problem çözme yaklaşımlarını etkilemediğine inanmıyor musunuz?
Jé Queue

1
Evet, dilin etkilediğine inanmıyorum. Bence "ulusal karakter" daha önemli. Ve bence, bu "ulusal karakter" iyi bir isim değil, "kültürel etkiler" daha iyi olmalı (ve en azından daha az ırkçı görünüyor / ırkçı). Köy VS metropolünü düşünün, biz sadece 40 yıllık komünizm-kabus VS-200 yıldır demokrasiyiz.
ern0

Sadece her şeyi hariç tutmak için sadece dil semantiğini değil, HER ŞEYİ almanız gerektiğini söyledi. En azından bazı insanların cehaletine karşı koymak için adamı yok edin.
Filip Dupanović

+1. Avusturya'da yaşıyorum, burada Almanca konuşuyoruz, ancak Alman iş arkadaşlarımın tipik kodlama stili Avusturyalı iş arkadaşlarımdan çok farklı.
user281377

0

Kişinin ana dili kodlama şeklinizi etkilemez. Ancak İngilizceyi anlayabilmek oldukça önemlidir, çünkü çoğu programlama kitabı, blog, SO gibi KG siteleri İngilizce'dir.

Ancak kültürel farklılıklar bir faktör olabilir. Farklı ülkelerdeki üniversiteler farklı bir bakış açısıyla ders verebilirler. Bazı ülkeler diğer ülkelerden daha güçlü bir çevik harekete sahip olabilir. Örneğin, Japon fabrikaları, birçoğunun kopyalamaya çalıştığı Yalın üretimiyle bilinir, ancak temeldeki temel değerleri anlamadığından başarısız olurlar.


0

Bence eğitim (kaliteden ziyade onun tarzı) çok daha güçlü bir faktör. Temel matematik (hatta oldukça evrensel olduğunu düşünür) bile, problem çözme kadar somut olmayan ve bulanık bir şey olsa da, dünya çapında tamamen farklı şekillerde öğretilir.

Yani bir dil etkisi varsa (deneyimlerime dayanarak kişisel olarak şüphe duyduğum), eğitim tarzı tarafından gölgelenir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.