Dijkstra, bir kişinin anadilini istisnai derecede iyi bir ustalık önerdiğinde ne anlama geliyor? [kapalı]


28

Dijkstra burada yazıyor :

Matematiksel bir eğimin yanı sıra, istisnai derecede iyi bir ustalık ana dili, yetkin bir programcının en hayati varlığıdır.

Bu teklifin ikinci bölümünü anlamıyorum. Lütfen açıklayabilir veya detaylandırabilir misiniz?

PS Hindistan'da büyüdüm. Ben Bengalce evde konuşuyorum ; İçinde yaşadığım toplulukta Marathi konuşuyorum ; Hintçe ulusal bir dildir ve çok konuşulur, bu yüzden bunu biliyorum ve okulda ve kolejde İngilizce olarak ilk dil olarak öğrendim. Tabii ki, şimdi birçok dilde düşünüyorum ve hiçbir konuda ustalığım olmadığını kabul etmeliyim . Bu benim programlama yeteneğimi gerçekten etkiliyor mu? Eğer evet ise nasıl? ve herhangi bir çözüm var mı?


20
İlginç ... Hintli (Tamilce) iyi bir arkadaşım var, ve birileri ona "kendi dilinde" bir cümle nasıl söyleneceğini sorduğunda bir keresinde tamamen donduğunu gördüm. Daha sonra onunla konuştuğumda, bir dili OLMADIĞINI öğrenmeye geldim. O ve karısı tamamen farklı dilleri konuşarak büyüdüler, kendi kanunlarıyla konuşamıyorlardı. Her ikisi de hemen hemen tanıştıkları şehrin dilini ve İngilizce'yi konuşurlar. Büyüleyici. Hindistan'ın bu kadar dilsel olarak parçalandığı konusunda hiçbir fikrim yoktu.
Dan Ray

4
Çok iyi programcıların da çok iyi yazar olma eğiliminde olmaları tesadüf değildir; Düşüncelerinizi nasıl açıkça ifade edeceğinizi bilmek, her iki zanaat için de bir gerekliliktir.
Jon Purdy

1
Kendi ana dilinde (Hollandaca) yazılmışlarsa, dijkstra'nın sözlerinin daha az yorumlanıp yorumlanmayacağını merak edemem, nerede mükemmel bir ustalığa sahip olduğunu sanıyorum.
Brendan,

Yanıtlar:


29

Alex ve çabucak _now'ın söylediklerine katılıyorum, ancak farklı bir dönüş olabileceğine inandığımı söyledim. Bu benim kendi teorim ve Dijkstra'nın da aynı anlama geldiğini önermiyorum.

“Dil ustalığı” nedir: Bir dilin temel yapı taşlarını alıp bunları yapıcı, yararlı ifadelere ve cümlelere koyma yeteneğidir. Alfabe ve karakterler kendi başlarına anlamsızdır. Onları bir araya getirip bir anlam çıkarman gerekiyor. Kelimeler kendileri tarafından anlamsızdır; sadece onları, somut fikirleri ifade eden sözdizimi ve gramer temelli uygun bir sıraya koyduğunuz zamandır.

Bilgisayar programlamasında tamamen aynı değil mi? Birkaç anahtar kelime ve sembolü bir araya getirip somut uygulanabilir şeyler yaptık. Bir programlama dili, doğal bir dil gibi semboller ve gramer içerir. Bir programlama diline hakim olma, bu anlamlı (ayrı ayrı anlamsız) sembol ve kuralları anlamlı ve yararlı bir şey yapmak için bir araya getirme yeteneğini gerektirir.

Bunun, bir insanın bir insan dilini öğrenme yeteneği ile bilgisayar dili arasında doğrudan bir ilişki olduğu anlamına geldiğine inanıyorum. Her ikisi de aynı insan yeteneklerine ve düşünme yeteneğine ihtiyaç duyar. Meslektaşlarınız arasında bir göz atın ve zayıf programlama becerisine sahip olanların da diğerleri kadar net konuşamayan veya yazamayanlar olduğunu göreceksiniz. İnsan dilini seçme konusunda iyi olanlar da iyi programcılar olmak için gerekli becerilere sahiptir.


3
+1, Dijkstra'nın ifadesini okuduğumda ilk yorumumdu.
Rob

1
@quickly_now: "Çok iyi kod yazabilen, ancak konuşma veya yazma konusunda iyi iletişim kurma becerisine sahip olmayan pek çok programcı" itiraz ediyorum. Bunu çok iyiden kabul edilebilir hale getirecektim . Bir müteahhit olarak 30 yıl sonra, birçok programcı ile tanıştım . Anlaşılmamış olanlar - sonunda - çalışma kodu üretebilir. Fakat iyi programcılar aslında hem doğal hem de yapay olarak çeşitli dillerde yazabilirler.
S.Lott

4
İyi bir programcı olmanın özü, iyi bir iletişimci olmaktır. Ben böyle yorumladım.
Neil

8
@quickly_now, Neil, Onesimus; Bence sözlü veya yazılı iletişimden biraz daha derin. Örneğin, dil ve biliş arasındaki ilişkiden bahsettiğine inanıyorum. web.mit.edu/newsoffice/2008/language-0624.html . Sanırım bazı tonlara göre ustalık anlamına geliyor (genellikle birinin ana tonu, ikinci veya üçüncü bir dilde daha ustalaşmak nadirdir), programlama becerisine doğrudan uyan güçlü zihinsel dilbilim yapılarına işaret ediyor.
Rob,

1
@OnesimusUnbound, Dijkstra'nın anadilinden bahsettiğini düşünüyorum, çünkü insanların anadillerinde iyi olmalarını beklemenin mantıklı olması (çoğu durumda hepsi değil, aynı zamanda onların yapılaşma dili olması), ancak ikinci / üçüncü dillerinde olması gerekmiyor . Bununla birlikte modern dünyada farklı olabilir, örneğin İngilizce'de anadilimden daha iyiyim. Ama bu okulda asla öğrenmedim çünkü
DPD

23

Dijkstra, iş yerinizin ortam dilinde açıkça, kesin ve kuvvetli bir şekilde yazmanız ve konuşmanız gerektiğini söylüyor. Tamamen haklı: Teknik (ve teknik olmayan) konular hakkında başkalarının anlayabileceği bir şekilde konuşamaz ve yazamazsanız, bir yazılım mühendisi olarak engellenmiş ve bir şekilde etkisiz kalırsınız.

Buradaki düşünce kod hakkında yazmanın kodun kendisi kadar önemli olduğudur.

SO mükemmel bir örnektir: poster ingilizcede kendilerini iyi ifade edemediği için kaç kez iyi, keskin, değerli soruları patlattı veya kapattık? Cevap: Çok fazla.


7

Alıntı, kendi ana dilinizi bilmeniz gerektiğini söylüyor (örneğin, sizin durumunuzdaki Marathi). Bu önemli bir varlıktır.

Psikologlar genellikle bir dili iyi tanımanın düşüncelerinizi daha iyi ifade etmenize yardımcı olduğunu düşünürler . Bazıları yaptığımız tüm düşüncelerin anadilimizle sınırlı olduğunu söylüyor. Dil ne kadar zenginse (ve onun bilgisi), kişi o kadar iyi iletişim kurabilir ve fikirleri yapılandırabilir.

Çoklu dil bilmek, farklı düşünme modellerini de anlamaya yardımcı olur.


7
"Bazıları yaptığımız bütün düşüncelerin ana dilimizle sınırlı olduğunu söyler" doğruysa, anadilim (artık değil) ana dilim değil mi? Hadi ama. Ana dilim ve ana dilim Hollandaca, fakat programlama sırasındaki düşünce dilim İngilizce ... Ve sadece terminoloji yüzünden değil, programlama zorlukları hakkında düşünmeme yardımcı olan neredeyse tüm makaleler İngilizce. Aslında, bana / Hollandaca konuşan bir şey yapmayı zor buluyorum, hiçbir şey bulamıyorum ve şeylerin menü yerlerine güveniyorum. (Kişiselleştirilmiş menünün emilmesi için başka bir neden)
Marjan Venema

7

Tamamıyla eserine baktığımızda, ilginç bir liste ama 1975 yılına ait. Aradan geçen dönemde, zaman zaman bir dereceye kadar değiştiğini söylemek, söz konusu ilkeler listesinin bölümlerini bir parça eski haline getirmek doğru.

Programcıların sahip olması gerektiğine inandığım temel bir beceri, etkili bir şekilde iletişim kurma yeteneğidir. Bu sadece açıklama demek değildir; anlama demek. Çalışma dilinizin neye sarıldığına bakılmaksızın, sizin durumunuzda İngilizce, anadiliniz olmasa da, anadilinde etkili bir şekilde iletişim kurmakta zorluk çekenler, başka yerlerde daha kolay bulamazlar.

Genel bir not olarak, yaşamdaki konumunuz ne olursa olsun, anadilinizde zorluk çekiyorsanız, günlük yaşamınızda dezavantajlı olacağınızı söylemek doğru olur.

Ustalıkla ne demek istediğini kesmeyeceğim - yukarıdaki katkınıza dayanarak, yeterince İngilizce bilgisine sahip olduğunuzdan şüpheleniyorum ve bundan dolayı, diğer dillerde etkili bir şekilde iletişim kurduğunuzu tahmin ediyorum.


Doğru. Bence Dijkstra'nın bir noktası var, ancak “programcılar” kelimesinin “bilgisayar bilimcileri” ile değiştirilmesi gerekiyor. Elbette bir bilim insanının, açık bir dilde tartışıp yazabilmesi gerekir. Aynısı programcılar için de geçerlidir: (aynı zamanda anadili konuşan) meslektaşlarınızla başka bir dilde tartıştığınızı düşünmeme izin vermiyorsunuz. Hollanda'da, tüm geliştirme ortamları İngilizce'dir ancak meslektaşlarımla bir kod parçası hakkında tartıştığım zaman bunu Hollandaca yapıyoruz.
vstrien

@vstrien öyleyse bana arkadaşlarının her biri farklı bir ana dil konuşsa ne yapacağını söyle? buradaki durum bu. her beden farklı bir hint "devletinden" gelir ve farklı bir dilleri vardır (lehçeyi kastetmiyorum .. dili demek istemiyorum) kafanızı bunun üzerine koyabileceğinizi umuyorum: P ve bu tam olarak benim sorumdu. Belli bir dilde düşünün (bir saatte 6 diff ppl ile neredeyse 3 dil konuşmak zorunda kalacağımdan beri bunu göze alamam) Ben sormak istediğim bunun kötü bir uygulama olup olmayacağıydı
Chani

RYUZAKI, bu durum insanların birçok farklı kesiminde çarptığı bir durum. 3 çalışma dili olan bir organizasyonda çalışıyordum. Sizinki gibi bir şirkette, bir çalışma diliniz varsa, iyi iş çıkarırsınız. Bulacağınız şey, yaşamınızın belirli dillerde çalışacağı belli kısımların olduğu.
Temptar

@RYUZAKI: üzgünüm, meslektaşlarınızla anadili olmayan bir dilde tartışmadığınızı söylediğimde size yönlendirmiyordum :). Fakat bence bu durumda net bir şekilde iletişim kurmanın yollarını bulmak önemlidir - ve aklıma gelen en kolay şey, birbirleriyle açıklamak için bir dili kullanmaktır. Yine, programlama becerilerinizde sizi etkilediğini düşünmüyorum, ancak kod üzerinden iletişim kuramıyorsanız üretkenliğe zarar verdiğinden emin olun ..
vstrien

1
@temptar: "Uygulamalı matematiği olmayan, dünyadaki önemli ve artan sayıda programcı" ifadesini geçersiz kılmaz. Gözleminiz, "matematikte resmi eğitimi olmayan insanlar hala programlama arkasında uygulamalı matematik öğrenmeyi başarabilir." Gözlemine katılıyorum. Fakat bu Dijkstra'nın ifadesini geçersiz kılmaz (ya da eski). Gerçekten de tamamlayıcı görünüyor.
S.Lott

5

İnsanların senden ne istediğini - yani iyi bir sözlü iletişim becerisini - iyi bir şekilde anladığından bahsettiğinden şüpheleniyorum.

(Kendi eğikliğimi koymak için: Bunun bir kısmı, programlama bağlamında, bazen insanların DONT'ın ne dediğini veya ne söylediklerini ama çok net bir şekilde ne anlamadıklarını anlamanız gerektiği anlamına gelir.)


1
Ayrıca fikirlerinizi açıkça başkalarına iletme yeteneğini de içine atardım. Biri diğer imo kadar önemlidir :)
Demian Brecht

1
Söylediklerinize katılıyorum, ancak Dijkstra'nın bahsettiği şeyin bu olduğunu sanmıyorum.
Rob,

1
Tüm bunlar bana lisede İngilizce edebiyat derslerini hatırlatıyor. Yazarın ne anlama geldiği hakkında saatlerce tartışabilirsiniz. Hep neden gidip onlara sormadığımızı merak ederdim. Ah ... İngiliz Edebiyatı. Bazıları şimdi öldü. (F Scott Fitzgerald'ı çok fazla denememeniz ve yorumlamanız gerekmemesine rağmen her zaman düşündüm - dünyaya bakışları bir viski şişesiyle bakılarak oluşturuldu. İngilizce öğretmenim de bunu söylemekten hoşlanmadı.)
quickly_now

Saatlerce anlamsızca tartışabilir veya tartışmalarınızı gerçeklerle destekleyebilirsiniz. Örneğin, Dijkstra'nın aynı sayfadaki diğer alıntılarına bakınız. “BASIC'e önceden maruz kalmış olan öğrencilere iyi programlama öğretmek neredeyse imkansız: Potansiyel programcılar olarak, yenilenme umudunun ötesinde zihinsel olarak sakatlanırlar .” - tekrar dil ve biliş konusunu konuşarak.
Rob

Ve böyle bir açıklama sadece iltihaplıdır. Crikey, BASIC'te yaklaşık 30 yıl önce programlamaya başladım çünkü hepsi vardı. Kendimi Süpermen olarak görmüyorum, ama ben de “zihinsel olarak yenilenme umudunun ötesinde sakatlanmam”. Böyle bir ifadeyi oldukça hakaret edici buluyorum ve bu, güvenirliği sınırlı olduğu söylenen başka bir şeye davrandığım anlamına geliyor.
hızla_ben

2

Bence (herhangi bir dilde) iyi olmak buna hizmet ediyor -

Amacınız net değilse, iyileştirilmiş bir şekilde düşünebilir, düzeltebilir ve yeniden başlatabilirsiniz. Söyleyeceğiniz tam olarak bir sonraki kişinin (veya makinenin) anlamasını istediğiniz şey olana kadar.

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.