Bir programcının kaç programlama dilinde uzman olması bekleniyor? [kapalı]


21

Çoğu programcı tek bir yığın üzerinde uzmanlaşıyor mu, başka şeyler bırakıyor mu, yoksa aynı anda birden fazla dilde mi uzmanlaşıyor? Birden fazla ise, kaç tanesi standart?

Uzman olarak, bir dilin sözdizimini bilmekten daha fazlasını kastediyorum - bir uzman, sürekli kitap aramaktan veya kitap okumak / ders okumak zorunda kalmadan önemsiz programlar yazabilmek için standart kütüphaneleri, araçları, ortamları ve sözdizimini yeterince biliyor.


2
Bu sorunun herhangi bir nesnel (hatta öznel) cevabı olduğunu sanmıyorum. Ne kadar uzmansanız, sizin için o kadar iyidir - daha geniş bir perspektifiniz var. Şunu mu demek istediniz: "Bir programcının kaç tane programlama dili paradigması için ideal olarak uzman olması gerekir?"
talonx, 3'10,

6
Uzman tanımınıza katılmıyorum. Bana göre, kütüphane fonksiyonlarına bakmak zorunda olup olmadığınız, bu dilde deyimsel kod yazıp yazmamaktan çok daha az önemlidir. Bir dilde düşünebiliyorsanız, en azından bir uzman olmaya yakınsınız.
Chinmay Kanchi,

1
Ne anlama geldiklerini bilmek için sözlükteki kelimelerin çoğuna bakmak zorunda kalırsan, bir dilde nasıl düşünürsün?
blueberryfields

1
@blueberryfields: Bir dilde akıcılık sadece kelime haznesi ve temel bilgilerin ötesinde, kelime hazinesi küçük bir kısmıdır. Bu bilgiyle akıllıca bir şey yapamıyorsanız, bir fonksiyonun mevcut olduğunu bilmek iyi değildir. İşleve bakmak, onunla zekice bir şey yapmayı düşünmekten daha kolaydır. Belli bir işlevi nerede arayacağınızı hızlı bir şekilde bilecek kadar iyi bilmeniz yeterli kütüphane bilgisine sahip olduğunu söyleyebilirim. Ondan sonra, kullandıklarınızı tam olarak hatırlayacak ve kullanmadığınız şeyleri belirsiz olarak hatırlayacaksınız.
aaronasterling

2
@blueberryfields: dil / platforma bağlı , biraz bilgi tehlikeli bir şey olabilir . Demek istediğim şudur: eğer bir kişi birçok kütüphane işlevini yürekten bildiğini iddia ederse ve belgeleri okuması gerekmiyorsa, o kişinin tüm dönüş değerlerini, istisna koşullarını ve tuzakları / uyarıları bilmesini beklerdim, Raymond la Raymond Chen gönülden, bir kitap yazıp Microsoft / Google vb. dersleri verebilecek. Kısacası, kişi birçok komik küçük hatalar yaptı.
rwong

Yanıtlar:


33

Birden çok dili tanımanın asıl yararı, onları doğrudan yazmak değildir. Diğer her şey eşit olmakla birlikte, C, Python ve Lisp'i (örneğin) de tanıyan bir C # programcısıyla çalışmayı tercih ederim. Daha fazla dil bilmek daha iyi değildir, farklı seviyelerdeki ve farklı bakış açılarından problemler hakkında düşünmek gerçekten yararlıdır.

Programlama hakkındaki düşüncelerinizi değiştirmeyen bir programlama dili bilmeye değmez. -Alan Perlis

Bir dili daha kapatmak ya da özgeçmişine koymakla ilgili değil; tam olarak yararlanabilmesi için programlayabilmeniz için temelindeki kavramları iyi anlamanız yeterlidir. Bunu, sözdizimi hakkında temel bir anlayışa sahip olmaktan alamazsınız.

Daha doğrudan cevap "bağlıdır".

Daha büyük şirketlerde uzman olmanız beklenir / izin verilir, ancak yukarıda belirttiğim gibi, en sevdiğiniz araçların ötesinde bir şeyleri anlamada hala faydası olduğuna inanıyorum.

Küçük yerlerde, gerçekten bununla kaçamazsınız. Başka bir şey yoksa, genellikle uygulamanızı korumanın yanı sıra uygulamanız da gerekir ve muhtemelen uygulamanızı oluşturmak için yaptığınız gibi günlükleri / verileri durdurma yoluyla çalışmak için aynı dilleri kullanmamalısınız. Sanırım teknik olarak tek bir dili tanımaktan kurtulabilirsiniz , ancak iyi performans gösteren, güçlü bir şekilde yazılmış (veya en azından iddialı) bir yetenek olması, muhtemelen derlenmiş bir dilin ağır kaldırma işlemini yapması ve bakım için bir betik dili kullanması / Kur / komut dosyası görevleri oldukça büyük görünüyor. Kesinlikle, onsuz yapmak istemem.


3
evet,
ufkumu

3
Tüm Inaimathi'ye +1 dedi. Bir programlama dilini bir araç olarak düşünün. Evet, aracımızı çok iyi bilmemiz gerekiyor, ancak yalnızca çekiç kullanmayı bildiğiniz zaman her şey bir çiviye benzeyebilir
Liviu T.

14

Çok ilginç bir sorunuz var:

Herhangi bir programcının belirli bir dilde "uzman" olması gerektiğini düşünmüyorum. İnanıyorum ki, programcılar olarak programlama, algoritmalar tasarlama, net adımlarla düşünme, ancak bir programlama dili sadece öğrendiğiniz bir şeydir.

"İyi" bir programcı, yani, "Daha önce hiç çalışmamıştım" klasiğini geride bırakmadan, kalkınma projelerini 5 iş gününden daha az bir sürede öğrenmelidir. En iyi uygulamaları, araçları ve kütüphaneleri temel olarak 2 yoldan öğrenirsiniz, 1: okuma ve 2: çalışma. Ya kafanı koda çarptın ya da bir sürü kitap okudun.

C # kodunu veya C ++ kodunu veya Java kodunu içermeyen "İyi programcılar sadece kod yazar" öncülüğünü izleyen birkaç yıl içinde, program geliştirmeyi öğrendikten sonra, dil ve teknolojilerin o kadar önemli olmadığını fark edeceksiniz. Elbette, C # etrafında PHP'den daha iyi nasıl dolaşacağınızı bileceksiniz, ancak iyi öğrendiyseniz, gerekirse Python'da bir yol bulursunuz.

Umarım fikirlerim senin gibi!


+1 "iyi programcılar sadece kod yazıyorlar ... dil ve teknolojiler o kadar önemli değil" - çok doğru, yine de bu sonuca varmak büyük bir pozlama gerektiriyor.
Orbling,

Thks, ve doğru anladın: 11 yıl ve sayıyor ... :)
David Conde

3

Bir, ancak bu diğerlerini ihmal edebileceğiniz anlamına gelmez. Neden kullanmadığınızı ya da sınırlamalarınızı bilmediğinizi doğrulamak için yeterince bilginiz olmalıdır, böylece uygun olduğunda yardım isteyebilirsiniz.


3

Muhtemelen kişiliğinize bağlı olduğunu düşünüyorum, bir konunun kuyruğuna ve krannisine kazma konusunda isyan eden insanlar var ve daha geniş şeyler görmeyi seven başkaları da var. Muhtemelen ne tür bir kişilik olduğunuzu bulmanız gerekecek. Biri diğerinin üzerine koymuyorum, her birinin kullanımları var.

Eski olarak, uzman, guru, uzman olacaksınız. İkincisi olarak, daha genel bir kullanım alanı olacak ve çeşitli durumlarda kullanılabilecek ancak bir konuya derin veya uzun sürmeyeceksiniz.




1

Joel'in SO podcast'inde söylediği gibi, birçok dili tanımak ve görev için doğru dili nasıl / ne zaman kullanacağını bilmek daha iyidir. Bir dilde diğerinden daha hızlı yapabileceğiniz şeyler var. Örneğin zorunlu bir dili ve işlevsel bir dili tanımanın iyi olacağını düşünüyorum. Çoğu zaman daha sert veya daha ezoterik bir dil öğrenmek, beyninizi genel olarak daha iyi bir programcı olmak için eğitir.


1

Hiçbiri, herhangi bir dilde uzman olmayacak bazı programcılar olabileceğinden, ancak sahip oldukları farklı ortamlardan hoşlanırlar ve bazıları C # PHP, ASP.Net .Net veya VB.Net veya Java, JavaScript veya Flash gibi bir dizi istemci tarafı komut dosyası dili içerir ve bu, web sayfalarını buraya koymak için kullanılan herhangi bir donanıma girmeden gerçekleşir.

Aynı zamanda, bir düzine dilde veya daha fazla konuda uzman olan bazı programcılar olabilir, çünkü çoğu zaman her dilde bu kadar çok şey üstesinden gelmek için sadık bir şekilde çalışırlar.


1

Birincisi, zaman zaman birkaç dilde yazılmış önemsiz olmayan gerçek dünya programlarını okuyabilmek gerekir. Bir şekilde, programcının uzman olduğu dil ana dili gibidir, içinde düşünürler, ancak başka dilleri öğrenmek ve konuşmak, programcının başka düşünme biçimlerini takdir edebileceğini göstermesi bakımından çok iyidir. Birden fazla dilde anadilleri kadar akıcı düşünebiliyorlarsa, bu harika.


1

Bu iyi bir soru, ama bir standart olduğunu sanmıyorum. Normalde gördüklerime göre, insanlar bir ortamda (windows / linux, mac, solaris) bir üst seviye dilde (C ++, Java, vb.) Tam uzmandır. Kabaca başka bir üst seviye dil biliyorlar ama tam olarak anlamıyorlar. (örneğin, C ++, Java insanları birbirlerini kabaca bilir). Kabaca söylemek gerekirse, bir görevin performansını uzman oldukları dilde ve diğer dilde karşılaştırabilirler. Ve sonra bazı kodlama dillerinde orta derecede. (örneğin, Linux insanları bash biliyor, Windows insanları VBA biliyor, web insanları PHP biliyor)
Benim için önemli olan, dilden çok temel algoritma bilgisidir. Temel bilgileriniz iyiyse, herhangi bir dilde karışmak için daha az şansınız vardır.
Ancak evet, bazen hangi dilin hangi görev için daha iyi olduğunu bilmek faydalı olabilir. örneğin, aşağıdaki kod pascal olarak C'den daha hızlıdır.

strcat (A, "Merhaba"); strcat (A, "WOrld"); strcat (A, "Merhaba!");

Bunun nedeni, Pascal'ın dize uzunluğunu ilk konumda kaydetmesidir ve bu nedenle son konuma atlamak kolaydır. C dizgisinde sonlandırma "\ 0" dır ve bu nedenle strcat işlemi için tüm dizgiyi geçmeniz gerekecektir.


0

Programladığınız ortama bağlıdır. Önceki bir işte, işimin çoğu Perl'deydi; zamanım boyunca bu konuda oldukça yetkin oldum. Şimdi üç dilde eski programları olan ve sözdizimini çok az tanıdığım bir yerde çalışıyorum; Yeni projelerdeki çalışmalarıma ek olarak onları korumam bekleniyor. Artık herhangi bir dilin efendisiyim ama sanırım programlama konusunda daha iyi hissediyorum . Daha soyut düşünmeyi, ilk önce büyük resmi görmeyi ve ardından detayları doldurmak için sözdizimini ve kütüphaneleri aramayı öğrendim.

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.