Geliştiricinin bir dille yıllara dayanan deneyimindeki fark nedir? [kapalı]


9

Başlıkta belirtildiği gibi, verilen dilde yılların deneyiminin geliştiriciler açısından farkı nedir? Örneğin, bir geliştiricinin A dili ile beş yıllık çalışması ve diğer geliştiricinin B dili ile iki yılı ve ardından A dili ile üç yıl çalışması varsa, aralarında algılanabilir bir fark olur mu?

Yanıtlar:


26

"değişir"

Bilgi veya anlayış deneyimini yaşayın.

Programcı 1 çok iyi, hatta bir guru olabilir ya da son 5 yıldır dilin etrafında dolaşan biri olabilir.

Programcı 2, kavramları kullandıkları dilden bağımsız olarak anlayan biri olabilir. Ya da B dilini çok zor bulan ve A'yı umut eden biri daha kolaydır.

Korkunun "Deneyim Efsanesinin Yılları" kodlaması okumaya değer


6
Dedikleri gibi, geliştiricinizin A dili ile beş yıllık deneyimi olabilir veya beş kez tekrarlanan bir yıllık deneyimi olabilir.
Carson63000

1
Gerçek için +1 - En iyi ortalama olduğu ortaya çıkan 8+ yıllık tecrübeye sahip yeni işe alımlarla çalıştım. Tersine, üniversiteden 1 yıl önce bir adam kiraladık ve tüm beklentileri aştı.
Damovisa

4

Değişir.

Bir dile sadık kalan bir arkadaşım var, bu yüzden eğer onu "programcı A" olarak değerlendirdiyseniz, o dilde 1 yıl deneyimi var, beş kez.

Farklı diller farklı şeyler yapmanıza izin verir. Özellikle sevdiğim bir makaleye Paul Graham'ın " Ortalamaları Atmak " deniyor . İçinde insanları lisp öğrenmeye ikna etmeye çalışıyor, ancak aynı zamanda bazı yararlı noktalar da getiriyor:

Programcılar en sevdikleri dillere çok bağlı olurlar ve kimsenin duygularını incitmek istemiyorum, bu yüzden bu noktayı açıklamak için Blub adlı varsayımsal bir dil kullanacağım. Blub soyutluk sürekliliğinin tam ortasına düşer. En güçlü dil değildir, ancak Cobol veya makine dilinden daha güçlüdür.

Ve aslında, varsayımsal Blub programcımız bunların hiçbirini kullanmazdı. Elbette makine dilinde programlama yapmazdı. Derleyiciler bunun için. Ve Cobol'a gelince, kimsenin onunla nasıl bir şey yapabileceğini bilmiyor. Hatta x (Seçtiğiniz Blub özelliği) bile yok.

Varsayımsal Blub programcımız güç sürekliliğine baktığı sürece, aşağıya baktığını biliyor. Blub'dan daha az güçlü diller açıkçası daha az güçlüdür, çünkü alıştığı bazı özellikleri kaçırırlar. Ancak varsayımsal Blub programcımız, güç sürekliliğini arttırarak diğer yöne baktığında, aradığını fark etmiyor. Gördüğü sadece garip diller. Muhtemelen onları Blub'a eşdeğer bir güç olarak düşünür, ancak diğer tüm kıllı şeyler de atılır. Blub onun için yeterince iyi çünkü Blub'u düşünüyor.

Bununla birlikte, güç sürekliliğini daha yüksek dillerden herhangi birini kullanarak bir programcının bakış açısına geçtiğimizde, onun da Blub'a baktığını görüyoruz. Blub'da nasıl bir şey yapabilirsin? Y bile yok.

Genel olarak tavsiyem birden fazla dil öğrenmek ve dillerin güçlü ve zayıf yönlerini öğrenmek.


Birden fazla dil bilmenin önemli olduğunu kabul ediyorum. Diller araç kutumuzdaki araçlardır ve güçlü ve zayıf yönlerinin ne olduğunu bilmek bir iş yapmak için önemlidir. Bir çivi tornavida veya çekiç veya pense ile sürebilirsiniz, ancak biri diğerlerinden daha iyi çalışır. Elbette bir çekiç, bir vidayı çıkarmak veya bir cıvata üzerindeki somunu sıkmak veya gevşetmek için berbattır.
Tin Man

2

Elbette, bir dilde daha uzun yıllara dayanan deneyime sahip olan geliştirici, o dilin temel kütüphanelerini ve kendine özgü ifadelerini daha iyi anlayacaktır. Eğer diller aynı paradigmayı benimsiyorsa (zorunlu ve işlevsel) o dili öğrenmekten başka bir dilde daha fazla sorun yaşamamalıdırlar.

Yeni bir dil seçmek için en büyük zorluğum, C # 'dan Erlang' a geçmeye çalışmaktan geldi, çünkü sadece yeni bir sözdizimini değil, aynı zamanda programlama hakkında da yeni bir düşünce biçimini temsil ediyordu.


5
Geliştiricinin yetkin olduğunu varsaymak.
gbn

2
@gbn: Benim durumumda bu varsayımı yapamayacağınızı kesinlikle garanti ederim :)
Watson

2

İşte beklediğim / umut:

  1. Akıcılık - başlarının üstünden daha fazla kod yazabilmeli ve sözdizimi ararken daha az zaman ayırabilmelidir.
  2. Önceki ve mevcut sürümler arasındaki farkı ve kodun birinden diğerine nasıl taşınacağını öğrenin.
  3. Derleme, dağıtım, test etme ve yükseltme ve düzeltme ekleri oluşturma konusunda daha kapsamlı bir anlayışa sahip olun.
  4. IDE'ye Eklentiler Oluşturun / Dahil Edin ve bunlardan verimlilik elde edin.

2

Sorun dil değil. Birkaç gün içinde tüm bir dili öğrenebilirsiniz. Emilmesi daha uzun süren sözleşmeler, API'lar ve çeşitli üçüncü taraf çerçeveleridir. İnsanlar beş yıl boyunca X istediğinde, dili umursamıyorlar, öğrenme eğrisinin hiçbirini ödemek zorunda kalmamak için bu dilde ve bu dilde problem çözme konusunda çok fazla deneyime sahip birileri istiyorlar.


Tüm bir dili hızlı bir şekilde öğrenebilirsiniz, ancak bilmediğiniz herhangi bir kavram varsa, bu zaman alacaktır. Tüm diller aynı kavramlara sahip değildir.
David Thornley

2

Uzmanlık ve kasıtlı uygulama.

Kasten pratik yapmazsanız, uzmanlık kazanmazsınız. (Hatalarınızı incelemeniz ve düzeltmeniz, zayıf olduğunuz şeyi pratik etmeniz ve size neyi yanlış yaptığınızı söyleyecek bir uzmana sahip olmanız da yardımcı olacaktır.)

Eğer gelişmeye çalışmazsan, sonsuza kadar bir acemi olabilirsin!

On bin saatlik kasıtlı uygulamadan sonra uzmanlık elde edersiniz. (Eğitim / öğretimden elde edilen bu bulgu internetin her yerinde mevcuttur.)

Programcı A kasıtlı olarak pratik yapmıyorsa, asla daha iyi olamazlar.

Programcı B kasıtlı olarak pratik yapmıyorsa, asla daha iyi olamazlar.

Aynı araştırmadan bir başka bulgu: 15000 saatim varsa ve 10000'ünüz varsa ve pratik yapmaya devam edersem ve siz de benden asla daha iyi olmayacaksınız.

İki dil bilmek muhtemelen B'yi daha iyi bir programcı yapar (uygulama kurallarına tabi).


1

Ve onları A dili için kullanıyorsun, sanırım? (Açıkça, B dilinde bir fark olacaktır.)

Kısmen A ve B arasındaki farklılıklara bağlıdır (özellikle ikinci geliştiricinin A ile olan deneyimini kısaltırsak). Eğer oldukça benzer iseler, deneyimde esasen hiçbir fark olmayacaktır. A'nın oldukça farklı kavramları varsa, bunları öğrenmek için üç yıl hala yeterlidir. Çok büyük bir kütüphane ve karmaşık araçlar göz önüne alındığında, üç ila beş yıl arasında bir fark olabilir.

Tabii ki, burada en önemli şey bireydir. İyi bir geliştirici, yeni bir platformu üç yıl içinde iyice öğrenebilir ve bu nedenle bu bir sorun olmamalıdır.


1

Dilin dil ve kavramların kavramlar olduğu konusunda hemfikirim.

Benim sorunum, bu günlerde çok sayıda programcı olması, karmaşık bir IDE olmadan hiç programlayamadıklarıdır. Gerçekten programcı değiller ama gerçekten tasarımcılara benziyorlar.

Kişisel deneyimlerimden, sürükleyici Microsoft geliştirme ortamı tarafından baştan çıkarılan birçok insan olduğunu biliyorum. Bir metin kutusunu ekrana bırakıp sihirbazla özellikleri ayarlayıp verileri veritabanının bir resminden sürüklemeleri yanlış değil, ancak yaptıkları tek şey temel eşitlik testleri ayarlanmışsa gerçekten herhangi bir dilde kodlayıcılar mı?

Bu insanlar asla öğrendikleri Kavramları alamayacak ve başka bir dile uygulayamayacaklar.

İnsanlarla röportaj yaptığımda gelişimlerini nasıl yaptıkları ve hangi çerçeveleri kullandıkları ile daha çok ilgileniyorum. "Bir olay işleyicisini nasıl yazıyorsunuz?", "Verileri DB'ye tam olarak nasıl koyarsınız?", Hatta "Tıkladığımda bu düğmeyi nasıl mor hale getiririm?" Gibi sorular sormayı seviyorum. bu, tasarımcıları hızla ayıklayacak ve programcıları terk edecektir. 3 ya da 4 yılın aslında bir yıl dilimle seçim yapmamın ihtiyacım olan şey için yeterli olduğunu fark ettim.

Başka bir görüş,

Tal


1

"X dilinde / platformunda yılların tecrübesi" büyük ölçüde işe alım patolojisidir ...

Yorumlamaya açıktır ve ilk bakışta göründüğü kadar kullanışlı değildir. Daha önce de söylendiği gibi, Yılların Deneyimi Efsanesi iyi bir okuma.

Ayrıca, en önemlisi, "yılların deneyiminin" kendisinin ölçümü çok yanlış olabilir. Şu anki konserimden bir örnek: ana görevim bir Java web uygulaması geliştirmek ve sürdürmektir. Ancak, bu MFC / C ++ / SQL Server olan bir arka uç çalışır. Sonuç olarak ben de neredeyse günlük olarak C ++ kodu ile ilgileniyorum. AMA - bu C ++ deneyimi nispeten yüzeysel ve bakım odaklı ve gerçekten büyük bileşenleri veya programları MFC / C ++ artık sıfırdan yazmıyorum (önceki rollerde de olsa).

Bu son 5 yılı yine de "5 yıllık C ++ deneyimi" olarak sayabilir miyim? Olabilir. Belki de değil. Belirli bir rolü güvence altına almak için nasıl satmak istediğime bağlı olarak, açıkça yalan söylemeden kolayca üstesinden gelebilirim, ya da gerçekten 5 katı bir "C ++ deneyimi" olmadığını itiraf edebilirim. :) Eminim bol miktarda vaka benzer şekilde bu tür "ölçüm yanlışlığı" sorun açıktır. Deneyimin derinliği, deneyim kalitesini büyük ölçüde bulanıklaştırabilir. Yani "C ++ ile harcanan X miktarı" kendi başına pek bir şey ifade etmiyor.


-1

Evet, Programcı 1'in B dili sözdizimi bilgisi yok .

Programlama kavramları programlama kavramlarıdır. Dil sadece sözdizimidir.


5
oh, çok yanlış ...
Javier

Javier haklı, dil sözdiziminden çok daha fazlası ... deneyimle öğrendiğiniz sözleşmeler, 3. taraf kütüphaneleri, API'ler var.
Daniel S
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.