"Manajer harus tetap mengkode": wawancara dengan Stephen Chin



Banyak pengembang Java mengenal Stephen Chin . Seseorang melihat siarannya dari acara-acara Jawa, seseorang - wawancaranya dengan javists terkenal lainnya, dan seseorang - melaporkan tentang Jawa pada Raspberry Pi. Tapi apa yang ada, di Twitter dia @steveonjava - yaitu, bahkan dengan nama pengguna menunjukkan seberapa besar hidupnya didedikasikan untuk bahasa ini.

Hingga saat ini, ia bekerja di Oracle, dan sekarang telah pindah ke JFrog. Mungkin kedengarannya tidak terduga: meninggalkan Oracle saat hidup Anda di Jawa? Tetapi nama kedua juga dikenal oleh orang-orang Jawa Rusia, dalam banyak hal berkat Baruh joguch Sadogursky yang bekerja di sana.

Segera, pengembang Rusia akan dapat melihat Stephen dan Baruch secara pribadi di konferensi Joker , tetapi sejauh ini, Stephen telah memberi tahu kami tentang berbagai hal, misalnya, seperti:

  • Apa yang sebenarnya dia lakukan sekarang;
  • Bagaimana lebih tepat bagi pengembang untuk menjadi manajer;
  • Seberapa besar Anda bisa membuat sekelompok Raspberry Pi (dan mengapa);
  • Apakah JavaFX hidup?
  • Bagaimana sepeda motor bermanfaat bagi seorang aktivis Jawa?

Oleg Chirukhin: JFrog terlibat dalam CI / CD dan yang lainnya, tetapi terutama diketahui oleh javis Rusia bahwa Baruch bekerja di sana. Anda mungkin mengenalnya, bukan?

Stephen: Ya, dia dan aku adalah teman baik. Saya kenal dia sebelum topi!

Oleg: Anda sekarang "direktur senior hubungan pengembang", dan posisi Baruch disebut "kepala advokasi pengembang". Apa sebenarnya yang ada di balik ini?

Steven: DevRel adalah sejumlah kegiatan yang berbeda. Termasuk ini adalah pembela pengembang - orang-orang seperti saya dan Baruch berbicara di konferensi dengan presentasi. Ini juga acara untuk pengembang, komunikasi dengan orang-orang di konferensi, pembuatan konten untuk pengembang, dan sebagainya. Secara umum, sekarang saya juga terhubung dengan ini semua, dan kami akan meningkatkan aktivitas dalam bekerja dengan masyarakat.

Oleg: Dilihat dari profil LinkedIn Anda, Anda memiliki karier yang sangat menarik. Pertama Anda mendapat gelar sarjana dalam bidang ilmu komputer, kemudian selama tiga tahun Anda di bidang manajemen, kemudian selama satu tahun - pemrograman, kemudian lagi manajemen. Mengapa Anda memiliki zig-zag dalam karier Anda? Secara umum, seberapa masuk akal bagi seorang junior untuk sering mengubah bidang kegiatannya?

Stephen: Cukup masuk akal, itulah sebabnya semua orang harus memulai karier! * tertawa *

Saya akan mengatakan salah satu kesulitan umum bagi orang yang mengetahui bidang teknis mereka dengan baik adalah bahwa pertumbuhan karier paling mudah dicapai dengan menjadi seorang manajer. Tetapi jika Anda terlibat dalam manajemen untuk waktu yang lama, maka keterampilan Anda, pemahaman tentang teknologi, dan secara umum, apa yang membuat Anda berharga sebagai pemimpin tidak lagi berkembang. Karena itu, saya yakin bahwa kita tidak boleh meninggalkan teknologi. Terus buat sesuatu, terus belajar, terus berkembang. Untuk karier, ini yang paling penting.

Jika perlu, ambil posisi kepemimpinan dan bantu rekan kerja tumbuh - itu hebat, saya senang karenanya. Tapi kemudian aku menyingsingkan lengan bajuku lagi dan melakukan sesuatu yang spesifik. Saya pikir penting untuk tidak melupakan bahwa ini adalah keahlian utama Anda sebagai pengembang.

Oleg: Apakah mudah untuk menggabungkan keterampilan manajer dan programmer dalam satu orang?
Bagaimanapun, ini adalah area yang sangat berbeda.

Stephen: Ya, tapi saya hanya berurusan dengan manajemen di bidang yang saya sendiri mengerti. Saya tahu cara menulis kode, cara menguji, cara menerapkan metodologi Agile, karena saya belajar semua ini sendiri. Selain itu, saya telah terlibat dalam advokasi pengembang selama beberapa tahun sekarang, jadi saya juga memiliki keterampilan di bidang ini.

Saya pikir sebagian besar manajer memiliki bagian paling produktif dalam karir mereka ketika mereka, sebagai ahli dalam bidang tertentu, mengatur tim mereka dan berkontribusi pada efektivitasnya. Dan kemudian mereka dipromosikan menjadi manajer menengah yang khas, dan ini tidak membawa banyak manfaat. Karena itu, saya percaya bahwa untuk sukses, penting untuk tidak menjauh dari apa yang semula Anda kuasai.

Oleg: Anda pernah memiliki posisi sebagai Chef Metile Agile. Saya bahkan takut menyarankan apa artinya ini.

Stephen: Ya, kita semua memiliki kesalahan dalam hidup kita! * tertawa *

Pada titik tertentu, metodologi Agile dan infrastruktur DevOps mulai bekerja dengan baik untuk saya. Saya mulai membantu tidak hanya tim saya, tetapi juga tim lain di perusahaan, dan juga mulai membantu merencanakan rilis besar. Lalu saya bahkan menulis alat di Jawa untuk serupa. Perusahaan mulai menggunakannya, seiring berjalannya waktu, dan sebagai hasilnya, berkat ini, kami dapat keluar dari neraka tabel Excel (jika Anda menemukan diri Anda di dalamnya, Anda tahu apa tempat yang mengerikan itu).

Tapi tetap saja, bekerja dengan metodologi tidak semenarik bagi saya seperti teknologi. Karena itu, pada akhirnya, saya kembali lagi ke urusan sebelumnya.

Oleg: Saya tahu Anda banyak bekerja dengan JavaFX. Apa yang awalnya mendorong Anda ke teknologi ini?

Steven: Ini adalah kisah yang cukup menarik. Bahkan sebelum JavaFX 1.0 keluar, saya sedang mengerjakan kerangka widget desktop. Saya mengirim prototipe kerangka kerja ini kepada Joshua Marinacci dari Sun, yang pada waktu itu bekerja sebagai penginjil Jawa. Secara pribadi, saya tidak mengenalnya, meskipun saya menghormatinya, jadi saya tidak mengharapkan tanggapan apa pun. Tetapi dia menjawab, mengatakan bahwa dia menyukai gagasan itu, dan menyarankan untuk mencoba JavaFX, yang pada saat itu benar-benar di luar pandangan saya. Saya mendapat tiga hari libur (karena liburan), dan selama tiga hari ini saya menulis ulang kerangka kerja saya di JavaFX, setelah itu Joshua mengirim hasilnya lagi.

Secara umum, inilah awal perkenalan saya dengan JavaFX dan WidgetFX saya muncul. Saya pikir Anda tahu bahwa tidak semuanya berjalan lancar dalam sejarah alat ini, tapi sekarang saya pikir itu tidak masuk akal untuk menggunakan AWT atau Swing untuk menulis alat desktop di Jawa.

Oleg: Saya sepenuhnya setuju. Benar, IntelliJ IDEA masih menggunakan Swing.

Stephen: Ya, IDEA sendiri diciptakan pada awal 2000-an. Tentu saja, ada orang yang terlibat dalam mendukung aplikasi besar dengan sejumlah besar Java2D yang lama, dan dalam hal ini, tentu saja, Anda tidak harus memilih. Tetapi untuk alat baru, menurut pendapat saya, liar untuk menggunakan toolkit, yang berusia lebih dari 20 tahun.

Oleg: Apa yang diharapkan JavaFX di masa depan? Bagaimanapun, sekarang dia sudah tidak lagi menjadi bagian dari JDK.

Stephen: Yah, JavaFX tetap menjadi bagian dari proyek OpenJDK. Itu dihapus dari perakitan Oracle, tetapi perakitan ini masih komersial sekarang, jadi kerugiannya kecil. Apa yang bisa saya katakan - gunakan JavaFX builds dari Gluon. Omong-omong, mereka juga terlibat dalam JavaFX seluler, secara umum, mereka melakukan banyak hal penting bagi ekosistem.

Oleg: Dan bagaimana dengan proyek JavaFX seperti WidgetFX Anda sekarang?

Stephen: Secara khusus, bekerja di WidgetFX tidak lagi berjalan, tetapi ada proyek lain yang didukung komunitas. Secara umum, ekosistem JavaFX bersemangat. Ada banyak kasus di mana JavaFX sangat diperlukan dan memungkinkan Anda untuk menulis hal-hal yang sulit untuk direproduksi dalam JavaScript.

Oleg: Apakah Anda memiliki proyek Nighthacking - dapatkah Anda memberi tahu kami tentang hal itu?

Stephen: Bahkan sebelum saya mulai bekerja di Oracle, saya memulai serangkaian besar wawancara dengan nama umum Nighthacking. Saya mengambil tas punggung dengan peralatan, datang ke konferensi dan merekam wawancara yang mirip dengan yang Anda ambil dari saya sekarang.

Saya menggunakan berbagai layanan untuk menerbitkannya di Internet, tetapi pada akhirnya saya memutuskan pada Periscope, yang disarankan Chris Thalinger kepada saya. Ini adalah platform hebat untuk menerbitkan wawancara dan membantu orang belajar tentang teknologi baru.

Selain itu, Baruch dan saya memiliki ide untuk membuat program dalam format yang sama tentang masalah DevOps. Kami berencana untuk meluncurkannya di konferensi Joker Anda, itu akan disebut DevOps Speakeasy.

Oleg: Itu bagus sekali. Sejauh yang saya tahu, Anda bepergian dengan sepeda motor dengan pengembang Java lain yang kita kenal, Sebastian Dashner?

Stephen: Ya, kami bepergian ke seluruh dunia, kami berada di Eropa, di Jepang. Pada pandangan pertama, mungkin terlihat bahwa sepeda motor adalah alat transportasi yang aneh, tetapi ketika Anda perlu mengunjungi selusin kelompok pengguna di kota yang berbeda dalam dua minggu, seperti yang kami lakukan di Jepang, sepeda motor ini sangat efektif.

Oleg: Karena Anda melihat banyak kelompok pengguna Jawa di seluruh dunia - apakah ada perbedaan budaya antara kelompok di berbagai belahan dunia?

Steven: Saya pikir ada lebih banyak kesamaan daripada perbedaan. Paling sering, kelompok-kelompok ini ada atas biaya Geeks sendiri, yang mengatur mereka, yaitu, mereka berfungsi secara sukarela. Saya sendiri, ketika memimpin kelompok pengguna di daerah Teluk San Francisco, merasakan ini sebagai cara untuk membantu orang lain, sama seperti mereka membantu saya di waktu saya. Kelompok pengguna memungkinkan Anda untuk berbagi pengetahuan, saya sangat suka berjalan di dalamnya, semangat komunitas berdenyut di dalamnya. Untuk advokat pengembang, sebaiknya lakukan grup pengguna.

Oleg: Anda memiliki banyak video tentang robotika, Raspberry Pi dan banyak lagi. Apakah Anda melakukan ini secara profesional, atau lebih merupakan hobi?

Steven: Saya mulai mengerjakan robotika karena di Oracle kami memiliki proyek Java untuk Raspberry Pi dan platform tertanam lainnya. Dan kemudian saya melihat bahwa sangat mudah bagi Raspberry Pi untuk mengajar pemrograman anak-anak. Dan saya banyak melakukan ini, mengadakan seminar untuk anak-anak di berbagai konferensi. Sebelumnya, putri saya membantu saya di seminar-seminar ini, sekarang dia melakukan seminar yang sama sendiri. Ini menghubungkan sensor bawaan (seperti sensor cahaya, akselerometer) ke Raspberry Pi, menunjukkan contoh kode yang sangat sederhana dengan sensor ini, dan dengan demikian mengajarkan anak-anak. Berkat pelajaran ini, generasi baru programmer dapat muncul di masa depan yang minatnya pada kode muncul sangat awal.

Oleg: Mungkin suatu hari nanti dia akan bermain di Joker. Apakah Raspberry Pi masih merupakan platform robotika terbaik? Mereka mengatakan bahwa versi baru terlalu panas, kenang tweet Alexei Shipilev. Meskipun menakutkan untuk membayangkan apa yang dimuat oleh Shipilev, jadi beri tahu kami penggunaan yang lebih "normal".



Stephen: Bagi mereka yang bergerak dalam bisnis ini sebagai hobi, keuntungan dari Raspberry Pi adalah bahwa sistem ini sangat mudah diangkat: colokkan ke port USB, masukkan kartu SD biasa, butuh setengah jam untuk melakukan semuanya. Seperti yang sudah saya katakan, di Oracle saya bekerja di sebuah tim yang bergerak dalam sistem embedded komersial - walaupun saya sendiri terlibat dalam advokasi pengembang, tetapi ada banyak orang di sekitar saya yang menguji dan mengkonfigurasi berbagai platform embedded. Jadi, untuk menjalankan hal yang paling sederhana pada sistem komersial, perlu beberapa minggu untuk dihabiskan.

Platform yang dirancang untuk pengembangan dan bukan untuk produksi tidak berfungsi di banyak bidang dan perlu pengujian tambahan. Berbagai masalah muncul, misalnya, mungkin tidak ada driver untuk tampilan, beberapa fitur mungkin tidak berfungsi, platform itu sendiri sering tidak berfungsi (jika ini adalah prototipe). Dan secara umum, orang terbiasa dengan keadaan ini: jika Anda memiliki platform baru, maka untuk mulai bekerja di atasnya, Anda perlu menghabiskan waktu sekitar satu bulan.

Dengan menggunakan teknologi yang sama, Yayasan Raspberry Pi di Inggris menciptakan platform yang mudah digunakan dalam pendidikan, itu sederhana, efisien, dan memiliki ekosistem yang hebat. Secara khusus, itu baik untuk mereka yang ingin membuat proyek sederhana di waktu luang mereka - ngomong-ngomong, saya menulis buku tentang Java dan Raspberry Pi.

Raspberry Pi menghapus sebagian besar ketidakpastian yang terbuka untuk pengguna platform tertanam lainnya, dan dengan itu tidak perlu mengembangkan komponen untuk platform sendiri. Dengan demikian, pada Raspberry Pi Anda dapat melakukan proyek kecil di waktu luang Anda, itu tidak harus dilakukan secara profesional.

Oleg: Apakah sisi robot Raspberry Pi berubah selama bertahun-tahun? Saya tidak sengaja melakukan ini, tetapi sejauh yang saya tahu, Java memiliki GPIO secara default. Apakah ada kerangka kerja, atau mungkin pabrik perangkat keras itu sendiri memberikan dukungan?

Steven: Ada banyak proyek yang didanai komunitas, seperti Robo4J: ini adalah platform robotik di IOT berdasarkan Raspberry Pi. Proyek hebat lainnya dengan akses GPIO adalah Pi4J. Ia menggunakan pustaka C yang sama dengan yang lainnya, WiringPi, tetapi di atasnya ia menyediakan shell Java yang sangat efisien yang memiliki kinerja sangat baik.

Saya melakukan jajak pendapat GPIO tingkat rendah untuk mensimulasikan pin analog. Biasanya di Raspberry Pi ini sangat sulit dilakukan, karena ini bukan sistem operasi waktu nyata. Pembungkus Java menambahkan jeda untuk kompilasi JIT dan sejenisnya. Tetapi dengan bantuan Pie4J library tingkat rendah, saya dapat menggunakan sensor jarak analog pada pengontrol di Jawa. Secara umum, dengan Raspberry Pi Anda dapat melakukan banyak hal menarik langsung dari Jawa. Dan tentu saja, selain ini, ada ekosistem besar di C, Python, dan banyak lagi.

Oleg: Saya melihat orang membuat cluster dari Raspberry Pi. Apakah ini memiliki arti praktis?

Steven: Di Oracle Code One, akan segera ada presentasi proyek di mana saya berpartisipasi, ini adalah sekelompok 1024 Raspberry Pi.

Seperti yang Anda ketahui, tidak sulit untuk mengumpulkan sekelompok 10 atau 20 Pi, meskipun akan membutuhkan waktu yang cukup lama. Jika cluster memiliki lebih dari 1000 Pi, ada masalah dengan konsumsi daya, memuat dari kartu SD atau melalui jaringan, dengan topologi dan infrastruktur jaringan yang benar - pesan antara node jaringan tidak boleh menjadi hambatan dalam perhitungan. Selain itu, mendinginkan jumlah Pi dalam satu ruangan seperti itu bukanlah tugas yang sepele. Tetapi ketika kita mengatasi semua kesulitan ini, itu akan menjadi kelompok Raspberry Pi terbesar di dunia. Ngomong-ngomong, itu akan berbentuk kotak telepon polisi Inggris berwarna biru - seperti Anda sendiri tahu seperti apa serial televisi fiksi ilmiah. Saya harap kami tidak melanggar hak cipta siapa pun.

Sekelompok jenis ini seperti memiliki kereta mainan dengan kereta api, tetapi pada saat yang sama mensimulasikan jaringan kereta api skala penuh. Menurut model ini, kereta nyata tidak pernah bisa lewat, dan cerita yang sama di sini: sekelompok 1024 Raspberry Pi tidak akan lebih kuat daripada satu GPU modern dengan beberapa ratus inti, tetapi kelompok ini berguna untuk mensimulasikan perilaku sistem besar. Selain itu, sangat bagus untuk beberapa tugas yang sangat paralel. Tetapi sangat sering jaringan atau kecepatan baca dan tulis kartu SD menjadi hambatan. Dan untuk algoritma yang kompleks, justru hal-hal inilah yang merupakan batasan nyata.

Oleg: Ya, dan klaster ini dapat digunakan sebagai model pelatihan, Anda dapat mencoba untuk menyebarkan sesuatu menggunakan Kubernetes, Docker dan beberapa produk JFrog.

Stephen: Kenapa tidak! * tertawa *

Oleg: Anda adalah mantan karyawan Oracle, dan telah melakukan Java sejak lama. Bagaimana Anda melihat masa depan bahasa? Mungkin itu untuk GraalVM, Valhalla atau sesuatu seperti itu?

Stephen: Dengan rilis Java dalam waktu dekat banyak teknologi menarik akan muncul. Dua yang paling penting, salah satunya yang telah Anda sebutkan, adalah GraalVM. Ini adalah infrastruktur kompiler generasi berikutnya. Kita berbicara tentang kompiler yang ditulis dalam Java dan untuk Java, yang dapat bekerja dengan beberapa bahasa, dan yang lebih mudah dioptimalkan daripada HotSpot biasa. Saya pikir dalam jangka panjang kompiler ini akan mengungguli kompiler JVM lainnya dan menjadi bagian penting dari arsitektur Java.

Keuntungan signifikan dari GraalVM adalah kompilasi AOT. Ini sangat berguna untuk perangkat seluler dan tertanam. Kode dikompilasi terlebih dahulu, biner digunakan untuk perangkat, dan waktu startup serta memori yang diperlukan sebanding dengan kode dalam bahasa C, Go, dan lainnya. Selain itu, kompilasi AOT memungkinkan bekerja dengan microservices atau arsitektur tanpa server jauh lebih efisien, di mana banyak proses dijalankan secara bersamaan di beberapa server atau di utas berbeda pada mesin yang sama. Jika perlu, Anda dapat menjalankan JVM terpisah untuk setiap wadah Docker atau lingkungan virtual. Secara umum, untuk hal-hal seperti serverless di Jawa saat ini, GraalVM telah menjadi sangat diperlukan.

Teknologi baru lain yang menarik yang sedang dikerjakan oleh tim JVM adalah Serat. Mereka memungkinkan Anda untuk membuat aplikasi Java dengan cara tradisional, dengan utas, tetapi pada saat yang sama memiliki kinerja yang sama seperti jika Anda menggunakan kerangka kerja asinkron, misalnya, Vert.x, Node.js atau lainnya.

Selalu ada kontradiksi dalam pemrograman: di satu sisi, kebutuhan untuk mengoptimalkan kinerja kode, di sisi lain, keinginan untuk menulis kode yang jelas dan mudah dipelihara. Sistem dengan utas lebih mudah dibaca dan lebih mudah mencari bug di dalamnya. Sistem asinkron memungkinkan Anda untuk memeras kinerja tambahan dari kode, karena setiap utas digunakan sepenuhnya, karena permintaan ditarik ke dalam satu proses. Tetapi untuk mewujudkan keunggulan ini, perlu mengubah model pemrograman, sistem kemudian menjadi lebih sulit untuk dipelihara. Serat memungkinkan untuk menulis kode dengan utas, tetapi pada saat yang sama memiliki kinerja kerangka asinkron.

Oleg: Sebenarnya, beberapa perubahan telah dilakukan di OpenJDK untuk mempersiapkan kedatangan Loom. Misalnya, dalam JEP 353: Reimplement the Legacy Socket API .

Stephen: Sejauh yang saya tahu, infrastruktur dasar untuk Fibers dan Loom sedang dilaksanakan, tetapi tidak akan terbuka untuk pengguna, karena pengembang tidak ingin orang-orang bekerja dengan mereka secara langsung. Jadi sekarang kami sedang mengerjakan API untuk Serat.

Oleg: Apakah Anda menggunakan Java versi terbaru?

Steven: Tentu saja, saya selalu memiliki versi terbaru. Bagaimana lagi? Benar, saya tidak menulis kode produksi sekarang. Ketika bekerja dengan prototipe atau ketika menjelajahi perpustakaan dan kerangka kerja baru, tidak ada alasan untuk tidak menggunakan versi terbaru dari OpenJDK. Jika pekerjaan berjalan dengan sistem dalam produksi, mungkin sulit untuk dengan cepat beralih ke versi terbaru.

Organisasi besar memiliki waktu paling sulit melintasi perbatasan Java 9. Kemudian ada modularitas, dan membawa serta banyak perubahan lainnya. Seringkali, banyak kerangka kerja dan teknologi yang bergantung pada proyek belum bermigrasi ke Jawa 9 dan kemudian, yang juga membuat transisi menjadi sulit. Jika baris ini dilewati, maka jauh lebih mudah untuk memperbarui lebih lanjut, karena versi berikutnya (10, 11, 12 dan, jika saya tidak mencampuradukkan apa pun, segera 13) sangat mirip. Dalam hal kompatibilitas, perubahan terbesar adalah modularitas.

Oleg: Dan meninggalkan Java Enterprise.

Stephen: Ya.

Oleg: Akhirnya, bisakah Anda menceritakan sesuatu tentang laporan baru Anda, yang dengannya Anda datang kepada kami di Joker?

Steven: Ketika Anda banyak berbicara dengan pembicara, Anda mengikuti aplikasi yang disajikan di konferensi, dan secara umum, tren industri, Anda dapat melihat berapa banyak hype selalu muncul di sekitar teknologi baru, apakah itu chat bot, serverless, pembelajaran mesin, kecerdasan buatan atau yang lainnya. Orang selalu memiliki banyak kegembiraan tentang hal-hal seperti itu karena kebaruan mereka, Anda selalu ingin mengetahui segala sesuatu tentang mereka secepat mungkin.

Tetapi seringkali sulit untuk menentukan apakah terobosan penting benar-benar di balik hype ini, atau apakah tidak ada selain hype. Dalam ceramah saya di Joker, saya ingin menyelesaikan masalah ini. , , , , . , , .

Joker. - , β€” , . β€” , , DevOps Speakeasy. , -.

: . , , . , β€” -! , -.

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


All Articles