# Sadece Dili Öğrenmeyin, Kültürünü Anlayın

Lisede yabancı dil öğrenmek zorunda kaldım. O zamanlar iyi bir İngilizceyle iyileşeceğimi düşündüm, bu yüzden üç yıllık Fransızca dersinde uyumayı seçtim. Birkaç yıl sonra tatil için Tunus'a gittim. Arapça oradaki resmi dildir ve eski bir Fransız kolonisi olduğu için Fransızca da yaygın olarak kullanılmaktadır. İngilizce sadece turistik bölgelerde konuşulur. Dil konusundaki bilgisizliğim yüzünden, kendimi havuz başında James Joyce'un biçim ve dildeki güç gösterisi olan *Finnegans Wake*'i okurken buldum. Joyce'un kırktan fazla dili eğlenceli bir şekilde harmanlaması, yorucu olsa da şaşırtıcı bir deneyimdi. Yabancı kelimelerin ve cümlelerin nasıl iç içe geçtiğini anlamak, yazara kendini ifade etmenin yeni yollarını verdiğini anlamak, programlama kariyerimde yanımda taşıdığım bir şeydi.

Andy Hunt ve Dave Thomas, çığır açıcı kitaplarında *The Pragmatic Programmer*, her yıl yeni bir programlama dili öğrenmemizi teşvik ediyor. Onların tavsiyelerine göre yaşamaya çalıştım ve yıllar boyunca birçok dilde programlama deneyimim oldu. Çok dilli maceralarımdan aldığım en önemli ders, bir dili öğrenmek için söz dizimini öğrenmekten fazlasının gerektiğidir: Kültürünü anlamanız gerekir. Fortran'ı herhangi bir dilde yazabilirsiniz, ancak bir dili gerçekten öğrenmek için o dili benimsemeniz gerekir. C# kodunuz çoğunlukla statik yardımcı yöntemler içeren uzun bir Main yöntemiyse mazeret üretmeyin, ancak sınıfların neden anlamlı olduğunu öğrenin.

Yeni bir dilin iplerini öğrendikten sonra, zaten bildiğiniz dilleri yeni şekillerde kullanmaya nasıl başlayacağınıza şaşıracaksınız. C#'ta delegeleri etkili bir şekilde kullanmayı Ruby'yi programlayarak öğrendim, .NET jeneriklerinin tüm potansiyelini ortaya çıkarmak bana Java jeneriklerini nasıl daha kullanışlı hale getirebileceğim konusunda fikirler verdi ve LINQ kendime Scala'yı öğretmeyi bir esinti haline getirdi.

Ayrıca farklı diller arasında geçiş yaparak tasarım kalıplarını daha iyi anlayacaksınız. C yazılımcıları, C# ve Java'nın yineleyici kalıbı metalaştırdığını bulur. Ruby ve diğer dinamik dillerde yine de bir ziyaretçi kullanabilirsiniz, ancak uygulamanız Gang of Four kitabındaki örneğe benzemeyecektir.

Bazıları *Finnegans Wake*'in okunamaz olduğunu iddia edebilir, bazıları ise onu stilistik güzelliği için alkışlayabilir. Kitabı daha az ürkütücü bir okuma yapmak için, tek dilli çeviriler mevcuttur. İronik olarak, bunlardan ilki Fransızcaydı. Kod birçok yönden benzerdir. Biraz Python, biraz Java ve biraz Erlang ile *Wakese* kodu yazarsanız, projeleriniz karmakarışık olur. Bunun yerine zihninizi genişletmek için yeni diller keşfederseniz ve işleri farklı şekillerde nasıl çözebileceğiniz konusunda yeni fikirler edinirseniz, eski güvenilir dilinizde yazdığınız kodun öğrendiğiniz her yeni dil için daha güzel olduğunu göreceksiniz.

Anders Norås Tarafından


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://97-things-every-x-should-know.gitbook.io/97-things-every-programmer-should-know/tr/thing_27.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
