Apa yang diharapkan jika Anda ingin menjadi pengembang iOS



Di sisi iOS, pengembangan mungkin tampak seperti klub tertutup. Untuk bekerja, Anda pasti membutuhkan komputer dari Apple, satu perusahaan memantau ekosistem dengan cermat. Kontradiksi kadang-kadang juga terdengar dari dalam - seseorang mengatakan bahwa bahasa Objective-C sudah tua dan canggung, dan seseorang yang bahasa Swift baru terlalu mentah.

Namun demikian, para pengembang masuk ke area ini dan, setelah sampai di sana, puas.

Kali ini, Marat Nurgaliev dan Boris Pavlov memberi tahu kami tentang pengalaman mereka - bagaimana mereka mempelajari profesi, bagaimana wawancara pertama diadakan, mengapa mereka ditolak. Dan ahlinya adalah Andrei Antropov, dekan departemen pengembangan iOS di GeekBrains.

Pada 2016, Marat Nurgaliyev dari wilayah Astrakhan datang untuk mendapatkan pekerjaan sebagai pengembang ponsel di perusahaan televisi lokal. Ini wawancara pertamanya. Dia baru saja kembali dari ketentaraan, tanpa latihan dan pengalaman, setelah melupakan bahkan teori yang dengannya ada masalah. Satu-satunya pengalaman dalam pengembangan ponsel di Marat adalah tesis tentang analisis arus kebocoran informasi melalui aplikasi Android. Pada wawancara dia ditanya tentang studi, PLO dan teori lainnya, tetapi Marat tidak bisa menyembunyikan kesenjangan pengetahuan.

Namun demikian, ia tidak ditolak, tetapi diberi tugas praktis - untuk mengimplementasikan tampilan daftar berita menggunakan API dalam dua minggu. Baik di bawah iOS, dan di bawah Android. “Jika saya punya pengalaman di Android, maka tidak ada alat untuk membuat versi iOS. Lingkungan pengembangan ios hanya tersedia di Mac. Tapi dua minggu kemudian saya kembali, menunjukkan bahwa saya bisa di Android. Dengan iOS, saya harus keluar saat bepergian. Akibatnya, mereka menangkap saya. Kemudian saya tinggal di Astrakhan. Pekerjaan apa pun di TI dengan gaji lebih dari 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. Dasar fundamental pengembangan ponsel tidak berbeda dari biasanya, tetapi karena alat khusus itu telah dipilih dalam arah yang terpisah. Ini menggunakan alat sendiri, bahasa pemrograman dan kerangka kerja.

“Untuk menggunakan iOS, Anda memerlukan macbook, karena hanya itu yang memiliki lingkungan pengembangan Xcode yang diperlukan. Ini gratis dan didistribusikan melalui AppStore app store. Untuk menginstal, Anda harus memiliki ID Apple Anda dan tidak ada yang lain. Di Xcode, Anda dapat mengembangkan aplikasi untuk apa saja - telepon, tablet, jam tangan. Ada simulator dan editor bawaan untuk semuanya, ”kata Andrei Antropov, Dekan Departemen Pengembangan iOS di GeekBrains.

“Tapi lingkungan pengembangan juga bisa diletakkan di Windows, jika Anda menggunakan Hackintosh. Ini adalah opsi yang berfungsi, tetapi bundaran - tidak ada pengembang serius yang melakukannya. Pemula membeli MacBook lama. Dan yang berpengalaman biasanya dapat membeli model terbaru. "


Bahasa - Swift atau Objective-C


Hampir semua pengembangan iOS dilakukan menggunakan bahasa pemrograman Swift. Itu muncul lima tahun yang lalu dan sekarang secara bertahap menggantikan bahasa Objective-C lama yang telah digunakan Apple dalam semua aplikasi selama lebih dari 30 tahun.

“Objective-C memiliki basis kode yang besar, sehingga pengembang masih diperlukan dalam kedua bahasa, tergantung pada perusahaan, tugas dan aplikasinya. Aplikasi yang ditulis bertahun-tahun lalu didasarkan pada Objective-C. Dan semua proyek baru dikembangkan secara default di Swift. Sekarang Apple melakukan banyak hal untuk melakukan pengembangan simultan untuk ponsel, tablet, jam tangan dan MacBook senyaman mungkin. Kode yang sama dapat dikompilasi dan dijalankan di mana-mana. Ini tidak terjadi sebelumnya. Untuk iOS yang kami kembangkan di Swift, untuk MacOS kami menggunakan Objective-C. "

Menurut Andrey, Swift adalah bahasa yang sangat sederhana, ramah untuk pemula. Itu sangat diketik, ini memungkinkan Anda untuk menangkap banyak kesalahan pada tahap kompilasi proyek, dan kode yang salah tidak akan berfungsi.

“Objective-C adalah bahasa yang cukup tua - seusia dengan C ++. Pada saat dikembangkan, persyaratan untuk bahasa benar-benar berbeda. Ketika Swift muncul, ada banyak bug di dalamnya, fungsinya terbatas, sintaksinya kasar. Dan pada Objective-C orang-orang memiliki tangan penuh. Dia membaik selama bertahun-tahun, semua kesalahan di sana diperbaiki. Tapi sekarang, saya pikir Swift tidak kalah dengan Objective-C. Meskipun bahkan Apple masih menggunakan keduanya dalam proyek-proyeknya. Bahasa sebagian besar dipertukarkan dan saling melengkapi. Struktur dan objek dari satu bahasa dapat diubah menjadi objek dan struktur dari bahasa lain. Akan menyenangkan untuk mengetahui kedua opsi, tetapi untuk pemula, Objective-C sering tampak menakutkan dan tidak dapat dipahami. "


Pelatihan


“Pada pekerjaan pertama saya, kepala sekolah melatih saya, membantu dalam implementasi dan pengaturan proyek,” kata Marat, “tetapi bekerja di Android dan iOS sulit pada saat yang sama. Dibutuhkan waktu untuk membangun kembali, beralih dari proyek ke proyek, dari bahasa ke bahasa. Pada akhirnya, saya memutuskan bahwa saya perlu memilih satu arah dan mempelajarinya. Saya disuap oleh antarmuka Xcode dan sintaks Swift yang sederhana. ”

Marat memasuki departemen pengembangan iOS di GeekBrains. Awalnya itu sangat mudah, karena dia tahu banyak hal dari pengalaman kerjanya. Tingkat tahunan dibagi menjadi empat kuartal. Menurut Andrei, hanya pangkalan yang diberikan dalam yang pertama: "Dasar bahasa Swift, pengetahuan tentang kerangka dasar, interaksi jaringan, penyimpanan data, siklus hidup suatu aplikasi, pengontrol, arsitektur dasar, perpustakaan utama yang digunakan semua orang, multithreading dan konkurensi dalam aplikasi."

Pada kuartal kedua, Objective-C ditambahkan. Kursus arsitektur, pola pemrograman dasar. Kuartal ketiga diajarkan cara yang benar untuk menulis kode. Ini memberitahu pabrik apa, bagaimana menulis tes dengan benar, membentuk proyek, apa Git-Flow, Integrasi Berkelanjutan melalui Fast Lane. Kuartal keempat dan terakhir didedikasikan untuk kerja tim, tugas praktis dan magang.

“Kuartal pertama itu mudah,” kata Marat, “tetapi kemudian mempelajari pemrograman di Objective-C, studi pola desain, prinsip-prinsip Solid, Git-Flow, arsitektur proyek, aplikasi pengujian Unit dan UI, pengaturan animasi kustom, dan kemudian saya mulai Menjadi menarik untuk dipelajari. ”


“Segala sesuatu di GeekBrains tidak dimulai dengan sangat mulus,” kata Boris Pavlov, dan jalannya menuju pengembangan iOS secara umum bukanlah yang paling langsung. Pria itu dibesarkan oleh neneknya. Dia adalah seorang arsitek, ahli matematika dan perancang dan menanamkan kecintaan pada desain pada Boris, diajari menggambar dengan tangan dan menggambar. Pamannya adalah seorang administrator sistem dan menarik keponakannya dengan komputer.

Boris adalah siswa yang sangat baik, tetapi kehilangan minat belajar dan meninggalkan sekolah setelah sembilan kelas. Setelah lulus, ia masuk untuk bersepeda, dan komputer di pinggir jalan. Tetapi begitu Boris menerima cedera tulang belakang, yang tidak memungkinkannya untuk melanjutkan karir olahraganya.

Dia mulai belajar C ++ dengan seorang guru di Institut Fisika Surya-Terrestrial Irkutsk. Kemudian ia menjadi tertarik pada pengembangan game dan mencoba beralih ke C #. Dan akhirnya, seperti Marat, ia disuap oleh Swift.

“Saya memutuskan untuk mengambil kursus pengantar gratis di GeekBrains. Sejujurnya, dia sangat membosankan, lesu, dan tidak bisa dipahami, ”kenang Boris,“ guru itu berbicara tentang fitur-fitur bahasa, tetapi melesat dari satu topik ke topik lain tanpa mengungkapkan esensinya. Ketika kursus berakhir, saya masih tidak mengerti apa-apa. "

Oleh karena itu, setelah kursus pengantar, Boris masuk bukan hanya satu tahun, tetapi kursus singkat tiga bulan, di mana dasar-dasar profesi diajarkan. "Di sana saya menemukan guru yang sangat baik, dan menjelaskan semuanya dengan sangat jelas."


“Kami sering dikritik, konon kami tidak memiliki manual pelatihan yang cukup relevan, ada ketidakakuratan. Tetapi kursus selalu diperbarui, dan guru selalu berbicara tentang inovasi. Dari kelompok yang saya pimpin, banyak yang sudah bekerja setelah kuartal pertama. Tentu saja, ini biasanya orang-orang dengan pengalaman pemrograman, "kata Andrey," Di sisi lain, semua pengetahuan tidak dapat disampaikan dalam satu kursus. Interaksi klien jaringan dalam kehidupan tidak dapat ditampung dalam sepuluh kuliah selama dua jam. Dan jika Anda hanya pergi ke kursus dan tidak melakukan hal lain, maka tidak akan ada cukup pengetahuan. Jika Anda berlatih setiap hari sepanjang tahun, maka pada kecepatan ini hanya malas yang tidak akan bekerja. Karena permintaan dalam profesi sangat besar. "

gambar

Anda dapat melihat lowongan terbaru untuk pengembang iOS dan mendaftar untuk yang baru.


Bekerja


Tetapi baik Marat maupun Boris tidak menemukan pekerjaan yang mudah.

“Beberapa perusahaan besar telah lama mengembangkan aplikasi iOS pada Objective-C, dan terus mendukung basis kode lama. Sayangnya, saya tidak memiliki argumen yang kuat untuk memaksa mereka menggunakan Swift secara eksklusif. Terutama mereka yang menggunakan aturan "jangan sentuh apa yang berhasil", "kata Marat," sedikit perhatian diberikan pada arah Objective-C di Geekbrains. Ini lebih merupakan karakter pencari fakta. Tetapi setiap perusahaan yang saya wawancarai bertanya tentang Objective-C. Dan karena studi saya difokuskan pada Swift, seperti pekerjaan saya sebelumnya, saya menerima penolakan saat wawancara. ”

“Setelah belajar, saya sendiri hanya tahu dasar-dasar yang paling dangkal yang dengannya saya dapat membuat aplikasi yang paling sederhana," kata Boris. "Tentu saja, itu tidak cukup untuk bekerja, tetapi saya senang tentang itu. Sulit menemukan pekerjaan di Irkutsk. Lebih tepatnya, tidak ada sama sekali. Saya memutuskan untuk mencari di kota-kota lain. Dengan jumlah lowongan, yang paling relevan adalah Krasnodar, Moskow dan St. Petersburg. Saya memutuskan untuk pergi ke St. Petersburg - lebih dekat ke Eropa.

Tapi semuanya ternyata tidak begitu cerah. Bahkan junior ditanya apa yang tidak bisa dia ketahui. Saya belum menemukan pekerjaan. Saya bekerja untuk "terima kasih," mendapatkan pengalaman. Saya mengerti bahwa ini bukan yang saya inginkan, tetapi saya tertarik, dan itu yang mendorong saya. Saya ingin mendapatkan pengetahuan. "

Andrei percaya bahwa pendatang baru seharusnya tidak mencari pekerjaan, tetapi magang. Jika pengetahuannya sangat sedikit, maka ini normal ketika magang tidak dibayar. Andrei menyarankan pergi ke lowongan junior ke perusahaan besar, di mana proses kerja telah ditetapkan.

“Ketika memahami bagaimana proses pengembangan perangkat lunak bekerja, akan lebih mudah untuk dinavigasi dan menemukan pekerjaan lebih lanjut, tergantung pada keinginan Anda. Seseorang masuk ke pengembangan independen, membuat game untuk dirinya sendiri, dia sendiri menuangkannya ke dalam toko, dan menghasilkan uang sendiri. Seseorang bekerja untuk perusahaan besar dengan aturan ketat. Seseorang menghasilkan uang di studio kecil yang membuat perangkat lunak sesuai pesanan, dan di sana mereka dapat mengamati seluruh proses - dari membuat proyek dari awal hingga memasukkannya ke dalam toko. ”


Gaji


Gaji pengembang iOS, seperti yang lain, tergantung pada pertanyaan "Moskow atau Rusia." Tetapi karena spesifik industri - banyak pekerjaan jarak jauh, peluang untuk relokasi dan tidak bekerja di pasar regional - jumlahnya semakin mendekati satu sama lain.

gambar

Menurut kalkulator gaji "Lingkaran Saya", gaji rata-rata pengembang iOS sedikit kurang dari 140.000 rubel .

“Seorang junior dari tingkat yang sangat rendah sering bekerja secara gratis atau dengan uang simbolis - 20-30 ribu rubel. Jika junior sengaja diambil ke posisinya, ia akan menerima dari 50 hingga 80 ribu. Middles menerima dari 100 hingga 150, dan kadang-kadang bahkan hingga 200. Penandatangan kurang dari 200 tidak. Saya pikir gajinya sekitar 200-300. Dan Timlids, masing-masing, untuk 300. "




Wawancara kerja


“Wawancara pertama adalah di Skype. Yang mengejutkan saya, itu adalah Google, ”kenang Boris,“ maka saya baru saja pindah ke St. Petersburg dan mulai mencari pekerjaan. Saya mendapat respons terhadap pengembang iOS lowongan. Bukan junior, bukan perantara, bukan penandatangan - hanya pengembang. Saya senang, mulai berkorespondensi dengan manajer. Saya diminta untuk menyelesaikan tugas teknis: Saya harus menulis aplikasi untuk lelucon tentang Chuck Norris. Saya menulisnya. Saya diberitahu bahwa semuanya keren dan menjadwalkan wawancara online.

Kami menelepon. Seorang gadis yang baik berbicara kepada saya. Tetapi mereka tidak mengajukan pertanyaan tentang mengetahui bahasa - hanya tugas logis yang berbeda, misalnya, "Waktu 15:15, berapa derajat ada di antara jarum jam dan menit?" Atau "Pilar 10 meter, siput merayap 3 meter di sore hari, turun 1 meter di malam hari. Berapa hari dia akan merangkak ke puncak? ", Dan beberapa lagi seperti itu.

Lalu ada pertanyaan yang sangat aneh - untuk apa saya mencintai Apple dan bagaimana perasaan saya tentang Tim Cook. Saya mengatakan bahwa itu positif untuk perusahaan secara keseluruhan, tetapi agak negatif untuk itu, karena uang penting untuk itu, bukan produk.

Ketika pertanyaan tentang Swift dimulai, pengetahuan saya cukup hanya untuk pola pemrograman dan dasar-dasar OOP. Kami mengucapkan selamat tinggal, seminggu kemudian mereka memanggil saya kembali dan mengatakan bahwa saya tidak cocok. Sebenarnya, saya belajar banyak dari ini: pengetahuan diperlukan, banyak dibutuhkan - baik teori maupun praktik. ”

Andrei mengatakan bahwa "hal pertama yang diminta semua orang selama wawancara adalah siklus hidup pengontrol. Mereka suka bertanya beberapa pola pemrograman sederhana. Pastikan untuk bertanya tentang pengalaman menggunakan perpustakaan populer. Pasti akan ada pertanyaan tentang perbedaan dalam Jenis Nilai Swift dari Jenis Referensi, tentang Penghitungan Referensi Otomatis dan manajemen memori. Mereka mungkin bertanya bagaimana mereka menerapkan penyimpanan data dalam aplikasi, dan apakah permintaan jaringan diimplementasikan. Tanyakan tentang dasar-dasar REST dan JSON. Junior tidak akan menanyakan hal-hal dan seluk beluk spesifik. Setidaknya saya tidak bertanya. "

Boris memiliki pengalaman berbeda: “Bahkan ketika saya meminta magang, melakukan tugas-tugas teknis dan mengatakan bahwa gaji saya tidak penting, jika hanya cukup untuk menyewa apartemen, mereka masih menolak saya. Saya membaca artikel, mencoba memahami apa yang dibutuhkan seorang perekrut dari seorang pemula. Tapi terutama menumpuk pada teori. Untuk beberapa alasan, mereka mengajukan pertanyaan dari Liga Premier, yang tidak menjadi perhatian pemula. ”

Marat lebih beruntung. Sekarang dia bekerja di perusahaan transportasi dan satu bertanggung jawab untuk arah iOS, melanjutkan studinya di fakultas. "Karena saya sendiri yang bertanggung jawab untuk iOS, pekerjaan saya dinilai hanya dengan kemampuan untuk merealisasikan tugas-tugas yang ditetapkan untuk saya, dan bukan oleh pengetahuan teori."


Komunitas


Andrei tinggal di Nizhny Novgorod dan mengatakan bahwa bahkan ada komunitas yang sangat baik telah terbentuk. Dahulu kala ia adalah pengembang backend di Python, tetapi teman-temannya menyeretnya ke pengembangan mobile - dan sekarang ia sendiri membuat semua orang gelisah untuk melakukannya.

“Komunitas dunia biasanya berkomunikasi melalui twitter. Orang-orang menyimpan blog mereka, merekam video di Youtube, saling menelepon di podcast. Suatu hari saya punya pertanyaan tentang presentasi di mana pemimpin tim HQTrivia tampil. Ini adalah kuis Amerika yang dimainkan oleh beberapa juta orang secara bersamaan. Saya tweet dia, dia menjawab saya, kami berbicara, saya berterima kasih. Komunitasnya sangat ramah, dan itu luar biasa. ”

Daftar Bacaan yang Direkomendasikan
Tingkat Pemula:

Tingkat Menengah:

Tingkat lanjutan:

Source: https://habr.com/ru/post/id461709/


All Articles