Co robicie kiedy nie możecie poradzić sobie z problemem w prywatnym projekcie?

2

Jak w temacie, sprawa dotyczy sytuacji, kiedy jest to prywatny projekt, piszecie go sami i nagle pojawia się jakiś skomplikowany problem, o którym macie przekonanie, że sami nie dacie rady i kiedy nikt wam nie może / nie chce pomóc na stacku. Ja jestem obecnie w takiej kryzysowej sytuacji. Co wtedy robicie?

1

RSA

2

Pomaga bez recepty - szybka regeneracja:
Weekend odpoczynku
Przełożenie na jutro
SDD - Stackoverflow Driven Development

W cięższych przypadkach porada specjalistów - wspomagane wzmocnienie wiedzy:
Książki SafariBooks
Udemy, YouTube

1

Nie robię projektów komercyjnych więc bez spiny przechodzę do kolejnego projektu w nadziei że kiedyś sytuacja się wyjaśni

11

Pytasz o to na forum dla programistów gdzie przychodzą ludzie z problemami których nie umieją rozwiązać. To jakiś mindfuck albo ukryta kamera? :D
Trochę jakbyś w poczekalni do lekarza pytał ludzi co robią jak się źle czują i myślą ze łapie ich choroba.

2

@Kubaz: Odpowiem bardziej do Ciebie niż na zadane przez Ciebie pytanie.

Moim zdaniem problem bierze się z tego, że przychodzisz z problemem, dostajesz zazwyczaj tę samą odpowiedź, a potem przychodzisz jeszcze raz z tym samym problemem. Tylko problem nie jest taki, jaki Ci się wydaje. W Twoim kodzie, który widziałem, często widać że robisz rzeczy na chybił trafił bez zrozumienia tematu. Forumowicze (włącznie ze mną) zwracają Ci na to uwagę, na widoczny brak testów, na kompletne spaghetti w kodzie i zazwyczaj nie prowadzisz dyskusji tylko ucina się temat, co jest zniechęcające. Trochę jak grochem o ścianę. Potem przychodzisz z nowym pytaniem i widać dokładnie te same problemy. Mi się wtedy odechciewa, bo po co mam się produkować, jak i tak to będzie zlane.

2

Za każdym razem gdy spotykam problem mam nadzieję. Nadzieję, że tym razem będzie inaczej. Nadzieję, że to ustrojstwo z odpowiedzią ze stackoverflow w Googlach nie wyskoczy. Ze w końcu dorosłem programistyczne do tego, że mój problem jest z natury ambitnych. Nie ma prostych odpowiedzi, jest wyjątkowy, szczególny, po prostu mój. Nadzieję, że w końcu i mi będzie dane zakosztować błogiego uczucia zadumy na spacerze, główkowania w WC badz po prostu chwili odpoczynku przy aromatycznej kawie dla odciągnięcia myśli i resetu intelektualnego. Ale jak zwykle, jest. Klarowna, jasna i przejrzysta odpowiedź na cholernym stackoverflow......

1

Ja najpierw wchodzę na www.google.com i szukam znaczenia komunikatu błędu lub jak coś skonfigurować (w zależności, czego dotyczy problem). W wielu przypadkach tą drogą udaje się rozwiązać problem.

Dopiero potem, zadaję pytanie na forum opisując wszystkie istotne szczegóły, przede wszystkim prezentuję w nim to, co udało mi się samemu znaleźć i sprawdzić, jak dotyczy fragmentu kodu lub działania programu, to przygotowuję możliwie najkrótszy kod, w którym jest problem.

Jednak założenie tematu na forum wcale nie oznacza, że przestaję działać na własną rękę. Czasem się zdarzy, że sam znajdę rozwiązanie zanim uzyskam odpowiedź.

W ostateczności, po prostu odkładam projekt na "później", możliwe, że już nigdy do niego nie wrócę.

2
andrzejlisek napisał(a):

Ja najpierw wchodzę na www.google.com i szukam znaczenia komunikatu błędu lub jak coś skonfigurować

Zawsze dostaję podane na tacy linki do SO, więc jakby przyszło kiedyś coś napisać na forum to musiałbym konto zakładać (hasło? hasło?!), bo czytanie nie wymaga logowania

TheLearner napisał(a):

Za każdym razem gdy spotykam problem mam nadzieję. Nadzieję, że tym razem będzie inaczej. Nadzieję, że to ustrojstwo z odpowiedzią ze stackoverflow w Googlach nie wyskoczy. Ze w końcu dorosłem programistyczne do tego, że mój problem jest z natury ambitnych.

Może jakiś Early Access Beta Program? Będziesz brać bugi na klatę zamiast korzystać ze SO? :)

3

Mam kilka sposobów (kolejność przypadkowa):

  1. Myślenie o przyszłym sukcesie (ale będzie jak to w końcu zrobię! Będę mistrzem!). To pozwala się zmotywować
  2. Robienie sobie przerwy, jak czuję, że już mi się mózg lasuje albo jak osiągnąłem jakiś mały przełom
  3. Nastawienie na proces - jak zacząłem liczyć czas spędzony na prywatnych projektach to jestem bardziej spokojny, bo wtedy widzę, że robię co w mojej mocy i że wcześniej czy później rozwiążę, jeśli będę utrzymywać tempo i nie dążę do tego, żeby natychmiast rozwiązać problem, tylko żeby systematycznie coś robić w kierunku jego rozwiązania.
  4. Powrót do fundamentów (np. robiąc coś w 3D traktowałem macierze jako black box, coś co mi da biblioteka, a teraz ponieważ miałem dość poważny problem ze zrozumieniem pewnych transformacji, zacząłem wgłębiać się, jak np. wygląda dokładnie dana macierz projekcji, co znaczą poszczególne liczby tak od strony matematycznej)
  5. Przeszukanie internetu. Nawet jak nie znajdę za pierwszym razem odpowiedzi, to nie znaczy, że za którym razem nie znajdę. Czasem nawet coś, co nie dotyczy mojego problemu bezpośrednio, jest jakąś wskazówką. A może jakiś projekt open source realizuje podobną rzecz. Jak oni to zrobili itp.
  6. przez "jakiś projekt open source" mam na myśli czytanie kodu w celach edukacyjnych, ale w niektórych przypadkach czasem warto użyć gotowej biblioteki
  7. Rozrysowanie sobie pewnych rzeczy, rozkminy bez użycia komputera, jak coś powinno wyglądać
  8. Zrobienie PoC, czegoś od zera, co mi pomoże zrozumieć np. pewien algorytm czy technikę, żeby nie robić tego w istniejącym projekcie (bo wtedy jak coś nie będzie działać, to nie wiem, czy błąd jest w nowym kodzie, czy w sposobie integracji ze starym).
  9. Obejście pewnych problemów, rezygnacja z pewnego podejścia itp. generalnie zamiast rozwiązać problem, to anulujemy jego ważność.
  10. Odłożenie projektu na półkę uznając, że problem jest bardziej skomplikowany niż się wydawał i że może kiedyś, ale niekoniecznie teraz się tym zajmę.
1

Dokumentacja :(

3
  • określam co wiem,
  • czego nie wiem,
  • szukam związków, analogii
  • dużo rysuję ponieważ próbuję spojrzeć z różnych stron na problem,
  • rozważam prowizoryczne rozwiązania by szybciej znaleźć odpowiedź,
  • napełniam głowę nowymi informacjami (czytam książki, kody źródłowe innych projektów)
  • próbuję ugryźć problem z wielu różnych stron aby mieć więcej danych wejściowych,
  • gdy głowa wypełniona jest po brzegi informacjami o problemie robię pauze i rzucam się na wyrko (wtedy druga połówka mózgu ma możliwość popracować, a ta ponoć jest lepsza w szukaniu wzorców, odpowiadaniu na trudniejsze pytania)
2

Na dobre wyrobienie umiejętności problem solving skills potrzeba czasu i praktyki, tj godzin przesiedzianych nad różnymi problemami. Jako programista wyjadacz doszedłem do etapu, w którym już nie widzę żadnych problemów tylko same rozwiązania. Ostatnio wymyśliłem jak rozwiązać problem z niekorzystnymi zapisami miejscowego planu zagospodarowania przestrzennego, więc skill przydaje się również poza pracą zawodową.

3
Shalom napisał(a):

Trochę jakbyś w poczekalni do lekarza pytał ludzi co robią jak się źle czują i myślą ze łapie ich choroba.

Ale jak jesteś cienki to nie umiesz nazwać problemu. Analogicznie, będziesz tylko umiał powiedzieć lekarzowi że Cię boli, tylko nie wiesz gdzie i dlaczego.

Kubaz napisał(a):

Ja jestem obecnie w takiej kryzysowej sytuacji. Co wtedy robicie?

Na początku to oczywiście research. A jak to zawodzi, to mi często pomaga wyizolowanie, odtworzenie problemu. Napisanie małego programu, w którym chcę zaimplementować funkcjonalność która mi nie wychodzi, z jakiegoś powodu. Wykorzystuję i analizuję kod który miałem w projekcie. A jak zabieram się za coś czego nigdy wcześniej nie robiłem, to najpierw piszę sobie mały program w którym się tego uczę, a później to już często tylko kopiuj-wklej. Czasami tak jest dużo łatwiej.

1
  1. można też zająć się innym aspektem danego projektu, innym problemem, zrobić coś, co popchnie nas do przodu w projekcie, ale nie będzie bezpośrednio związane z tym trudnym problemem. Czyli taka krótka przerwa od danego problemu, ale jednak nie próżnowanie i dalej robienie czegoś w kierunku tego, żeby ruszyć cały projekt naprzód. Tylko trzeba uważać, żeby nie stało się to prokrastynacją podczas której będziemy odkładać w nieskończoność właściwy problem, a będziemy zajmować się rzeczami, które nie są aż tak ważne.
1

Biorę kartkę papieru i rozrysowuję strukturę problemu. Przy którymś podejściu zazwyczaj udaje mi się sformułować problem w postaci, którą da się później zaimplementować w skończonym czasie.

Niemniej czasami w efekcie zauważam ograniczenia powodujące, że czegoś nie da się wykonać.

1 użytkowników online, w tym zalogowanych: 0, gości: 1