Apa yang diharapkan jika anda ingin menjadi pembangun iOS

Apa yang diharapkan jika anda ingin menjadi pembangun iOS

Dari luar iOS, pembangunan boleh kelihatan seperti kelab tertutup. Untuk bekerja, anda pasti memerlukan komputer Apple; ekosistem dikawal rapi oleh satu syarikat. Dari dalam, anda juga kadangkala boleh mendengar percanggahan - ada yang mengatakan bahawa bahasa Objektif-C adalah lama dan kekok, dan yang lain mengatakan bahawa bahasa Swift yang baharu terlalu kasar.

Walau bagaimanapun, pemaju pergi ke kawasan ini dan, sekali di sana, berpuas hati.

Kali ini, Marat Nurgaliev dan Boris Pavlov memberitahu kami tentang pengalaman mereka - bagaimana mereka mempelajari profesion, bagaimana mereka lulus temu duga pertama mereka, mengapa mereka menerima penolakan. Dan Andrey Antropov, dekan, bertindak sebagai pakar Fakulti Pembangunan iOS di GeekBrains.

Pada 2016, Marat Nurgaliev dari wilayah Astrakhan datang untuk mendapatkan pekerjaan sebagai pembangun mudah alih di sebuah syarikat televisyen tempatan. Ini adalah wawancara pertamanya. Dia baru sahaja pulang dari tentera, tanpa latihan dan pengalaman, walaupun telah melupakan teori, yang dia sudah menghadapi masalah. Satu-satunya pengalaman Marat dalam pembangunan mudah alih ialah tesisnya tentang menganalisis aliran kebocoran maklumat melalui aplikasi Android. Pada temu bual itu, dia ditanya tentang pengajiannya, OOP dan teori lain, tetapi Marat tidak dapat menyembunyikan jurang dalam pengetahuannya.

Bagaimanapun, dia tidak ditolak, tetapi diberi tugas praktikal - untuk melaksanakan paparan senarai berita menggunakan API dalam masa dua minggu. Kedua-duanya untuk iOS dan Android. "Jika saya mempunyai pengalaman menggunakan Android, tiada alat untuk mencipta versi iOS. Persekitaran pembangunan aplikasi iOS hanya tersedia pada Mac. Tetapi dua minggu kemudian saya kembali dan menunjukkan perkara yang boleh saya lakukan pada Android. Dengan iOS saya terpaksa memikirkannya dengan cepat. Akhirnya mereka membawa saya. Kemudian saya tinggal di Astrakhan. Mana-mana pekerjaan IT dengan gaji melebihi dua puluh adalah sesuai untuk saya.”

Siapa pembangun iOS?

Pembangun mudah alih membuat aplikasi untuk mana-mana peranti mudah alih. Telefon pintar, tablet, jam tangan pintar dan semua platform lain yang menyokong Android atau iOS. Prinsip asas pembangunan mudah alih tidak berbeza daripada pembangunan konvensional, tetapi disebabkan alatan khusus, ia telah dipisahkan ke arah yang berasingan. Ia menggunakan alat, bahasa pengaturcaraan dan rangka kerjanya sendiri.

“Untuk bekerja dengan iOS, anda memerlukan MacBook, kerana hanya ia mempunyai persekitaran pembangunan Xcode yang diperlukan. Ia adalah percuma dan diedarkan melalui AppStore. Untuk memasang, anda perlu mempunyai Apple ID anda dan tiada yang lain. Dalam Xcode anda boleh membangunkan aplikasi untuk apa sahaja - telefon, tablet, jam tangan. Terdapat simulator dan editor terbina dalam untuk segala-galanya, "kata Andrey Antropov, dekan jabatan pembangunan iOS di GeekBrains.

“Tetapi persekitaran pembangunan boleh dipasang pada Windows jika anda menggunakan Hackintosh. Ini adalah pilihan yang berfungsi tetapi bulat - tiada pembangun yang serius melakukan ini. Pemula membeli MacBook lama. Dan mereka yang berpengalaman biasanya mampu membeli model terkini.”

Bahasa - Swift atau Objective-C

Hampir semua pembangunan iOS dilakukan menggunakan bahasa pengaturcaraan Swift. Ia muncul lima tahun lalu dan kini secara beransur-ansur menggantikan bahasa Objective-C lama, yang telah digunakan oleh Apple dalam semua aplikasinya selama lebih daripada 30 tahun.

“Pangkalan kod yang besar telah terkumpul dalam Objektif-C, jadi pembangun dalam kedua-dua bahasa masih diperlukan, bergantung pada syarikat, tugas dan aplikasinya. Permohonan yang ditulis bertahun-tahun yang lalu adalah berdasarkan Objektif-C. Dan semua projek baharu dibangunkan dalam Swift secara lalai. Sekarang Apple melakukan banyak perkara untuk membuat pembangunan serentak untuk telefon, tablet, jam tangan dan MacBook semudah mungkin. Kod yang sama boleh disusun dan dijalankan di mana-mana. Ini tidak berlaku sebelum ini. Untuk iOS yang kami bangunkan dalam Swift, untuk MacOS kami menggunakan Objective-C."

Menurut Andrey, Swift adalah bahasa yang sangat mudah yang mesra untuk pemula. Ia ditaip dengan ketat, yang membolehkan anda menangkap banyak ralat pada peringkat penyusunan projek, dan kod yang salah tidak akan berfungsi.

“Objective-C ialah bahasa yang agak lama - sebaya dengan bahasa C++. Pada masa ia dibangunkan, keperluan untuk bahasa adalah berbeza sama sekali. Apabila Swift keluar, ia adalah buggy, fungsinya terhad, dan sintaksnya kasar. Dan orang ramai mempunyai tangan mereka penuh dengan Objektif-C. Ia telah diperbaiki selama bertahun-tahun, semua kesilapan di sana telah diperbetulkan. Tetapi sekarang saya fikir Swift adalah sebaik Objective-C. Walaupun Apple masih menggunakan kedua-duanya dalam projeknya. Bahasa-bahasa itu sebahagian besarnya boleh ditukar ganti dan saling melengkapi. Struktur dan objek sesuatu bahasa boleh diubah menjadi objek dan struktur bahasa lain. Adalah baik untuk mengetahui kedua-dua pilihan, tetapi untuk pemula, Objektif-C selalunya kelihatan menakutkan dan mengelirukan."

latihan

"Pada pekerjaan pertama saya, bos saya melatih saya, membantu saya dalam melaksanakan dan menyediakan projek," kata Marat, "Tetapi bekerja pada Android dan iOS pada masa yang sama adalah sukar. Ia mengambil masa untuk membina semula, bertukar dari projek ke projek, dari bahasa ke bahasa. Akhirnya, saya memutuskan bahawa saya perlu memilih satu arah dan mengkajinya. Saya telah dijual pada antara muka Xcode dan sintaks ringkas Swift."

Marat memasuki jabatan pembangunan iOS di GeekBrains. Pada mulanya ia sangat mudah, kerana dia tahu banyak perkara dari pengalaman kerja. Kursus tahunan dibahagikan kepada empat suku. Menurut Andrey, yang pertama hanya memberikan asas-asas: "Asas bahasa Swift, pengetahuan tentang rangka kerja asas, rangkaian, penyimpanan data, kitaran hayat aplikasi, pengawal, seni bina asas, perpustakaan utama yang digunakan semua orang, multithreading dan selari dalam aplikasi.”

Suku kedua menambah Objektif-C. Satu kursus dijalankan mengenai seni bina dan corak pengaturcaraan asas. Pada suku ketiga, mereka mengajar gaya penulisan kod yang betul. Ia menerangkan apa itu kilang, cara menulis ujian dengan betul, mencipta projek, apa itu Git-Flow, Integrasi Berterusan melalui Fast Lane. Suku keempat dan terakhir didedikasikan untuk kerja berpasukan, tugasan praktikal dan latihan amali.

"Suku pertama adalah mudah, " kata Marat, "tetapi kemudian saya mula belajar pengaturcaraan dalam Objektif-C, mengkaji corak reka bentuk, prinsip Solid, Git-Flow, seni bina projek, ujian Unit dan UI aplikasi, menyediakan animasi tersuai - dan kemudian saya Ia menjadi menarik untuk dipelajari."

"Ia tidak bermula dengan lancar untuk saya di GeekBrains," kata Boris Pavlov, dan laluannya ke pembangunan iOS secara amnya bukanlah yang paling langsung. Budak itu dibesarkan oleh neneknya. Dia seorang arkitek, ahli matematik dan pereka bentuk dan menanamkan kecintaan kepada Boris terhadap reka bentuk, mengajarnya melukis dengan tangan dan melukis. Bapa saudaranya adalah seorang pentadbir sistem dan meminati anak saudaranya dalam komputer.

Boris adalah seorang pelajar yang cemerlang, tetapi hilang minat untuk belajar dan meninggalkan sekolah selepas sembilan gred. Selepas kolej, dia berbasikal, dan komputer memudar ke latar belakang. Tetapi suatu hari Boris menerima kecederaan tulang belakang, yang menghalangnya daripada meneruskan kerjaya sukannya.

Dia mula belajar C++ dengan seorang guru di Irkutsk Institute of Solar-Terrestrial Physics. Kemudian saya berminat dengan pembangunan permainan dan cuba beralih kepada C#. Dan akhirnya, seperti Marat, dia terpikat dengan bahasa Swift.

“Saya memutuskan untuk mengikuti kursus pengenalan percuma di GeekBrains. Sejujurnya, dia sangat membosankan, lembap dan tidak dapat difahami, "kata Boris, "guru bercakap tentang ciri-ciri bahasa itu, tetapi bergegas dari satu topik ke topik lain tanpa mendedahkan intipatinya. Apabila kursus tamat, saya masih tidak faham apa-apa.”

Oleh itu, selepas kursus pengenalan, Boris tidak mendaftar dalam latihan selama setahun, tetapi dalam kursus tiga bulan yang singkat, di mana mereka mengajar asas-asas profesion. "Saya dapati guru yang sangat baik di sana, dan mereka menerangkan semuanya dengan jelas."

“Kami sering dikritik, kononnya manual latihan kami tidak dikemas kini sepenuhnya, ada yang tidak tepat. Tetapi kursus sentiasa dikemas kini, dan guru sentiasa bercakap tentang inovasi. Daripada kumpulan yang saya pimpin, ramai yang mendapat pekerjaan selepas suku pertama. Sudah tentu, biasanya mereka adalah orang yang mempunyai pengalaman pengaturcaraan, "kata Andrey, "Sebaliknya, semua pengetahuan tidak boleh disampaikan dalam satu kursus. Interaksi pelanggan rangkaian dalam kehidupan tidak boleh dimuatkan ke dalam sepuluh kuliah dua jam. Dan jika anda hanya pergi ke kursus dan tidak melakukan apa-apa lagi, maka anda tidak akan mempunyai pengetahuan yang mencukupi. Jika anda belajar setiap hari sepanjang tahun, maka pada kadar ini hanya orang yang malas tidak akan mendapat pekerjaan. Kerana permintaan dalam profesion sangat tinggi.”

Apa yang diharapkan jika anda ingin menjadi pembangun iOS

Anda boleh melihat paling banyak jawatan kosong terkini untuk pembangun iOS dan melanggan yang baharu.

Работа

Tetapi Marat mahupun Boris tidak mendapat pekerjaan dengan begitu mudah.

“Sesetengah firma besar telah lama membangunkan aplikasi iOS dalam Objektif-C, dan terus mengekalkan asas kod lama. Malangnya, saya tidak mempunyai hujah yang menarik untuk memaksa mereka menggunakan Swift secara eksklusif. Terutama mereka yang menggunakan peraturan "jangan sentuh apa yang berkesan," kata Marat, "Sedikit perhatian diberikan kepada arah Objektif-C di Geekbrains. Ia lebih bersifat maklumat. Tetapi setiap syarikat yang saya temu duga bertanya tentang Objektif-C. Dan memandangkan pengajian saya tertumpu kepada Swift, seperti kerja saya sebelum ini, saya menerima penolakan semasa temu duga.”

"Selepas belajar, saya tahu sendiri hanya asas yang paling cetek, dengan bantuan yang saya boleh membuat aplikasi yang paling mudah," kata Boris. "Untuk kerja, sudah tentu, ia tidak mencukupi, tetapi saya gembira dengan ini. Sukar untuk mencari pekerjaan di Irkutsk. Untuk menjadi lebih tepat - tidak sama sekali. Saya memutuskan untuk mencari di bandar lain. Dari segi bilangan kekosongan, Krasnodar, Moscow dan St. Petersburg ternyata paling relevan. Saya memutuskan untuk pergi ke St. Petersburg - lebih dekat dengan Eropah.

Tetapi semuanya ternyata tidak begitu cerah. Malah seorang junior akan dimaafkan untuk apa yang dia tidak tahu. Saya belum jumpa kerja lagi. Saya bekerja untuk "terima kasih", menimba pengalaman. Saya faham bahawa ini bukan yang saya mahukan, tetapi saya berminat, dan ini mendorong saya. Saya ingin menimba ilmu."

Andrey percaya bahawa pendatang baru harus mencari latihan dan bukannya pekerjaan. Sekiranya anda mempunyai pengetahuan yang sangat sedikit, maka adalah perkara biasa untuk latihan amali tidak dibayar. Andrey menasihatkan memohon jawatan kosong junior kepada syarikat besar di mana proses kerja telah ditetapkan.

“Apabila anda memahami bagaimana proses pembangunan perisian berfungsi, ia akan menjadi lebih mudah untuk mengemudi dan mencari kerja selanjutnya, bergantung pada keinginan anda. Sesetengah orang pergi ke pembangunan bebas, membuat permainan untuk diri mereka sendiri, memuat naiknya ke kedai dan mengewangkannya sendiri. Ada yang bekerja untuk syarikat besar dengan peraturan yang ketat. Sesetengah orang membuat wang di studio kecil yang membuat perisian tersuai, dan di sana mereka boleh menonton keseluruhan proses - daripada mencipta projek dari awal hingga menghantarnya ke kedai."

Gaji

Gaji pemaju iOS, seperti yang lain, bergantung pada soalan "Moscow atau Rusia". Tetapi disebabkan oleh spesifikasi industri - banyak kerja jauh, peluang untuk penempatan semula dan bekerja bukan dalam pasaran serantau - jumlahnya semakin menghampiri satu sama lain.

Apa yang diharapkan jika anda ingin menjadi pembangun iOS

Menurut kalkulator gaji My Circle, purata gaji pembangun iOS adalah kurang sedikit Rubel 140 000.

"Seorang junior pada tahap yang sangat rendah sering bekerja secara percuma atau untuk wang simbolik - 20-30 ribu rubel. Jika seorang junior sengaja diambil ke jawatannya, dia akan menerima dari 50 hingga 80 ribu. Orang tengah menerima dari 100 hingga 150, dan kadangkala sehingga 200. Warga emas tidak menerima kurang daripada 200. Saya rasa gaji mereka sekitar 200-300. Dan untuk ketua pasukan, sewajarnya, ia melebihi 300."

Apa yang diharapkan jika anda ingin menjadi pembangun iOS

Temuduga

“Temu bual pertama berlaku di Skype. Terkejut saya, ia adalah Google,” kata Boris, “kemudian saya baru sahaja berpindah ke St. Petersburg dan mula mencari kerja. Saya menerima permohonan untuk jawatan pembangun iOS. Bukan junior, bukan pertengahan, bukan senior - hanya pemaju. Saya gembira dan mula berkomunikasi dengan pengurus. Saya diminta untuk menyelesaikan tugas teknikal: Saya terpaksa menulis permohonan untuk jenaka tentang Chuck Norris. Saya menulisnya. Mereka memberitahu saya semuanya hebat dan menjadualkan temu bual dalam talian.

Kami memanggil satu sama lain. Seorang gadis yang baik bercakap dengan saya. Tetapi mereka tidak bertanya apa-apa soalan tentang penguasaan bahasa - hanya pelbagai masalah logik, contohnya, "Masa ialah 15:15, berapa darjah antara jarum jam dan minit?" atau "Tiang adalah 10 meter panjang, a siput merangkak 3 meter ke atas pada siang hari, dan turun 1 meter pada waktu malam. Dalam berapa hari dia akan merangkak ke puncak?“, dan beberapa lagi yang serupa.

Kemudian ada soalan yang sangat pelik - mengapa saya suka Apple dan perasaan saya tentang Tim Cook. Saya berkata bahawa syarikat itu secara keseluruhannya positif, tetapi sebaliknya negatif terhadapnya, kerana wang adalah penting baginya, bukan produk.

Apabila soalan tentang Swift bermula, pengetahuan saya hanya cukup untuk corak pengaturcaraan dan asas OOP. Kami mengucapkan selamat tinggal, seminggu kemudian mereka menghubungi saya semula dan mengatakan bahawa saya tidak sesuai. Sebenarnya, saya mendapat pengalaman yang sangat besar daripada ini: anda memerlukan pengetahuan, anda memerlukan banyaknya - kedua-dua teori dan praktikal."

Andrey mengatakan bahawa "perkara pertama semua orang ditanya semasa temu duga ialah kitaran hayat pengawal. Mereka sangat suka meminta beberapa corak pengaturcaraan yang mudah. Mereka pasti akan bertanya tentang pengalaman anda menggunakan perpustakaan popular. Pasti akan ada soalan tentang perbezaan dalam Jenis Nilai Swift daripada Jenis Rujukan, tentang Pengiraan Rujukan Automatik dan pengurusan memori. Mereka mungkin bertanya bagaimana mereka melaksanakan storan data dalam aplikasi dan sama ada mereka melaksanakan permintaan rangkaian. Mereka akan bertanya tentang asas REST dan JSON. Junior tidak akan diminta untuk perkara tertentu dan kehalusan. Sekurang-kurangnya saya tidak bertanya."

Boris mempunyai pengalaman yang berbeza: "Walaupun saya meminta latihan, menyelesaikan tugas teknikal dan mengatakan bahawa gaji itu tidak penting bagi saya, selagi ia cukup untuk menyewa sebuah apartmen, saya masih ditolak. Saya membaca artikel, cuba memahami apa yang diperlukan oleh perekrut daripada pendatang baru. Tetapi mereka kebanyakannya gagal dalam teori. Atas sebab tertentu, mereka bertanya soalan daripada liga utama yang tidak membimbangkan pendatang baru.”

Marat lebih bertuah. Kini dia bekerja di syarikat pengangkutan dan bersendirian bertanggungjawab di bahagian iOS, sambil menyambung pelajaran di fakulti. "Memandangkan saya satu-satunya yang bertanggungjawab untuk iOS, kerja saya hanya dinilai oleh keupayaan saya untuk melaksanakan tugas yang diberikan kepada saya, dan bukan oleh pengetahuan saya tentang teori."

Komuniti

Andrey tinggal di Nizhny Novgorod dan mengatakan bahawa walaupun di sana komuniti yang hebat telah terbentuk. Pada suatu masa dahulu, dia adalah pembangun bahagian belakang dalam Python, tetapi rakannya mengheretnya ke dalam pembangunan mudah alih - dan kini dia sendiri menggalakkan semua orang melakukannya.

“Komuniti global biasanya berkomunikasi melalui Twitter. Orang menulis blog mereka sendiri, merakam video di Youtube, menjemput satu sama lain ke podcast. Suatu hari saya mempunyai soalan tentang pembentangan di mana ketua pasukan HQTrivia bercakap. Ini adalah permainan kuiz Amerika yang dimainkan secara serentak oleh beberapa juta orang. Saya menulis kepadanya di Twitter, dia menjawab saya, kami bercakap, dan saya berterima kasih kepadanya. Komunitinya sangat mesra, yang sangat bagus.”

Senarai literatur yang disyorkanTahap pemula:

Tahap purata:

Tahap maju:

Sumber: www.habr.com

Tambah komen