Geliştiricilerin neden teknolojiler ve metodolojilerden haberdar olmaları gerekiyor? [kapalı]


28

Web geliştirici, html5 ve css3'teki güncellemeler ve yeni js kütüphaneleri, TDD, DDD ve BDD gibi yazılım metodolojileri gibi konulardaki gelişmelere her zaman en son teknolojiyi takip etmeleri konusunda tavsiyede bulunulur.

Soru neden ? Neden sürekli kendimizi güncellememiz gerekiyor? Bildiklerimize sadık kalamayız ve onunla daha iyi olamaz mıyız?


16
Yazılım geliştirmede, her ikisini de yapmaya zorluyor: bazı teknolojileri derinlemesine tanıyın ve sürekli değişen yeni teknolojilere ayak uydurun. Bu, kısmen iyi geliştiriciler bulmak için bu kadar zor olmasının nedenidir.
joshin4colours

2
Şu ana kadarki yakın oyları ele almak için bence adil bir soru ve sitede tam bir kopya bulamıyorum. Lütfen, cevapları temizleyebilmemiz için zayıf cevaplara göz kulak olmaya çalışın.
maple_shaft

4
Bu sınıfların her ikisinin de pratikte ne anlama geldiğine bakılmaksızın, bir sınıf olarak programcıların "web teknolojisindeki en son gelişmelerle" neden "güncel olmaları" gerektiğini anlamadım. Meraklı bir zihin ve sürekli öğrenme, herhangi bir meslekte kişisel gelişim için kesinlikle kritiktir, ancak "web teknolojisi" ni kabul eden yanlış ikilem, kişisel gelişim için tek eksendir, bunu zevklerim için bir soru yüklüyor. Yüksek oylamada verilen cevaplara eleştirel gözle bakıldığında - bunlardan herhangi biri “oyunda kalmaya” teşvik edici ve motive edici sloganlar önermekten başka bir soruyu cevaplıyor mu?
saat

1
@bmike: Seninle aynı fikirdeyim: tabii ki meraklı bir zihin her zaman yeni şeyler öğrenmek isteyecektir. Bu durumda, yeni şeyler bilmediğiniz bir şey anlamına gelir; bu, 40 yıl veya daha uzun süredir devam eden ilginç bir programlama dili olabilir (örn. Lisp). Endüstri bizi en son güncellemeleri ilginç ve dikkate almaya itiyor, varsayılan olarak daha etkili. Asıl noktam: İhtiyacınız olmayan bir teknolojiyi öğrenmek sadece yeni olduğu için zaman kaybı.
Giorgio

1
@RobertHarvey Soru "Nasıl?" Diye soruyor gibi değil. ya da ne?" NC olacağı gibi. NEDEN soruyor ve ben şahsen bunun alakalı ve cevaplanabilir olduğunu hissediyoruz.
maple_shaft

Yanıtlar:


42

Yeni teknolojilerin bir nedeni var. Genellikle bu sebep, belirli bir görevi yerine getirmede daha verimli veya güçlü olmalarıdır.

Eski sistemler uğruna eski teknolojiye bağlı kalmanın hala değeri var, ama sonunda hayatlarının sonuna geldiklerinde oyunun arkasında olacaksın.

Sürekli yeni teknolojiler öğrenmek, sizi ayak parmaklarınızda tutar ve eski teknolojilerde ve hatta bu tarz işlerde farklı yaklaşımlara gözlerinizi açar.


3
+1: yeni teknolojilerin öğrenilmesi , bu teknolojiyi hiçbir zaman doğrudan uygulamamış olsanız bile , genellikle yararlıdır : Sağladığı yeni görüşler ve bakış açıları kesinlikle "eski" teknoloji kullanılarak uygulanabilir.
Joachim Sauer

7
Öte yandan, her yeni teknolojiye atlamak da üretken olabilir, çünkü birçoğu yüzeyleri kadar hızlı kaybolur.
Gordon Bell,

@GordonBell - Doğru ... Başka biri için konuşamam, ancak suları genellikle yeni teknolojilerle test etmiyorum, en azından 'ana akım' olma işaretleri ya da potansiyellerini ortaya koyuyorlar. eğitime ve bir kullanıcı tabanına vb. yardım eden belgeler
Anonim,

Akademi'deki ihtiyaçları karşılamak için sık sık ortaya çıkıyorlar, ancak gerçek dünyada değil. Tezini bir şey hakkında yazmalısın .
dbracey

@dbracey: Doğru ve yirmi yıl sonra bazı büyük şirketler, araştırmacıların olgun teknolojide geliştiği ve yeni teknoloji olarak satmaya başladığı bu tezi bulabilir .
Giorgio,

27

Şanslı olsun tek bir teknoloji yığını üzerinde bir kariyer inşa etmek kesinlikle mümkün olsa da 1 , bu teknoloji kazançlı işler zaman süresinde bir defadan fazla değişecek ki yakın bir kesinlik. Bildiğiniz konuda daha iyi olabilirsiniz (ve edinmelisiniz), ancak zamanın ilerisinde yeni şeyler öğrenmek, bir sonraki teknoloji kayması endüstrinin köşesine geldiğinde öğrenme eğrisini azaltmanıza yardımcı olacaktır.

Yeni şeyler çok sık yeni bir dil öğrenmek, geçerli dili hakkında daha fazla şeyler öğrenmesine yardımcı olduğu aynı şekilde, zaten farklı bir bakış açısıyla biliyoruz şeyleri görmek yardımcı öğrenme: Daha az belirgin tarafı da, buna Orada 2 .

Son olarak, yeni şeyler öğrenmenin saf bir eğlence değeri göz ardı edilmemelidir: Bana göre, TV izlerini izlemek daha iyidir.


1 Örneğin, 1965’de kariyerinizin başlangıcında PL / I üzerinden COBOL seçerek.

2 Bu, doğal ve programlama dilleri için aynı şekilde çalışır.


1
+1 @dasblinkenlight Bu açıklamayı çok seviyorum: "... zamanından önce yeni şeyler öğrenmek, bir sonraki teknoloji kayması endüstrinin köşesine geldiğinde öğrenme eğrisini azaltmana yardımcı olacak." Bu yüzden şimdi Opa'yı öğreniyorum
Anthony

12

Bildiklerimize sadık kalamayız ve onunla daha iyi olamaz mıyız?

Sen can , ama asla yeni bir şey öğrenmek isteyen tuzağına düşmek gerçekten çok kolay. İş beklentileriniz azalır, takım arkadaşlarınız sizinle çalışmak istemekten vazgeçer çünkü siz “tamamen temasta olan o programcısınız”.

Çoğunlukla dengeyi korumalısın. Her zaman yeni olan her şeyi öğrenmeye çalışmak, bir tutam tamirci olarak algılanan birçok şeyde fakir olmaya yol açacaktır. Birkaç şeyi iyi öğrenin ve etkili bir şekilde kullanamasanız bile en azından neyin var olduğunu bilmeye odaklanın.


2
Hiçbir şey beni, işte, 10 yıl önce yaptığı gibi kod yazan bir programcı ile bir takıma sıkışmaktan daha fazla rahatsız edemez. Çerçeveler gelişti. Araçlar gelişti. İşini kolaylaştırmak istemiyor musun? El aleti kullanan marangozları gün boyu elektrikli el aletlerine sahip olduklarında tüm gün ve el testereleri kullanarak görmüyorsunuz. Onlar gelişti. Her meslekte olduğu gibi ihtiyaçları çözmek için yeni araçlar icat edilir. Yeni aracı kullanmamak ve bir şeyi eski yoldan koparmaya çalışmak, genellikle inşa edilenlerin kalitesine zarar verir. Kodda veya tahtada olsun.
CaffGeek

2
“Çerçeveler gelişti. Araçlar gelişti. İşinizi kolaylaştırmak istemez misiniz?”: Belli problemleri çözmenin sonsuz yolları vardır ve bazen yeni bir araç veya dil daha iyi değil, sadece eskisine eşdeğerdir. Ama eskisiyle çok daha fazla deneyime sahipsin, böylece onunla daha üretken olabilirsin. YENİ == DAHA İYİ olduğunu çok sık varsayıyoruz. Bunun yerine, bu ifadeye daima meydan okumalıyız.
Giorgio

2
@ Giorgio - 'Bir sonraki büyük şeyin' sağlıklı bir şüpheciliği olması bir şey. Gerçek ilerleme sizi geçtikçe kafanızı kuma sokmak başka bir şey. Daha sonra yol çok yaygın.
Telastyn

4
@Telastyn: Her iki tutum için% 50 tayin edeceğim: bazen yeni bir teknolojinin sadece yeni olduğu için itildiği izlenimini edindim. Ve bu, işleri yapmanın sadece alternatif (daha iyi değil) bir yoludur. Bu yüzden ayları yeni teknolojilerle yetkin olmak için harcamak zorundayız ve ondan sonra eskisi gibi eskisi kadar üretken olduk. Ama elbette, kafanızı kuma sokmanın da yanlış olduğu ve birileri daima yeni şeylere dikkat etmesi gerektiği konusunda haklısınız.
Giorgio,

@Giorgio, yeni yolun daha iyi olup olmadığını, nasıl bir şey bilmiyor ya da denediğini bilmiyor musun?
CaffGeek

7

Muhtemelen bir web geliştiricisi olduğunuzdan ve bu alandaki teknolojilerin dillerin, platformların, araçların ve popülerliklerin yükselip düşen metodolojileri konusunda oldukça değişken olması nedeniyle. ÇOK çok yüksek bir alan. Altındaki katmanlardan herhangi biri değiştirilirse, bu durum üstteki konumunu değiştirir. Ve açıkçası, yeni (ish). Yeni alanların yenilik için çok fazla yeri var.

Şahsen ben gömülü cihazlar üzerinde çalışıyorum, C öğrendim ve bu benim için oldukça iyi çalıştı.

Fakat hala düzenli olarak yeni şeyler öğreniyorum. Prizler, SQL kütüphaneleri, ncurses, C'deki nesneler Ve metodolojiler gevşek bir şekilde teknolojilerle birleştirilir. Ünite testi okulumda korkunç bir şekilde öğretildi ve şimdi kafamı etrafına sardım. Geçen gün bağımlılık enjeksiyonunu duymuştum ve tam olarak böyle bir ünite bir konsol fonksiyon testinde sorunumu çözdüğümü fark ettim.

Çoğu programcı her gün aynı şeyi yapan fabrika çalışanları değildir. Bu işler otomatik hale getirilebilir (ve gerekir). Başka bir baloncuk sıralama uygulaması için kimse para ödemiyor. Yapıldı.


+1: İyi cevap. Kişi ihtiyaç duyduğu ya da yararlı bulduğu teknolojileri öğrenmelidir. Yeni teknolojiler önemlidir ve neler olup bittiğini bilmek etrafa bakmalıdır. Ancak YENİ, öğrendiklerimizi seçmenin tek kriteri olmamalıdır. Ayrıca, eğer C programlama ihtiyaçlarınızı karşılarsa, uzun zamandır etrafta olsanız bile birlikte çalışmanın iyi bir dil olabileceğine katılıyorum.
Giorgio

Bu aynı zamanda, yeni teknolojilerin çoğu zaman mevcut eski teknolojilerin üzerinde daha fazla katman olduğuna işaret etmektedir. VM'niz ne uyguladı? C veya C ++.
dbracey

Bağımlılık enjeksiyonu çok eski bir fikir için yeni bir isimdir.
MarkJ

6

Orada olanların çoğunu görmezden gelebileceğinizi söyleyebilirim . Bunların çoğu yutturmaca ve modası geçmiş ve eski teknoloji için yeni isimler. Asıl gelişmeler , eski zamanlayıcılar yenileri anlamak için eskileri anlamanız gerektiğini söylese bile, eskilerine gerçekten bağlı olmayan yeni olanlar bile yakında değiştirilecektir . 10 yıl boyunca tarlayı terk ettiyseniz, geri döndüğünüzde sadece 2 yıl geride kalacaksınız.

Bununla birlikte, gerçek yeni teknolojiyi bulmak zor olabilir. OOP'u kaçırmadığıma sevindim, ama ilk başta bir avuç dolusu kelimeye benziyordu. Ve herkes 3 yıl içinde unutmuş olsa bile, bir işi yapmak için şu andaki teknolojiyi kullanmanız gerekir.

Yazılım teknolojisi yutturmaca ve karışıklık, günden güne başa çıkmak zorunda olduğumuz değişikliği çarpar. Ama elektronik teknolojisi aslında bir hızla ilerleyen ve onunla birlikte yazılım bastırıyor. Orada bir sürü gerçek değişim var. Hala araba kullanıyoruz, uçakları uçuruyoruz ve 1965'te kullandığımızlarla aynı araçla uzaya gidiyoruz. Fakat 1995'ten itibaren elektronik donanım umutsuzca eskimiş durumda.

Bu nedenle sorunuzun en derin cevabı, elektrikle çalışan bilim adamlarının ve mühendislerin çok meşguldüğü. Donanımdan yararlanmak için yazılımın gelişmesi gerekir. Daha kötüsü (ya da daha iyisi?), Yazılımın donanım tarafından geride bırakıldığını düşünüyorum. Eğer donanım çalışanları yarın emekli olmuşlarsa, yazılım en azından önümüzdeki yirmi yıl boyunca öfkeyle gelişir.

Bir iş yapmak için yeni teknolojiye ihtiyacınız varsa, öğrenmeniz gerekir. Bundan 20 yıl sonra burada olacak yeni bir teknoloji şansı varsa, ona göz kulak olmanız gerekir - ve yaşayan her biri için ölen 20 teknisyeni izlerseniz, oldukça başarılısınız demektir. Ve aslında her şeyi görmezden gelebilirsiniz. Bunun dışında, 2020'lerin tüm yazılımlarının altında kalacak bir bariz duman var.


+1: Hype konusunda seninle aynı fikirdeyim. Çok fazla yenilik (maalesef) yutturmaca ve zaman harcadığımız yeni teknolojileri çok dikkatli seçmeliyiz. Şu anın ipuçlarından biri de lambdalardır (ki BTW, çok yararlı bir kavram olarak görüyorum): Her modern dilin kendilerine sahip olması gerekir (C #, C ++, Java?) Aksi halde artık hiç hoş değil! Ancak lambdalar yaklaşık 50 yıldır var ve bu diller ilk başta tasarlanırken kimse umursamıyordu. Şimdi sadece son yutturmaca takip etmek için bir düşünce olarak eklenmektedir. ;-)
Giorgio

@ Giorgio: Umarım Java değildir. Lambdalar iyi bir örnektir (bazılarından daha basit ve daha az sıkıntılı olsalar da). Onları C # 'da kullanıyorum ve onları seviyorum, ama ne olduklarını bilmediğim için pişman olacak tek kişiye, bunlarla dolu olan kodu düzeltmeleri söylenen kişidir.
RalphChapin,

"Java değil umarım" ile ne demek istiyorsun? Onlar tanıtılmayacak mı? Lambdaları severim ve kullanırım (Scheme'de, Haskell'de): oldukça kolay bir konsepttir. Fakat C #, C ++ ve Java bana bir şekilde dilin geri kalanıyla uyuşmayan geç bir ek gibi görünüyorlar. Mucitlerin Lisp bilmediğinden şüpheliyim ama lambdaların bu dillere ait olmadığına karar verdiler. Şimdi bir zorunluluk haline geldi. Böylece, lambdaları çok severim, ama C #, C ++ ve Java'da yeni derleyiciler, kitaplar vb. Satmak için kullanılan bir yutturmaca gibi görünüyorlar.
Giorgio

1
@ Giorgio: Java, minimalist bir dildir (ya da idi). Başkasının ne yazdığını anlamak için çok şey bilmeniz gerekmez (örneğin, lambdas). Bunu sevdim. C #, maksimalist bir dildir. Her yeni hat daha önce hiç görmediğiniz bir teknolojiyi sunabilir. Okumak için daha az, yazmak için bir patlama. Her ikisi de lambda'ya ihtiyaç duymaz, ancak C # da Java'da olduğundan daha fazla yardım eder, ancak sözdizimi nedeniyle. Ama havalılar ve birkaç satır kod kurtarıyorlar. Başka bir deyişle, haklısın. Ama bu C #, Java değil . Oysa.
RalphChapin

1
@conclast: Bir programcı olarak 20 yıllık deneyime sahip olduğum için kendimi bir acemi olarak görmüyorum. Yine de, Java'nın nispeten basit ve temiz bir dil olması (beni) daha üretken kılıyor (daha az çabayla daha karmaşık yazılımlar geliştirebilirim). Sanırım basit bir dilin yeni başlayanlar için bir yanılgı olduğu kanısındayım: basit bir dil, herhangi bir deneyime sahip herhangi bir programcının gelişimin belirli yönlerine daha fazla odaklanmasına izin verecek (örneğin karmaşık bir mimariyi idare etme, yeniden düzenleme). diğer yönler (örneğin hafıza yönetimi, şifreli sözdizimi, vb.).
Giorgio

3

IMHO, bir denge bulmalısın. Bu beceri ve tecrübe gerektirir.

Uzmanlaştığınız bir veya iki dili bulmanız, bu dilde gelişen çerçeve / stil değişikliklerinde güncel kalmak ve becerilerinizi en üst düzeyde tutmak zorundasınız.

Ancak bu dilin nasıl geliştiğini de görmeniz ve yazılım geliştirmenin dinamiklerini bir bütün olarak anlamanız gerekir. Java 10 yıl civarında olacak mı, Phyton orada kalacak mı, PHP .NET ve Mono ile mi değiştirilecek?

Bunlar büyük ölçekli, stratejik sorular, cevapları kendi alanınızda oldukça değerli bir profesyonel olmanıza izin verirken, bazılarında sağlam bir yedekleme (1 veya 2 dil) ve ana platformunuzdan ne zaman geçeceğinizi bilmenizdir.

IMHO, her gün geliştirilmekte olan tüm modern dilleri takip etmek, tüm sektör için en büyük sorunlardan biri. Neredeyse hiç profesyonelleri olmayan tonlarca gelişmemiş, çıkmaz dillere sahibiz ve bunlarla zaman geçiren insanlar nadiren 1 dilde gerçek profesyoneller. Çoğunlukla, tüm dillerin karışımı olan ve doğru hiçbir şey yapmayan bir kod yazarlar. Aynı zamanda, bu standart dışı dillerde harcanan insan-yıl miktarı, birkaç temel dil çerçevesini ve özelliklerini geliştirmek için harcanabilir.


2

Diğerlerinin de belirttiği gibi, birçok yeni teknoloji yeni ihtiyaçları ele almak için ortaya çıkar ve bu nedenle belirli problemleri çözmeyi kolaylaştırır. Bu nedenle güncel kalmalı ve en azından alanınızda neler olduğunu bilmeli ve hangi yeni teknolojilerin sizin için uygun olduğunu anlamalısınız.

Öte yandan, bazı yeniliklerde bazen yutturucu bir etken olduğunu düşünüyorum: Bazı fikirler aşırı derecede eski ama sadece son yıllarda ana akım olmaya zorlanıyorlar. Bazen yeni bir programlama dilinin (veya bunun yeni bir versiyonunun) sadece "yeni daha iyi" olduğu için zorlandığını ve yeni bir teknolojinin yeni kitaplar, yeni programlama araçları, yeni derleyiciler, yeni programlama kursları veya başka bir deyişle, gelir.

Böylece, daha önce kullandığınız teknolojiyle gerçek bir avantaj görmeden, yeni bir teknoloji öğrenmek zorunda kalabilirsiniz, aksi halde yetenekleriniz eski gözüktüğü için piyasadan çıkma riski alırsınız . Yeni teknolojilerin gelişimini takip etmek ve hangilerinin sizi daha üretken hale getirebileceğini ve hangilerinin CV'nizin daha iyi görünmesini sağlamak için uygun olduğunu anlamaya çalışmak size kalmıştır.

Alt satır: Yeni veya eski olmasına bakılmaksızın, gerçekten yararlı bulduklarınızı öğrenmeye çalışmanız gerektiğini düşünüyorum.


2

Çünkü "bildiklerinize sadık kalmak", "bu konuda daha iyi olmamak" anlamına gelir. Her yeni uygulama ve çerçeveyi benimsemek zorunda değilsiniz, ancak en azından popüler olanlar hakkında bilgilendirilmiş bir fikriniz olmalı. Web geliştirmede sadece soruyu sormak görüşmeci için korkunç görünecektir. Web dev, 2000'den sonra yeni şeyler öğrenmeyi bırakmak isteyenlerin kariyer gruplarıyla doludur ve bu, olması gerektiği gibi, çünkü geri kalanımız için daha çok iş yapıyorlar. Eğer ilgini çekmiyorsa, şeytan uzak dur. Yeni şeyler öğrendiğiniz kısım iş gibi geliyorsa, bu kötü bir $ / saat oranıdır.


Çünkü "bildiklerinize bağlı kalmak", "daha iyi elde edemediğiniz" bir başarısızlığı ifade eder: Bunu okumanın bir yolu, aynı teknolojiye daha uzun süre dayanarak daha derin bir bilgi edinmenizi sağlarken, bir teknolojiden atlamaktır. sonraki iki ya da üç yılda bir, yalnızca yüzeysel bilgiye sahip olmanıza izin verecektir, yani hiçbir zaman bunlara asla aşina olamayacaksınız.
Giorgio

Ben biraz dallamamı ve diğer dillerin gerçekte nasıl çalıştığını veya şu anki en iyi uygulama kavramlarını göz önünde bulundurduğumu ve insanların gerçekte ne yaptığını araştırdıklarını bir bakış açısıyla açıklamamı anladıysam, ben de JavaScript'i anlayamazdım. çerçevelerinin ve kütüphanelerinin başlığı. Yeni fikirlere düzenli olarak maruz kalmadan, makul bir oranda bir geliştirici olarak geliştirmenin gerçekten mümkün olduğunu sanmıyorum.
Erik,

Reppen: Bu konuda tamamen size katılıyorum.
Giorgio
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.