Saya telah mendengar tentang programmer yang melakukan coding selama dua hari tanpa tidur dan minum kopi dan Red Bull . Juga di film-film seperti The Social Network , dalam sebuah adegan mereka menunjukkan bahwa Mark Zuckerberg telah pemrograman selama 36 jam. Saya juga membaca di suatu tempat bahwa di perusahaan seperti Facebook, Google, foursquare , dll. Mereka dapat kode selama lebih dari 24 jam tanpa tidur.
Apakah ini benar? Bisakah Anda benar-benar menghasilkan kode berkualitas tinggi jika Anda kurang tidur? Bisakah hal-hal seperti Red Bull menggantikan tidur?
productivity
Peter Mortensen
sumber
sumber
Jawaban:
Cukup Tidak . Pengkodean selama 36 jam tidak ada hubungannya dengan pemrograman, melainkan merupakan atribut manusia. Sangat sedikit orang yang bisa tetap terjaga selama 24 jam dan bahkan ketika mereka tetap terjaga, pikiran mereka benar-benar kehilangan keterampilan memecahkan masalah. Pengemudi yang mengantuk, cukup menabrak mobil lain. Akuntan yang mengantuk, cukup melakukan kesalahan dalam perhitungannya. Juga banyak programmer ketika mengantuk, tuliskan kode yang kurang berkualitas.
PS: Ada penyakit yang disebut insomnia yang membuat kamu kurang tidur. Tapi saya tidak berpikir Google mempekerjakan orang dengan penyakit seperti itu. :)
sumber
Itu mungkin salah satu dari mitos yang terkenal dan bertahan lama. Anda sering mendengarnya karena ini adalah ide yang menarik, tetapi sebenarnya tidak memiliki dasar yang nyata.
Oh, tentu, mungkin beberapa anak muda yang baru lulus dari sekolah menengah dapat melakukan apa yang tampak seperti pengkodean keajaiban dalam 36 jam. Tetapi apakah kode yang ditulis dengan cara seperti itu dapat dipertahankan? Apakah ini dapat dibaca? Apakah itu skala? Apakah ini mengikuti praktik pemrograman yang masuk akal? Apakah ini didokumentasikan?
Twitter meretas sebuah situs yang berfungsi, dan kemudian menulis ulang dengan cara yang "benar", karena jatuh ketika bebannya terlalu besar. Facebook mengumpulkan situs asli mereka dalam waktu yang relatif singkat untuk proyek semacam itu, tetapi kemudian membawa sekelompok pengembang baru untuk menulis ulang platform PHP yang sedang dijalankan oleh situs web, karena itu tidak akan berkembang .
Pengecualian membuktikan aturannya.
sumber
Satu-satunya bagian yang bisa benar tentang mitos ini adalah bahwa programer melakukan yang terbaik ketika mereka tidak terganggu untuk waktu yang lama. Saat Anda mengode, semakin banyak hal yang dapat Anda juggle di kepala Anda, semakin cepat Anda dapat kode karena Anda tidak perlu mencari hal-hal seperti penggunaan API, atau bagaimana bagian berbeda dari kode ditulis oleh Anda atau orang lain. Saya menemukan bahwa ketika saya terganggu, selalu dibutuhkan sejumlah waktu yang terukur untuk kembali ke kecepatan penuh, dan jika saya melakukan sesuatu yang penting (atau bersenang-senang), kadang-kadang saya akan pulang ke rumah pada waktu normal karena setelah jam adalah ketika gangguan Anda pulang. Saya juga dikenal untuk begadang sampai jam 3 atau 5 pagi karena alasan yang sama.
Namun, seperti yang saya katakan, kecepatan dan kualitas kode Anda tergantung pada seberapa banyak perhatian yang Anda bayar dan berapa banyak hal yang dapat Anda juggle dalam memori. Ketika tidur menjadi masalah Anda mungkin berpikir Anda bekerja pada kapasitas penuh Anda tetapi Anda sebenarnya tidak. Sebagian besar perangkat lunak yang dikembangkan seperti pada contoh yang Anda berikan, turun dengan cepat tetapi sama cepatnya menjadi tanggung jawab besar dan sakit kepala pemeliharaan.
Anda pasti dapat menghasilkan banyak kode jika Anda banyak bekerja, dan dengan usaha yang cukup Anda dapat melakukan engkol fitur demi fitur. Tetapi tanpa memperhatikan arsitektur / desain Anda tidak akan menghasilkan perangkat lunak yang mudah diskalakan, dirawat atau diperpanjang. Berbicara dari pengalaman, jauh lebih sulit untuk berpikir tentang desain dan menyulap komponen / antarmuka / lapisan abstraksi di kepala Anda (atau di atas kertas) daripada terus menulis kode murni.
sumber
Semuanya terdengar seperti berlebihan menjadi "di zona". Ketika Anda benar-benar fokus, sebagai pembuat kode, waktu melengkung, menit menjadi detik, dll. Anda mungkin paling produktif. Terkadang sulit untuk masuk ke kondisi itu, dan cukup mudah untuk keluar dari (kebanyakan faktor eksternal), tetapi ketika Anda .... wow!
sumber
Saya bisa - dan kadang-kadang melakukan - program selama 36 jam berturut-turut.
Saya pikir hal terburuk yang pernah saya alami adalah seminggu dengan sekitar 10 jam tidur atau lebih.
Bagi saya, kafein dan minuman berenergi tidak membantu. Faktanya, dalam jangka panjang, kafein dapat memiliki efek yang agak negatif. Saran saya adalah banyak minum . Membuat Anda tetap terhidrasi dan berjalan ke toilet adalah efek samping yang bagus: Anda sedikit meregangkan kaki dan secara otomatis membuat istirahat pendek.
Yang sedang berkata, saya menemukan ini semakin sulit. Saya kira itu adalah kapasitas, yang dikuras dan akhirnya habis. Dan mungkin memiliki beberapa efek kesehatan yang negatif - fisik atau mental, jangka panjang atau pendek, saya tidak tahu.
Yang bisa saya katakan adalah Anda merasa seperti zombie dan Anda akan terus merasa seperti itu beberapa hari setelah maraton seperti itu. Secara pribadi, saya mengalami kelelahan yang sangat besar setelah melakukan ini selama sekitar satu tahun.
Artinya: Beberapa orang dapat bekerja secara efisien untuk rentang waktu seperti itu, tetapi itu harus dibayar mahal .
Ini biasanya merupakan konsekuensi dari perencanaan yang buruk dan tidak memiliki pengalaman dalam mengisi kesenjangan yang ditinggalkan oleh pimpinan proyek non-teknis, itu adalah satu-satunya pilihan.
Sekarang Anda akan jarang menemukan kode kualitas yang dihasilkan selama maraton tersebut. Namun penyebab utama dari ini adalah keadaan, di mana maraton terjadi: Situasi, di mana Anda perlu memberikan fitur X, Y dan Z dalam jangka waktu yang sangat singkat. Tidak ada yang benar-benar peduli dengan kualitas kode pada saat itu, itulah sebabnya Anda mengumpulkan banyak utang teknis melalui perbaikan cepat dan peretasan lainnya.
Pada saat yang sama, ini menunjukkan kinerja otak yang utuh: Perbaikan cepat dan peretasan membutuhkan ikhtisar dan kreativitas.
Anda tidak boleh lupa, bahwa kode kualitas jarang ditulis dalam sekali proses. Apalagi jika kodenya memiliki rentang hidup yang panjang. Kualitas kode dicapai melalui peninjauan dan refactoring. Tidak ada yang akan repot-repot melakukan itu 48 jam sebelum batas waktu.
Intinya adalah: Anda seharusnya hanya bekerja selama Anda bisa dan tidak lagi . Jika Anda hanya dapat bekerja selama 4 jam, maka ok. Beristirahatlah dan bekerjalah sesudahnya. Mencoba untuk tetap terjaga selama 36 jam di mana Anda mendapatkan 8 jam kerja tidak ada gunanya. Anda mendapatkan pekerjaan dua kali lipat jika Anda membuat 4 sesi masing-masing 4 jam dan menggunakan 20 jam sisanya untuk regenerasi.
Jika Anda bisa bekerja berjam-jam, itu artinya Anda lebih fleksibel dalam merespons terlalu rendah. Namun solusi jangka panjang adalah meningkatkan proses perencanaan dan estimasi Anda. Jika itu tidak mungkin di tempat kerja Anda, berganti pekerjaan. Jika orang mengharapkan Anda bekerja dengan jam kerja yang begitu lama, ganti pekerjaan. Anda tidak perlu membuktikan apa pun kepada siapa pun.
sumber
Pemrogram yang baik memang bisa memprogram selama 36 jam. Itu tidak berarti mereka dapat menghasilkan kode kualitas terbaik mereka selama 36 jam. Saya bukan programmer yang baik, dan saya melakukannya beberapa kali di perguruan tinggi, dan bahkan beberapa kali dalam usia 30-an ketika mencoba memperbaiki bug untuk tenggat waktu pengiriman. Ini umumnya ide yang bodoh dan mencerminkan keterampilan perencanaan dan penjadwalan yang buruk.
sumber
Anda bisa tetap terjaga dan bekerja selama 36 jam jika Anda sehat. Tetapi saat ini Anda tidak akan menulis kode terbaik atau memecahkan masalah yang sangat rumit. Saya telah bekerja selama berjam-jam sekali. Sebagian besar waktu ini adalah untuk menjaga tenggat waktu. Tetapi pekerjaan pada waktu itu sebagian besar menambahkan fitur-fitur kecil seperti mencetak beberapa daftar, memoles beberapa tata letak. Tidak ada tempat di mana Anda perlu banyak berpikir, lebih banyak mengetik. Fitur utama dan bagian rumit dari program di mana sudah selesai.
Terkadang kurangnya konsentrasi adalah alasan utama untuk waktu yang lama. Kami pernah memiliki tenggat waktu keesokan harinya. Setelah hari yang sangat panjang, kami telah menyelesaikan semuanya dan itu jam 2 pagi. Hanya ada satu bug jahat yang tersisa. Bos saya punya janji dengan pelanggan pada jam 9 pagi, jadi ada banyak waktu. Saya butuh beberapa jam untuk menemukan dan memperbaiki sesuatu yang kalau tidak saya akan perbaiki dalam setengah jam. Saya hanya tahu pasti bahwa saya akan tetap dapat menemukannya dan tidak ada alasan untuk mengecewakan bos saya, karena bagaimanapun malam itu telah berlalu.
sumber
Iya nih. Banyak informasi anekdotal menunjukkan hal itu bisa. Saya ragu ada orang yang secara fisik bisa membuat kebiasaan maraton tidak bekerja. Dokter magang menarik jenis jam ini.
Apakah Anda cenderung membuat lebih banyak kesalahan, mungkin. Saya kira ini semua mengasumsikan Anda dapat menulis kode kualitas di tempat pertama. Dalam situasi ini, Anda berada di bawah senjata dan hanya ingin membuatnya berfungsi. Kualitas bukan pertimbangan. Kami akan memperbaikinya setelah kami mendapatkan dana.
sumber
Bukan tidak mungkin dan telah terjadi secara nyata. Karena bab ini panjang, izinkan saya mengutip paragraf yang sebenarnya:
Tentu saja ini tidak berarti bahwa ini adalah satu aturan untuk semua. Beberapa orang bisa melakukannya, sementara yang lain tidak bisa. Yang paling penting adalah jangan sampai terputus, dan bekerja selama periode yang Anda rasa sangat produktif. Dengan demikian, Anda bisa mencoba sendiri dan membuat kesimpulan :)
sumber
Saya kira itu mungkin, jika Anda seorang mesin - saya tidak ragu bahwa beberapa orang dapat melakukannya. Tetapi pengalaman telah mengajari saya bahwa sebagian besar programmer akan menulis kode yang lebih buruk segera setelah tanda 8 hingga 10 jam, dan kode mengerikan setelah tanda 16 jam.
Beberapa kali tim kami dipaksa untuk melakukan all-nighter, kami benar-benar berakhir dengan beberapa kode yang perlu dibatalkan.
sumber
Saya ragu itu jujur. Sebenarnya terlepas dari mitos dan cerita tentang orang yang mencapai X, Y dan Z yang telah bangun selama 24 jam, mereka kebetulan berada dalam keadaan ekstrem dan jarang terjadi.
Kembali ke masa lalu, saya biasa menyediakan kolam pengetik untuk firma hukum yang kadang-kadang meminta orang-orang menarik semua malam untuk mencoba dan mengeluarkan barang untuk waktu-waktu tertentu. Siapa pun yang melakukan jam gila penyusunan dokumen biasanya akhirnya mengirim dokumen-dokumen itu untuk mendapatkan perubahan semalam mereka terbalik. Dalam pandangan saya, itu tidak mungkin untuk secara konsisten tampil di tingkat tinggi selama lebih dari sekitar 12 jam pada suatu waktu (dan bahkan itu berlebihan) selamat dari kurang tidur dengan meningkatkan kadar kafein Anda. Saya pikir ini adalah cerita yang orang suka ceritakan, tetapi jika mereka jujur, mereka akan mengakui bahwa pekerjaan rata-rata mereka selama sesi longhaul, terlepas dari apa pekerjaan itu, baik itu coding atau menulis dokumen hukum, jarang, jika pernah, cukup baik untuk mencocokkan output mereka jika mereka mendapat istirahat yang cukup.
Tidak ada yang istimewa tentang coder, tidak peduli sebagus apa mereka, seperti driver, seperti operator alat berat, mereka akan kelelahan dan saya akan terkejut jika ada yang bisa membuktikan bahwa seorang pembuat kode bisa memberikan hasil berkualitas tinggi tanpa istirahat dalam waktu sekitar 12 jam .
sumber
Ketika saya belajar pemrograman di universitas ada beberapa malam di mana saya merasa lebih produktif daripada siang hari. Ini berkaitan dengan fakta bahwa ada sedikit gangguan di malam hari, gulma telah membuat saya cukup nyaman untuk duduk diam dan saya tidak benar-benar bangun hari itu sampai jam 2 siang jadi saya tidak terlalu lelah. Saya bisa kode sampai 8 pagi sebelum saya lapar lapar untuk sarapan saya. Dengan mengatakan bahwa pada hari berikutnya saya secara mental akan jatuh pada jam 5 sore dan tidak mungkin saya menjadi produktif. Pemrograman di malam hari bisa lebih produktif tetapi membuat Anda kurang tidur tidak pernah meningkatkan kualitas kode dan Anda tidak akan pernah berencana untuk lelah ketika coding.
sumber
Saya dan banyak orang kreatif lainnya menunjukkan ciri-ciri kepribadian bipolar. Saat mendesain perangkat lunak, saya cenderung mengikuti algoritma Feynman:
Tuliskan masalahnya. (Menit)
Berpikir sangat keras. (Antara hari dan tahun)
Tuliskan solusinya. (Hari)
Episode hipomanik dengan kurang tidur secara drastis (kafein atau tidak) hanyalah tiket untuk menyelesaikan # 3.
sumber
Silakan lihat posting terkait ini di Skeptics.SE: Apakah Ballmer Peak nyata? , dan khususnya jawaban ini oleh ESultanik .
Mengapa menurut saya kedua pertanyaan ini saling berkaitan? Sepertinya bagi saya bahwa gangguan yang disebabkan oleh kurang tidur agak mirip dengan mabuk, meskipun saya tidak memiliki referensi untuk mendukung klaim saya.
Mengutip dari referensi yang dikutip ESultanik,
Saya akan mengatakan bahwa orang mungkin lebih baik dalam membuat model arsitektur abstrak saat kurang tidur, tetapi kode sumber yang sebenarnya diketik ke keyboard masih mabuk.
sumber
Ketika seseorang dipaksa untuk kode selama 36 jam, biasanya karena tenggat waktu untuk mengirimkan produk. Ketika seseorang berada pada tenggat waktu seperti itu, kualitas kode biasanya adalah hal pertama yang dibuang. "Lakukan saja" adalah mantra. "Kami akan memperbaikinya dalam versi 2" adalah mantra lain.
Jadi biasanya, ketika seseorang melakukan pengkodean selama 36 jam berturut-turut, kualitas kode memang menderita .. tetapi itu tidak masalah dari sudut pandang bisnis .. karena jika Anda tidak mengirimkan sesuatu, bahkan sesuatu yang rusak, Anda mungkin tidak berada dalam bisnis untuk melakukannya dengan benar.
Ketika satu INGIN kode selama 36 jam berturut-turut, itu karena Anda memiliki lonjakan kreatif yang kuat, dan Anda tidak ingin mengganggu itu. Anda tidak akan menulis kode kualitas selama 36 jam itu, tetapi Anda akan menulis kode kreatif. Anda kemudian kembali lagi dan melihat kode itu dan bertanya-tanya bagaimana cara kerjanya.
Kreativitas adalah salah satu hal yang sering muncul secara tiba-tiba. Anda tidak dapat mengendalikannya, jadi Anda memanfaatkannya saat itu muncul dengan sendirinya. Anda selalu dapat memperbaiki kode ketika Anda kurang kreatif.
sumber
Beberapa bulan yang lalu, saya keluar dengan rekan kerja saya minum. Keesokan harinya kami tiba kembali di kantor mampir ... tapi kami kagum karena kami menutup jumlah bug yang memecahkan rekor.
Di permukaan, bug ini tidak mudah ditemukan dan sebagian besar tidak memiliki langkah-langkah replikasi, namun masih 'keluar dari pikiran kita' harus membuat kita 'berpikir di luar kotak' ketika datang untuk memperbaiki bug.
Meskipun kami tidak 'kurang tidur', kami masih tidak berada dalam pola pikir yang benar untuk mengerjakan kode ... itu hanya aneh apa yang terjadi hari itu, kami selalu menyebutkannya.
Oh, dan untuk sebagian besar dari kita cenderung maxing keluar pada JD & Coke :)
sumber
Saya pikir bekerja secara produktif begitu lama tanpa tidur lama tidak mungkin bagi kebanyakan orang.
Tapi saya pikir Anda bisa melakukan pekerjaan luar biasa hanya dengan, katakanlah, 3-4 jam tidur nyenyak. Ini bekerja bahkan selama beberapa hari berturut-turut dari pekerjaan (intelektual) intens dengan sedikit tidur.
Namun, bagi saya, ini harus diikuti oleh periode pemulihan sesudahnya; katakanlah, beberapa malam dengan biasanya 7-8 jam tidur.
sumber