Bir iOS geliştiricisi olmak istiyorsanız ne beklemelisiniz?

Bir iOS geliştiricisi olmak istiyorsanız ne beklemelisiniz?

İOS'un dışından bakıldığında geliştirme kapalı bir kulüp gibi görünebilir. Çalışmak için kesinlikle bir Apple bilgisayarına ihtiyacınız var; ekosistem tek bir şirket tarafından yakından kontrol ediliyor. Bazen içeriden çelişkiler de duyabilirsiniz; bazıları Objective-C dilinin eski ve hantal olduğunu söylerken, diğerleri yeni Swift dilinin çok kaba olduğunu söylüyor.

Yine de geliştiriciler bu alana giriyor ve oraya vardıklarında tatmin oluyorlar.

Marat Nurgaliev ve Boris Pavlov bu kez bize deneyimlerini, mesleği nasıl öğrendiklerini, ilk mülakatları nasıl geçtiklerini, neden ret aldıklarını anlattılar. Ve dekan Andrey Antropov uzman olarak hareket etti iOS Geliştirme Fakültesi GeekBrains'te.

2016 yılında Astrahan bölgesinden Marat Nurgaliev, yerel bir televizyon şirketinde mobil geliştirici olarak iş bulmaya geldi. Bu onun ilk röportajıydı. Ordudan yeni dönmüştü, pratik ve deneyimi yoktu, zaten sorun yaşadığı teoriyi bile unutmuştu. Marat'ın mobil geliştirmedeki tek deneyimi, Android uygulamaları aracılığıyla bilgi sızıntısı akışlarını analiz etme konusundaki teziydi. Röportajda kendisine çalışmaları, OOP ve diğer teoriler hakkında sorular soruldu ancak Marat bilgisindeki boşlukları gizleyemedi.

Ancak kendisine reddedilmedi, ancak iki hafta içinde API'yi kullanarak bir haber listesini görüntülemeyi uygulamak için pratik bir görev verildi. Hem iOS hem de Android için. “Android konusunda herhangi bir deneyimim olsaydı, iOS sürümünü oluşturacak bir araç bile yoktu. iOS uygulama geliştirme ortamı yalnızca Mac'te mevcuttur. Ancak iki hafta sonra geri döndüm ve Android'de neler yapabileceğimi gösterdim. İOS ile bunu anında çözmem gerekiyordu. Sonunda beni götürdüler. Daha sonra Astrahan'da yaşadım. Maaşı yirminin üzerinde olan her BT işi bana uygun.”

iOS geliştiricileri kimlerdir?

Mobil geliştiriciler herhangi bir taşınabilir cihaz için uygulamalar yapar. Android veya iOS destekleyen akıllı telefonlar, tabletler, akıllı saatler ve diğer tüm platformlar. Mobil geliştirmenin temel ilkeleri geleneksel geliştirmeden farklı değildir ancak belirli araçlar nedeniyle ayrı bir yöne ayrılmıştır. Kendi araçlarını, programlama dillerini ve çerçevelerini kullanır.

“iOS ile çalışmak için bir MacBook'a ihtiyacınız var çünkü yalnızca gerekli Xcode geliştirme ortamına sahip. Ücretsizdir ve AppStore aracılığıyla dağıtılır. Yüklemek için Apple Kimliğinize sahip olmanız ve başka hiçbir şeye ihtiyacınız yoktur. Xcode'da telefon, tablet, saat gibi her şeye yönelik uygulamalar geliştirebilirsiniz. Her şey için yerleşik bir simülatör ve düzenleyici var” diyor GeekBrains'in iOS geliştirme departmanı dekanı Andrey Antropov.

“Ancak Hackintosh kullanıyorsanız geliştirme ortamı Windows'a kurulabilir. Bu işe yarayan ancak dolambaçlı bir seçenektir; ciddi geliştiricilerin hiçbiri bunu yapmaz. Yeni başlayanlar eski bir MacBook satın alır. Ve deneyimli olanlar genellikle en son modeli satın almaya gücü yetiyor.”

Diller - Swift veya Objective-C

Neredeyse tüm iOS geliştirmeleri Swift programlama dili kullanılarak yapılıyor. Beş yıl önce ortaya çıktı ve şimdi yavaş yavaş Apple'ın 30 yılı aşkın süredir tüm uygulamalarında kullandığı eski Objective-C dilinin yerini alıyor.

“ Objective-C'de çok büyük bir kod tabanı birikti, bu nedenle şirkete, görevlerine ve uygulamalarına bağlı olarak her iki dilde de geliştiricilere ihtiyaç duyuluyor. Yıllar önce yazılan uygulamalar Objective-C'ye dayanmaktadır. Ve tüm yeni projeler varsayılan olarak Swift'de geliştiriliyor. Artık Apple, telefon, tablet, saat ve MacBook için eş zamanlı geliştirmeyi mümkün olduğunca kolay hale getirmek için çok şey yapıyor. Aynı kod her yerde derlenip çalıştırılabilir. Bu daha önce olmadı. iOS için Swift'de geliştirdik, MacOS için ise Objective-C kullandık."

Andrey'e göre Swift, yeni başlayanlar için uygun, çok basit bir dildir. Kesinlikle yazılmıştır, bu da proje derleme aşamasında birçok hatayı yakalamanıza olanak tanır ve yanlış kod çalışmaz.

“Objective-C oldukça eski bir dil; C++ diliyle aynı yaşta. Geliştirildiği dönemde dil gereksinimleri tamamen farklıydı. Swift çıktığında hatalıydı, işlevsellik sınırlıydı ve sözdizimi kabaydı. Ve insanların elleri Objective-C ile doluydu. Yıllardır iyileştirildi, oradaki tüm hatalar düzeltildi. Ama artık Swift'in Objective-C kadar iyi olduğunu düşünüyorum. Her ne kadar Apple bile hala projelerinde her ikisini de kullanıyor. Diller büyük ölçüde birbirinin yerine kullanılabilir ve birbirini tamamlar. Bir dilin yapıları ve nesneleri başka bir dilin nesne ve yapılarına dönüştürülebilir. Her iki seçeneği de bilmek güzel, ancak yeni başlayanlar için Objective-C genellikle korkutucu ve kafa karıştırıcı görünüyor."

eğitim

Marat, "İlk işimde patronum beni eğitti, projeyi uygulama ve kurma konusunda bana yardımcı oldu" diyor ve şöyle devam ediyor: "Fakat hem Android hem de iOS üzerinde aynı anda çalışmak zor. Yeniden inşa etmek, projeden projeye, dilden dile geçmek zaman alır. Sonunda bir yön seçip onu incelemem gerektiğine karar verdim. Xcode'un arayüzüne ve Swift'in basit söz dizimine hayran kaldım."

Marat, GeekBrains'te iOS geliştirme departmanına girdi. İlk başta çok kolaydı çünkü iş tecrübesinden pek çok şey biliyordu. Yıllık kurs dört çeyreğe bölünmüştür. Andrey'e göre ilki yalnızca temelleri veriyor: "Swift dilinin temeli, temel çerçeveler bilgisi, ağ oluşturma, veri depolama, uygulama yaşam döngüsü, denetleyici, temel mimariler, herkesin kullandığı ana kütüphaneler, çoklu iş parçacığı ve paralellik uygulamalar.”

İkinci çeyrekte Objective-C eklenir. Mimarlık ve temel programlama kalıpları üzerine bir ders verilmektedir. Üçüncü çeyrekte doğru kod yazma stilini öğretiyorlar. Fabrikanın ne olduğunu, testlerin nasıl doğru yazılacağını, projelerin nasıl oluşturulacağını, Git-Flow'un ne olduğunu, Fast Lane ile Sürekli Entegrasyonu açıklıyor. Dördüncü ve son çeyrek ekip çalışmasına, pratik ödevlere ve stajlara ayrılmıştır.

Marat, "İlk çeyrek kolaydı" diyor ve şöyle devam ediyor: "Ama sonra Objective-C'de programlamayı öğrenmeye başladım; tasarım kalıpları, Solid ilkeleri, Git-Flow, proje mimarisi, uygulamaların birim ve kullanıcı arayüzü testleri üzerinde çalıştım, özel animasyonlar hazırladım - ve sonra ben Çalışmak ilginç hale geldi.

Boris Pavlov, "GeekBrains'te benim için pek de sorunsuz başlamadı" diyor ve genel olarak iOS geliştirmeye giden yolu pek de doğrudan değildi. Çocuk büyükannesi tarafından büyütüldü. Kendisi bir mimar, matematikçi ve tasarımcıydı ve Boris'e tasarım sevgisini aşıladı, ona elle çizmeyi ve çizmeyi öğretti. Amcası sistem yöneticisiydi ve yeğeni bilgisayarlarla ilgileniyordu.

Boris mükemmel bir öğrenciydi ancak okula olan ilgisini kaybetti ve dokuzuncu sınıftan sonra okulu bıraktı. Üniversiteden sonra bisiklete binmeye başladı ve bilgisayarlar arka planda kayboldu. Ancak bir gün Boris, spor kariyerine devam etmesini engelleyen bir omurga yaralanması geçirdi.

Irkutsk Güneş-Yer Fiziği Enstitüsü'nde bir öğretmenden C++ öğrenmeye başladı. Daha sonra oyun geliştirmeye ilgi duymaya başladım ve C#'a geçmeye çalıştım. Ve sonunda Marat gibi o da Swift dilinin büyüsüne kapılmıştı.

"GeekBrains'te ücretsiz giriş kursuna katılmaya karar verdim. Dürüst olmak gerekirse çok sıkıcı, halsiz ve anlaşılmaz biriydi,” diye anımsıyor Boris, “öğretmen dilin özelliklerinden bahsetti ama özü açıklamadan bir konudan diğerine koştu. Kurs bittiğinde hâlâ hiçbir şey anlamadım.”

Bu nedenle, giriş kursunun ardından Boris bir yıllık bir eğitime değil, mesleğin temellerinin öğretildiği üç aylık kısa bir kursa kaydoldu. “Orada çok iyi öğretmenler buldum ve her şeyi oldukça net bir şekilde anlattılar.”

“Sıklıkla eleştiriliyoruz, eğitim kılavuzlarımızın tam olarak güncel olmadığı, yanlışlıklar olduğu iddia ediliyor. Ancak dersler sürekli güncelleniyor ve öğretmenler sürekli yeniliklerden bahsediyor. Liderlik ettiğim grupların birçoğu ilk çeyrekten sonra iş buluyor. Elbette bunlar genellikle programlama deneyimi olan kişilerdir” diyor Andrey, “Öte yandan, tüm bilgiler tek bir kursta aktarılamaz. Hayattaki ağ istemci etkileşimi iki saatlik on derse sığdırılamaz. Ve eğer sadece kurslara giderseniz ve başka hiçbir şey yapmazsanız o zaman yeterli bilgiye sahip olmazsınız. Tüm yıl boyunca her gün çalışırsanız, bu hızda yalnızca tembeller iş bulamaz. Çünkü mesleğe talep çok yüksek.”

Bir iOS geliştiricisi olmak istiyorsanız ne beklemelisiniz?

En fazlasını görebilirsiniz en son boş pozisyonlar iOS geliştiricileri için ve yenilerine abone olun.

Çalışma

Ancak ne Marat ne de Boris o kadar kolay iş buldu.

“Bazı büyük firmalar uzun zamandır Objective-C'de iOS uygulamaları geliştiriyor ve eski kod tabanını korumaya devam ediyor. Ne yazık ki onları yalnızca Swift kullanmaya zorlayacak ikna edici bir argümanım yok. Özellikle “işe yarayan şeye dokunmayın” kuralını kullananlar diyor Marat, “Geekbrains'te Objective-C yönüne çok az dikkat ediliyor. Daha çok bilgilendirme niteliğindedir. Ancak görüştüğüm her şirket Objective-C'yi sordu. Daha önceki çalışmalarım gibi çalışmalarım da Swift üzerine yoğunlaştığından röportajlarda reddedildim.”

Boris, "Öğrendikten sonra kendi başıma yalnızca en yüzeysel temelleri biliyordum ve bunların yardımıyla en basit uygulamayı yaratabildim" diyor ve şöyle devam ediyor: "İş için elbette yeterli değildi, ama bundan memnundum. Irkutsk'ta iş bulmak zordu. Daha kesin olmak gerekirse - hiç de değil. Başka şehirlere bakmaya karar verdim. Boş kontenjan sayısı açısından en alakalı olanlar Krasnodar, Moskova ve St. Petersburg oldu. Avrupa'ya daha yakın olan St. Petersburg'a gitmeye karar verdim.

Ancak her şeyin o kadar da pembe olmadığı ortaya çıktı. Bir genç bile bilemediği şeyler için affedilir. Henüz iş bulamadım. “Teşekkür ederim” için çalışıyorum, deneyim kazanıyorum. İstediğimin bu olmadığını anlıyorum ama ilgileniyorum ve bu beni motive ediyor. Bilgi edinmek istiyorum."

Andrey, yeni gelenlerin iş yerine staj araması gerektiğine inanıyor. Bilginiz çok azsa stajın ücretsiz olması normaldir. Andrey, iş sürecinin halihazırda kurulmuş olduğu büyük şirketlerdeki genç açık pozisyonlara başvurmanızı tavsiye ediyor.

“Yazılım geliştirme sürecinin nasıl çalıştığını anladığınızda, arzularınıza bağlı olarak gezinmek ve daha fazla iş bulmak çok daha kolay hale gelecektir. Bazı insanlar bağımsız gelişime gider, kendileri için oyunlar yapar, bunları mağazaya yükler ve kendileri para kazanır. Bazıları katı kuralları olan büyük bir şirkette çalışıyor. Bazı insanlar özel yazılım üreten küçük stüdyolarda para kazanıyor ve orada bir projeyi sıfırdan oluşturmaktan mağazaya teslim etmeye kadar tüm süreci izleyebiliyorlar."

Maaşlar

Bir iOS geliştiricisinin maaşı, diğerleri gibi, "Moskova mı Rusya mı" sorusuna bağlıdır. Ancak sektörün özellikleri nedeniyle - çok sayıda uzaktan çalışma, yer değiştirme fırsatları ve bölgesel pazarda çalışmama - rakamlar giderek birbirine yaklaşıyor.

Bir iOS geliştiricisi olmak istiyorsanız ne beklemelisiniz?

My Circle maaş hesaplayıcısına göre bir iOS geliştiricisinin ortalama maaşı biraz daha az 140 000 ruble.

“Çok düşük seviyedeki bir genç genellikle ücretsiz veya sembolik parayla çalışıyor - 20-30 bin ruble. Bir genç kasıtlı olarak pozisyonuna alınırsa 50 ila 80 bin arası alacak. Orta sınıflar 100'den 150'ye kadar, hatta bazen 200'e kadar alıyor. Yaşlılar 200'den az almıyor. Maaşlarının 200-300 civarında olduğunu düşünüyorum. Takım liderleri için de buna göre 300'ün üzerinde."

Bir iOS geliştiricisi olmak istiyorsanız ne beklemelisiniz?

Röportajlar

“İlk görüşme Skype üzerinden gerçekleşti. Beni şaşırtan şey Google'dı," diye anımsıyor Boris, "sonra St. Petersburg'a yeni taşınmıştım ve iş aramaya başlamıştım. iOS geliştirici pozisyonu için başvuru aldım. Kıdemsiz değil, orta değil, kıdemli değil - sadece bir geliştirici. Çok sevindim ve yöneticiyle yazışmaya başladım. Benden teknik bir görevi tamamlamam istendi: Chuck Norris hakkındaki şakalar için bir başvuru formu yazmam gerekiyordu. Ben yazdım. Bana her şeyin harika olduğunu söylediler ve çevrimiçi bir röportaj ayarladılar.

Birbirimizi aradık. Hoş bir kız benimle konuştu. Ancak dil yeterliliğiyle ilgili herhangi bir soru sormadılar - yalnızca çeşitli mantıksal sorular sordular, örneğin, "Saat 15:15, akrep ve yelkovan arasında kaç derece var?" veya "Bir direk 10 metre uzunluğundadır, bir direk Salyangoz gündüzleri 3 metre yukarıya doğru sürünür, geceleri ise 1 metre aşağıya iner.” Kaç günde sürünerek zirveye çıkacak?” ve buna benzer birkaç soru daha.

Sonra çok tuhaf sorular geldi: Apple'ı neden seviyorum ve Tim Cook hakkında ne hissediyorum? Şirketin ona karşı bir bütün olarak olumlu ama daha ziyade olumsuz olduğunu söyledim çünkü onun için ürünler değil para önemli.

Swift ile ilgili sorular başladığında bilgim sadece programlama kalıpları ve OOP'un temelleri için yeterliydi. Vedalaştık, bir hafta sonra beni tekrar aradılar ve uygun olmadığımı söylediler. Aslında bundan çok büyük bir deneyim kazandım: Bilgiye ihtiyacınız var, hem teori hem de pratiğe çok ihtiyacınız var.”

Andrey şöyle diyor: "Görüşme sırasında herkese sorulan ilk şey kontrolörün yaşam döngüsüdür. Basit bir programlama modeli istemekten gerçekten hoşlanıyorlar. Kesinlikle popüler kütüphaneleri kullanma deneyiminizi soracaklar. Swift Değer Tiplerinin Referans Tiplerinden farkları, Otomatik Referans Sayma ve hafıza yönetimi konusunda mutlaka bir soru olacaktır. Uygulamalarda veri depolamayı nasıl uyguladıklarını ve ağ isteklerini uygulayıp uygulamadıklarını sorabilirler. REST ve JSON'un temellerini soracaklar. Kıdemsizden belirli şeyler ve incelikler istenmeyecektir. En azından sormuyorum."

Boris'in farklı bir deneyimi vardı: “Staj istediğimde, teknik görevleri tamamladığımda ve maaşın benim için önemli olmadığını söylediğimde bile, bir daire kiralamak için yeterli olduğu sürece yine de reddedildim. Makaleler okudum, işe alım görevlisinin yeni gelenlerden neye ihtiyacı olduğunu anlamaya çalıştım. Ancak çoğunlukla teorilerde başarısız oldular. Nedense büyük liglerden yeni gelenleri ilgilendirmeyen sorular sordular.”

Marat daha şanslıydı. Şu anda bir nakliye şirketinde çalışıyor ve fakültede eğitimine devam ederken iOS bölümünün sorumluluğunu tek başına üstleniyor. "iOS'tan sorumlu tek kişi olduğum için çalışmalarım teori bilgime göre değil, yalnızca bana verilen görevleri uygulama yeteneğime göre değerlendiriliyor."

Topluluk

Andrey, Nizhny Novgorod'da yaşıyor ve orada bile büyük bir topluluğun oluştuğunu söylüyor. Bir zamanlar Python'da arka uç geliştiricisiydi, ancak arkadaşları onu mobil geliştirmeye sürükledi - ve şimdi kendisi herkesi bunu yapmaya teşvik ediyor.

“Küresel topluluk genellikle Twitter aracılığıyla iletişim kuruyor. İnsanlar kendi bloglarını yazıyor, Youtube'a videolar kaydediyor, birbirlerini podcast'lere davet ediyor. Bir gün HQTrivia ekip liderinin konuştuğu bir sunumla ilgili bir sorum vardı. Bu, birkaç milyon kişi tarafından aynı anda oynanan bir Amerikan bilgi yarışması oyunudur. Kendisine Twitter'dan yazdım, bana cevap verdi, konuştuk ve kendisine teşekkür ettim. Topluluk son derece arkadaş canlısı, bu harika.”

Önerilen okuma listesiBaşlangıç ​​seviyesi:

Orta Seviye:

İleri düzey:

Kaynak: habr.com

Yorum ekle