“Tidak ada yang memberi tahu orang lain apa yang harus mereka lakukan”: Nicolò Ribaudo tentang pengembangan Babel dan banyak lagi



Nicolò Ribaudo adalah salah satu pengembang utama Babel, pakar TC39 yang berkunjung, dan juga seorang siswa matematika.

Nicolò akan tampil besok di HolyJS 2019 Moskow. Dan untuk mengantisipasi hal ini, anggota komite program HolyJS Yevgeny Kot ( bunopus ) dan Dmitry Makhnev ( DmitryMakhnev ) berbicara dengannya tentang pengembangan Babel, tugas-tugas ahli yang diundang, mempelajari, laporan yang akan datang tentang HolyJS ... dan bagaimana mengatur untuk mendapatkan tidur yang cukup.

Eugene: Mari kita mulai dengan pertanyaan sederhana. Bisakah Anda ceritakan sedikit tentang diri Anda, apa yang Anda lakukan?

Nicolò: Saya sudah bekerja di Babel selama dua tahun sekarang. Saya belajar matematika, sekarang di tahun kedua saya di universitas. Pemrograman dan pembelajaran menghabiskan sebagian besar waktu saya; Saya sudah pemrograman selama sepuluh tahun, dan JavaScript adalah bahasa favorit saya. Saya pikir saya mulai berkontribusi ke open source justru karena JavaScript, ini terjadi beberapa tahun yang lalu.

Eugene: Sekarang Anda bekerja di tim inti Babel, dan ini mengesankan: setelah semua, sebagian besar produk yang ditulis dalam JavaScript menggunakan Babel setiap hari. Kenapa Anda masuk ke tim?

Nicolò: Saya mulai berkontribusi karena saya menggunakannya sendiri dan ingin melakukan sesuatu untuk komunitas. Ketika saya pertama kali muncul di komunitas open source, saya pertama berkontribusi pada proyek-proyek lain dan kemudian mengetahui tentang Babel, dan dia tertarik pada saya. Sebenarnya, ada alasan lain, agak egois: Saya ingin menjadi terkenal! Saya ingin mengerjakan sesuatu yang banyak orang tahu. Tetapi kemudian saya menyadari alasan sebenarnya bahwa orang-orang bekerja pada open source, dan terus bekerja karena saya menyukainya.

Eugene: Tapi mengapa sebenarnya Babel? Ada banyak berbagai proyek sumber terbuka di dunia.

Nicolò: Sebelum Babel, saya menyelundupkan ke JSHint, saya juga menyukainya. Di sana saya belajar banyak tentang parser. Itu sebabnya saya bertemu Babel. Pada awalnya, saya tidak melakukannya di transformator, tetapi di parser. Selain itu, saya sudah terbiasa dengan proyek ini dan berhasil mencobanya di proyek pribadi saya, dan karena itu untuk berurusan dengan Babel sepertinya ide yang bagus.

Eugene: Sekarang Anda sedang belajar matematika, dan ini adalah hal yang agak rumit. Sumber terbuka juga tidak mudah untuk ditulis. Bagaimana Anda bisa menggabungkan semua hal ini pada saat yang bersamaan? Apakah Anda punya 30 jam sehari?

Nicolò: Tahun lalu sangat sulit, saya belajar 20 jam seminggu dan memiliki banyak waktu luang. Sekarang lebih sulit, karena Anda harus belajar selama 30 jam. Dan saya ingin bekerja pada proyek-proyek open source setidaknya 20 jam seminggu. Diperlukan untuk melakukan ini di malam hari dan malam hari, atau pada akhir pekan.

Eugene: Apakah Anda bahkan tidur?

Nicolò: Setelah makan siang, saya bekerja mungkin tiga atau empat jam. Saya mencoba untuk tidak mendaur ulang. Tapi terkadang itu sulit: ketika Anda menyelesaikan tugas yang sulit dan bersemangat dengan prosesnya, Anda harus memaksakan diri untuk berhenti dan tidur sehingga Anda tidak tertidur di hari berikutnya.

Eugene: Apakah itu diatur oleh Babel? Maksud saya, apakah ada semacam jaminan atau dapatkah Anda melakukan sesuatu yang terlintas dalam pikiran? Bagaimana cara kerjanya?

Nicolò: Kami tidak memiliki organisasi proses yang ketat. Tentu saja, kami menggambar roadmap, tetapi pada dasarnya kami memutuskan apa yang harus dilakukan. Misalnya, kami memilih tugas untuk rilis berikutnya, dan kemudian semua orang dapat mengerjakannya.

Eugene: Selalu ada beberapa tugas keren, dan sesuatu yang membosankan yang tidak ingin dilakukan siapa pun. Bagaimana cara menggabungkannya? Apakah Anda punya, manajer produk yang saya tidak tahu, yang akan memberi tahu Anda apa yang harus dilakukan minggu atau bulan depan?

Nicolò: Kami mengadakan aksi unjuk rasa setiap dua minggu, dan selama aksi unjuk rasa ini, jika ada tugas yang tidak menarik, kami biasanya memutuskan bersama apa yang harus dilakukan dengan mereka. Sebagai contoh, salah satu tugas yang paling membosankan adalah memecahkan masalah bug: kami memiliki sekitar 700 tiket terbuka, dan banyak dari mereka tidak lagi relevan. Mungkin mereka sudah diperbaiki di tempat lain, atau masalahnya ada pada konfigurasi pengguna tertentu. Bagaimanapun, kami mencoba melakukan triase pada mereka sebulan sekali atau dua minggu sekali. Tetapi tidak ada yang memberi tahu orang lain apa yang perlu mereka lakukan: kita mengambilnya sendiri.

Dmitry: Apakah Anda akan mengerjakan Babel penuh waktu setelah lulus?

Nicolò: Kami sekarang mencoba memahami apakah Kolektif Terbuka memberi kami cukup uang sehingga tahun ini seseorang dari tim dapat mulai bekerja paruh waktu untuk pembayaran Babel. Karena kami mencurahkan banyak waktu untuk proyek ini, akan sangat bagus untuk menganggapnya sebagai pekerjaan "nyata". Tetapi bahkan jika Anda tidak dapat mengubah Babel menjadi pekerjaan seperti itu, setelah universitas saya masih ingin bekerja pada proyek-proyek sumber terbuka.

Eugene: Saya tidak terbiasa dengan skema ini, dengan Open Collective ... Apakah Anda memiliki donasi dan uang yang menumpuk, dan bagaimana tim memutuskan siapa yang akan bekerja penuh waktu?

Nicolò: Ini adalah topik yang kompleks, dan kami biasanya mendiskusikannya berjam-jam, terkadang tidak berhasil. Saat ini, Henry adalah satu-satunya orang yang bekerja penuh waktu. Karena dia memiliki kesempatan pertama dan karena dia adalah yang terpelihara paling lama. Tapi sekarang kami mencoba memahami jika masih ada orang di tim yang ingin dan dapat bekerja di Babel.

Upaya untuk mengubah proyek yang didanai masyarakat menjadi pekerjaan penuh dengan kompleksitas. Jika Anda bekerja di perusahaan reguler, Anda selalu memiliki gaji yang sama, dan Anda dijamin akan menerimanya. Tetapi kami bergantung pada donasi, dan ternyata sulit untuk membuat keputusan penting dalam hidup ketika selalu ada risiko. Karena itu, sangat sulit untuk menemukan orang yang ingin mengerjakannya untuk waktu penuh atau bahkan paruh waktu, dan yang kami percayai. Jadi tidak ada kompetisi dalam tim dalam hal ini. Masalah utama adalah mencari uang bagi mereka yang masih ingin melakukan pekerjaan semacam ini.

Eugene: Ya, Anda mengumpulkan uang di Kolektif Terbuka, Anda mengerti siapa yang akan bekerja penuh waktu, tetapi berapa gajinya? Siapa yang memutuskan ini?

Nicolò: Kami belum tahu. Ini sulit ditentukan karena kita perlu memahami berapa banyak kita harus membayar bersama. Dan dia tidak ingin melacak waktu, sehingga tarif per jamnya tidak sesuai. Anda dapat, tentu saja, membayar hasilnya, tetapi kemudian apa yang harus dilakukan dengan permainan lama atau beberapa tugas yang membosankan yang tidak memberikan hasil yang langsung terlihat jelas? Misalnya, triase bug atau membantu orang di Slack. Jadi kami ingin entah bagaimana menentukan ukuran gaji bulanan, tetapi sangat sulit untuk menentukan berapa seharusnya. Selain itu, karena kita berada di berbagai belahan dunia, apa yang tampak kaya bagiku akan menjadi sedikit uang bagi seseorang. Jadi semuanya rumit.

Eugene: Itu dia! Jadi Anda mengatakan bahwa setelah universitas Anda akan bekerja pada open source, dan sementara itu - semua masalah keuangan ini ... Di sisi lain, ada banyak perusahaan komersial besar seperti Google dan Apple, dan mereka membayar dengan baik. Apa yang Anda pikirkan tentang mereka? Bekerja di perusahaan super internasional semacam itu dapat memiliki kelebihan (dan kekurangan).

Nicolò: Ini bukan hal yang saling eksklusif, karena ada banyak perusahaan dengan proyek open source besar. Anda dapat bekerja di perusahaan besar dan pada saat yang sama bekerja pada sumber terbuka. Saya tidak tahu apakah saya akan bekerja dalam hal ini. Sejauh ini, saya tidak butuh banyak uang, tetapi setelah lulus kuliah saya harus mencari pekerjaan.

Dmitry: Sejauh yang saya tahu, Anda adalah pakar tamu di TC39. Saya terkesan ketika Sergey Rubanov mengatakan bahwa hanya ada 20 orang seperti itu. Bisakah Anda ceritakan bagaimana Anda masuk ke dalam grup ini?

Nicolò: Peran ahli yang diundang adalah untuk orang-orang yang tahu banyak di bidang tertentu, atau membantu dengan banyak prozolos, atau membantu TC39 dari komunitas. Saya menjadi ahli tamu melalui pekerjaan saya di Babel. Dia mengerjakan semua item terkait kelas (seperti dekorator atau bidang kelas). Saya juga perlu menganalisis banyak proposisi lain untuk implementasinya di Babel dan untuk membantu kontributor eksternal mengimplementasikannya.

Saya hanya berpartisipasi dalam reli TC39 hanya sekali, tetapi di masa depan saya akan senang membantu TC39 dengan semua yang saya bisa.

Dmitry: Apakah Anda ingin menjadi delegasi TC39 di masa depan?

Nicolò: Mungkin. TC39 umumnya bukan untuk orang lajang: biasanya Anda harus bekerja untuk perusahaan yang bergabung dengan TC39. Tetapi jika saya bekerja di perusahaan seperti itu, saya akan dengan senang hati membantu dan menjadi seorang delegasi.

Eugene: Mengapa menurut Anda TC39 sangat penting? Mengapa Anda ingin bekerja dengan mereka?

Nicolò: Karena saya suka JavaScript dan saya sangat suka membantu mengembangkan bahasa. Bekerja dengan TC39 adalah cara lain untuk membantu mengembangkan JavaScript. Kami perlu melakukan ini demi komunitas dan mendengarkan orang-orang membuat JavaScript lebih baik untuk semua orang.

Dmitry: Apakah Anda berpikir bahwa belajar di universitas adalah persyaratan ketat untuk menjadi pengembang yang sukses?

Nicolò: Saya rasa tidak. Saya tidak belajar ilmu komputer, dan saya tidak mungkin melakukan ini. Saya diprogram jauh sebelum saya masuk universitas. Saya bergabung dengan pengembang Babel ketika saya masih seorang siswa sekolah menengah. Saya tahu banyak anak muda lain yang juga tidak memiliki gelar sarjana di bidang ilmu komputer, tetapi mereka telah menjadi pengembang yang sangat baik dan bisa mendapatkan pekerjaan yang baik.

Eugene: Meskipun demikian, belajar di universitas dapat memberikan beberapa manfaat tambahan di tempat kerja, bukan? Dalam rencana karier atau semacamnya. Ngomong-ngomong, mengapa kamu pergi ke matematika?

Nicolò: Saya setuju bahwa universitas dapat memberikan sesuatu yang lain, tetapi saya yakin Anda dapat menjadi pengembang yang sukses tanpa itu. Saya memutuskan untuk belajar matematika karena saya menyukainya. Ini adalah subjek favorit saya sejak sepuluh tahun. Saya memilih fakultas ini bukan karena saya membutuhkannya untuk bekerja, tetapi karena saya menyukainya.

Jika saya memilih universitas hanya berdasarkan apa yang saya butuhkan, saya mungkin akan lebih suka ilmu komputer. Tetapi pada saat yang sama, jika Anda suka belajar, universitas adalah salah satu cara terbaik.

Dmitry: Jika Anda sangat menyukai matematika sehingga Anda pergi ke universitas untuk itu, lalu mengapa memilih JavaScript sebagai bahasa utama tempat Anda berinvestasi dan ingin meningkatkan? Mengapa tidak mengambil Haskell atau pembelajaran mesin dan bahasa sains data?

Eugene: Matematika biasanya dikaitkan dengan pembelajaran mesin dan hal-hal kompleks lainnya. Dan kebanyakan orang di lingkungan saya menganggap JavaScript sebagai sesuatu yang sepenuhnya tentang tombol front-end, tombol, div, dan bahwa semua ini benar-benar tidak cocok untuk para ilmuwan dan ahli matematika.

Nicolò: Saya mulai pemrograman dalam JavaScript karena saya punya bibi yang mengajar pengembangan web. Ketika saya ingin memahami komputer, saya menoleh padanya, dan JS adalah salah satu bahasa yang ia usulkan. Program pertama saya adalah ekstensi browser, cheat untuk game online yang saya mainkan saat itu. Dan JavaScript adalah satu-satunya bahasa yang memungkinkan saya melakukan ini.

Kemudian saya mencoba Haskell dan saya menyukainya. Saya suka bahwa dia dekat dengan matematika. Tetapi saya tidak pernah mempelajarinya cukup untuk menulis aplikasi besar di atasnya. Jadi, sebenarnya, saya suka JavaScript hanya karena saya mulai mempelajarinya terlebih dahulu dan karena itu saya tahu yang terbaik.

Dmitry: Apa pendapat Anda tentang menyelesaikan tugas sehari-hari dalam beberapa bahasa pemrograman sendiri? Mungkinkah ini dianggap cara yang baik untuk mengajarkan pemrograman?

Nicolò: Saya tidak pandai mengajar pemrograman. Siswa biasanya berpikir tentang cara belajar sesuatu, dan berharap bahwa guru dapat mengajar mereka :) Saya pikir kami di Babel berada dalam posisi yang baik untuk membuat pembelajaran JavaScript lebih mudah bagi pemula. Misalnya, setelah kami membahas kemungkinan menerjemahkan JavaScript ke bahasa manusia lainnya - jadi, misalnya, jika Anda orang Rusia, maka Anda bisa menulis "jika" alih-alih "jika". Kami tidak melakukannya seperti itu, dan saya tidak tahu apakah kami akan melakukannya di masa depan. Tapi ini adalah contoh yang baik tentang cara menurunkan bilah entri.

Dmitry: Apakah matematika membutuhkan pengembang JavaScript modern?

Nicolò: Itu sangat tergantung pada apa yang akan Anda lakukan. Sebagian besar aplikasi JavaScript tidak membutuhkan matematika, baik, atau minimum diperlukan di sana. Jika Anda terlibat dalam desain web, memahami sinus dan cosinus mungkin berguna, itu saja. Saya pikir ada banyak bahasa lain di mana matematika lebih berguna: misalnya, dalam pembelajaran mesin atau ilmu data, di mana JavaScript hampir tidak pernah digunakan, Anda perlu tahu lebih banyak tentang matematika. Tetapi jika Anda hanya menulis server di Node.js atau aplikasi klien, Anda tidak membutuhkannya.

Eugene: Apa yang kamu pelajari? Kita sudah tahu tentang universitas, tapi mungkin ada hal lain. Semua podcast, video, mitaps, artikel di Internet ...

Nicolò: Saya kebanyakan membaca blog atau hanya dokumentasi di perpustakaan atau bahasa. Saya tidak pernah benar-benar menggunakan video atau podcast karena sulit bagi saya untuk mendengarkannya lebih dari satu jam. Seperti yang sudah saya katakan, di masa kecil saya memiliki seorang bibi yang mengajarkan saya dasar-dasar pemrograman. Dan kemudian saya mulai belajar sendiri. Saya dulu memiliki aplikasi layanan blog seperti Medium yang diinstal pada ponsel cerdas saya, tetapi kemudian saya menghapusnya karena saya membaca terlalu banyak tutorial dan penjelasan tentang chip baru, alih-alih berkonsentrasi pada tugas-tugas saya.

Eugene: Bagaimana dengan sumber offline seperti rapat dan konferensi? Apakah Anda berpartisipasi di dalamnya?

Nicolò: Saya tidak terlalu akrab dengan komunitas di kota saya. Saya pernah ke mitap sekali atau dua kali. Saya mengunjungi konferensi pertama saya hanya beberapa bulan yang lalu. Saya ingin berinteraksi dengan masyarakat setempat, tetapi ketika saya mencoba terakhir kali, ternyata hanya saya yang berusia di bawah 20 tahun. Saya merasa tidak pada tempatnya. Tetapi saya akan mencoba lagi nanti dan melihat apa yang terjadi.

Eugene: Apakah Anda pikir ada ageism di komunitas? Maksud saya, semua orang di bawah 20 dipandang sebagai junior?

Nicolò: Jika semua orang yang Anda lihat sekitar sepuluh tahun lebih tua, itu membuat Anda tidak nyaman. Biasanya anak muda tidak bergaul dengan generasi yang jauh lebih tua. Saya pikir ini akan berubah seiring waktu, akan lebih mudah untuk berkomunikasi. Sejauh ini saya selalu dekat dengan orang-orang seusia saya, jadi situasinya sangat berbeda. Tetapi pada saat yang sama saya tidak pernah dilarang untuk berpartisipasi dan mereka tidak mengatakan bahwa saya terlalu muda. Tidak ada yang mempertanyakan kemampuan saya berdasarkan usia.

Eugene: Banyak acara offline seperti itu - pertemuan, konferensi, lokakarya - ini bukan hanya tentang memperoleh pengetahuan baru, tetapi juga tentang jaringan. Apa yang Anda pikirkan tentang jaringan secara umum? Maksud saya, bertemu orang-orang, membangun koneksi, menjelajahi komunitas lokal ...

Nicolò: Saya pikir jaringan itu penting. Terutama karena memungkinkan Anda untuk mencari pekerjaan atau orang-orang dengan minat yang sama. Tetapi saat ini saya tidak benar-benar merasakan kebutuhan mendesak untuk mencari orang offline di kota saya, karena saya sudah sibuk dengan belajar dan bekerja di Babel, dan saya tidak punya waktu untuk berkomunikasi dengan orang baru. Saya juga ingin mencari kontributor baru di Babel, untuk menunjukkan kepada orang-orang bahwa meskipun ini adalah proyek yang populer, siapa pun dapat berkontribusi di sana.

Eugene: Apakah Anda pernah menghadiri pertemuan tim Babel secara langsung?

Nicolò: Ya, saya bertemu bagian dari tim di JSConf di Berlin. Ini bukan seluruh tim, tetapi bagian penting dari kontributor aktif. Itu adalah pengalaman yang luar biasa, karena saya dulu berkomunikasi dengan orang-orang ini hanya online. Meskipun kadang-kadang kami melakukan panggilan video, sangat menyenangkan bertemu langsung dengan mereka.

Dmitry: Ini pertama kalinya Anda di Rusia. Apa pun yang Anda harapkan dari perjalanan?

Nicolò: Ya, ketika saya bepergian, saya berusaha untuk tidak membuat asumsi atau harapan. Saya pikir jika saya tidak mengharapkan apa pun sebelumnya, kejutan itu akan menjadi jauh lebih baik! Dan juga, tentang Moskow, saya hanya tahu satu hal - bar, yang disarankan teman saya untuk dikunjungi. Namun, dia tidak lagi tinggal di Moskow, dia pindah ke Italia setahun yang lalu. Mungkin bar ini hanya di sebelah bekas rumahnya. Secara umum, tidak ada harapan, saya ingin melihat semuanya dengan tampilan yang segar.

Dmitry: Saya harap kita mengunjungi bar itu bersama. Ngomong-ngomong, apakah Anda punya rencana untuk HolyJS?

Nicolò: Saya berharap mendapatkan banyak kesenangan dari bertemu orang-orang. Mengenal orang, mendiskusikan Babel dengan mereka, dan mencoba menarik minat orang adalah bagian yang paling menyenangkan. Saya pikir konferensi apa pun harus membantu orang bersatu. Dan dari sudut pandang bukan peserta, tetapi pembicara, - well, saya hanya berharap bahwa semuanya berjalan dengan baik.

Dmitry: Tentu saja akan berlalu, kami sedang mengusahakannya.

Nicolò akan memberikan presentasi tentang "@ babel / how-to" di HolyJS 2019 Moscow pada 8 November.

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


All Articles