İşler işe yaramadığında hayal kırıklığı ile başa çıkmak [kapalı]


62

Hiç basit bir şeyi uygulamaya çalışın ama garip bir nedenden dolayı işe yaramadı.

Demek olası bir çözümü deniyorsun ama sonra başka bir şey çalışmıyor. Farklı geçici çözümler denemeye devam ediyorsunuz, ancak her seferinde farklı bir şeyler çalışmıyor.

Ne zaman bir adım daha yaklaştıysanız, bu sorunu çözmekten daha uzakta bir (veya daha fazla) adım atarsınız ve şimdi 10 dakikanızı alması gereken 3 saat olmuştur. Ve hala çözülmedi.

Şirketinizde yardım edebilecek kimse yok ve yumruğunuzu ekranınıza sokmak üzeresiniz.


Bu noktada çok sinirlisiniz, artık sorun hakkında net bir şekilde düşünemezsiniz. Bu noktada ne yapmalısınız? Veya bu noktaya ulaşmamak için ne yapabilirsiniz?


3
Sanırım sen ve ben sadece aynı deneyimi yaşıyorduk / yaşıyoruz.
AndrewKS

19
SO'ya koyun ve bir ödül verin.
JeffO

4
Keşke bu kadar basit olsaydı. Bu tür sorunlardan bazıları, çok sayıda ölü / cevaplanmamış / başarısız cevaplanmış sorular arasındadır.
Aditya P,

2
Bu soru konu dışı gibi görünüyor çünkü workplace.stackexchange.com
Kilian Foth

Aynı benim sorunum ve aynı soru.
Anwar

Yanıtlar:


69

Bu gerçek bir problem olmasına rağmen, programlamaya özgü değildir. Ancak, bu forumda bir yeri hakettiği için IMHO çok önemlidir.

Önerilerim: ara verin . Yürüyüşe çıkın, meditasyon yapın, uyuyun, fiziksel aktivite yapın * - bilinçaltı çalışmanızın huzur içinde çalışmasına izin verirken beyninizin rahatlamasını ve zihinsel engelden çıkmasını sağlamak için tamamen farklı bir şey yapın . Genellikle şaşırtıcı derecede hızlı sonuçlar verir - bunun hakkında size bilgi vermesi yeterlidir. Ancak bilinçli zihniniz aynı düşünce döngüsünü tekrar tekrar umutsuzca tekrarlarken, başka hiçbir şeyi dinleyemez.

bu noktaya ulaşmamak için ne yapabilirsin?

Gevşeme ve farkındalık teknikleri, stres tepkilerini aşmanın ve zihninizin net bir şekilde odaklanmasını sağlamanın anahtarıdır. Ve bunları uygulamak gerçekten işe yaramaz. Birileri bu deneyimler içinde deneyimlendiğinde , hayal kırıklığı devralmadan önce yükselen stres seviyesini çoktan fark etti . Daha sonra, örneğin birkaç derin nefes alarak veya birkaç dakikalık bir rahatlama uygulaması yaparak, düşünce döngüsünü durdurabilirsiniz. Bu noktada ihtiyaç duyulan her şey olabilir.

* Ortağını öp, evcil hayvanını okşa - Eşimden gelen öneriler :-)


12
+1, Aklımız HER ZAMAN sorunları çözmeye çalışıyor, sadece bilinçli olarak çözmeye çalıştığımız için değil, aklımız hala çalkalanıyor. Bu yüzden, hatırlayamadığınızdan bir saat sonra mavi olmayan bir ismi hatırlıyorsunuzdur. Ve gecenin ortasında çözülen bir problemle uyan. Bunu açıklayan harika bir kitap, Pragmatik Düşünme ve Öğrenme: Wetware'inizin Yeniden Yaralanması
CaffGeek

+1 Kendimden daha iyisini söyleyemedim. Aslında küpümden çıktım, ofisten ayrıldım ve şehirde dolaşıp karımı aradım ve sonra ofise geri döndüm. Neredeyse% 100 oranında çalışıyor.
Bay Ant

9
Ve günde 8 saatten fazla çalışmayın. Ne kadar yorgun olursan o kadar sinirli olursun.
HLGEM

3
İşemek için bir mola verdiğimde, sık sık masama geri döndüğümde çözülen problemi yaşıyorum. Tıpkı bilinçaltınız, bilincinizin kapanmasını bekliyor.
barrycarter

1
Ayrıca, bu teknikleri zaman baskısı altında olsa bile kullanabilirsiniz, ancak bu tecrübe gerektirir. Yıllardır meditasyon yapan biri, birkaç dakika hatta saniye içinde kendisini kontrol edebilir ve sakinleştirebilir. Ancak zaman içinde baskı altında yeni bir şey - ve özellikle de dikkat - bir şey öğrenmeye çalışmak çok zor. Eğer herkes başarısız olursa, bunu önemli bir ders olarak alın ve son tarih bittiğinde, davranışınızı analiz ederek ve burada ya da başka cevaplarda belirtilen bazı teknikleri uygulayarak bir sonraki krize hazırlanmaya başlayın .
Péter Török

35

şimdi bu 10 dakikanızı alması gereken 3 saat oldu.

Sihirli kelime olmalı . Bunu kelime haznenden vur.

10 dakika sürmesi gerektiğini kim söyledi? Özellikle kim? İddialarının gerçek dayanağı neydi?

Daha önce 3 kez yaptınız ve her 10 dakikaya yaklaştıysanız, bir gereklilik için rasyonel bir temeliniz var .

Daha önce hiç yapmadıysanız, söylemelisiniz ki , sadece başarısızlık için kendinizi ayarlamalısınız. Bugün kullanmalı , kullanmayı bırakmalısın .


2
Tabii ki, bir gün çalışmayı bıraktığından milyonlarca kez yaptığınız birçok şey var. Bazı otomatik olarak oluşturulan kodlardaki bozuk bir dosya oldukça can sıkıcı olabilir ve bazen hata ayıklamak çok zordur. Yanlışlıkla aynı adı taşıyan iki şeyi adlandırdığım zamanları düşünüyorum, sonra adın oluştuğu tüm örnekleri değiştirmek için bir yeniden düzenleme aracı kullandım. ORM tarafından oluşturulan sınıflarla çakışan sınıflarla kemik başlı hareketi birkaç kez yaptım. Böyle bir şey yapın ve daha iyi check-in yapma konusunda ümitiniz vardı.
Morgan Herlocker

1
@Prof Plum: "Bu kemik başlı hareketi birkaç kez hareket ettirdim". Mükemmel nokta Bu, beklentinin bu kemik başlı hareket için zamanı içermesi gerektiği anlamına geliyor. Yine, "gereken" , "her şey yolunda giderse" gerçekleri değil, "kemik başlı hareket" gerçekleri hariç tüm gerçekleri içermelidir .
S.Lott

22

Sondaj tahtası olarak kullanılacak birini bulun

Tam olarak ne üzerinde çalıştığınız konusunda uzmanlık sahibi olmasa bile, bu konular hakkında sık sık konuşmak iyi bir fikirdir. Sadece birini seslendirme tahtası olarak kullanma eylemi, zihninizin dönmeye başlamasına neden olabilir. Kendinizi denemek için yeni şeyler düşünürken bulacaksınız. Aynı zamanda stresi biraz hafifletmek ve potansiyel olarak yeni bir arkadaş edinmek için hafifletecektir. Ayrıca, takımın bu tür problemleri çözmek için takım odaklı bir atmosfer oluşturmak için birbirleriyle rahatça paylaşımda bulunmalarını ve onlarla ilişki kurmalarını hissetmeleri de genel olarak sağlıklı.


7
Kişinin ona ne söylediğine dair bir ipucu olmasa bile, sadece konuşma eylemi şeyleri netleştirmeye yardımcı olur.
Michael Brown

2
@Mike, "kişi" bir oyuncak ayı olsa bile, yine de vakaların şaşırtıcı bir yüzdesinde çalışıyor (Hacker'in Sözlüğü AFAIR'da bununla ilgili bazı gerçek hikayeler var)
Péter Török


1
Rubber Duck Hata Ayıklama? pfft. Masamda bir Debugging Goomba tutuyorum, bu nedenle ördekler bir şeylerin proje yönetimi için daha iyi.
glasnt

Evet, referans vermek üzereydim ... bağlantıyı koparamayacak kadar tembeldi: P
Michael Brown

9

Bir süre uzaklaş ve başka bir şey yap. İyi bir gece uykusu alın ve sabah tekrar sorunlara dönün.

Ayrıca, kendini dövme. On dakikalık tahmininiz açıkça doğru değil ve bu her zaman oluyor.


9

Bu noktaya ulaştığımda birkaç adımım var. Normalde geri adım atıp yansıtmak için zaman ayırırsam bir çözüm bulabilirim.

Adım 1: Problemden uzaklaşın ve başınızı kaldırın. Sinirli olmadığınız ve ona taze bir zihinle bakabileceğiniz zaman tekrar gelin.

Adım 2: Koda geri dönün ve kaçırdığınız bir şey olup olmadığını görün. Başını veya yazılarını tek tek çekemiyorsan, birinin gelip ikinci bir göz seti olmasını sağla.

Adım 3: Kodu denklemden kaldırın. Çözmeye çalıştığınız sorun nedir? Bir parça kağıda veya beyaz tahtaya yazın. Problem ve çözüm hakkındaki görüşlerini almak için problemi birisiyle konuşun.

4. Adım: Bir çözümü olup olmadığını veya bir başkasının aynı duvara çarpıp çarpmadığını görmek için topluma ulaşın.

Temel olarak, bunlar 'Korsanlığı durdur ve koddan uzak dur' olarak toplanabilir.


Beyaz tahtayı her zaman kullanırım. Hata ayıklama yaparken görselleştirme için çok yararlı.
Michael K,

Adım 3, paralel bir başarının tekrar kullanılıp kullanılamayacağını görmek için sorunun etki alanını değiştirmek olarak bilinir. Ayrıca bir metafor kullanma olarak da adlandırılır.
Kurucu,

2

Burada bir soru soracağım ve topluluğun bu sorunu çözmenize yardım etmesini istiyorum. Bu şekilde daha az stresli.


6
Bazen sadece soruyu yazmak çözüme yol açacaktır
JoelFan

1

Farklı bir çözüme sahibim - UYKU !!

Bir problemle ilgili hayal kırıklığına uğradığınızda, kolayca çözemezsiniz. Bu yüzden, sorunu çözmeye çalışmaktan çok yorulmanız ve sonra uykuya dalmanız daha iyi olur.

Uyandığınızda, taze bir his hissedersiniz ve yine sorunla açıkça düşünebilirsiniz. Bazen yapıyorum.


Nitpicky olmamakla birlikte, bu "farklı" çözüme en az iki cevapta değinilmiştir.
Péter Török

1
ne demek istediğimi -> sadece bir mola vermek, yürümek veya uyumaya çalışmak yerine, sorunu çözmek ve daha sonra uyumak için yorulmak. çünkü içinizde bir problem olduğunda, kolayca
çözemeyebilirsiniz

1

Biraz güven oluşturmaya yardımcı olacak bir şeyler bulmak, bu noktaya ulaştığımda yapma eğilimimdir. Bu bir Sudoku veya Kenken bulmacasını çözmek, zaman çizelgemi doldurmak ya da yürüyüşe çıkmak gibi basit, akılsız bir yönetim görevi yapmak olabilir. Buradaki kilit nokta, bu küçük yan dikkat dağınıklığı ne olursa olsun, ata geri dönüp vahşi mavi zuvana girip birkaç metaforu karıştırmaya yetecek kadar pompalamama yardımcı olmak için bir başarı hissine sahip olmam.

Bu kadar kötüye gitmekten kaçınmak için, bir süre önce bir şeyler yapmayı düşünürseniz, 10 dakika sürecek bir şeye inanıyorsanız ve aniden bir saat sonra çok fazla bir ilerleme olmadan durup, küçük bir mola yerine başımı duvara vurmaya çalışıyorum.


1

Bu tür bir durum için özel bir adım var: epik programlama savaşı .

Belirli bir programlama dili veya aracıyla en az bir epik programlama savaşı yapmamış ve sorunu çözmemiş olsaydım, kendime böyle bir programlama dili veya aracı kullanabileceğimi söyleyemem.

Bu yüzden benim çözümüm var: bunu bir kavga, bir cesaret ve dayanıklılık testi gibi düşün . Eğer sorunu çözemezsem, o zaman " başka bir gün savaşmak için yaşıyorum ".

(Bunu kazanmak zorundadır çeşit oyun gibi) Eğer yüzleşmek zorunda çünkü yerine tüm yol acı bu açıdan düşünmek daha eğlenceli ve sevindirici olacak biraz saçma gelebilir ama aslında o senin her şeyi bilmiyorum .


0

Şey ... Bence yeni bir kariyere veya tamamen yeni bir beklentilere ihtiyacın var. Kesinlikle sık olmasa da, başlangıçta 10 dakikalık bir iş olacağını düşündüğünüz şeyi yapmak için 3, 4, 8, 10 veya 40 saat almak, yazılım sektöründe kesinlikle nadir değildir. Orta zorlukta bile olsa herhangi bir şey üzerinde çalışan geliştiricilerin çoğunun, 2 gün süren işlerin 1 aylık işlere dönüşüp sorunu anladıklarından eminim.

İyi bir geliştirici olmanın bir kısmı sabırlı olmayı gerektirir, aksi halde bilgisayar kazanacak ve sonunda ancak çalışmaz gibi göründüğü ancak kaçınılmaz olarak düşünmediğiniz bir şeyi kıracak bir tür hızlı düzeltme kesmesi dahil edeceksiniz. Küçük gecikmeler size bu kadar strese neden oluyorsa, muhtemelen bu işte olmamalısınız.


0

İki öneri:

  1. Ufak bir özel şirkette, iki doktora derecesi olan ve "Araştırma Görevlisi" unvanına sahip tanıdığım en zeki insan, bunu söylüyor.

    15 dakika boyunca düşünmüşseniz ve cevabınız yoksa, yanlış yapıyorsunuz demektir.

    Düşünmeyi bırak.

    Şekerleme yapmak. (yürüyüşe çıkmak ya da başka bir şey için gitmek)

    Cevap, uyandığında orada olacak.

  2. David J Agan'ın "Debugging" kitabını alın . Muhtemelen size hata ayıklama hakkında daha fazla bilgi verecek, böylece işler çalışmadığında hızlı bir şekilde hata ayıklayabilirsiniz.


0

Ne zaman işe yaramayan bir şeyle karşı karşıya kalsam, bu teklifi her zaman hatırlıyorum:

Cehennemdeyken, bu noktada yapılabilecek en iyi şey olduğu gibi yürümeye devam edin.

Mola verin, kendinizi yenilemeye çalışın ve yeni enerji seviyesiyle soruna odaklanın.


0

başkalarının önerilerini tekrarlamak:

  • bu durum neredeyse her zaman sadece göremediğiniz önemsiz bir şeydir ; ara ver
  • başka bir çift göz veya sadece kedinize sorunu açıklamak yardımcı olabilir

ve ekleyerek:

  • varsayımlarınızı, özellikle de kanıtlanmamışları yeniden inceleyin; Muhtemelen yanlış ağaca havlıyorsun.
  • durumu tersine çevirin: mevcut davranışın istenen sonuç olduğunu varsayalım, peki bunun gerçekleşmesi için koda ne yapmalısınız?
  • Yürütme yolu boyunca varsayımlarınızı doğrulamak için bazı test kodları (varsayımlar veya günlüğe kaydetme veya koşullu kesme noktaları - basit tutun) yazın

0

Bazen, sadece bir problemden kurtulmaya çalışmaktan kaçınmak en iyisidir. Biraz zaman ayırın ve yapmanız gerekenleri sahte kodla yazın. İşleri olabildiğince çabuk halletmek için baskı olduğunu biliyorum, ancak gördüklerime göre, bu kodlama tarzı sizin tanımladığınız durum türüne yol açıyor. Birisi, yalnızca küçük bir koşul kümesi verilen ve değişiklikleri ayarlayan bir kod yazarsa, kod kırılır veya beklenmeyen şeyleri yapar.

Ayrıca (profesörlerimin bu konuda haklı olduğunu kabul etmekten nefret ediyorum ...), belgelendirme ve birim testi yardımcı olur. Bu, girdi kümesi göz önüne alındığında bir kod bölümünün ne çıkarılacağını bilmek daha kolay olacaktır. Ardından, bu bölümler girişindeki bir değişikliğin neden olacağı etkinin görülmesi daha kolay olacaktır.


0

Yorgunluk veya uyku eksikliği hiçbir zaman benimle ilgili bir sorun değil. Sektördeki organizasyon eksikliği ve genel olarak kendimiz için belirlediğimiz düşük standartlar konusunda daha fazla sinirliyim. İşte beni sinirlendiren beş şey:

  1. Tasarımda karmaşık olan API'ler. Tamamen yeni bir programlama dili öğrenmek gibi. Aslında, bazı API'ler yeni programlama dilleri öğrenmekten çok öğrenmek daha zordur. İstihbaratınıza hayranım, ancak bunu anlamak için yazılım mühendisliği veya bilgisayar bilimlerinde doktora ihtiyacım olan belgeleri koyarak bana zaman kazandırabilirdiniz.

  2. İyi dokümantasyon eksikliği. Bu kadar çok API tasarımcının yalnızca minimum dokümantasyonla yayınlamak için bir API yapmak için çok zaman harcadığı gerçeğini asla anlayamıyorum. Teşekkürler, ama bunu nasıl kullanırım? Bu durumda ne yapmalı? vb.

  3. Özel uygulamalar. Bazı tescilli uygulamaların yapılması uygun, ancak standartlar varsa, insanlık adına lütfen bu standartları takip edin. Neden bir şeyin yalnızca uygulamayı keşfetmek için işe yaramadığını merak etmek zaman harcamaktan daha sinir bozucu bir şey normal standartlara uymuyor.

  4. Sanal alan ortamları / Kısıtlamalar. Tamam, belki bu kötü insanları uzak tutmaya yardımcı olur, ama bence, bir programcının yapabilecekleriyle ilgili kısıtlamalar sadece yaratıcılığı ve teknolojik ilerlemeyi sınırlar. Bir şey yapmama izin verilmediğini keşfettikten sonra aldığım harika fikirlerin çoğu. Programlama endüstrisi, yenilikçi çığır açan yazılımlar değil, gündelik uygulamaları dağıtmak için yapılmıştır. Bu nedenle, programcı olmaya karar verirseniz, yalnız bir akademik olmak istemediğiniz sürece, gerçekten modern bir gün hırslı olmayı seçiyorsunuzdur.

  5. Modern tartışmalar. Günümüzde insanlar hala Lisp parantezinin çirkinliği veya Pythons'ın temizliğinin esası ya da Cobol veya Fortran gibi bazı dillerin nasıl yok edildiğini, vb. Tartışıyorlar. Gerçekten insanlar? Tartışdığımız şey bu mu? Paralellikten ya da daha güvenli sistemler tasarlamak için daha iyi yollar ya da mantık programlamasının yaşamlarımızı nasıl iyileştirebileceğinden bahsedelim. Kodlayıcılar gibi düşünmeyi bırakalım ve yarının dünyasının tasarımcıları gibi düşünmeye başlayalım.

Bu yüzden kişisel olarak artık bu sıkıntılardan dolayı fazla program yapmıyorum. Endüstri, bir sonraki Facebook'u oluşturmaktan daha fazlasını yapmak istediğine karar verinceye kadar ya da hazır olduğum kelime işlemcisini yeniden icat etmek. Bunu size bırakıyorum beyler. Dürüst olmak gerekirse hiçbir suç demek, iyi para.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.