
Anda sepertinya menyukai
rilis pilot . Dan kami masih yakin bahwa orang-orang yang tidak masuk ke lensa kamera sama menariknya dengan bintang-bintang IT. Dan mungkin bahkan lebih, karena mereka berbicara tentang masalah nyata dan solusinya. Minggu ini kami mengajukan 10 pertanyaan kepada orang yang secara sederhana berdiri di belakang Yandex.Maps untuk iOS.
Nikolai Likhogrud ( likhogrud ) dari Moskow. Dimulai dengan HTML dan Dasar di kelas sembilan. Kemudian ia secara mandiri mempelajari C #, memasuki VMK Moscow State University, dan kemudian masuk ke tim Any Void. Bersama Any Void, ia pindah ke Yandex, selama 2,5 tahun terakhir ia telah bekerja sebagai pemimpin tim untuk grup pengembangan Yandex.Maps untuk iOS.1. Ceritakan kepada kami tentang fitur yang telah Anda terapkan dan yang Anda banggakan.
- Di sini perlu untuk memisahkan fitur tim dan yang saya pribadi. Dari pribadi - yang paling berkesan - adalah satu setengah tahun yang lalu saya dua kali mempercepat waktu peluncuran aplikasi. Dan dia memberi tahu rekan-rekannya tentang hal itu. Saya menemukan beberapa fitur iOS yang tidak dijelaskan di mana pun. Ada masalah karena fakta bahwa Swift menarik banyak perpustakaan dinamis. Untuk masing-masing dari mereka, Anda perlu memeriksa tanda tangan di awal - itu melambat. Dia melakukan pekerjaan yang bermanfaat - itu benar-benar memengaruhi kehidupan pengguna. Saya bahkan
berbicara di Mobius saat itu .
Adapun pengembangan tim, Maps adalah proyek besar dengan banyak fitur yang berbeda. Saya mungkin tidak pernah melihatnya lagi. Dan jika Anda duduk untuk memahami, maka saya dapat menunjukkan hal-hal yang bahkan banyak yang tidak tahu - ada banyak hal! Di hampir setiap rilis baru, kami melakukan beberapa hal baru yang keren, dan saya bangga dengan itu semua. Sekarang kami mencoba memompa dalam "Maps" yang tidak secara historis menetapkan skenario pencarian dan perutean, tetapi skenario yang lebih banyak berbicara tentang tempat di mana Anda berada. Kami menyebutnya panduan kota. Secara umum, tidak ada lagi referensi informasi, tetapi kognitif, menghibur. Dan fitur yang sangat keren - augmented reality di kartu. Kami cepat melakukannya: semuanya berubah segera, semuanya lepas landas. Kami berhasil tepat pada peluncuran iOS 11, sebelum tim lain. Itu menyenangkan.
Boneka itu mengapung di Neva, tidak ada yang aneh2. Dan sekarang - tentang fakap paling sengit.
Fakap dulu. Itu pada awalnya ketika saya baru saja beralih ke Maps: proyek ini tidak dikenal, tim sebelumnya benar-benar bubar, tidak ada yang memeriksa saya. Dan dalam satu rilis, saya zadosil server geocoder, karena saya lupa menambahkan satu cek. Setelah beberapa manipulasi dalam aplikasi, permintaan dikirim ke server untuk setiap pembaruan posisi pengguna, yang mengembalikan data tentang di mana pengguna berada. Dan perubahan geolokasi seperti itu bisa 10 kali per detik. Dan dengan mempertimbangkan berapa banyak pengguna yang kami miliki, bahkan jika setiap seratus atau seperseribu melakukan tindakan ini, kami memiliki beban besar di server.
Itu adalah momen yang menjadi nyata di luar kerangka kerja tim saya. Orang-orang datang dan berkata: Ya, apa yang kamu lakukan! Tapi, omong-omong, itu diselesaikan secara normal - mereka mengangkat server untuk mengatasi beban. Bug ditemukan dengan cepat, diperbaiki dengan cepat, dan kemudian pembaruan diposting. Tinjauan sejati di AppStore membutuhkan waktu sekitar satu minggu. Sekarang menjadi lebih mudah dengan ini. Saya lebih tersinggung kemudian: bagaimana mungkin, baru mulai bekerja! Tetapi semua orang mengerti segalanya: bahwa proyek itu besar, saya sendirian di sana, dan tidak ada yang memberi tahu saya ...
3. Jelaskan ruang kerja Anda: dari kursi dan monitor ke lingkungan pemrograman dan utilitas favorit Anda.
"Mereka memberiku kursi, dan meja, juga." Di atasnya ada monitor Thunderbolt dan laptop. Dan juga keyboard dan mouse nirkabel, sehingga Anda hanya bisa bekerja dengan monitor.

Meja dipenuhi dengan selembar kertas, di mana semua pikiran dan rencana saya ditulis. Untuk semua jenis Trello dan Dapulse, saya tidak pergi. Ketika saya mulai, ini semua belum ada di sana, dan dalam makalah umum entah bagaimana lebih akrab. Tentu saja, saya masih membuat catatan di laptop, tetapi menulis seperti itu dan mencoretnya lebih baik. Biasanya ada banyak hal di atas meja yang hanya menumpuk dari waktu ke waktu di suatu tempat, tetapi baru-baru ini saya menghapusnya. Lego masih berdiri - nyaman. Secara umum, saya pikir tempat saya nyaman. Dan ketika saya melihat tabel rekan-rekan, di mana tidak ada apa-apa - monitor dan laptop - sepertinya saya tidak akan bisa.
4. Dengan prinsip apa Anda memilih pekerjaan? Tumpukan, produk, kondisi kehidupan, uang?
- Saya mungkin akan menjawab pertanyaan "
jika saya memilih ...". Memang, pada kenyataannya, saya tidak pernah berganti pekerjaan. Saya sudah tumbuh menjadi Yandex - Saya telah bekerja selama lebih dari lima tahun. Sekarang saya memiliki posisi, tim, tanggung jawab, banyak rencana yang baik.
Jadi, jika saya memilih, saya mungkin akan melakukannya atas perintah. Yaitu, untuk mengetahui terlebih dahulu orang-orang dengan siapa saya akan bekerja. Dan jika Anda mengenal mereka, maka, sebagai aturan, Anda tahu produk mana yang akan Anda kembangkan. Jika seseorang tidak terlibat dalam sampah, maka Anda dapat yakin bahwa proyeknya baik. Penting untuk berada di komunitas: bahwa Anda dikenal, dan Anda - orang lain. Sehingga tidak ada hal seperti itu Anda pergi ke suatu tempat ke nol, ke yang tidak diketahui. Bagaimanapun, bahkan tugas tergantung pada orang. Jika seorang karyawan baru tidak berhasil dikirim, ia mungkin dengan cepat menjadi tidak menarik.
Masalah moneter penting lainnya. Tapi di sini semuanya tampaknya plus atau minus. Saya melakukan banyak wawancara dan saya tahu berapa banyak yang mereka tawarkan di perusahaan lain.
5. Teknologi dan bahasa apa yang Anda gunakan untuk Anda perbaiki?
- Saya dapat memberi tahu Anda tentang rasa sakit yang umum dari semua pengembang iOS. Di Swift, kompiler tidak dioptimalkan, lingkungan pengembangan tidak selesai. Di proyek kami, di mana 400 ribu baris kode, semuanya hanya melambat. Pengindeksan melambat, membuka file melambat, membuka proyek melambat. Kompilasi membutuhkan waktu lama, sangat intensif sumber daya.
Bahkan pekerjaan kita tergantung pada apa yang dikompilasi Xcode untuk waktu yang lama. Ini berfungsi baik dengan Objective-C, tetapi buruk dengan Swift. Jika dia melakukan ini secara normal, dia tidak perlu memecah aplikasi menjadi modul - kita harus berinvestasi di dalamnya. Sekarang kami sedang mengembangkan lebih banyak proyek uji, daripada aplikasi utama. Lalu kami melemparkan dari proyek uji ke yang utama. Meskipun ini pada akhirnya bermanfaat bagi seluruh proyek, ada beberapa biaya untuk belajar bagaimana bekerja dengan cara ini.
6. Di mana lebih baik untuk belajar dari pengalaman orang lain - di universitas, di konferensi, di pusat? Di tempat lain?
- Yang paling efektif adalah ketika Anda memiliki masalah tertentu dan Anda mencari solusi. "Belajar dari pengalaman" - Saya tidak begitu mengerti apa artinya ini. Tapi "di mana mencari solusi untuk masalah" bisa dimengerti. Di mana ditemukan. Anda hanya memasukkannya di Google dan melihat apa yang dikatakannya kepada Anda.
Dan dengan konferensi entah bagaimana ternyata saya bahkan tidak mengadopsi pengalaman orang lain, pergi ke sana, tetapi berbagi pengalaman saya. Sudah ada beberapa pengalaman dalam mengelola proyek besar yang menarik minat banyak orang. Kita dapat mengatakan bahwa hanya ada beberapa aplikasi seperti kita, itulah sebabnya pengalaman itu unik dengan caranya sendiri. Mereka bertanya kepada saya: bagaimana mereka membobol modul, bagaimana tinjauan kode diatur, bagaimana
CI bekerja untuk Anda di sana.
7. Jika Anda memiliki sumber daya yang tidak terbatas (waktu, uang, tenaga, orang), proyek apa yang akan Anda ambil?
- Saya punya daftar kecil besar “Saya sudah lama menginginkannya, tapi saya tidak punya waktu” - apa yang ingin saya lakukan di Maps. Ada beberapa hal yang ingin saya tingkatkan.
Secara umum, akan menarik untuk menghubungi industri luar angkasa. Gagasan tentang seseorang di luar Bumi, pengetahuan tentang alam semesta - itu sangat menarik minat saya. Saya bersukacita ketika beberapa keberhasilan terjadi dalam arah ini. Mungkin, tidak ada yang bisa ditulis di bawah iOS di sana, tetapi di suatu tempat saya bisa berguna dengan keterampilan manajemen tim saya. Ya, setidaknya saya akan membuat kopi, jika untuk sebuah ide.
8. Bagaimana Anda rileks? Apa yang kamu lakukan selain bekerja?
- Anda harus memulai ulang - seratus persen. Mode 5/2 ini ditemukan oleh paman yang sangat pintar. Jika Anda terlibat dalam suatu proyek, Anda terbakar, Anda sakit padanya, maka jika Anda mengerjakannya pada akhir pekan, itu akan buruk. Akibatnya, Anda akan kehilangan sekring, tetapi Anda harus mempertahankannya secara stabil sebaliknya, untuk bekerja selama berbulan-bulan dan bertahun-tahun.
Selama akhir pekan, saya memilih untuk melakukan sesuatu yang sederhana: berjalan-jalan, menonton TV, tidak ada yang ekstrem. Meskipun saya, mungkin, ingin, tidak ada perusahaan yang cocok. Beberapa kali teman-teman dan saya keluar untuk berkayak di Klyazma, itu bagus. Terkadang ada paintball. Tetapi semua ini tidak teratur, karena merupakan pemborosan energi aktif. Tentu saja, Anda mendapatkan semacam emosi sebagai imbalan ... Tapi lima hari untuk bekerja, dan kemudian dua hari untuk berenang dan berlari di suatu tempat dan kemudian bekerja lagi lima hari? Dan tubuhmu sudah sakit! Saya pikir saya tidak bisa.
Saya juga menghabiskan waktu untuk perbaikan. Kecil dan tak ada habisnya. Ini adalah dunia yang terpisah dengan teknologi sendiri, pengalaman unik. Sangat menarik di sana.
9. Ceritakan tentang 3 buku favorit - pendidikan, sains populer dan fiksi.
- Saya tidak berolahraga dengan buku-buku pelatihan. Di tempat kerja, saya dapat mengatakan bahwa saya belum membaca satu buku pun. Pada awalnya, mungkin ini adalah buku-buku tentang C ++. Saya ingat bepergian ke perkemahan anak-anak: orang-orang normal, dan saya menderita C ++. Akibatnya, saya tidak benar-benar membaca apa pun, karena tidak ada komputer di tangan. Saya membaca - sepertinya bisa dimengerti, tetapi bagaimana saya bisa menerapkan ini pada tugas saya? Bagaimana cara mendapatkan pengalaman? Saya lebih merupakan seorang praktisi, bukan ahli teori. Mungkin saya tidak tahu istilah menarik yang digunakan orang lain, tetapi pada saat yang sama saya bisa melakukan pekerjaan saya. Saya belajar ini hanya dengan menyelesaikan tugas-tugas sulit. Saya selalu mencari pengalaman dan solusi hanya di Internet.
Saya akan mengatakan kepada orang-orang yang banyak fokus pada membaca literatur dan blog bahwa apa yang Anda baca dan lihat bukanlah jaminan bahwa Anda dapat mereproduksinya sendiri. Seseorang tidak boleh melepaskan diri dari tugasnya sendiri sehingga membaca selalu disertai dengan latihan.
Dari komunitas ilmiah, saya membaca Wikipedia, di mana Anda dapat membaca tentang semuanya. Saya sangat suka sejarah dan bisa membaca di sana dari Rurik ke Ivan the Terrible, dari Romanov pertama ke kudeta istana. Dan kemudian secara tidak sengaja melompati tautan ke Alexander the Great. Saya bisa bertahan selama 2-3 jam. Ada artikel menarik tentang senjata, tentang teknologi pemrosesan logam. Sangat disayangkan, saya tidak dapat mereproduksi ini, tetapi untuk memahami bagaimana orang-orang memikirkan semua ini sebelumnya - dari oven susu mentah hingga proses Bessemer - keren.
Fiksi dalam hidupku tidak cukup. Buku-buku seperti itu mungkin telah menggantikan film. Karena, sebenarnya, misinya mirip, tetapi filmnya lebih kompak. Meskipun saya akan menyebutkan satu buku, itu "Oblomov" oleh Goncharov. Saya sangat sedih ketika membacanya untuk waktu yang lama. Tampaknya bahkan menangis. Sekarang akan menarik untuk membacanya kembali. Sekarang saya mungkin berpikir bahwa dia membutuhkannya, Oblomov.
10. Jika, tepat di depan mata Anda, AI bangun, apa yang akan Anda katakan kepadanya?
- Pertanyaannya adalah, apa arti "kesadaran"? Jika hanya dibuat untuk lulus tes Turing, itu belum kesadaran. Tetapi jika seseorang tidak masuk ke detail seperti itu, maka saya akan bertanya tentang solusi dari setiap masalah khusus. Saya masih seorang praktisi. "Bagaimana cara membuat Xcode lebih cepat?" :)
Tapi Anda pasti harus mulai dengan "Halo, apa kabar?" "Bagaimana kabarmu?", "Apa yang kamu lakukan?" - jawaban atas pertanyaan-pertanyaan ini dapat berisi beberapa catatan refleksi. Bagaimana mesin itu benar-benar mengevaluasi urusan dan suasana hatinya? Dan apa yang dia lakukan sekarang?
Pertanyaan dari pahlawan sebelumnya: teknologi apa yang paling Anda nikmati dalam proses belajar?
- Apakah itu menyenangkan? Saya belum belajar bagaimana menikmati pekerjaan dan belajar. Saya belajar untuk memperlakukan mereka dengan tenang dan berkinerja baik. IOS SDK, misalnya, tidak membuat saya tertarik, karena umumnya sederhana.
Sangat menarik di universitas ketika saya menggunakan pembelajaran mesin dalam sebuah proyek. Sangat menarik untuk memahami bahwa pada dasarnya tidak ada yang rumit dalam ML. Mengetahui parameter input, Anda dapat lebih atau kurang memprediksi hasilnya. Mungkin, sebagian karena ini, saya tidak mengalami euforia AI, yang banyak pengalaman. Saya tahu ini semua hanya algoritma.
Dan dulunya menarik untuk memahami kompiler dengan paralelisasi otomatis. Ini adalah teknologi yang sangat maju, ada banyak hal berbeda dalam kompiler. Mereka sebenarnya pintar dan melakukan lebih banyak dari yang dapat Anda bayangkan. Misalnya, konversi paling kompleks di atas pohon sintaksis. Atau optimalisasi pembuatan kode yang paling rumit ketika kompiler bekerja untuk perangkat keras dan prosesor tertentu.
Sangat bagus bahwa sekarang ada kerangka kerja
LLVM open source yang memungkinkan Anda untuk membuat kompiler Anda sendiri. Anda dapat menggunakan bahasa Anda sendiri! Tulis parser untuk itu, yang akan digunakan dalam leksikal dan parsing, dan kemudian gunakan kekuatan kompiler modern untuk mendapatkan kode mesin.
Bonus: ajukan pertanyaan kepada pengembang lain.
- Mengetahui bahwa Anda tidak dapat kembali, akankah Anda terbang ke Mars dalam ekspedisi pertama?