Birden fazla dil öğrenme şansınız nasıl? [kapalı]


9

Okuduğum Bir programcı en az kaç dilde konsantre gerekir? ve ilk cevabın 2, 3 numaralı dillerini bilmediğimi öğrendim. Bilgi ve programlama becerimi artırmak için daha fazla dil öğrenmek istiyorum. Bununla birlikte, genellikle şirketlerde sabit çerçeve ve diller kullanır ve nadiren değişir. Bu yüzden bu dilleri öğrenme şansım olup olmadığından emin değilim ve bunun diğer programcılar için de geçerli olacağını düşünüyorum.

Ancak, burada birden fazla dil bilen birçok geliştirici gördüm. Birçok dil öğrenme şansını nasıl elde ediyorsunuz?

Güncelleme

Sanırım rahatsız olan birçok insan var çünkü boş zamanlarımda hiç çalışmak istemediğim anlaşılıyor. Aslında, bu doğru değil. :) Ben meraklı bir programcıyım ve bu yüzden bu tür bir soruyu buraya gönderdim. Boş zamanlarımda çalışıyorum ama sadece dilde yetenekli olmanın yeterli olmayacağını düşündüm. Her neyse, tüm cevaplar için teşekkürler!


7
Basitçe, boş zamanlarınızda yeni şeyler öğrenin.
Jonas

1
Dostum, bu cevap 39 yaşında bir programcı tarafından gönderildi. Bunun iyi bir liste olduğunu düşünüyorum, ama kendinizi bunun üzerinden öldürmeyin.
Meslek

7
Şansınızı "elde edemezsiniz". Şansınız var. Daha fazla dil öğrenmek istiyorsanız dışarı çıkın ve bunu yapın. Bazı efsanevi iş sorumluluğunun size gelmesini beklemeyin.
Joel Etherton

Yanıtlar:


10

Bir dili öğrenmenin en iyi yolunu, bir şeyi yararlı hale getirmek veya ihtiyacınız olan şeyleri derhal kullanmaktır .

Örneğin, kendimi her seferinde manuel olarak yapmak zorunda olduğum birçok işlemi otomatikleştirme ihtiyacı içinde buldum. Tekrarlayan görevler, dosyalar ve klasörler oluşturma, vb ... bu yüzden sadece yararlı bir araç yapmak için bir komut dosyası dili seçtim. Perl'e gittim ve çevrimiçi öğreticiler ve kitaplar sayesinde senaryonumu yapmak için gerekli sözdizimini ve işlevleri öğrenmeye başladım.

Birkaç gün içinde aletimi çalıştırdım ve boş zamanlarımda dil hakkında yeni şeyler öğrenmeye ve ona daha fazla işlevsellik katmaya devam ettim.


Akla gelen başka bir harika seçenek: Beğendiğiniz bir dil bulamazsanız veya ihtiyaçlarınıza tam olarak uymadığını düşünüyorsanız, yine de kendi dilinizi oluşturabilirsiniz .

Şimdi Perl ile yapıyorum, özel sorunlarımı en iyi şekilde çözmeme yardımcı olacak bir sözdizimi seçtim (kendi dilinizi yazdığınız için, iş için doğru sözdizimini, en iyi tanımlayan ve çözdüğünüz dili seçmek isteyebilirsiniz belirli alan adı sorunlarınız).

Sonuç? Geliştirme artık çok daha hızlı ve alan adına özgü bir dil olduğu için kodun kendisi çok daha açıklayıcı. Birkaç hafta önce bu konuyla ilgili birçok yararlı bağlantı içeren bir soru sordum.

PHP ile bile yeni bir dil oluşturmak için herhangi bir komut dosyası dilini kullanabilirsiniz.


Perl ile kendi dilimi oluşturabileceğimi bilmiyordum. Bunu biraz açıklayabilir misin yoksa bana biraz referans verebilir misin?
Sanghyun Lee

Bunu burada istedim . Temel olarak, girdilerinizi anlayacak (ayrıştıracak) ve yazdıklarınıza göre farklı görevler yapacak bir komut dosyası oluşturmanız gerekir. Yalnızca bir işlevler kümesi veya tamamen yeni bir dil sözdizimi olabilir. Daha sonra gerekirse hepsini otomatikleştirebilirsiniz. Yalnızca Perl ile değil, yeni bir dil oluşturmak için herhangi bir komut dosyası dilini kullanabilirsiniz.
Jose Faeti

8

Bu tür sorular her zaman beni şaşırtıyor. Profesyonel olarak 7 dil kullandım, hobi ve akademik ortamlarda yaklaşık 5 dilde kod yazdım ve belki de bir düzine dilde daha fazla kod okuyabilirim. Bir zamanlar sadece onun uğruna bir dil öğrenmedim. Aklında daima somut ve acil bir hedef vardır. Örneğin, bu hafta sonu ailem için bir uygulama üzerinde çalışmaya başlayacak kadar Android kütüphanesi öğrendim. İPhone'larımız olsaydı Objective-C'yi öğrenirdim.

Benim hissettiğim, birden fazla dil bilmek , bunun bir nedeni değil, yetenekli veya en azından hevesli, programcı olmanın bir belirtisidir . Yeni bir dil öğrenmek için zorlayıcı bir neden düşünemiyorsanız, size ne kadar fayda sağlayacağını bilmiyorum.


3

Çözülmesi gereken bir sorun olduğunda yeni bir dil öğrenmenin en iyi yolu. Sadece rahat olduğunuz şeyleri kullanmak yerine, sorunu çözmenize yardımcı olacak araçların (diller, çerçeveler, kütüphaneler) yararlı olabileceğine bakmak için biraz zaman ayırın. Yeni aracı öğrenmek için zamanınız varsa, bunu deneyin. Dış etkenlerden kaynaklanan program baskıları ve teknoloji sınırlamalarınız olduğunda bunu işinizde yapamayabilirsiniz, ancak bu yaklaşımı kişisel projelere alamamanızın bir nedeni yoktur.


2

Bunu yapmak için zaman ayırman yeterli. Kitaplardan "Yedi Haftada Yedi Dil" kitabına göz atın. Size yedi çok ilginç dile giriş yapacak ve oradan her türlü yere gidebilirsiniz.


1

Sadece kullanmaya başlayın. Açıkçası, hiç maruz kalmadığınız bir dilde sıfırdan bir üretim sistemi oluşturmak kötü bir fikirdir, ancak işte birkaç öneri:

  • Kendi zamanınızda öğrenin. İlginç bulduğunuz bir projeyi seçin, kendiniz bitirebileceğinizden emin olun. Uygun olup olmadığına karar vermek için yeni dilinizde bazı tanıtım okumaları yapmak en iyisidir - her dilin güçlü ve zayıf yanları vardır ve dilin mükemmelleşmesi için tasarlanan bir sorunla başlamak en iyisidir.
  • Mevcut bir projede bakım görevleri yapmaya başlayın. Bu yolla, belgeleri okumadan bile dilin büyük bir bölümünü alabilirsiniz: örnek koddan çok şey çıkarılabilir ve belgeleri okumanız gereken parçalar için, çok daha açık olacaktır. zaten kod. Ayrıca "bu kod ne işe yarar" aramak "X yapan kodu nasıl yazabilirim" den daha kolaydır.
  • İhtiyacınız olan küçük araçlar ve yardımcılar için yeni dilinizi kullanın: kabuk komut dosyaları, belirli görevler için atma kodu, hızlı hesaplamalar (örneğin, birçok dinamik dilin etkileşimli tercümanları - python, lisp, haskell, vb. - mükemmel hesap makineleri yapın). Yine de tüm diller buna uygun değildir.

1

Bir dilde yaptığınız nispeten küçük bir şey seçin ve başka bir dilde bir yedek değiştirme geliştirin. Bunu sadece kendinize meydan okumak için yapın. Tamamlamak için diğer dil hakkında çok şey öğreneceksiniz.

Geçen hafta içinde, NodeJS'de (daha önce bir JSP hizmeti) bir web hizmeti arka ucu öğrenmeye ve yeniden yazmaya karar verdim. Çıplak kemik hizmetinin çalışması sadece bir gün sürdü ve birkaç gün sonra Altyapısını, hata işlemeyi, günlüğe kaydetmeyi ve canlı izlemeyi ekledim. Şimdi orijinalinden daha üstündür. Bir şeyi öğrendiğim ve bundan çok memnun olduğum için yönetimin kabul edip etmediği önemsizdir.


1
  • İşimin bir kısmının "araştırma" olduğunu düşünüyorum. 1998'de yapılan araştırmalar Y2K hatalarını düzeltmek anlamına geliyordu. Geçen ayki araştırma Subversion öğrenmek demekti. 40 yıldır araştırma yapmaya başladım. Dilleri listelediğimde, bunları alfabetik sırayla listelemeliyim.

  • Bir dil öğrendiğimde, kapsayacak referans kılavuz kapağını okudum. Sonra aslında birkaç ay kullanıyorum. Sonra referans kılavuzunu tekrar okudum. İkinci okuma, ilk kez kaçırdığım birçok hile ve ima ortaya koyuyor.

  • Pratik araştırma, C # ve Pascal gibi normal dilleri kapsar. Gelişmiş araştırma, LISP ve FORTH gibi garip dilleri kapsar. Muhtemelen LISP'yi asla profesyonel olarak kullanmayacaksınız, ancak onu öğrenmek zihninizi önemli ölçüde genişletiyor.

  • Tabii ki, çevremde bana zaman ödenmiyor, teslimat için ödeme yapılıyor. Günde altı saat kullanarak iki hafta içinde teslimat yapabilirsem, diğer üçünü araştırma için kullanabilirim. Günde on iki saat sürüyorsa, o zaman araştırma yok.

  • Tüm araştırmalar, elbette, bana ödeme yapan kişi için potansiyel bir faydaya sahip olmalıdır. Küçük araçlar iyidir; C kaynak kodunuzu bir sonraki işleminizde Python'da deneyin. (Hayır, Python'u tanımıyorum, ancak dize manipülasyonu için iyi olduğunu duydum.)


0

Bazen fırsatlar sizin istihdamınızdan gelir. Bu tür bir fırsat için genellikle üç itici güç vardır.

  1. Bu yepyeni bir teknolojidir. Örneğin, birçok şirket .NET'in yayınlanmasından sonraki ilk iki veya üç yıl içinde geliştiricileri için C # eğitimi için ödeme yaptı.

  2. Öğrenmesi kolaydır. Örneğin, bir linux dükkanında .bash komut dosyaları yazmanız gerektiğini bulacaksınız. Terminal oturumları vb. Kullanıyorsanız ve bunları yazma deneyimine sahip başka geliştiriciler varsa, yalnızca kendi görevlerinizin bazılarını otomatikleştirmek için bu beceriyi edinebilmeniz gerekir.

  3. Nadiren kullanılan teknik beceri ve şirketiniz işi yapmak için bir danışman bulmak için zaman ve masraftan geçmek istemiyor. Örneğin, bazı XML (günlük) dosyalarını görüntüleme için dönüştürmenin kolay bir yoluna ihtiyacımız olduğu için XSLT yazmayı öğrendim.

İş dışında kendiniz için yapmanız gereken diğer fırsatlar. Dikkatle seçin - gelecekte hangi teknolojilerin yararlı olduğunu düşünüyorsunuz? Bu durumlarda, teknolojiyi öğrenmek ve uygulamak için zaman ve çaba harcamalısınız. Bu genel bir kariyer planının parçası olmalı ve dersler için ödeme yapmanız gerekebilir. (Şanslıydım - Java'yı öğrendiğimde akşamları yerel bir kolejde öğretiyorlardı).


0

Sorunuzu cevaplayarak, kendi tecrübelerime göre (endüstride oldukça yeniyim, bu yüzden çok fazla değilim) Hangi dilin ihtiyaçlarıma en uygun olduğunu görmek için biraz araştırma yaparak yeni diller öğreniyorum. Üniversitede, kriptografide büyük Tamsayıların kullanılmasını gerektiren bir projet vardı. BigInteger sınıfı sağladığı için Java'ya döndüm, bu yüzden C ++ 'da oldukça yanıcı hale geliyordu. Şu anki işimde, kabuk komut dosyasının çok karmaşık hale gelmeden sorunumu tamamen çözemediğini görebiliyordum, bu yüzden Perl'i öğrendim. Anında öğrenmek bir gereklilik olarak tavsiyemdir. Tabii ki kendinizi sıkılmış bulursanız, keşfedilecek tüm diller dünyası vardır.

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.