Geliştirici hayatımızdaki birçok proje ve iş bu kalıbı takip eder:
I — Heyecan aşaması,
II — Öğrenme aşaması,
III — Rahatlık aşaması,
IV — “Devam etme zamanı” aşaması.
Aşama IV'teyseniz ve projenizden / pozisyonunuzdan / işinizden / şirketinizden ayrılma zamanının geldiğini düşünüyorsanız, aşağıdakilerin tümü size yöneliktir.
Birkaç ay önce önceki işimde IV. aşamadaydım, iş değiştirdim ve şimdi Doctolib'de çalışıyorum. Hikayemi sıra dışı kılan şey, bu süreçte hayatları değiştirmiş olmam.
10 yıldır C++ geliştiricisiyim, birçok C++ çevrelerinde uzman olarak kabul edilen C++ topluluğuyla çok ilgiliyim. O yıllarda sadece uygulama geliştirme alanında çalıştım. Bu, web geliştirmenin aksine saf yazılım geliştirme anlamına gelir.
Şimdi Doctolib'de bir web geliştiricisiyim, yani HTML ve CSS ile birlikte React bileşenleri ve Javascript, Ruby on Rails, PostgreSQL ve Redis ile HTTP'yi arka uca gönderen bir ön uç üzerinde çalışıyorum. C++ geliştiricisiyken bunların hiçbirini bilmiyordum.
Bu, teknoloji açısından, yeni bir hayat.
Bu kariyer hamlesinden öğrendiğim şey, değişen teknik ortamların programlama becerilerinde şimdiye kadar gördüğüm en verimli destek olduğuydu.
Daha doğrusu, bir dil değişikliği sizi kısa bir süre için daha az üretken hale getirir, çünkü buna alışmanız gerekir. Önceki dilinize takılıp kalmış olmanızdan daha az üretken olduğunuz bir “Adaptasyon” aşaması vardır.
“Uyum” aşaması öğrenmede çok yoğundur. Sadece işte görünerek bir şeyler öğreniyorsunuz ve ardından becerileriniz çok hızlı gelişiyor.
Bu artış, yalnızca yeni bir proje, yeni şirket veya yeni insanlarla değil, farklı bir programlama diline sahip bir ortamda çalışırken gerçekleşir.
Bunlar aynı zamanda bir geliştiricinin büyümesini sağlar, ancak işte yeni bir dil ve ustalaştığınız dillerden farklı bir dil seçmek size benzersiz avantajlar sağlar.
Programlama becerilerinizi geliştiren değişen dillerin size neler getirdiğini ayrıntılı olarak açıklayacağım. Ama önce, yaygın bir yanılgıyı açıklığa kavuşturalım: Farklı bir dilde yeni bir işe girdiğinizde, başa dönmezsiniz.
Yeni bir iş ararken, araştırmamı önce C++ tekliflerine odakladım. Yıllar boyunca C++'ta uzmanlaşmak için harcadığım zamanı göz önünde bulundurursak, bu bilgiyi bir kenara atmanın ve yeni bir dilde küçük bir geliştirici olarak her şeye yeniden başlamanın utanç verici olacağını düşündüm.
Ancak bu yanlış bir algıdır ve işe alım uzmanlarımız, özellikle Avrupa'daki yazılım mühendislerinin zihninde genellikle bu yanlış kanıyı görürler:
Bu bir yanılgı çünkü kod yazarken dile bağlı olmayan çok sayıda şey var.
Örneğin, C++ yazarken, Ruby veya JS yazarken ile aynı sorulara sahip olursunuz:
Bunu ifade etmenin başka bir yolu da deneyimli bir geliştiricinin kodda ne söylemek istediğini bilmesidir . Yeni dilde öğrenilmesi gereken geri kalan kısım, onu nasıl ifade edeceğinizdir . Ve bu bir sürü yeni bilgi - ve eğlenceli.
Bir başka ilginç olgu da, programlama dillerinin konuşulan diller gibidir, çünkü ne kadar çok dil bilirseniz yenisini o kadar hızlı öğrenirsiniz. Bu, ilk programlama dilinizi öğrenmenin zor olabileceği, ancak gelecekteki dilinizin giderek daha kolay hale geleceği anlamına gelir.
Yeni bir dille çalışmak sadece bilginizi artırmaz. Size Büyük Programlama Şeması hakkında yeni bir bakış açısı sunar.
Bu, belirli bir dilde bildiklerinizin diğer dillerde nasıl kod yazdığınızı geliştirdiği anlamına gelir.
Kişisel deneyimime dayanarak belirli örnekler vereyim. Şimdiye kadarki dil aralığımı özetlemek için şunları elde etme fırsatım oldu:
“Programcı mutluluğu için optimize edilmiş” Ruby ve “daha büyük gülümseme ilkesi” ile tasarlanan Rails ile çalışmak çok keyifli ve bana güzel kodun nasıl göründüğünü gösterdi.
Haskell'in noktadan bağımsız programlama deyimi, Ruby'de & ve yöntemini kullanmamı sağladı.
C++'ın güçlü bir şekilde yazılması, Ruby ve JS'de yinelenen dizelerden kaçınmamı sağladı.
Rails'deki aşırı yapılandırma sloganı bana yapıştırıcı kodunu iş kodundan ayırmanın nasıl göründüğünü gösterdi.
JS nesneleri, diğer tüm dillerde JSON ile çalışmamı rahatlattı.
Ruby ve JS'nin statik türlere sahip olmamasına karşın, C++ ve Haskell'in aldığı kadar statik yazmaya sahip olması, türlerin nerede yararlı olduğunu ve hiçbir türün sizi serbest bırakmadığını görmemi sağladı.
Nesneleri arka uçtan ön uca geçirmek, C++ şablonları ördek yazmaya kıyasla steroidler üzerinde ördek yazmaya benzer, ancak C++ kavramları (“kavramlar”, bir C++ dil özelliğinin adıdır), ön uçtan nesne geçirmeye kıyasla steroidler üzerinde ördek yazmaya benzer arka uç için.
C++ VS gibi derlenmiş diller, Ruby gibi yorumlanmış diller bana geliştirme hızı ve yürütme hızı arasındaki dengeleri gösterdi.
Ruby dinamik metaprogramlama, C++ statik metaprogramlama hakkındaki görüşümü genişletti.
C++ bana istisna güvenliğinin kod tasarımınızı nasıl yapılandırabileceğini öğretti.
Test için Rails ekosistemi, test etme konusunda fikrimi açtı.
Ve liste uzayıp gidiyor!
30 yılımı orada geçirsem bile, tek bir dile bağlı kalarak yukarıdaki çıkarımları asla öğrenemezdim.
Profesyonel bir ortamda yeni bir dil keşfetmek, programlamaya bakış açınızı genişletir ve size başka bir dilden gelebileceğini asla düşünmeyeceğiniz şeyleri gösterir.
Yine de bu deneyimden en iyi şekilde yararlanmak için en iyisi, üzerinde çalıştığınız dilden mümkün olduğunca farklı bir dil seçmektir. Örneğin, C++'da çalışıyorsanız Java veya C#'ı seçmeyin, Python'da çalışıyorsanız Ruby'yi seçmeyin, vb.
Büyük öğrenmeler ayrıca yeni bir paradigmayı keşfederek gelir, örneğin henüz deneme şansınız olmadıysa işlevsel programlama veya yazılmamış olanlara aşinaysanız yazılı bir dile geçiş.
Programlamada belirli bir dile bağlı olmayan ve her zaman uğraştığım zor konular var.
Yığını değiştirmek, bu konulara yeni bir ışık tutar ve onlara yaklaşmanın yeni yollarını açar.
Bu tür zor konulardan iki örnek alacağım: bileşenleştirme ve test etme.
Büyüyen çoğu şirket, bir noktada şu iki soruyla yüzleşir:
Dahası, yazılım topluluğunda bu iki konu hakkında çok fazla kafa karışıklığı var ve yönetim sizden bunları bir şekilde çözmenizi istediğinde, bu kafa karışıklığına stres katıyor. Hep bu iki konu ile uğraştım.
Her şirket gibi, Doctolib de kodunu ve test paketini ölçeklendirmek istiyor, bu yüzden katıldığımda bu zorluklarla tekrar karşılaştım. Ama durum farklıydı. Onlarla geçmişte C++'da karşılaşmıştım ve şimdi onları Rails ve React'in ışığında görüyordum.
C++ kodunu test etmek veya bileşenlerine ayırmak, Ruby'de yapmaktan oldukça farklıdır, ancak bazı benzerlikler vardır. Farklılıkları ve benzerlikleri görmek, bileşenleştirme ve test konusunda 20.000 fitlik bir görüş sunar. Ve bu birçok kafa karışıklığını giderir.
Bileşenleştirme ve test etme hakkında tam olarak öğrendiklerim, (şu anda yazmakta olduğum) tüm blog gönderilerinin konularıdır. Ancak buradaki nokta, iki farklı dilde zor bir sorunu görmenin paha biçilmez bir anlayış getirmesidir.
Yeni bir dil öğrenmek iki bağlamda gerçekleşebilir:
Gerçekten de, profesyonel bir ortamda bir dille çalışmak, her iş günü, uzun bir süre boyunca size saatlerce pratik yapma olanağı tanır ve Gerçek Sorunlar üzerinde çalışmaya başlarsınız. Dahası, iş yerindeki yeni iş arkadaşları, ikili programlama, rehberlik ve resmi olmayan sohbetler yoluyla sonsuz bir öğrenme kaynağıdır.
Mevcut dilinizle kendinizi rahat hissediyorsanız, şimdi ilerlemenin, projeleri değiştirmenin, belki şirketleri değiştirmenin ve tamamen farklı bir dilde çalışmanın zamanı geldi. Bu, programlamadaki becerilerinizi ve sevincinizi artıracaktır.
Doctolib'de işe alıyoruz, ancak yalnızca Ruby on Rails ve React JS'de güçlü deneyime sahip geliştiricileri kabul ediyoruz.
Şaka yapmıyorum. Öğrenmeye motive olmuş yazılım mühendisleri arıyoruz ve yeni bir yığına geçerek becerilerini geliştirmek isteyen kişileri memnuniyetle karşılıyoruz. İşler sayfamıza göz atın .
Ayrıca teknoloji bültenimize abone olmanızı tavsiye ederim . Her Salı, React, Rails, yazılım mühendisliği en iyi uygulamaları ve ineklerle ilgili 12 seçilmiş kaynak alacaksınız. Bu, bu konularla ilgili kişisel başvuru kaynağım.
Değişkenlere değer olarak atanan fonksiyonlara fonksiyon ifadeleri denir. Henüz JavaScript'teki işlevler hakkında okumadıysanız, devam etmeden önce bunu okumanızı tavsiye ederim.
Bir geliştirici olarak, mevcut araçlar hakkında hiçbir bilginiz olmadığında, işte, doğru araçlarla çok az zaman gerektiren etkinlikler üzerinde daha fazla zaman harcarsınız. Bu nedenle, bir geliştiricinin hayatında doğru araçları bilmek önemli hale gelir.
Hayvan kurbanlarından insanlara geçen, onların cesetleriyle yaşayan, yüzüne dövme yaptıran, dişlerini sivri uçlu törpüleyen Satanist, yıkanmadı. Kendini İlan Eden Satanist - Pazuzu Algarad John Alexander Lawson, 12 Ağustos 1978'de San Francisco, California'da doğdu.
Netflix, Inc., merkezi Los Gatos, California'da bulunan bir Amerikan teknoloji ve medya hizmetleri sağlayıcısı ve prodüksiyon şirketidir.
Hepsine hükmedecek tek bir sayı Alt yığında Amerikan Eşitsizliği'ne kaydolarak bu çalışmayı destekleyin Hayatınızdaki en önemli sayı kredi puanınızdır. GPA'nızdan, banka bakiyenizden, standart test puanlarınızdan daha önemli - sizin için erişilebilir olan şeylerin çoğunu kredi puanınız belirler.
Bir araştırmaya göre, dünya çapında yaklaşık her on kadından altısı (%58) kasıtlı olarak öldürülüyor. Kadın cinayetlerinin birkaç nedeni olabilir, ancak önde gelen neden çoğunlukla erkeklerin öfke kontrolü sorunları olarak görülüyor.
"Yıldızlarla Dans Etmek" profesyoneli Cheryl Burke, ünlü partneri Cody Rigsby'nin dostluğu ve desteği için "şanslı" ve "müteşekkir" olduğunu söylüyor.
Şef Mathew, Lexi Wilson'a "Below Deck Mediterranean"ın son bölümünde tanıştığı "en kötü insan" olduğunu söyledi. Herhangi bir pişmanlık?
Dancing With the Stars yarışmacısı Brian Austin Green, kız arkadaşı Sharna Burgess'in işleri batırırsa "onu terk ederse" şaşırmayacağına dair şaka yaptı.
Monica Lewinsky, ilk başta 'İzin: Amerikan Suç Hikayesi' hakkında emin değildi. Ama bir yorum onu rahatlattıktan sonra gemiye geldi.
Senato parlamenter ofisi, yeni mevzuatın geliştirilmesine ve Senato'yu yöneten kuralların anlaşılmasına yardımcı olmak için tarafsız ve gizli yasama uzmanlığına erişim sağlar.
Ve bu çok büyük, çünkü daha erişilebilir VE uygun fiyatlı olacaklar.
Avustralya dövüş ruhunun bir sembolü olarak boks kangurusunun geçmişi 1890'lara kadar uzanıyor, peki gerçek nedir? Kangurular gerçekten boks yapar mı?
Çoğumuz bir çıkış görüşmesinin nasıl çalıştığını biliyoruz, ancak kalıcı görüşme nedir? Ve çalışanlarla iş tatmini hakkında konuşmak onları kapıdan dışarı çıkmaktan alıkoyabilir mi?
Image: Jim Cooke / Gizmodo Alex Lomas'ın tanıdığı yakın zamanda Berlin'e yaptığı bir seyahatte ona bir zorluk çıkardı: Vahşi doğada Bluetooth özellikli bir popo fişi bulabilir misiniz ve sahibinin yardımı olmadan onu açabilir misiniz? İngiliz siber güvenlik firması Pen Test Partners'da penetrasyon test cihazı olan Lomas, telefonunu çıkardı, tespit uygulaması LightBlue'ya danıştı ve Lomas'ın söylediği "piyasadaki en güçlü titreşimli popo tıpası" olan Lovense Hush'u hızlı bir şekilde tespit etti. bir yabancının arka tarafı. Dahası, bu Hush savunmasızdı ve nasıl yapılacağını bilen herkes tarafından saldırıya açıktı.
AP aracılığıyla görüntü. Taylor Swift, Taylor Swift, neyi kanıtlamaya çalışıyorsunuz? Marslı şarkıcı ve eski Hiddleswift üyesi, eyaletin Ağustos ayında bölgeyi sarsan tarihsel olarak yıkıcı sellerin ardından Louisiana'daki Ascension Devlet Okullarına 50.000 dolar bağışladı.
Bu hafta zorlukla katlandığımız şeylere bir rehber. Tamamen sürükleyici belgesel, Iris.
Apple size mutlu bir şekilde yeni bir iPhone 13'ü 800$, 1.000$ ve hatta 1.100$'a satacaktır. Ancak 120 Hz'lik bir ekran veya paranın satın alabileceği en yeni ve en iyi akıllı telefon kamerası için çaresiz değilseniz, kullanılmış iPhone pazarında daha fazla değer bulabilirsiniz.
Norveçli Prenses Martha Louise, 50. doğum günü için erkek arkadaşı Shaman Durek'ten bir granat ve elmas takı seti aldı.
Brandi Glanville, eski RHOBH oyuncularıyla olan ilişkilerinden "Bu dünyada hiç düşmanım olsun istemiyorum" diyor.
Olivia Munn, bu yıl komedyen John Mulaney ile ilk bebeğini bekliyor
Ameila Gray Hamlin, bu ayın başlarında Scott Disick'ten ayrılmasının ardından Instagram Hikayesinde gizemli bir mesaj daha paylaştı.