Druga część tego pytania jest kluczowa. Jeśli jesteś jednym z niewielu programistów i po tym, jak walniesz głową w klawiaturę przez niekończące się noce, nie możesz czegoś wymyślić, a nikt inny w Twojej organizacji nie pyta, co robisz? Brak kogoś, o kogo można zapytać, ma więcej wspólnego z faktem, że zbyt wiele czasu zajęłoby ich przyspieszenie, aby mogli nawet ocenić problem. Czy są to przypadki, w których prowadzisz niewygodne rozmowy z kierownictwem i mówią, że wymagany będzie zewnętrzny kontrahent z większym doświadczeniem?Jakie jest najlepsze podejście, gdy nie możesz czegoś wymyślić, a nie masz o co pytać?
Odpowiedz
Jest czas i miejsce, w którym każdy trafia na problem, który nie wydaje się być oczywistym wyjściem.
1) Zadaj sobie pytanie, czy jesteś pierwszą osobą, która kiedykolwiek to rozwiąże - jeśli nie, prawdopodobnie istnieje odpowiednia odpowiedź. Wypróbuj Google, SO itp.
2) Zrób sobie przerwę i spróbuj zrobić coś innego przez chwilę - to niesamowite, co kilka godzin dzieli od klawiatury i myśli o czymś innym.
3) Spróbuj porozmawiać o problemie z kimś innym, nawet jeśli nie jest on techniczny - czasami proces wyjaśnienia problemu komuś, kto nie jest techniczny lub zaangażowany, może doprowadzić cię do właściwej odpowiedzi lub podejścia z inny kąt.
4) Przyznanie, że jest trudniejsze, niż przewidywałeś lub utknąłeś. Dobry szef pomoże ci osiągnąć właściwy wynik, zarówno dla Ciebie, jak i dla firmy. Uświadom im, jaki wkład włożyłeś, oraz wnioski i decyzje, które podjąłeś do tej pory.
5) Jeśli wszystko inne zawiedzie, pomóc twój szef wybrać wykonawcę jako prawdopodobnie będziesz musiał utrzymać swój kod :-)
# 3 zdecydowanie jest kluczem. Pomoże ci to wyjaśnić, gdzie stoisz, aby zrozumieć problem. – bruceatk
Uzgodnione. Moja żona nie zna się na programowaniu, ale wiele razy pomagała mi rozwiązywać problemy z programowaniem. –
Czasami, gdy nie mogę wymyślić rozwiązania, może to być spowodowane tym, że kieruję się niewłaściwą ścieżką z moim podejściem do rozwiązania problemu. Bardzo mi pomaga, aby nie myśleć o problemie przez chwilę. Wracając do niego po przerwie, można uzyskać jeden świeży wgląd, który może pomóc w znalezieniu rozwiązania.
zależności od problemu czasami rozwijają aplikacje jednorazowe przetestować/z pracy ta konkretna właściwość/błąd/cokolwiek bez wszystkich innych warunków wstępnych i zależności istniejących w projekcie (i może wpływać na wynik).
Spróbuj ponownie zdefiniować problem. Czasami możesz przerobić oprogramowanie, które piszesz, aby nie napotkać problemu, który próbujesz rozwiązać. Czasami nie stanowi to problemu z twoim rozwiązaniem, ale jest to stan oprogramowania, w którym próbujesz go wdrożyć.
Najpierw google
A jeśli to nie pomoże, próbuję podzielić problem na części Mogę rozwiązać. Zwykle wgląd w to, co robię, oświeci mnie na tyle, żebym mógł zrobić nowe ukłucie w tej trudnej części.
Moim ulubionym jest Rubber Ducky debugowanie, wyjaśnione tutaj: http://lists.ethernal.org/oldarchives/cantlug-0211/msg00174.html
Nazwaliśmy go Rubber Duck metoda z debugowania.To idzie tak:
1) Beg, pożyczać, kraść, kupować, produkować lub w inny sposób uzyskać gumowe kaczki
(odmiana wanna)2) Place gumowe kaczki na biurku i poinformować go jesteś po prostu przejdzie przez jakiś kod z nim, , czy to w porządku.
3) Wyjaśnij kaczki co kod ma robić, a następnie przejść do szczegółów i wyjaśnienia rzeczy wiersz po wierszu
4) W pewnym momencie powiesz kaczkę, kim jesteś robić dalej, a następnie zdać sobie sprawę, że , który nie jest w rzeczywistości to, co robisz faktycznie robi. Kaczka usiądzie tam spokojnie, zadowolony z wiedzy , która pomogła ci po drodze.
Działa za każdym razem. Właściwie, jeśli nie mają gumową kaczkę mogłeś na szczypta zapytać programista towarzysza lub inżyniera siedzieć.
Andy
I w obliczu tej sytuacji dla całego projektu, w którym Byłem only programmer on the job, responsible for architecture all the way down to maintenance.
Zajmowałem się tym przez agresywne używanie Google i programowanie Q & Witryn, chociaż nie miałem wtedy SO (uciekałem się kilkakrotnie do Yahoo! Answers). Przez większość czasu nie znajdowałem dokładnie tego, czego potrzebowałem, i musiałem użyć mojego mózgu i zrobić kilka trudnych problemów, aby rozwiązać większość problemów.
Kiedy całkowicie utkniesz za ceglanym murem, musisz wymyślić obejścia satysfakcjonujące dla użytkowników końcowych. Jest szansa, że nie będziesz w stanie sprawić, by wszystko działało dzięki sile programowania.
Zgadzam się z inną odpowiedzią tutaj, że czasami wstawanie i chodzenie od problemu często dostarcza ci błysków wglądu, które nigdy by ci nie przyszło, gdy jesteś za klawiaturą. Często jadłem lub pod prysznicem moje najintensywniejsze pomysły.
Najpierw chciałbym rozpocząć pracę nad najłatwiejszymi bitami. A co jeśli nie wiesz, jak znaleźć zoptymalizowany algorytm ścieżki na mapie? Zacznij od napisania kodu rysującego wypełnienie. Następnie wykonaj procedury sztucznej inteligencji do walki, po tym wszystkim, co trzeba zrobić, jak również. Następnie, podczas pracy nad symulatorem pogody, uświadomisz sobie, że twoja podświadomość opracowywała szczegóły algorytmu ścieżki podczas snu.
- 1. Dlaczego masz "gdzie", gdy jest "o"
- 2. Jakie jest najlepsze podejście do wiązania zdarzeń jQuery z elementami
- 3. Jakie jest najlepsze podejście do tworzenia niestandardowego kontrolera paska kart?
- 4. Jakie jest najlepsze podejście do tworzenia niestandardowego, kanciastego motywu materiałowego?
- 5. Jakie jest najlepsze podejście do integracji aplikacji Lotus Notes?
- 6. Czy możesz wymyślić schemat mieszania haseł?
- 7. Regex, aby dopasować do czegoś, co nie jest określonym podciągiem
- 8. Asp.Net MVC - Najlepsze podejście do "dynamicznego" routingu
- 9. Jakie jest najlepsze podejście do obsługi przesyłania dużych plików w aplikacji szyny?
- 10. Jakie jest najlepsze podejście do aktualizacji tylko zmienionych właściwości w NHibernate po odłączeniu sesji?
- 11. Jakie jest najlepsze podejście do obliczania odległości między elementami DOM w Vuejs?
- 12. Najlepsze podejście do polimorfizmu struktury w C
- 13. Jakie jest prawidłowe podejście do rozwiązania SPOJ DIEHARD?
- 14. Jakie jest zalecane podejście do stylu SlickGrid?
- 15. Jakie jest najlepsze miejsce, aby znaleźć materiały referencyjne Git w Internecie, gdy kernel.org nie działa?
- 16. wymyślić: nie wymagające poczty elektronicznej
- 17. Jakie jest najlepsze podejście do audytu dużej aplikacji WWW java/j2ee?
- 18. Wymyślić, nie można się wylogować
- 19. Jakie jest moje najlepsze podejście do określania zachowania kompilatora dla pustych pętli nieskończonych?
- 20. Nie możesz edytować informacji o pakiecie "..."
- 21. Jakie jest najlepsze miejsce do zgłaszania błędów w ASP.NET MVC?
- 22. Jakie jest dobre podejście do studiowania OpenGL es 2.0?
- 23. Logowanie dla wielu użytkowników Django - najlepsze podejście?
- 24. Przeczytaj SharedPreferences, gdy nie masz jeszcze nazwy pliku
- 25. Przetwarzanie plików za pomocą ParallelForeach. Czy to jest najlepsze podejście?
- 26. Jakie jest najlepsze podejście do uruchomienia długiego procesu z serwletu java?
- 27. Jakie jest najlepsze podejście do prowadzenia długiego procesu przy użyciu Spring
- 28. Najlepsze podejście do budowania NHibernate DTO
- 29. Jakie jest najlepsze podejście do ładowania początkowych danych w pliku Backbone.js?
- 30. Najlepsze podejście do oldschool 2D zelda-like game
Po to tu jesteśmy! – DOK
# 3 w odpowiedzi "Miles D's" jest kluczem do pomocy w podjęciu decyzji, co należy zrobić. W przypadku przyszłych problemów może być korzystne rozpoczęcie udziału w niektórych spotkaniach grup użytkowników w Twojej okolicy w celu nawiązania relacji z ludźmi, z których możesz odrzucić niektóre pomysły/problemy. – bruceatk