Apa yang diharapkan jika Anda ingin menjadi pengembang iOS

Apa yang diharapkan jika Anda ingin menjadi pengembang iOS

Dari luar iOS, pengembangan tampak seperti klub tertutup. Untuk bekerja, Anda pasti membutuhkan komputer Apple, ekosistemnya dikontrol erat oleh satu perusahaan. Dari dalam, terkadang Anda juga dapat mendengar kontradiksi - beberapa orang mengatakan bahwa bahasa Objective-C sudah tua dan kikuk, dan yang lain mengatakan bahwa bahasa Swift yang baru terlalu kasar.

Namun demikian, pengembang masuk ke bidang ini dan, sesampainya di sana, merasa puas.

Kali ini, Marat Nurgaliev dan Boris Pavlov bercerita tentang pengalaman mereka - bagaimana mereka mempelajari profesi ini, bagaimana mereka lulus wawancara pertama, mengapa mereka ditolak. Dan Andrey Antropov, dekan, bertindak sebagai ahli Fakultas Pengembangan iOS di GeekBrains.

Pada tahun 2016, Marat Nurgaliev dari wilayah Astrakhan datang untuk mendapatkan pekerjaan sebagai pengembang seluler di sebuah perusahaan televisi lokal. Ini adalah wawancara pertamanya. Dia baru saja kembali dari ketentaraan, tanpa latihan dan pengalaman, bahkan melupakan teori yang sudah bermasalah dengannya. Satu-satunya pengalaman Marat dalam pengembangan seluler adalah tesisnya tentang analisis arus kebocoran informasi melalui aplikasi Android. Saat wawancara, ia ditanya tentang studinya, OOP dan teori lainnya, namun Marat tidak mampu menyembunyikan kesenjangan pengetahuannya.

Namun, ia tidak ditolak, melainkan diberi tugas praktis - menerapkan tampilan daftar berita menggunakan API dalam dua minggu. Baik untuk iOS dan Android. “Jika saya punya pengalaman menggunakan Android, bahkan tidak ada alat untuk membuat versi iOS. Lingkungan pengembangan aplikasi iOS hanya tersedia di Mac. Namun dua minggu kemudian saya kembali dan menunjukkan apa yang bisa saya lakukan di Android. Dengan iOS saya harus memikirkannya dengan cepat. Pada akhirnya mereka membawa saya. Lalu saya tinggal di Astrakhan. Pekerjaan TI apa pun dengan gaji di atas dua puluh cocok untuk saya.”

Siapa pengembang iOS?

Pengembang seluler membuat aplikasi untuk perangkat portabel apa pun. Ponsel cerdas, tablet, jam tangan pintar, dan semua platform lain yang mendukung Android atau iOS. Prinsip dasar pengembangan seluler tidak berbeda dengan pengembangan konvensional, namun karena alat khusus, maka pengembangan tersebut dipisahkan ke dalam arah tersendiri. Ia menggunakan alat, bahasa pemrograman, dan kerangka kerjanya sendiri.

“Untuk bekerja dengan iOS, Anda memerlukan MacBook, karena hanya MacBook yang memiliki lingkungan pengembangan Xcode yang diperlukan. Ini gratis dan didistribusikan melalui AppStore. Untuk menginstal, Anda harus memiliki ID Apple Anda dan tidak ada yang lain. Di Xcode Anda dapat mengembangkan aplikasi untuk apa saja - ponsel, tablet, jam tangan. Ada simulator dan editor bawaan untuk semuanya,” kata Andrey Antropov, dekan departemen pengembangan iOS di GeekBrains.

“Tetapi lingkungan pengembangannya bisa diinstal di Windows jika Anda menggunakan Hackintosh. Ini adalah opsi yang berfungsi, tetapi tidak langsung - tidak ada pengembang serius yang melakukan ini. Pemula membeli MacBook lama. Dan yang berpengalaman biasanya mampu membeli model terbaru.”

Bahasa - Swift atau Objective-C

Hampir semua pengembangan iOS dilakukan dengan menggunakan bahasa pemrograman Swift. Bahasa ini muncul lima tahun lalu dan sekarang secara bertahap menggantikan bahasa Objective-C lama yang telah digunakan Apple di semua aplikasinya selama lebih dari 30 tahun.

“Basis kode yang sangat besar telah terakumulasi di Objective-C, sehingga pengembang dalam kedua bahasa tersebut masih diperlukan, bergantung pada perusahaan, tugas, dan aplikasinya. Aplikasi yang ditulis bertahun-tahun yang lalu didasarkan pada Objective-C. Dan semua proyek baru dikembangkan di Swift secara default. Kini Apple melakukan banyak hal untuk membuat pengembangan simultan untuk ponsel, tablet, jam tangan, dan MacBook senyaman mungkin. Kode yang sama dapat dikompilasi dan dijalankan di mana saja. Ini tidak terjadi sebelumnya. Untuk iOS kami mengembangkannya di Swift, untuk MacOS kami menggunakan Objective-C.”

Menurut Andrey, Swift merupakan bahasa yang sangat sederhana dan ramah bagi pemula. Ini diketik dengan ketat, yang memungkinkan Anda menemukan banyak kesalahan pada tahap kompilasi proyek, dan kode yang salah tidak akan berfungsi.

“Objective-C adalah bahasa yang cukup tua - seumuran dengan bahasa C++. Pada saat dikembangkan, persyaratan bahasa sangat berbeda. Saat Swift keluar, ada bug, fungsinya terbatas, dan sintaksisnya kasar. Dan orang-orang sibuk dengan Objective-C. Telah diperbaiki selama bertahun-tahun, semua kesalahan telah diperbaiki. Tapi sekarang menurut saya Swift sama bagusnya dengan Objective-C. Meski Apple masih menggunakan keduanya dalam proyeknya. Bahasa-bahasa tersebut sebagian besar dapat dipertukarkan dan saling melengkapi. Struktur dan objek suatu bahasa dapat diubah menjadi objek dan struktur bahasa lain. Mengetahui kedua opsi itu baik, tetapi bagi pemula, Objective-C sering kali tampak mengintimidasi dan membingungkan."

latihan

“Pada pekerjaan pertama saya, atasan saya melatih saya, membantu saya dalam mengimplementasikan dan menyiapkan proyek,” kata Marat, “Tetapi bekerja di Android dan iOS pada saat yang sama itu sulit. Dibutuhkan waktu untuk membangun kembali, beralih dari proyek ke proyek, dari bahasa ke bahasa. Pada akhirnya, saya memutuskan bahwa saya harus memilih satu arah dan mempelajarinya. Saya dijual pada antarmuka Xcode dan sintaks sederhana Swift."

Marat memasuki departemen pengembangan iOS di GeekBrains. Awalnya sangat mudah, karena dia mengetahui banyak hal dari pengalaman kerja. Kursus tahunan dibagi menjadi empat kuartal. Menurut Andrey, yang pertama hanya memberikan dasar-dasarnya: “Dasar bahasa Swift, pengetahuan tentang kerangka dasar, jaringan, penyimpanan data, siklus hidup aplikasi, pengontrol, arsitektur dasar, perpustakaan utama yang digunakan semua orang, multithreading dan paralelisme dalam aplikasi."

Kuartal kedua menambahkan Objective-C. Kursus dilakukan tentang arsitektur dan pola pemrograman dasar. Pada kuartal ketiga, mereka mengajarkan gaya penulisan kode yang benar. Menjelaskan apa itu pabrik, cara menulis tes dengan benar, membuat proyek, apa itu Git-Flow, Integrasi Berkelanjutan melalui Fast Lane. Kuartal keempat dan terakhir didedikasikan untuk kerja tim, tugas praktek dan magang.

“Kuartal pertama mudah,” kata Marat, “tetapi kemudian saya mulai belajar pemrograman di Objective-C, mempelajari pola desain, prinsip Solid, Git-Flow, arsitektur proyek, pengujian aplikasi Unit dan UI, menyiapkan animasi khusus - dan kemudian saya menjadi menarik untuk dipelajari."

“Awalnya tidak berjalan mulus bagi saya di GeekBrains,” kata Boris Pavlov, dan jalurnya menuju pengembangan iOS secara umum bukanlah yang paling langsung. Anak laki-laki itu dibesarkan oleh neneknya. Dia adalah seorang arsitek, ahli matematika dan desainer dan menanamkan kecintaan pada desain pada Boris, mengajarinya menggambar dengan tangan dan menggambar. Pamannya adalah seorang administrator sistem dan keponakannya tertarik pada komputer.

Boris adalah siswa yang berprestasi, tetapi kehilangan minat belajar dan meninggalkan sekolah setelah kelas sembilan. Setelah kuliah, dia mulai bersepeda, dan komputer memudar menjadi latar belakang. Namun suatu hari Boris mengalami cedera tulang belakang, yang menghalanginya untuk melanjutkan karir olahraganya.

Ia mulai belajar C++ dengan seorang guru di Institut Fisika Matahari-Terestrial Irkutsk. Kemudian saya menjadi tertarik dengan pengembangan game dan mencoba beralih ke C#. Dan akhirnya, seperti Marat, dia terpikat oleh bahasa Swift.

“Saya memutuskan untuk mengambil kursus pengantar gratis di GeekBrains. Sejujurnya, dia sangat membosankan, lamban, dan tidak dapat dipahami,” kenang Boris, “guru berbicara tentang ciri-ciri bahasa tersebut, tetapi terburu-buru dari satu topik ke topik lainnya tanpa mengungkapkan intinya. Ketika kursus berakhir, saya masih tidak mengerti apa pun.”

Oleh karena itu, setelah kursus pengantar, Boris tidak mengikuti pelatihan selama setahun, tetapi dalam kursus singkat tiga bulan, di mana mereka mengajarkan dasar-dasar profesinya. “Saya menemukan guru-guru yang sangat baik di sana, dan mereka menjelaskan semuanya dengan cukup jelas.”

“Kami sering dikritik, disinyalir manual pelatihan kami tidak sepenuhnya mutakhir, ada ketidakakuratan. Namun kursusnya terus diperbarui, dan para guru selalu berbicara tentang inovasi. Dari kelompok yang saya pimpin, banyak yang mendapatkan pekerjaan setelah kuartal pertama. Tentu biasanya mereka adalah orang-orang yang memiliki pengalaman pemrograman,” kata Andrey, “Di sisi lain, semua ilmu tidak bisa disampaikan dalam satu mata kuliah. Interaksi klien jaringan dalam kehidupan tidak dapat dimasukkan ke dalam sepuluh kuliah dua jam. Dan jika Anda hanya mengikuti kursus dan tidak melakukan apa pun, maka Anda tidak akan memiliki pengetahuan yang cukup. Jika Anda belajar setiap hari sepanjang tahun, maka dengan kecepatan seperti ini hanya orang malas yang tidak akan mendapatkan pekerjaan. Karena permintaan terhadap profesi ini sangat tinggi.”

Apa yang diharapkan jika Anda ingin menjadi pengembang iOS

Anda dapat melihat paling banyak lowongan terbaru untuk pengembang iOS dan berlangganan yang baru.

Bekerja

Namun baik Marat maupun Boris tidak mendapatkan pekerjaan dengan mudah.

“Beberapa perusahaan besar telah lama mengembangkan aplikasi iOS di Objective-C, dan terus mempertahankan basis kode lama. Sayangnya, saya tidak punya argumen kuat untuk memaksa mereka menggunakan Swift secara eksklusif. Terutama mereka yang menggunakan aturan “jangan sentuh apa yang berhasil,” kata Marat, “Sedikit perhatian diberikan pada arahan Objective-C di Geekbrains. Ini lebih bersifat informasional. Tetapi setiap perusahaan yang saya wawancarai menanyakan tentang Objective-C. Dan karena studi saya terfokus pada Swift, seperti pekerjaan saya sebelumnya, saya menerima penolakan saat wawancara.”

“Setelah belajar, saya sendiri hanya mengetahui dasar-dasar yang paling dangkal, yang dengannya saya dapat membuat aplikasi paling sederhana,” kata Boris. “Untuk pekerjaan, tentu saja, itu tidak cukup, tetapi saya senang dengan hal ini. Sulit mencari pekerjaan di Irkutsk. Lebih tepatnya, tidak sama sekali. Saya memutuskan untuk mencari di kota lain. Dalam hal jumlah lowongan, Krasnodar, Moskow dan St. Petersburg ternyata menjadi yang paling relevan. Saya memutuskan untuk pergi ke St. Petersburg - lebih dekat ke Eropa.

Tapi semuanya ternyata tidak begitu cerah. Bahkan seorang junior pun akan dimaafkan atas apa yang tidak dia ketahui. Saya belum menemukan pekerjaan. Saya bekerja untuk “terima kasih”, mendapatkan pengalaman. Saya memahami bahwa ini bukan yang saya inginkan, tetapi saya tertarik, dan ini mendorong saya. Saya ingin menimba ilmu.”

Andrey percaya bahwa pendatang baru harus mencari magang daripada pekerjaan. Jika pengetahuan Anda sangat sedikit, maka wajar jika magang tidak dibayar. Andrey menyarankan untuk melamar lowongan junior ke perusahaan besar yang proses kerjanya sudah mapan.

“Ketika Anda memahami cara kerja proses pengembangan perangkat lunak, navigasi dan pencarian pekerjaan lebih lanjut akan menjadi lebih mudah, tergantung pada keinginan Anda. Beberapa orang melakukan pengembangan mandiri, membuat game sendiri, mengunggahnya ke toko, dan memonetisasinya sendiri. Beberapa bekerja di perusahaan besar dengan aturan ketat. Beberapa orang menghasilkan uang di studio kecil yang membuat perangkat lunak khusus, dan di sana mereka dapat menyaksikan keseluruhan prosesnya - mulai dari membuat proyek dari awal hingga mengirimkannya ke toko.”

Gaji

Gaji pengembang iOS, seperti pengembang lainnya, bergantung pada pertanyaan “Moskow atau Rusia”. Namun karena kekhasan industrinya - banyaknya pekerjaan jarak jauh, peluang untuk relokasi, dan pekerjaan yang tidak berada di pasar regional - jumlahnya semakin mendekati satu sama lain.

Apa yang diharapkan jika Anda ingin menjadi pengembang iOS

Menurut kalkulator gaji My Circle, gaji rata-rata pengembang iOS sedikit lebih rendah 140 000 rubel.

“Seorang junior di tingkat yang sangat rendah sering kali bekerja secara gratis atau dengan uang simbolis - 20-30 ribu rubel. Jika seorang junior dengan sengaja diangkat ke posisinya, dia akan menerima 50 hingga 80 ribu. Kelompok menengah menerima 100 hingga 150, dan terkadang bahkan hingga 200. Kelompok senior tidak menerima kurang dari 200. Saya pikir gaji mereka sekitar 200-300. Dan untuk pemimpin tim, jumlahnya lebih dari 300.”

Apa yang diharapkan jika Anda ingin menjadi pengembang iOS

Wawancara

“Wawancara pertama dilakukan melalui Skype. Yang mengejutkan saya, ternyata Google,” kenang Boris, “saat itu saya baru saja pindah ke St. Petersburg dan mulai mencari pekerjaan. Saya menerima lamaran untuk posisi pengembang iOS. Bukan junior, bukan menengah, bukan senior - hanya seorang pengembang. Saya senang dan mulai berkorespondensi dengan manajer. Saya diminta untuk menyelesaikan tugas teknis: Saya harus menulis aplikasi lelucon tentang Chuck Norris. Saya menulisnya. Mereka memberi tahu saya bahwa semuanya baik-baik saja dan menjadwalkan wawancara online.

Kami saling menelepon. Seorang gadis baik berbicara kepada saya. Namun mereka tidak menanyakan pertanyaan apapun tentang kemahiran berbahasa - hanya berbagai soal logika, misalnya, “Waktu menunjukkan pukul 15, berapa derajat antara jarum jam dan menit?” atau “Sebuah tiang panjangnya 15 meter, a siput merangkak ke atas 10 meter di siang hari, dan turun 3 meter di malam hari.” Dalam berapa hari dia akan merangkak ke puncak?”, dan beberapa lagi yang serupa.

Lalu ada pertanyaan yang sangat aneh - mengapa saya menyukai Apple dan bagaimana perasaan saya terhadap Tim Cook. Saya mengatakan bahwa perusahaan secara keseluruhan bersikap positif, tetapi negatif terhadapnya, karena uang yang penting baginya, bukan produk.

Ketika pertanyaan tentang Swift dimulai, pengetahuan saya hanya cukup untuk pola pemrograman dan dasar-dasar OOP. Kami mengucapkan selamat tinggal, seminggu kemudian mereka menelepon saya kembali dan mengatakan bahwa saya tidak cocok. Sebenarnya, saya memperoleh banyak pengalaman dari sini: Anda memerlukan pengetahuan, Anda memerlukan banyak pengetahuan - baik teori maupun praktik.”

Andrey mengatakan bahwa “hal pertama yang ditanyakan setiap orang selama wawancara adalah siklus hidup pengontrol. Mereka sangat suka menanyakan beberapa pola pemrograman sederhana. Mereka pasti akan bertanya tentang pengalaman Anda menggunakan perpustakaan populer. Pasti akan muncul pertanyaan mengenai perbedaan Swift Value Type dengan reference Type, tentang Automatic Referral Counting dan manajemen memori. Mereka mungkin bertanya bagaimana mereka mengimplementasikan penyimpanan data dalam aplikasi, dan apakah mereka mengimplementasikan permintaan jaringan. Mereka akan bertanya tentang dasar-dasar REST dan JSON. Yang junior tidak akan ditanyai hal-hal spesifik dan seluk-beluknya. Setidaknya aku tidak bertanya."

Pengalaman berbeda dialami Boris: “Bahkan ketika saya minta magang, menyelesaikan tugas teknis dan mengatakan gaji tidak penting bagi saya, asalkan cukup untuk menyewa apartemen, saya tetap ditolak. Saya membaca artikel, mencoba memahami apa yang dibutuhkan perekrut dari pendatang baru. Tapi mereka kebanyakan gagal dalam teori. Untuk beberapa alasan, mereka mengajukan pertanyaan dari liga-liga besar yang tidak mempedulikan pendatang baru.”

Marat lebih beruntung. Sekarang dia bekerja di sebuah perusahaan transportasi dan sendirian memimpin departemen iOS, sambil melanjutkan studinya di fakultas. “Karena saya satu-satunya yang bertanggung jawab atas iOS, pekerjaan saya hanya dinilai berdasarkan kemampuan saya melaksanakan tugas yang diberikan kepada saya, dan bukan berdasarkan pengetahuan teori saya.”

Masyarakat

Andrey tinggal di Nizhny Novgorod dan berkata bahwa komunitas besar pun telah terbentuk di sana. Dulunya dia adalah seorang pengembang backend dengan Python, tetapi teman-temannya menyeretnya ke dalam pengembangan seluler - dan sekarang dia sendiri mendorong semua orang untuk melakukannya.

“Komunitas global biasanya berkomunikasi melalui Twitter. Orang-orang menulis blog sendiri, merekam video di Youtube, saling mengundang ke podcast. Suatu hari saya mendapat pertanyaan tentang presentasi dimana ketua tim HQTrivia berbicara. Ini adalah permainan kuis Amerika yang dimainkan secara bersamaan oleh beberapa juta orang. Saya menulis kepadanya di Twitter, dia menjawab saya, kami berbicara, dan saya berterima kasih padanya. Komunitasnya sangat ramah, dan itu luar biasa.”

Daftar literatur yang direkomendasikanLevel pemula:

Level rata-rata:

Tingkat Lanjut:

Sumber: www.habr.com

Tambah komentar