W każdym rozwiązywaniu problemów zawsze są ludzie, którzy myślą inaczej, którzy mają szóstą opcję, gdy inni sugerują tylko 5, którzy myślą „od razu po wyjęciu z pudełka”. Powiedz, jak można osiągnąć taką zdolność? I co trzeba, aby to osiągnąć?
problem-solving
Denys S.
źródło
źródło
Odpowiedzi:
Nie ma pudełka!
Istnieje konkretny problem do rozwiązania i zestaw ograniczeń, które mogą mieć zastosowanie. Sprawdź, na czym polega problem (myśl abstrakcyjnie i realnie), definiując go zarówno w kategoriach szczegółowych, jak i bardziej ogólnych.
Sprawdź każde z ograniczeń (nie przyjmuj założeń), aby sprawdzić, czy, kiedy i do jakiego stopnia mogą one mieć zastosowanie. Spójrz na problem z perspektywy tego, na kogo wpływa (nie zapomnij o celu), a także zza kulis.
Nie rób założeń.
Jeśli założysz, że pewne rzeczy są prawdą, gdy nie są, nie będziesz w stanie zbadać różnych perspektyw. Zakwestionuj także istniejące decyzje / założenia, które podjęli inni - może to być dobry powód, albo nie, albo taki, który już nie ma zastosowania.
Myśl abstrakcyjnie.
Naucz się widzieć rzeczy jako wzorce i abstrakcyjnie. Kiedy zauważysz wzór, zastanów się nad podobnymi rzeczami i sprawdź, czy możesz zastosować z niego działania do bieżącej rzeczy. Jeśli Twój obszar tematyczny ma nazwy wzorców, naucz się ich - ale nie traktuj ich jako rozwiązań do usuwania ciasteczek.
Nie myśl abstrakcyjnie.
Zawsze staraj się widzieć rzeczy takimi, jakie są - pamiętaj, że „użytkownicy” to ludzie i nie zawsze są logiczni lub racjonalni. Ćwicz empatię z ludźmi używającymi tego, co tworzysz.
Nie zapomnij o celu.
Czasami łatwo jest zaplątać się w konkretny cel / implementację (np. „W jaki sposób dopasowujemy te kontrolki X do interfejsu?”) Zamiast zapamiętywać prawdziwy cel (np. „W jaki sposób pozwalamy użytkownikowi wykonać Y?”) )
Nigdy nie przestawaj się uczyć.
Ogólna wiedza może być świetnym źródłem inspiracji - ktoś już rozwiązał wiele problemów - im więcej wiesz, tym bardziej pamiętasz coś, co ma zastosowanie w obecnej sytuacji.
Bądź dobrym programistą, a nie tylko dobrym [językiem programowania].
Nie bój się uczyć wielu technologii i technik - nawet wiele „nakładających się” języków może pomóc ci zobaczyć rzeczy w różnych kategoriach, ale dobra różnorodność różnych może pomóc więcej. Oczywiście wybierz kilka obszarów do specjalizacji / opanowania, ale upewnij się również, że masz przyzwoite podstawy ogólnych pojęć, które możesz zdobyć, ucząc się wielu różnych języków,
Nie zakładaj, że ktoś jest zbyt niedoświadczony, aby pomóc.
Czasami ludzie, którzy wydają się niezbyt kompetentni lub nigdy nie programowali, mogą wydawać się bezużyteczni w przypadku problemów z programowaniem - ale to nie znaczy, że powinieneś je zignorować. Każdy ma inne perspektywy i zestawy umiejętności i może zapewnić unikalny wgląd, który pozwoli Ci znaleźć rozwiązanie.
Małe dzieci mogą być szczególnie dobrym źródłem „nieskażonej” perspektywy, która może być inspirująca.
źródło
Miej otwarty umysł i staraj się odkrywać jak najwięcej opcji na dowolny temat. Używaj tego z życiem, a nie tylko programowaniem.
Jeśli pozostaniesz przy tym, co wiesz, nigdy nie będziesz miał nic do porównania. Jeśli pójdziesz tam i odkryjesz alternatywy, zaczniesz widzieć inne sposoby robienia rzeczy. Z czasem zaczynasz zdawać sobie sprawę, że możesz znaleźć linki w niepowiązanych obiektach. Gra wideo, którą lubisz, może mieć jakąś funkcję, którą chciałbyś zobaczyć w aplikacji biznesowej, nad którą pracujesz, nawet jeśli jest całkowicie niezwiązana. Kuchenka mikrofalowa może mieć naprawdę fajne ustawienie konfiguracji, które chcesz wdrożyć.
źródło
Naucz się widzieć pole
Spójrz na pudełko i zrozum jego ograniczenia. Zastanów się, które z tych ograniczeń są rzeczywiście korzystne dla rozwiązania problemu, i wskaż, które przeszkadzają lub nie są konieczne.
Możesz pomyśleć, że odpowiedzi dotyczące założeń są dokładnie takie same, ale nie jestem pewien, czy są. Ważna jest także znajomość dziedziny problemu. Po uzyskaniu jasnego obrazu problemu i rozważeniu rozwiązań możesz podnieść jeden kawałek i sprawdzić, czy pojawią się inne potencjalne rozwiązania.
Rozwiń swoje pudełko
Nigdy nie możesz myśleć poza schematem, który jest twoim własnym umysłem. Tak więc, kontynuuj rozwijanie tego, co wiesz i o czym słyszałeś. Rzeczy, które mogą wydawać się nieciekawe dla innych osób, powinny Cię zainteresować. Prawie zawsze jest jakiś szczegół, który może być nieoczekiwany i ekscytujący.
Wszystkie te losowe, interesujące fragmenty informacji mogą się łączyć w dziwny sposób podczas analizy problemu. Po prostu nigdy nie wiesz, co się stanie.
Oddball odpowiedź:
Aby dobrze się bawić i ćwiczyć, słuchaj tego, co mówią ludzie w normalnych rozmowach, i zobacz, jak to się sprawdzi zarówno dosłownie, jak i przy użyciu alternatywnych znaczeń dla wybranych słów. Może to przerodzić się w kalambury lub inne zabawne nadużycia języka, ale jest też dość częstym sposobem ćwiczenia „myślenia poza schematem”.
źródło
Wiele z nich pochodzi z praktyki lub jest po prostu wrodzonych: niektórzy ludzie są bardziej kreatywni niż inni. Ale myślę, że duża część myślenia nieszablonowego pochodzi z posiadania szerokiej wiedzy i wiedzy (lub doświadczenia), kiedy zastosować tę wiedzę do różnych problemów.
źródło
Nie jestem pewien, czy każdy może osiągnąć taką umiejętność, ale oto moje sugestie dotyczące sposobów, aby spróbować się tam dostać, zakładając, że jeszcze nie:
Terapia behawioralna poznawcza - może to być podobne do „przeprojektowywania” mózgu. W moim przypadku przyzwyczaiłem się znacznie, aby zobaczyć, jak zrównoważone mogą być rzeczy, aby zobaczyć drugą stronę, zamiast zajmować się tym, co początkowo myślę o czymś. Książka „Mind Over Mood” zawiera ćwiczenia, które mogą ci w tym pomóc, jeśli chcesz pójść tą drogą. To jest używane do leczenia lęku i depresji, jak natknąłem się na ten temat.
Książki samopomocy - na przykład pierwsza książka dr Phila „Strategie życia” zawiera ćwiczenia, które mogą pomóc w odblokowaniu sposobu myślenia i być może wykonując ćwiczenia szczerze i szczerze, możesz osiągnąć podobny wynik do jednego . Mogą istnieć inne książki, które tu działają, ale także kilka, które nie działają dla niektórych osób, więc znalezienie tych, które działają dla kogoś, może być trochę próbą i błędem.
Wielka ilość wiedzy - na przykład, ile znasz różnych strategii sortowania? Pamiętam kilka nauczanych w szkole takich jak bubble, shell, fast, heap i merge, więc istnieje szansa, że wchłaniając absurdalną ilość wiedzy, możesz mieć listę różnych heurystyk, aby spróbować rozwiązać problem. Przykładem heurystyki może być chciwość, dzielenie i podbijanie, programowanie dynamiczne oraz wykorzystanie specjalistycznych struktur danych. W niektórych przypadkach, po prostu wiedząc mnóstwo rzeczy, które wystarczą, aby myśleć w pudełku większym niż ktoś początkowo sądził. ;-)
źródło
Nie ma na to jednej odpowiedzi. Pomaga, jeśli regularnie ćwiczysz myślenie nieszablonowe, nawet w codziennych czynnościach.
Odwrotne założenia Jako jedno z wielu możliwych podejść możesz spróbować skoncentrować się na odwróceniu nieodłącznych założeń rozwiązania lub problemu:
Zaczynasz od problemu. Pomyśl o łatwym rozwiązaniu, które każdy może wymyślić. Następnie zadaj sobie pytanie: jakie są założenia tego rozwiązania? Lub jakie są założenia dotyczące problemu? Teraz weź jedno (lub kilka) z tych założeń i zadaj sobie pytanie: co, jeśli porzucisz / odwrócisz to założenie? A co jeśli zamiast bezpośrednio spełnić jakiś wymóg, mógłbym go spełnić jako efekt uboczny innego rozwiązania?
źródło
Bądź odważny
Know the Box
Złam swój sposób myślenia
Zmień perspektywę
Zmień język
Pomyśl o problemie jako:
Zmień reprezentację
Zacznij od drugiego końca
Zmień rozmiar
Zrób coś. Byle co
Zapytaj kogoś innego
źródło
Czytałem gdzieś, że ci, którzy uważają się za kreatywnych, są na ogół bardziej kreatywni w swojej pracy lub burzy mózgów. Innymi słowy, zdecydowanie sugeruje, że osoba kreatywna to osoba, która po prostu nie boi się myśleć inaczej.
Myślę, że duża część „myślenia nieszablonowego” rozwiązuje ten problem. Jeśli dobrze zrozumiesz problem, zobaczysz, że czasami sformułowanie pytania jest mylące lub może skłonić ludzi do przemyślenia bardzo konkretnej ścieżki, podczas gdy w rzeczywistości przed tobą pozostaje oczywiste rozwiązanie. Innego dnia na stackoverflow.com pojawiło się pytanie, w którym osoba próbowała przekonwertować wejściowe pole tekstowe na obszar tekstowy, gdy osiągnie określoną liczbę znaków (myślę, że było to 10). W jego skomplikowanym rozwiązaniu nosiłoby 10 znaków, ale nic, co je przekraczałoby, co oznaczało, że szybkie pisanie frustrująco usunęło wszystko poza 10 znakami.
Po opublikowaniu kodu wiele osób próbowało go poprawić i zaproponować zachowanie wartości. Zasugerowałem, aby zachował obszar tekstowy i całkowicie zapomniał o polu tekstowym, modyfikując tylko wiersze atrybutów. Widziałem poza pudełkiem nie dlatego, że jestem tak sprytnym facetem, ale dlatego, że próbowałem zrozumieć jego cel: stworzyć pole wprowadzania tekstu, które rośnie wraz ze wzrostem ilości tekstu. Kiedy ujmujesz to w ten sposób, głupotą wydaje się rozpoczęcie od pola tekstowego, a następnie zastąpienie go.
Tylko moje 10 centów. ;)
źródło
Rozwiązując zagadkę. Musisz połączyć wszystkie (równo odległe) kropki dokładnie w 4 liniach prostych:
BTW To było oryginalne pytanie od razu po wyjęciu z pudełka , ponieważ ...
źródło
Ponieważ dodajemy tutaj różne centy, dodam trochę moich.
Jako ktoś, kto jest konsekwentnie opisywany przez wielu moich klientów i współpracowników jako nieszablonowy myśliciel, oto kilka wskazówek.
Nie ma algorytmu .. ale tutaj pomocne są niektóre działania ..
1. Zagadki
Jedną z rzeczy, które zawsze sprawiały mi przyjemność, była zabawa z mózgiem i układanie puzzli. Dużo zagadek, szczególnie odmiana MENSA. Kup sobie książkę lub dwie z tych zagadek MENSA, które wymagają myślenia na boku. Nie denerwuj się, jeśli utkniesz, przeczytaj odpowiedź i dowiedz się, jak ją rozwiązać. Podobne łamigłówki będą miały podobne rozwiązania, a gdy nauczysz się je rozwiązywać, nauczysz się wzoru.
2. Projekty programowania zwierząt
domowych Dowiedz się jak najwięcej o języku, w którym pracujesz. Twórz projekty zwierząt domowych i pracuj nad nimi w wolnym czasie. Im więcej wiesz, co jest dostępne w twoim języku, tym więcej masz możliwości rozwiązania. Weź kod innych ludzi i spraw, by robił różne rzeczy.
3. Pytaj o wszystko, nie bądź nieśmiały
Jeśli zadawanie pytań sprawia, że czujesz się głupio, to bądź głupi, nie wstydź się. Uczenie się polega na tym, że musisz przyznać, że nic nie wiesz i chcesz się rozwijać. Upewnij się, że znasz podstawy, ponieważ zaawansowane rzeczy zawsze wyrastają z tego, a jeśli twój fundament nie jest solidny, wiedza, którą zbudujesz na tym, zawsze będzie w jakiś sposób błędna.
4. Nieoczekiwany
Nie odrzucaj żadnego wymyślonego pomysłu, dopóki nie dowiesz się dokładnie, co jest z nim nie tak. Najlepsze rozwiązania często pochodzą z najbardziej nieoczekiwanych pomysłów.
Powodzenia.
źródło