Yeni diller öğrenilmeli mi, yoksa yalnızca zaten bildiğiniz dillere mi odaklanmalı ve bu konuda bilginizi arttırmalı mı? [kapalı]


22

Hangi yol daha faydalı ve üretken?


1
Bu iş ve proje türüne bağlı değil mi? Eğer büyük bir şirket için çalışıyorsanız, muhtemelen serbest bir seçeneğiniz varsa, teknolojilerinizi çok sık değiştirmiyorsunuzdur.
Chris

@Chris: Öneri, "Diller ve Çerçeveler", geliştiricilerin çoğu artık sadece bir komut satırı derleyicisi ve bir metin editörü ile çalışmaz, ancak kütüphaneler, IDE, BD,
Thrid

1
Yukarı-oy sayımı bakılırsa, bu soru olan birçok görüşüne göre yapıcı. Bence Mark Trapp aslında soruları kapatmak için yazılmış bir bilgisayar programı.
T. Webster,

Yanıtlar:


18

Bence ikisine de ihtiyacın var. Temel yetkinliklerinize odaklanmanız ve onları daha iyi anlayabilmeniz gerekir, ancak aynı zamanda dışarıya bakmak ve dışarıda başka neler olduğunu görmek de faydalıdır. Birini genel olarak daha iyi bir geliştirici yapmak için diğer yaklaşımlara ve diğer dillere maruz kalmak çok önemlidir. Bir kedinin olduğu gibi cilt açmanın birçok yolu vardır ve mümkün olduğunca çoğunu bilmek sizi belirli bir görev için doğru aracı seçmede daha iyi bir psikopat yapacaktır .

Bu yüzden zamanınızın çoğunu seçtiğiniz yeterlilikte daha iyi hale getirmek için harcar ve zamanınızın bir kısmını yeni bir şeyler öğrenmek için harcarsınız.


4
+1 "Çekiç" inizi nasıl kullanacağınızı iyi bildiğiniz için, aynı zamanda "tornavida", "testereler" ve "yapışkan zımba" gibi şeylerin de olduğunu bilmek için.
Ryan Hayes

1
Ve çoğu zaman yeni bir dil öğrenmek sizi bir tasarım düzenine ya da kendi dillerinizi kullanmayı hiç düşünmemiş olduğunuz yararlı bir şeye maruz bırakabilir.
AttackHobo

8

Birisi "Programlama hakkındaki düşüncelerinizi değiştirmeyen bir dil öğrenmeye değmez" dedi.

Öyleyse, Java'yı biliyorsanız, C # (veya tam tersi) öğrenmede çok az kazanç olur. Pragmatik nedenlerden ötürü olmasa da (örneğin, bir sorunu çözmek için buna ihtiyacınız var), Paradigma başına bir dile bağlı kalmanızı öneririm ve zamanlamanız hala yeterince dolu;).

Öte yandan uzmanlaşmak benim deneyimimde çoğunlukla “sahada”, yani bir proje üzerinde çalışırken, doğal olarak gerçekleşiyor.


1
C #, Java geliştiricilerine ilginç yeni özellikler sunar. Linq ve lambda ifadeleri gözlerini yeni bir dünyaya açabilir.
Carra

Aslında, C # programının piyasaya sürülmesinin daha kolay olduğunu söyleyebilirim (en azından benim için), sonra da bir Java programını piyasaya sürdüm. Böylece, bu anlamda gözlerim açılmış, bazı eksikliklerden kaçınarak Java kolaylıklarına sahip olacağım. Dil alev savaşları ne olursa olsun, bunun iyi bir nokta olduğunu söyleyebilirim.
riwalk

+1 .NET'te başladım ve Objective C ve JavaScript ile uğraşan kardeşlerimden gerçekten çok şey öğrendim.
Trevor,

@Carra: Bunun farkında değildim (her ikisiyle ilgili son derin deneyimlerim, Java 1.5'in mevcut olduğu zamandı). Farklılık, deneyiminize göre, her ikisini de öğrenme önerisini (“akademik” bir bakış açısıyla) garanti edecek kadar farklı kılacak kadar büyüdü mü?
keppla

Muhtemelen hala bir tane ve işlevsel bir dil öğrenmek için daha iyisin. Bu yüzden genel olarak sana katılıyorum.
Carra

3

Her iki tarafta da pek çok iyi tartışma var. Yıllar önce, bu ana soruyu bana sunmuştum ... ana dilime odaklan ve "uzman" olmaya çalış. VEYA yeni bir dil seçip pazarlanabilirliğimi genişlet. Tek bir dile konsantre olmayı seçtim.

Gerçekten yanlış bir cevap olmayacak. Her ikisinin de yararları var, gerçekten hangisinin sizin için daha uygun olduğunu ve kariyerinizin nereye gitmek istediğini kaybedecek.


2

Yeni dilleri öğrenmek çoğunlukla yeni kavramlar edinmek ve programlama ile verimliliğinizi artırmak için bir araçtır. Programlamayı kendi başına öğrenmek, yeni bir dilin öğrenilmesinden programlanmasına kadar çok farklıdır.

Programlarınızı daha iyi hale getirmeye konsantre olmalısınız (ve bunu ölçmek için pek çok ölçüt var; çoğu öznel; önemli değil, ölçütleri seçip zaman içinde inceltiniz, eğitim için kullanmalısınız).

Bunu söyledikten sonra, Pythoneski listenizden (örneğin, C've diğerleri gibi) ' yeni 'dilleri ( örneğin) öğrenmek, daha verimli düşünmenize ve daha iyi yapılması gereken temel kavramlara odaklanmanıza yardımcı olacaktır. Örneği daha ileri götürürseniz, hemen görünmeyebilir, ancak CPython'da düşündüğünüz için programlamanızın daha iyi olduğunu görebilirsiniz. İçin psudo kodu yerine Python yazmaya bile başlayabilirsiniz C. Şimdi, bu çok daha okunaklı ve doğrulanabilir bir psudo kodudur.

Bu da ana soruyu özetlememize neden oluyor:
Evet, zaten bildiğiniz dillere odaklanmalı ve onlar için hâlâ kullanımda oldukları sürece bilgilerinizi arttırmalısınız. Ayrıca , beyninize programlama ihtiyaçlarınız için düşünmek (belki de daha hızlı) çözümler için daha yeni araçlar sağlamak için daha yeni dillerle de uğraşmalısınız.


1

Bir programlama çerçevesine (ve ilgili dile) hükmedin ve başka, tercihen farklı bir "etki alanı" için biraz boş zaman bırakın. Örnek: C ++ istemci-sunucu, Web üzerinde Ruby


1

Yeni Bir Dil Öğrenmek

Bu dili öğrenmek istediğiniz amaca bağlıdır. Dili öğreniyorsanız, çünkü farklı bir paradigma kullanıyor veya belirli bir sorun alanı için uygun. Bununla birlikte, zaten bildiğiniz bir dil ile aynı olan bir dil ise ve yapmayı planladığınız şey, mevcut kodunuzun tamamını yeni bir dilde yeniden yazmaksa, muhtemelen o kadar değer yoktur (örneğin, bir python webapp'ı yeniden yazmak yakut) içinde.

Mevcut Dilde Daha Derin Bilgi

Eğer zaten bir dilde programlama yapmaktan çok hoşlanıyorsanız, tüm deyimlerini biliyorsanız ve her bir kütüphane çağrısının dokümantasyonuna bakmak zorunda kalmadan program yazabilirsiniz, muhtemelen öğrenmek için çok fazla bir şey yoktur. Öte yandan, dil hakkındaki bilginiz o kadar derin değilse, daha fazla öğrenmenin bir değeri olabilir. X dili için eski veya ikinci kampta olup olmadığınızı ölçmenin bazı iyi yolları

  1. X dilinde kaç program yazdınız?
  2. Stack Overflow'a devam edip X etiketli sorulara bakarsanız, bunlardan kaçının cevap vermekte rahat hissedersiniz?
  3. X dili ile ilgili yardım almak için insanlar size geliyor mu?

Bu sorulara verdiğiniz cevaplar "çok", "çoğu" ve "evet, sinir bozucu" çizgileri boyunca yer alıyorsa, diline hakim olduğunuzu ve bir şeye devam etmeniz gerektiğini gösteren iyi bir göstergedir. yeni.


0

Eğer zaten bildiğiniz dil konusunda yeterince iyiyseniz, biraz serinlemek için çok detaylı, özel püf noktaları öğrenmek iyi bir şey değil ... tamamen zaman kaybı olacak. Ancak bir dilden oldukça rahatsız olduğunuzda, öneri önce o dilin ustasıdır.

Dillerin yanı sıra, çerçeveler, kalıplar vardır ... bir dil öğrenmek zorunda olduğunuz bir çerçeveyi öğrenmek, bu yüzden onları öğrenmek çok benzer diller için eğlenceli bir şeyler getirmekten başka bir şey yapmaz.

Benim kişisel görüşüm, her zaman daha hızlı, daha güvenli, daha güçlü yazılımlar oluşturmak, daha fazla platformlar için zamanınızı kısaltmak ve zamanınızı kısaltmak için yeteneklerinizi geliştirmelisiniz. Bunun için yeni bir dil, yeni bir çerçeve, yeni bir IDE öğrenmeniz gerekebilir. (bu, bir dil kadar önemlidir) ve yalnızca bu amaç için olduğunuzda yatırımınıza değer.

En azından bildiğiniz dil sayısını artırmak için yeni bir dil öğrenmeyin.

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.