38 yaşında kamyon şoförlüğünden Ruby on Rails geliştiriciliğine geçen Pedro’nun hikâyesi
(writesoftwarewell.com)- Pedro David Garcia Lopez, İspanya doğumlu; 2015’te Birleşik Krallık’a taşınıp kamyon şoförü olarak çalıştıktan sonra 38 yaşında kariyerini Ruby on Rails geliştiricisi olarak değiştirdi
- Şoförlük yaptığı dönemde ayda genelde yalnızca 4-6 gün evde kalabildiği için, aile sorumlulukları ve uzun çalışma saatleri arasında düzenli öğrenme zamanı yaratmak zordu
- Eylül 2019’dan itibaren bir yıl içinde geliştirici olma hedefi koydu; Python ve Udemy derslerinin ardından Flatiron School bootcamp’inde Ruby, Sinatra, Rails, React öğrendi
- 2020’de COVID döneminde ilk geliştirici işini bulmak zorundaydı; aylarca mülakat dönüşü alamadıktan sonra Manchester’daki ilk fırsatı düşük maaş ve uzun yol şartlarına rağmen kabul etti
- Bugün Ruby ve Rails’in üretkenliğini ve keyfini çok yüksek değerlendiriyor; yeni programcılara da her şeyi kovalamak yerine öğrenmeyi öğrenmeye, soru sormaya ve mentor bulmaya odaklanmalarını tavsiye ediyor
Kamyon şoförlüğünden geliştiriciliğe uzanan yol
- Pedro David Garcia Lopez, 42 yaşında bir İspanyol; 2015’te Birleşik Krallık’a taşındı ve ailesine daha yakın olmak için İspanya’ya dönmeyi planlıyor
- 2015’te Birleşik Krallık’a kamyon şoförü olarak geldi; bunun nedenleri arasında kızına yeni fırsatlar sunmak ve İngilizceyi düzgün şekilde öğrenmek de vardı
- Şoför olarak çalışırken Birleşik Krallık ve Avrupa’nın çeşitli yerlerine gidip geliyordu; genelde ayda yalnızca 4-6 gün evde kalıyordu
- Profesyonel şoför olarak yolda neredeyse her tür aracı kullandı, AB kıtasındaki ülkelerin en az bir kez çoğunu gezdi ve sadece kamyonla yaptığı kilometreyle dünyanın çevresini birkaç kez dolaşacak kadar yol yaptı
Bilgisayarlara ilgi ve ilk öğrenme denemelerindeki başarısızlık
- Bilgisayarla ilk tanışması yaklaşık 12 yaşındayken yazın aldığı daktilo/yazı yazma dersi sırasında oldu; MS-DOS ve Windows 3.1 kullanırken bilgisayarlara hayran kaldı
- 14 yaşında babasını kaybettikten sonra hem okumak hem de ailesine destek olmak zorunda kaldığı için eve bilgisayar almak neredeyse imkânsızdı
- 18 yaşında tam zamanlı çalışırken 3 ay para biriktirip ilk bilgisayarı olan Pentium II’yi aldı; o zamandan itibaren programlama öğrenmek istedi
- C++ kitabıyla başladı ama konu fazla teknik ve zordu; ilginç bir şeyler üretemediği için daha sonra hayatın yoğunluğu arasında programlamaya derinlemesine devam edemedi
Bir yıl içinde geliştirici olma kararı
- İngilizcesi geliştikçe ve çevrimiçi bilgiye erişim kolaylaştıkça, çocukluğundaki geliştirici olma hayalini yeniden hatırladı
- YouTube’da HTML, CSS, JavaScript dersleri izledi; “7 günde programcı ol” türü kursları da denedi
- freeCodeCamp daha yapısal ve ciddiydi, ancak kamyon şoförlüğünün uzun mesaileri ve baba/eş olarak sorumlulukları nedeniyle yeterli öğrenme hızını yakalamakta zorlandı
- Uzun yıllar süren şoförlük ve aile bakımının ardından, istikrarlı işini bırakıp bir yıl içinde geliştirici olacağım, yoksa vazgeçeceğim diye bir plan yaptı
- Eylül 2019’da ciddi şekilde başladı; Python ve Udemy dersleriyle temelleri öğrendi ama yapılanları takip edebilse de kendi başına bir şeyler geliştirebileceğine tam güven duyamadı
Flatiron School ve ilk iş
- Çeşitli seçenekleri değerlendirdikten sonra Flatiron School’a katıldı
- Programı bitirdikten sonra iş bulamazsa ücret ödemeyecek olması, ona göre riski düşürüyordu
- Bootcamp’te Ruby temellerinden başlayarak Sinatra, Ruby on Rails ve React’e kadar yapısal biçimde eğitim aldı
- Öğretmenler, arkadaşlar, ödevler ve pratik sayesinde sadece takip eden biri olmaktan çıkıp yeni şeyler üretebilir hale geldi
- Programı Mayıs 2020 sonunda tamamladı ve sorunları kendi başına bulup çözebileceği, yeni şeyler öğrenebileceği hissini kazandı
- Mezun olduğu dönem COVID dönemiydi ve kapanmalar nedeniyle mülakat yapma ya da insanlarla bağlantı kurma fırsatı azdı
- 38 yaşında, deneyimsiz bir bootcamp mezunu olarak aylarca mülakat dönüşü alamayınca özgeçmişinin doğrudan elendiğinden endişelendi
- İlk fırsat Manchester’dan geldi; evinden trenle 2 saat uzaklıktaydı ve uzaktan çalışma politikası yoktu
- Maaş, kamyon şoförü olduğu dönemde kazandığının üçte biri kadardı ve önemli kısmı tren masrafına gidiyordu
- Teknoloji yığını PHP ve jQuery idi, ancak geliştirici olarak başlamak zorunda olduğunu düşündüğü için teklifi kabul etti
Ruby ve Rails hakkındaki değerlendirmesi
- Ruby ve Rails ile ilk kez bootcamp’te tanıştı; Superbyte’ta çalışırken daha fazla deneyim kazandı
- Superbyte’ta Mongoid ve bir miktar React içeren standart dışı bir stack kullandılar, ama ekipten çok şey öğrendi
- Ruby on Rails ile profesyonel deneyim kazandıkça sevgisi daha da arttı; Rails’in convention yapısına alışınca birçok şeyin kolaylaştığını düşünüyor
- Ruby ve Rails’in çekici yönleri arasında topluluğu ve sürekli gelişen ekosistemi sayıyor
- React’ten uzaklaşıp Hotwire ekosistemini benimseme fikri onu heyecanlandırıyor; birçok şeyi Rails yaklaşımıyla ele alabilmeyi olumlu değerlendiriyor
Kitaplar, rol modeller ve öğrenme biçimi
- Teknik kitapları kariyerinin ilerleyen dönemlerinde çeşitli eksiklerini fark etmeye başlayınca okumaya başladı; hâlâ okunacak çok kitabı olduğunu düşünüyor
- Etkilendiği kitaplar şunlar:
- Layered Design for Ruby on Rails Applications, Vladimir Dementyev
- Rebuilding Rails, Noah Gibbs
- Ruby Under a Microscope, Pat Shaughnessy
- Practical Object-Oriented Design in Ruby, Sandi Metz
- Programlamayı iyi bilen ve tutkulu insanlar ile bilgisini paylaşan insanlara saygı duyuyor
- Quincy Larson, freeCodeCamp ve içerik üreticilerine özellikle minnet duyuyor
- Flatiron School’daki öğretmeni Avi Flombaum da aklında kalan isimlerden biri; birlikte çalıştığı insanların hem geliştirici hem insan olarak büyümesine katkı sağladığını düşünüyor
Bugünkü çalışma biçimi ve araçları
- Kısa kariyeri boyunca tamamen uzaktan, hibrit ve haftada 5 gün ofisten çalışma modellerinin hepsini deneyimledi
- İspanya’ya dönme planıyla birlikte, nisan ortasından itibaren gocertify’de tamamen uzaktan bir role geçecek
- Superbyte’ta Junior Developer pozisyonundan daha çok semi-senior’a yakın bir role geçti; kod yazma, kavramsal tasarım ve bir miktar Ar-Ge işine katıldı
- Zamanının çoğunu kod yazarak geçiriyor, ama pair programming ve PR review süreçlerinden de keyif alıyor
- Bir şey öğretmenin, kavramları öğrenmenin en iyi yolu olduğunu düşünüyor; ekip arkadaşlarına yaklaşım önermeyi ya da onlardan öğrenmeyi seviyor
- Sık kullandığı araçlar şunlar:
- Kod editörü: VS Code
- Veritabanı GUI’si: MongoDB Compass
- Terminal: iTerm with oh my zsh
- Tarayıcı: Chrome
- Notlar ve proje yönetimi: Apple Notes, VS Code Markdown, GitHub projects/issues
- İletişim: Microsoft Teams
Yeni programcılara verdiği tavsiyeler
- En önemli tavsiyesi, öğrenmeyi öğrenmek
- İnsanlar farklı şekillerde öğrenip hatırladığı için, herkesin kendine uygun öğrenme yöntemini bulması gerekiyor
- Pedro; bizzat bir şeyler yaparak ya da bir eğitimi izleyip aynısını kurarak, ardından bunu ilgisini çeken alanlara genişleterek öğreniyor
- Kitapları ilk seferde kod yazmadan okuyor; ikinci okuyuşunda ise birebir takip etmek yerine rehber gibi kullanıyor
- Her şeyi öğrenmek zorundaymış gibi hissetmeye gerek olmadığını; sevdiğin tek bir şeye odaklanmanın, çok fazla şeyi yüzeysel öğrenmekten daha ileri götürebileceğini söylüyor
- Yeni programcılara çok çalışmayı ve cesurca soru sormayı tavsiye ediyor
- En aptalca soru, sorulmayan sorudur diye düşünüyor
- İnsanların kendini yetersiz ya da çok az şey biliyor gibi hissetmemesi gerektiğini söylüyor
- Ruby ve Rails’in belli bir eşiği geçtikten sonra kolay ve keyifli gelebileceğini belirtiyor
- Bir mentor ya da gelişimine yardımcı olacak birini bulmanın da iyi olacağını; Ruby öğrenenler için kaynak olarak First Ruby Friend’i öneriyor
- İletişim kanalları olarak LinkedIn ve Twitter/X’i kullanıyor; eski Django kişisel sitesinin kapanmasının ardından www.lorrydriveloper.com’u Ruby on Rails ile yeniden yapmayı planlıyor
1 yorum
Hacker News görüşleri
Birleşik Krallık’ta geliştiricilikten (çoğunlukla C#) tam ters yöne, kamyon şoförlüğüne geçtim
Şimdi 12 tonluk sabit kamyonlardan 44 tonluk büyük treylerlere kadar araç kullanıyorum; boş zamanlarımda RoR ve Golang ile geliştirme yapmak, para karşılığı geliştirme yaptığım zamankinden daha keyifli geliyor
Haftalık çalışma sürem 38~40 saatten ortalama 50~52 saate çıktı ama HGV şoförlüğünün karşılığı, geliştirici olduğum zamankinden çok daha iyi. Gerçi bu, geliştirici olarak beceri veya seviyemi daha çok yansıtıyor olabilir
İstisnalar var, ama zorlu mülakatları geçmek gerekiyor; burada toplam kazancı 200 bin dolar olan stajyer diye bir şey yok
Bu yüzden zanaat/teknik meslek öğrenmek ya da scrum master’lık, ulaşım/lojistikle ilgili işler gibi seçenekler de gerçekçi alternatifler oluyor. Geliştiriciler stagflasyona sıkışmış durumda; örneğin Sydney metropol alanında 90 dakikalık işe gidiş mesafesinde ev almak çoğu geliştirici için bile zor. 15 yılda ev fiyatları üçe katlandı ama geliştirici maaşları ya da sözleşme ücretleri aynı ölçüde artmadı
Bazı insanlar alıştıklarının içinde kalır ve büyük değişimlerden korkar; ama geçici rahatsızlık uzun vadede daha büyük bir tatmine dönüşebilir. Kamyon şoförlüğüne gelsin ya da ondan ayrılsın, veya herhangi bir işte olsun, insanlar hikâyelerini anlatmaya devam ederse tükenmişlik ve hayal kırıklığı yaşayan birine ilham olabilir
Mesleğinle hobin aynı olduğunda, senden başka patronun olmaması büyük fark yaratıyor
Bir ara düşünmüştüm ama küçük kırsal kasabaların merkezlerinde manevra yapmak zorunda kalma ihtimali beni endişelendirmişti. Yaşadığım kasabada evlere sık sık araçlar çarpardı. Böyle şeyler çok oluyor mu, teslimat süreleri konusunda çok sıkı baskı görüyor musun, HGV ehliyeti almak ne kadar sürdü, bunları da merak ediyorum
İleri yaşta kariyer değişikliği görmek güzel, ama “başkalarıyla aynı sahada yer alabilmek için zorlukların üstesinden gelen insanlar” ifadesi, sınıf arkadaşlarının bir tekerlekli sandalye almak için bağış topladığı türden haberlere benziyor
Dünyada iyi insanların olduğunu görmek güzel hissettiriyor ama içinde yaşadığımız sistemin bazı insanları bilerek aşağıda tuttuğu gerçeğini tamamen görmezden geliyor
“Sınıf arkadaşları bir araya gelip bir yetimi yetim öğütme makinesinden kurtarmak için bağış yaptı!” tarzı hikâyeler. Ama en başta o makine neden var sorusu ortada kalıyor
Aşağıda olması gerektiği düşünülen biri başarılı olursa, hele bir de Tanrı korusun üstün olursa, dirençle ya da aşırı cezalarla karşılaşır. Bazen gizlice, ama çoğu zaman kapalı kapılar ardında az sayıda insan tarafından açıkça yapılır
Daha çok, öncelikleri doğru belirleyememe ve vergilerin bireylerin hayatlarını ve sonuçlarını iyileştirmek için kullanılmasını dengeleyememe başarısızlığı
İnsanların işgücü piyasasında böyle yana doğru geçişler yapmak için büyük çaba harcamasına gerek kalmaması adına, en baştan bu değere uygun ücret verilseydi daha iyi olurdu
Programlamayı bir denemek isterdim ama finans tarafından gelince maaş hesabı kamyon şoförü kadar kolay olmuyor
Muhtemelen doğrudan oldukça kıdemli bir pozisyona girmem gerekir, bu da pek gerçekçi değil
Bazen Flatiron School gibi yerler ya da çeşitli bootcamp’ler Ruby yerine Elixir öğretse nasıl bir dünya olurdu diye merak ediyorum
Bir de “lorry” gerçekten güzel bir kelime; ABD’de kullanma fırsatı olmaması üzücü
Bu mezunların teknoloji yığını yeni proje seçimlerini etkileyecek kadar çoğalmasından önce piyasada ağırlık kazanmaları zor; muhtemelen o noktaya da gelmezdi. CS diploması olmayan yeni bir geliştirici için sadece Ruby bilmek bile aslında epey dar bir seçenek; yine de Ruby bootcamp’lerden önce de popüler olduğu için öğretiliyordu. Elixir’i seviyorum ama öyle yapılsaydı çoğu okul birkaç ay içinde kapanır ve mezunların da pek bir şey kazanamamış olması çok olasıydı
Eskiden KDE geliştiricisiydim
Topluluk üyelerinin IT’ye giriş yaptığı ilginç örnekler vardı; bir sopranonun topluluk yöneticisi olması ya da torunları için oyunları iyileştirmek isteyen bir büyükannenin geliştirici olması gibi. Güzel zamanlardı
Neredeyse 38 yaşında biri olarak, bunun o kadar ileri bir yaş gibi gelmediğini söyleyebilirim
Tuhaf şekilde, 20’lerinde ve 2 yıl deneyimi olan insanlar, 40’a yaklaşan birinin aynı bilgiyi 2 yıl içinde edinemeyeceğini düşünüyor. Oysa 40’lı ve 50’li yaşlardakiler hayat tecrübeleri sayesinde daha pratik, disiplinli, ayrıntılara daha dikkat eden ve daha sabırlı olabilir
Bilişsel gerileme ya da güçten düşme ihtimalinin arttığı 80’lere gelmeden gerçekten yaşlı sayılmak zor. Küçükken 40’lı yaşları yaşlı sanırdım; ama düşününce, o noktadan sonra bile gerçekten yaşlanmaya yaklaşık 40 yıl var. Bu, çoğu şirketin, evliliğin ve kariyerin sürdüğü süreden çok daha uzun
Ruby on Rails pozisyonları hâlâ epey popüler mi?
İyi bir geliştirici birkaç hafta içinde yeni bir dili yakalayabilir. Ben de böyle yaptım; bir ekibin tamamen yeni olduğu bir stack ile baştan sona bir platform inşa ettiğini de gördüm. Programlama esasen problemleri parçalara ayırmak, çözümler üretmek ve bunları hayata geçirmekle ilgilidir. Kod sadece bunun çıktısıdır.
Kendi bölgemdeki izlenimime göre, geleneksel olmayan bir geçmişten geliyorsanız ve CS diplomanız yoksa Ruby ya da Python gibi biraz daha az tipik dilleri çalışmak daha iyi olabilir. Daha popüler dillerin kullanıldığı yerlere başvurursanız, o dilde diploması ve deneyimi olan adayların oluşturduğu bir denizde rekabet etmeniz gerekir.
Ruby ya da Python şirketleri, beklenen diplomaya sahip olmayan birini işe almaya biraz daha açık olabilir; birçok açıdan da biraz daha esnek olma ihtimalleri var. Neredeyse sadece Java şirketlerinde çalıştım ama bir kez bir Python şirketinde çalışmıştım; o ekip Java/C++/C#’tan neredeyse politik düzeyde nefret ediyordu ve Python’ın harika olduğu konusunda militan gibiydi. Bu duyguyu paylaşırsanız adaya karşı güçlü bir yakınlık hissederlerdi.
Şu an çalıştığım yerde uzun süredir Ruby on Rails ile yapılmış sıra dışı bir ürün vardı; o ekip de Ruby’nin her şeyden üstün olduğuna güçlü biçimde inanan, benzer şekilde tutkulu ve tuhaf biçimde politik bir ekipti ve geleneksel olmayan geçmişe sahip daha fazla kişiyi işe almıştı. Python işinden ayrıldıktan sonra bile yıllarca sadece Python yapacak geliştirici arayan recruiter’lar benimle iletişime geçti; sanki ürün, ekip yapısı veya şirket kültüründen daha önemli olan şey buydu. Java ya da C# ekipleri için iş önerirken genellikle dilden çok şirketi, yatırımcıları, ürünü vb. öne çıkarırlar.
JS, Java, C#’tan daha az ilan var ama Ruby geliştiricisi de daha az. Bu eskiden beri hep böyleydi.
Gerçekte iddia ettiği deneyime sahip olmayan çok fazla kişi var; kıdemli bir geliştiricinin cevaplayabilmesi gereken temel programlama soruları sorduğunuzda adayların yaklaşık %80’i doğrudan ChatGPT’ye gidip cevabı kendi cevabıymış gibi sunuyor. LeetCode türü şeylerden de bahsetmiyorum; “polimorfizm nedir”, “refactoring nedir” seviyesinde sorular.
Belki tüm sektör böyle olmuştur ama yetenek havuzu küçük olunca bu çok daha belirgin görünüyor. Benim elimde olsa işte başka bir şey kullanırdım; bunun tek nedeni de yetenek havuzunun küçük olması değil. Rails’in “keyifli” ve zaman kazandırdığı söylenen özelliklerinin önemli bir kısmı, karmaşık uygulamalarda ya çok az etki yaratıyor ya da bizi yavaşlatan keskin kenarlara dönüşüyor.
Node, dotnet, Go ve Java’nın hepsi daha popüler görünüyor.
“Flatiron School’a girmeye karar verdim. Programı bitirdikten sonra iş bulamazsam ücret ödemem gerekmiyordu” kısmı kilit nokta.
Ben de bir bootcamp’e gittim; kabul mülakatı gerektirenlerden biriydi ve yeni başlayan biri için oldukça zor, gerçek bir mülakattı. Bootcamp modeli iyi uygulandığında gerçekten çok iyi olabilir. Elbette yolsuzluk ve dolandırıcılık da var; ne yazık ki birçok masum insan parasını kaybetti.
Bu yüzden bootcamp düşünüyorsanız, girmesi zor olan ve gelir paylaşımı sözleşmesi bulunan bir yer seçmek iyi olur. Ancak gelir paylaşımı sözleşmeleri de şüpheli olabilir. Bazen teknolojiyle ilgisi olmayan bir iş, örneğin perakende işi bulsanız bile geri ödeme talep ederler.
https://news.ycombinator.com/item?id=40067939
Bu tür yapılarla ilgili deneyimime göre çoğu genellikle çok sömürücü oluyor ve kırılgan durumdaki insanları hedefliyor. En büyük ipucu, bu yerlerin çoğunun sözleşme şartlarını herkese açık şekilde sunmaması. Genellikle ayrıntıları öğrenene kadar saatler süren bir süreçten geçmeniz gerekiyor; çünkü az önce söylediğim nedenle bilginin yayılmasını istemiyorlar.
Tersinden, bu hızlı bir filtre olarak da kullanılabilir. “Ayrıntıları şimdi gönderebilir misiniz?” diye sorduğunuzda “4 saatlik yüz yüze seminere gelmeden olmaz” diyorlarsa doğrudan geçin.
“40 yaşında kamyon şoförü olarak mı?”
Sektörümüzdeki yaş ayrımcılığı ortaya çıkıyor. 38 yaşında bu işe başlamak sanki tarih öncesinden gelmişsiniz gibi görülüyor; neredeyse ucube gösterisi sergisi muamelesi yapılıyor.