İki gün boyunca uykusuz kodlayan ve kahve içen programcıları duydum ve Red Bull . Ayrıca Sosyal Ağ gibi filmlerde, bir sahnede Mark Zuckerberg 'in 36 saat boyunca programlama yaptığını gösteriyorlar. Ayrıca Facebook, Google, oturaklı , vb gibi şirketlerde uyku olmadan 24 saatten fazla kod yazabilirsiniz bir yerde okuyun.
Bu gerçekten doğru mu? Uykudan mahrum kalırsanız gerçekten yüksek kaliteli kod üretebilir misiniz? Red Bull gibi şeyler uykuyu telafi edebilir mi?
Basitçe Hayır. 36 saat kodlamanın programlama ile ilgisi yoktur, bunun yerine insanın bir özelliğidir. Çok az insan 24 saat uyanık kalabilir ve uyanık kaldıklarında bile zihinleri problem çözme becerilerini kaybeder. Uykulu sürücüler, sadece diğer arabalara çarptı. Uykulu muhasebeciler, hesaplamalarında hata yaparlar. Ayrıca birçok programcı uykulu olduğunda daha az kalite kodu yazar.
Not: ykusuzluk denilen ve daha az uyumanızı sağlayan bir hastalık var. Ancak Google'ın bu hastalığı olan insanları işe aldığını sanmıyorum. :)
Muhtemelen bu bilinen, kalıcı mitlerden biridir. Bunu çok duyuyorsunuz çünkü bu zorlayıcı bir fikir, ama aslında gerçek bir temeli yok.
Oh, elbette, belki liseden taze kalan genç çocuklar 36 saat içinde bir tür kodlama mucizesi gibi görünebilir. Ancak bu şekilde yazılan kod korunabilir mi? Okunabilir mi? Ölçekleniyor mu? Mantıklı programlama uygulamalarını takip ediyor mu? Belgelenmiş mi?
Twitter, çalışan bir siteyi hackledi ve ardından yeniden "doğru" şekilde yeniden yazdı, çünkü yük çok büyüdüğünde düştü. Facebook, orijinal sitelerini böyle bir proje için nispeten kısa bir sürede bir araya getirdi, ancak daha sonra PHP platformunu web sitesinin çalıştığı için ölçeklenmedi.
İstisnalar kuralı kanıtlar.
Bu efsane hakkında doğru olabilecek tek şey, programcıların uzun süre kesintisiz kaldıklarında en iyi performansı göstermeleridir. Kod yazarken, kafanızda ne kadar çok şey karıştırabiliyorsanız, daha hızlı kodlayabilirsiniz, çünkü API kullanımı gibi şeylere veya kodun farklı bir bölümünün sizin veya başka biri tarafından nasıl yazıldığına bakmanız gerekmez. Kesildiğimde, tam hıza geri dönmenin her zaman ölçülebilir bir zaman aldığını ve önemli bir şey (veya eğlenceli) yapıyorsam, bazen normal saatte eve gitmeyi bırakacağım, çünkü saatler sonra kesintileriniz eve gittiğinde. Ben de aynı nedenden dolayı sabah 3 veya 5 kadar kalmak için bilinir.
Ancak, dediğim gibi, kodunuzun hızı ve kalitesi, ne kadar dikkat ettiğinize ve bellekte kaç şey yapabileceğinize bağlıdır. Uyku bir sorun haline geldiğinde tam kapasiteyle çalıştığınızı düşünebilirsiniz, ancak gerçekten değilsiniz. Sağladığınız örneklerde olduğu gibi geliştirilen çoğu yazılım yerden hızlı bir şekilde çıkar, ancak açlık gibi büyük sorumluluk ve bakım baş ağrısı haline gelir.
Çok fazla çalışırsanız kesinlikle çok sayıda kod üretebilirsiniz ve yeterli çaba ile özellikten sonra özelliği kranklayabilirsiniz. Ancak mimariye/tasarıma dikkat etmeden kolayca ölçeklenebilir, bakımı yapılabilir veya genişletilebilir yazılımlar üretemezsiniz. Deneyimden bahsetmişken, kafanızdaki (veya kağıttaki) bileşenleri/arayüzleri/soyutlama katmanlarını saf kod yazmaya devam etmekten çok tasarım ve dengelemek düşünmek çok daha zordur.
Her şey kulağa abartı gibi geliyor "bölgede." Tamamen odaklandığınızda, bir kodlayıcı olarak, zaman çarpık, dakika saniyeler haline geliyor. en üretken. Bazen bu duruma girmek zordur ve (çoğunlukla dış etkenlerden) çıkmak oldukça kolaydır, ama siz ... vay!
36 saat boyunca programlayabilirim ve zaman zaman yaptım.
Sanırım şimdiye kadar yaşadığım en kötü şey yaklaşık 10 saat uykuyla bir hafta oldu.
Benim için kafein ve enerji içecekleri yardımcı olmadı. Aslında, bu kadar uzun vadede, kafeinin oldukça olumsuz etkileri olabilir. Benim tavsiyem lot içmektir. Sizi nemlendirir ve tuvalete yürüyüşler güzel bir yan etkidir: Bacaklarınızı biraz uzatırsınız ve otomatik olarak kısa molalar verirsiniz.
Bununla birlikte, bunu giderek zor buluyorum. Sanırım bu bir kapasite, boşaltılan ve sonunda bitkin. Ve belki de bazı olumsuz sağlık etkileri vardır - fiziksel veya zihinsel, uzun veya kısa vadeli, söyleyemem.
Söyleyebileceğim şey, kendinizi bir zombi gibi hissetmeniz ve böyle bir maratondan sonraki günlerde böyle hissetmeye devam etmenizdir. Şahsen, bunu yaklaşık bir yıl boyunca sık sık yaptıktan sonra gerçekten büyük bir tükenmişlik yaşadım.
Yani: Bazı insanlar böyle bir zaman dilimi içinde verimli bir şekilde çalışabilir, ancak bunun bir bedeli vardır.
Genellikle kötü planlamanın bir sonucuydu ve teknik olmayan proje liderlerinin bıraktığı boşlukları doldurma konusunda hiçbir tecrübesi yoktu, tek seçenek buydu.
Şimdi nadiren böyle maratonlar sırasında üretilen kalite kodu bulacaksınız. Bununla birlikte, bunun ana nedeni, bu maratonların meydana geldiği durumlardır: X, Y ve Z özelliklerini çok kısa bir süre içinde sunmanız gereken durumlar. Bu noktada hiç kimse kod kalitesini gerçekten önemsemiyor, bu yüzden hızlı düzeltmeler ve diğer hack'lerle çok fazla teknik borç topluyorsunuz.
Bu aynı zamanda beynin bozulmamış performansını gösterir: Hızlı düzeltmeler ve korsanlıklar hem genel bakış hem de yaratıcılık gerektirir.
Unutmamalısınız, kalite kodu nadiren tek bir çalışmada yazılır. Özellikle kodun uzun bir ömrü varsa. Kod kalitesi, gözden geçirme ve yeniden düzenleme yoluyla elde edilir. Kimse bunu son teslim tarihinden 48 saat önce yapmaya zahmet etmeyecek.
Sonuç olarak: Sadece yapabildiğiniz kadar uzun süre çalışmalısınız. Sadece 4 saat çalışabilirseniz, o zaman tamam. Bir ara verin ve daha sonra çalışın. İçinde 8 saat iş olsun 36 saat uyanık kalmaya çalışmanın anlamsız. Her biri 4 saat 4 seans yaparsanız ve geri kalan 20 saati yeniden oluşturmak için iki kez iş yaparsınız.
Eğer bu kadar uzun saatler çalışabiliyorsanız, hafife alınmaya cevap verme konusunda daha esnek olduğunuz anlamına gelir. Ancak uzun vadeli çözüm, planlama ve tahmin sürecinizi geliştiriyor. Eğer işyerinizde bu mümkün değilse, işleri değiştirin. İnsanlar bu kadar uzun saatler çalışmanızı beklerse, işleri değiştirin. Kimseye bir şey kanıtlamanız gerekmez.
İyi programcılar gerçekten 36 saat programlayabilirler. 36 saat boyunca en iyi kalite kodunu üretebilecekleri anlamına gelmez. Ben değil iyi bir programcıyım ve bunu okulda birkaç kez yaptım ve hatta gemi son tarihlerimdeki hataları düzeltmeye çalışırken 30'larımda birkaç kez bile yaptım. Genellikle aptalca bir fikirdir ve zayıf planlama ve planlama becerilerini yansıtır.
Sağlıklıysanız uyanık kalabilir ve 36 saat çalışabilirsiniz. Ancak bu zamanda en iyi kodunuzu yazmayacak veya çok karmaşık sorunları çözmeyeceksiniz. Arada bir çok uzun saatler çalıştım. Çoğu zaman bu bazı son tarihleri tutmaktı. Ancak iş daha sonra bazı listeleri yazdırmak, bazı düzenleri parlatmak gibi küçük özellikler ekliyordu. Fazla düşünmeye ihtiyacınız olan bir şey yok, daha çok yazmak gibi. Zaten bitmiş olan programların ana özellikleri ve karmaşık bölümleri.
Bazen konsantrasyon eksikliğiniz uzun saatler için ana nedendir. Bir zamanlar ertesi gün bir son teslim tarihimiz vardı. Zaten çok uzun bir günün ardından biz her şeyi bitirmişti ve 2 am oldu. Sadece bir kötü hata kaldı. Patronum 9 am müşteri ile bir randevu vardı, bu yüzden bol zaman vardı. Aksi takdirde yarım saat içinde tamir edebileceğim bir şeyi bulup düzeltmem birkaç saat sürdü. Her neyse bulabileceğimi kesin olarak biliyordum ve bir şekilde gece yine de gittiğinden, patronumu hayal kırıklığına uğratmak için bir neden yoktu.
Evet. Çok sayıda anekdot bilgisi bunu yapabileceğini gösterir. Herkesin iş maratonlarından fiziksel olarak alışkanlık kazanabileceğinden şüpheliyim. Tıbbi stajyerler bu tür saatleri çeker.
Muhtemelen daha fazla hata yapacak mısınız? Sanırım bu, her şeyden önce kalite kodunu yazabileceğinizi varsayar. Bu durumlarda, silahın altındasınız ve sadece çalışmasını istiyorsanız. Kalite dikkate alınmaz. Finansman aldıktan sonra bunu çözeceğiz.
Bu imkansız değil ve gerçek old gerçekte. Bölüm uzun olduğundan, gerçek paragrafı alıntı yapmama izin verin:
Sıkı örülmüş grubun üyeleri kendilerini "hackerlar" olarak adlandırdı. Zamanla, "hacker" tanımını Stallman'a da genişlettiler. Bunu yaparken, Stallman'ı "hacker etiği" nin etik geleneklerine aşıladılar. Bir bilgisayar korsanı olmak sadece program yazmaktan daha fazlası anlamına geliyordu, Stallman öğrendi. Mümkün olan en iyi programları yazmak demekti. Mümkün olan en iyi programları yazmak için gereken buysa, bir terminalde 36 saat boyunca oturmak demekti. En önemlisi, mümkün olan en iyi makinelere ve her zaman en faydalı bilgilere erişim anlamına geliyordu. Hackerlar dünyayı yazılım aracılığıyla değiştirmekten açıkça bahsetti ve Stallman, bir hacker'ın bu asil sebebi yerine getirmesini engelleyen herhangi bir engel için içgüdüsel hacker haksızlığını öğrendi. Bu engellerin başında zayıf yazılım, akademik bürokrasi ve bencil davranışlar geliyordu.
Tabii ki bu, bunun herkes için tek bir kural olduğu anlamına gelmez. Bazıları bunu yapabilir, diğerleri yapamaz. En önemli şey, kesintiye uğramamak ve çok üretken hissettiğiniz dönemlerde çalışmaktır. Böylece, kendiniz deneyebilir ve sonuçlar çıkarabilirsiniz :)
Dürüst olmaktan şüphe ediyorum. Aslında, X, Y ve Z'ye ulaşan insanların 24 saat boyunca uyanık olmasına dair efsanelere ve hikayelere rağmen, aşırı koşullarda ve nadirdirler.
Gün içinde, zaman zaman insanlar denemek ve belirli zamanlarda şeyler almak için tüm nighters çeken bir lawfirm yazarak havuzu sağlamak için kullanılır. Çılgın saatler geçiren belgeler hazırlayanlar genellikle bir gecede değişikliklerinin tersine çevrilmesi için bu belgeleri gönderir. Bana göre, kafein seviyenizi artırarak uyku eksikliğinden kurtulmak için bir seferde yaklaşık 12 saatten fazla yüksek bir seviyede (ve hatta bu aşırı) sürekli yüksek bir performans sergilemek mümkün değildir. Sanırım insanların anlatmak istedikleri bir hikaye, ama dürüstlerse, işin ne olduğuna bakılmaksızın, yasal belgeleri kodlamak veya yazmak gibi, uzun vadeli oturumlar üzerindeki ortalama çalışmalarının nadiren, yeterince iyi olduğunu kabul edeceklerdir. yeterli dinlenmeleri durumunda çıktılarını eşleştirmek için.
Ne kadar iyi olursa olsun kodlayıcılar hakkında özel bir şey yoktur, sürücüler gibi ağır makinelerin operatörleri yorgunluğa maruz kalırlar ve herhangi bir kodlayıcının yaklaşık 12 saat içinde dinlenmeden yüksek kalitede çıktı sağlayabileceğini sersem şaşırırdım .
Sanırım bu bir makine iseniz - bazılarının bunu yapabileceğinden şüphe etmiyorum. Ama deneyim bana programcıların büyük çoğunluğ 8 ila 10 saat işaretinden kısa bir süre sonra daha kötü kod ve 16 saat işaretinden sonra korkunç kod yazacağını öğretti.
Ekibimizin bir kaç geceyi çekmeye zorlandığı birkaç kez, aslında geri alınması gereken bir kod aldık.
Ben ve diğer birçok yaratıcı insan bipolar kişiliğin özelliklerini gösteriyoruz. Yazılım tasarlarken Feynman'ın algoritmasını takip etme eğilimindeyim:
Sorunu yaz. (Dakika)
Gerçekten çok düşün. (Günler ve yıllar arasında)
Çözümü yazın. (Gün)
Aşırı derecede uyku (kafein ya da hayır) ile hipomanik bir bölüm sadece # 3'ü bitirmek için bilet.
Neden bu iki sorunun birbiriyle ilişkili olduğunu düşünüyorum? Bana öyle geliyor ki, uyku yoksunluğunun yol açtığı bozulma, iddiamı destekleyecek herhangi bir referansım olmamasına rağmen, sarhoş olmaya biraz benziyor.
ESultanik'in alıntılanan referansından alıntılar,
... mütevazı alkol tüketimi, yaratıcılığın yönlerini esas olarak ikincil sürece (ön hazırlık, aydınlatma ve doğrulama bölümleri) dayalı olarak engeller ve esas olarak birincil sürece (kuluçka, aydınlatma bölümleri ve restitüsyon) dayalı olanları devre dışı bırakır.
Uykudan yoksunken soyut mimari modeller oluşturmada daha iyi olabileceğini söyleyebilirim, ancak klavyeye yazılan gerçek kaynak kodu hala sarhoş olurdu.
Birisi 36 saat kodlamaya zorlandığında, genellikle ürünü göndermek için bir son tarih nedeniyle. Biri böyle bir son tarihte olduğunda, kod kalitesi tipik olarak atılan ilk şeydir. "Sadece hallet" mantradır. "2. versiyonda düzeltiriz" başka bir mantra.
Yani, tipik olarak, 36 saat boyunca kod yazarken kod kalitesi zarar görür ... ancak iş açısından önemli değildir .. çünkü eğer bir şey, hatta kırık bir şey bile göndermezseniz, doğru yapmak için.
Biri 36 saat boyunca kodlamak istediğinde, bunun nedeni güçlü bir yaratıcı artışınızın olması ve bunu kesmek istememenizdir. Bu 36 saat boyunca kalite kodu yazmayacaksınız, ancak reklam öğesi kodu yazacaksınız. Daha sonra geri dönüp bu koda bakıp nasıl çalıştığını merak ediyorsunuz.
Yaratıcılık, sık sık spurts ile gelen şeylerden biridir. Kontrol edemezsiniz, bu yüzden kendini gösterdiğinde bundan faydalanırsınız. Daha az yaratıcı olduğunuzda kodu her zaman düzeltebilirsiniz.
Üniversitede programlama okurken gündüze göre daha üretken olduğum birkaç gece vardı. Geceleri daha az dikkat dağıtıcı olması gerçeği ile ilgisi vardır, ot beni hala oturmak için yeterince rahat yaptı ve ben çok yorgun değildi bu yüzden aslında zaten 2 de o gün kalkmadı. Benim kahvaltı için delicesine aç önce 8 am için kod olabilir. Bununla birlikte, ertesi gün saat 17'ye kadar zihinsel olarak çökeceğimi ve üretken olmanın hiçbir yolu olmadığını söyledi. Geceleri programlamak daha verimli olabilir, ancak kendinizi uykudan mahrum bırakmak kod kalitesini arttırmaz ve kodlama yaparken hiç yorulmayı planlamazsınız.
Birkaç ay önce iş arkadaşlarımla içki içiyordum. Ertesi gün biz geri asılı ofiste geldi ... ama bizim şaşkınlık için biz hata rekor bir miktar kapattı.
Yüzeyde, bu hataları bulmak kolay değildi ve çoğunun herhangi bir çoğaltma aşaması yoktu, ancak yine de hataları düzeltmek için geldiğinde 'kutumuzun dışında düşünmemizi' zorunlu kılmalıyız.
Biz 'uyku yoksun' olmasa da, biz hala kod üzerinde çalışmak için doğru zihniyet değildi ... o gün ne olduğunu sadece tuhaf, biz her zaman bahsediyoruz.
Oh, ve eğimli için çoğumuz JD & Coke üzerinde maxing edildi :)
Bence uzun süre uykusuz üretken çalışmak çoğu insan için imkansız.
Ama bence 3-4 saat iyi bir uyku ile inanılmaz işler yapabilirsiniz. Bu, az uyku ile art arda birkaç gün yoğun (entelektüel) çalışma için bile çalışır.
Ancak benim için bunun ardından bir iyileşme dönemi gelmeli; diyelim ki, her zamanki 7-8 saat uyku ile birkaç gece.