it-swarm-eu.dev

Jak mohu zlepšit své schopnosti řešit problémy?

Každý říká totéž: „skutečný programátor ví, jak řešit skutečné problémy.“ Ale zapomínají, jak se naučili tuto schopnost nebo kde: není to vyučováno na školách.

Co mohu udělat pro zlepšení schopnosti řešit složité problémy s programováním? Jaké strategie pro vás fungovaly? Existují specifické oblasti, na které bych se měl zaměřit, jako jsou algoritmy nebo návrhové vzory?

50
user12278

Několik technik, které mohou nebo nemusí fungovat:

  • Podívejte se na stávající řešení běžných problémů, např. designové vzory. Možná najdete něco podobného, ​​které se alespoň částečně podobá vašemu problému. Prohledat internet.
  • Chovejte se, jako by problém již byl vyřešen, a sledujte, co následuje zpět k řešení. Například namísto navrhování API pro třídu stačí napsat kód, který využívá třídu, s voláním metod, jak byste chtěli, a implementovat toto API.
  • Udělejte něco jiného, ​​např. surfovat po síti nebo hrát solitaire a čekat na inspiraci.
  • Pomyslete na osobu, která se vám nejvíce líbí, a předstírejte, že ji chcete zaujmout svými schopnostmi při řešení problémů. Jaké by bylo mimořádně působivé řešení?
  • Zkontrolujte problém z hlediska inherentních rozporů nebo protichůdných požadavků a přesně uveďte, jaké jsou a jaký kompromis by mohl být učiněn. Často, když takové konflikty existují, ale nejste si vědomi, máte sklon vyhodit jedno možné řešení za druhým, protože nemůžete dokonale uspokojit všechny požadavky.
  • Pokud již máte možné řešení, ale cítíte se „špinaví“ (kopírování, vkládání, globální proměnné, kód špaget atd.), Přesto je používejte a poté je vylepšete.
25
user281377

Použijte myšlení v režimu R nebo L podle potřeby

R-režim je kreativní, neverbální přístup, který běžně spojujeme s podvědomím. L-režim je lineární, logický, slovní přístup spojený s vaším „vnitřním hlasem“.

Pokud se problém jeví neřešitelný, je to pravděpodobně proto, že se ho pokoušíte vyřešit pomocí režimu nesprávného myšlení. Pro programátory je výchozí režim myšlení obvykle režim L, takže pro dočasné vypnutí a přístup do režimu R může fungovat.

Jak přistupovat k myšlení v režimu R

Existuje mnoho způsobů, ale možná vyzkoušejte Poincare metodu (pojmenovanou po slavném matematikovi).

Zapište si vše o problému. Okamžitě vyřešte všechny jednoduché aspekty (pokud existují). Vyberte jednu položku ze seznamu „těžkých problémů“ a poté se vydejte na procházku, kde nebudete rušeni nebo rozptylováni.

Nesnažte se analyzovat problém během procházky, jen nechte svou mysl bloudit a pozorovat jakékoli zajímavé obrázky nebo pocity, které by mohly souviset s problémem. Nechte je splynout. Pokud inspirační údery okamžitě zastaví procházku a vraťte se, abyste si zapsali vhled, který jste získali.

Opláchněte a opakujte, dokud nebudou mít všechny problémy přehled. Poté začněte prozkoumávat poznatky.

Doporučení knihy

Také čtení Pragmatické myšlení a učení vám může pomoci stát se lepším řešením problémů. (Zdá se, že v poslední době hodně odkazuji na tuto knihu ...)

20
Gary Rowe

Zeptejte se někoho jiného ...

Ne vážně. Váš největší zdroj může být osoba sedící vedle vás. Ani je nepožádejte o odpověď na problém, nepožádejte je, aby seděli vedle vás a nechali vám problém vysvětlit.

Často to vyřešíte, když to verbalizujete.

Někdy druhá osoba položí otázku nebo poukáže na detail, který odemkne mentální záplavu.

Nakonec se naučíte verbalizovat věci v hlavě bez použití loutky a rychleji si všimnete klíčových detailů v problému.

A pokud všechno ostatní selže alespoň, mohli by vám ukázat techniku, kterou byste nenapadli použít.

17
gingerbreadboy

Vlastně moje krátká odpověď je „řešení více problémů“. Ale jde o to: Opravdu se soustředit na problémy a nevzdávat se. Nežádejte o pomoc s StackOverflow nebo cokoli jiného. (Čtení StackOverflow je samozřejmě v pořádku!) Snažte se tvrdě, dokud nedosáhnete téměř funkčního řešení, pak téměř dosáhnete svého cíle. A pokračujte, dokud nebudete mít uspokojivé řešení.

Pro mě je řešení problémů dvě věci:

  • strategie řešení problémů
  • vytrvalost a frustrace tolerance

Bod 2 je podle mého názoru opravdu klíčový, protože vás nutí změnit myšlení, čím déle jste s problémem. Rovněž vám umožní trávit více času řešením problémů, což vám umožní ještě více zlepšit své dovednosti. ;-)

Mimochodem, doporučujeme přečíst si Edward de Bono. I když jsem si osvojil dovednosti při řešení problémů hlavně studiem fyziky, jeho psaní je opravdu zajímavé.

No a můj nástroj pro řešení problémů je tento:

  • náhodně něco zkuste
  • číst náhodné články/blogy/příspěvky na téma, které mě zajímá (nebo na téma úzce související)
  • dělat pěkný výkres
  • rozdělit problém na více, ale jednodušších problémů
  • udělat něco jiného
  • Google něco, co nějak souvisí s problémem
  • mluvit s ostatními o problému
  • vytvořit seznam úkolů
  • zapište si, co víte o důsledcích problému, abyste mohli snáze najít vzory

Vezměte prosím na vědomí, že většinu těchto nástrojů lze použít rekurzivně.

A můj algoritmus je tento:

  1. Který nástroj nástroje pro řešení problémů má v tuto chvíli největší smysl?
  2. Problém nebyl vyřešen? Pokračujte 1. ;-)

Krok 1 je těžké rozhodnutí, ale čím více praktikujete, tím lépe se rozhodujete.

Oh a já skoro zapomenu na nejdůležitější přísadu:

Přemýšlejte pozitivně o celém procesu. Nemyslete si: „Doufám, že XYZ nyní problém vyřeší.“ Spíše si pomyslete: „Pokud XYZ nefunguje, vím, že YZX nemůže být zdrojem problému a zkontroluji, zda ZYX funguje.“ Řešení problémů může být zábavné, zvláště pokud váš proces nalezení problému skončí být elegantní a informativní.

9
Philip

Začněte také pracovat na dovednosti identifikovat problémy. Někdy musíte uznat, že je nějaký problém, než to vyřešíte. Ve škole vyžadují od studentů příliš mnoho odpovědí a nedostatek otázek.

Najděte lidi kolem vás, kteří řeší problémy, a zeptejte se jich, jak na to.

Buďte připraveni se mýlit. Nebudete se zlepšovat, pokud si je všechny ponecháte pro sebe a nebudete k ničemu.

7
JeffO

Hlavním přínosem výuky informatiky pro softwarové inženýry je schopnost vytvářet a porozumět abstrakcím. Abstrakce se používají k zapouzdření běžných funkcí, jako jsou metody třídy String, do těsných, opakovaně použitelných balíčků, které nám umožňují soustředit se na větší problém.

Naučte se rozpoznávat a vytvářet abstrakce:

Ale co je nejdůležitější, abstrakce nás učí jak rozdělit problém na menší, lépe zvládnutelné kousky. V kombinaci s vědeckým pozadím může kombinace těchto dovedností vytvořit inženýra schopného proříznout hluk a dostat se do jádra problému.

Naučte se řešit problémy pomocí vědecké metody:

Při odstraňování potíží s produkční aplikací, kde existuje obtížně vyhledatelný problém, někdy pomáhá skutečně přerušit aplikaci dále (v nevýrobním prostředí), aby se eliminovalo několik proměnných, aby se jedna izolovala a eliminovala.

Stručně řečeno, vědecká metoda, která se poučila z převzetí všech volitelných předmětů z fyziky a dalších vědeckých předmětů, které jsou potřebné pro získání titulu z oblasti informatiky, pomáhá tyto problémy vyřešit, jako kdybychom zkoušeli placebo a nový lékový pokus na řadě dobrovolníků. Stejně jako vědci, kteří někdy musí udělat něco horšího, aby to bylo lepší, někdy my jako inženýři musíme udělat totéž.

Vědecké myšlení tímto způsobem může - obecně - vycházet pouze ze zkušeností na vědeckém pozadí. Někdy řešení problému nelze vnímat jako lineární cestu od A do B.

Stručně řečeno, studujte informatiku, studujte další vědecké obory, učte se funkční programování. Ty vám pomohou myslet jako vědec a myslet mimo krabici.

4
jmort253

Myslím, že to, co hledáte, je heuristika informatiky.

Když přijde na to, co 99% z nás dělá v zákopech, pod Sluncem opravdu není nic nového. Takže byste mohli vidět problém a rozpoznat ho jako problém DP nebo jiný jako problém, který by mohl mít prospěch z memoizace atd. ...

Jak získáte tyto znalosti? Správný titul CS je dobrým místem pro začátek ... Ne softwarové inženýrství nebo informační systémy, ale ty věci, které většina undergrads si stěžují na „není praktický“.

Můžete to udělat sami, ale pravděpodobně to bude těžší. Začal bych těmito dvěma kurzy:

Úvod do algoritmů

Skvělé nápady v teoretické CS

3
red-dirt

Vše záleží na tom, jaký typ problémů chcete vyřešit, ale naučit se logicky myslet, pokud již ne, je dobrá věc.

Celkově vzato, budeš mě nenávidět za to, že jsi to řekl, ale praxe je perfektní. Nedostal jsem se vytáhnout z lůna své matky, protože jsem věděl, jak být dobrým řešitelem problémů a nikdo jiný ne. Musíte cvičit a učit se, jak dělat věci na vlastní pěst. Pokud jste stále ve škole a nemáte třídy programování/počítačové vědy, matematika a věda jsou také docela dobré pro podporu rozvoje těchto dovedností.

3
user7007

Moje odpovědi se týkají konkrétně kódování, ale lze je použít na cokoli.

  1. Krok od klávesnice. Promluvte si, projděte se, promluvte si s kolegou u kávy
  2. Staňte se o 10 let starší! Moje zkušenost mi nesmírně pomohla.
  3. Použijte binární kotleta. Rozdělte problém na dva a problém zúžte: opakujte.
  4. Vzpomeňte si na Sherlocka Holmese: Když jste vyloučili možné, odpověď zůstává cokoli (bez ohledu na to, jak divné)
  5. Zkontrolujte data testu. Více než polovina mých opravdu složitých problémů byla způsobena chybnými daty a ne chybnými kódy nebo algoritmy.
2
Fortyrunner

Pokud jde o praxi, mohu vám říct, co dělám. Zajímám se více o aplikovanou matematiku, než o programování, ale použitá matematika, jak je aplikována na výpočetní techniku, je programování druhů. Vidím problémy a řešení v okolí. Před (nebo někdy poté, pokud řeknu, že moje práce vyžaduje včasné řešení), odkaz na známé řešení - nebo na existující knihovnu kódů, se rád zeptám sám sebe: „Pokud by to byl panenský problém - nemůžete najít konzervované řešení, jak byste postupovali? “ Pokud je odpověď poněkud přímočará, zvažte psaní řešení (analytické, nebo počítačový program k jeho vyřešení). Ignorujte komplikované případy ukončení, máte zájem prozkoumat přístupy a algoritmy, nikoli znovuobjevovat existující knihovnu. Pokud bude řešení vyžadovat příliš mnoho úsilí, nenaprogramujte úplné řešení, ale alespoň přemýšlejte o druzích datových struktur a metod, které byste chtěli použít. Také přemýšlejte o alternativních metodách.

1
Omega Centauri

Pocházím z vědeckého prostředí, takže když se podívám na problém, mám tendenci používat taktiku z Scientific Method . Obzvláště ráda nastavuji „experimenty“ založené na hypotézách a používám „ovládací prvky“, takže něco budu stavět a poté změním/přidám pouze 1 věc a uvidím, jaký bude výsledek jedné změny/přidání a pokud Pokud nedostanu výsledek, který potřebuji, přepnu to zpět a změním něco jiného. To funguje dobře pro odstraňování problémů/ladění kódu. Někdy dostanete odpověď, kterou hledáte, ale vždy se dozvíte něco nového, co dělá, i když selžete. Také se rád učím skrz redukcionismus - brát něco, co již existuje (vždy dobré začít s něčím, čemu nerozumíte, ale víte, že funguje) a vypadá mi komplexně a vidět, jestli to dokážu zlomit dolů do jeho součástí a naučit se, jak fungují jako první. Pro mozek je někdy snazší zvládnout učení, jako je tento, namísto přistupovat k problému holisticky a tyto znalosti mohu použít k vytváření jiných podobných složitých věcí sám. Doporučuji také číst knihy o logice a zdůvodňování výběru děl od klasických i moderních myslitelů (začít s Aristotelesem a postupovat nahoru). Mohou vám poskytnout některé základy základní logiky, které můžete použít při řešení problémů v počítačích. A samozřejmě, pokud nemůžete vyřešit problém a na tom už nějakou dobu pracujete, udělejte si přestávku na mozek. Přeorientování na konkrétní aspekt problému je někdy škodlivé. Každý potřebuje přestávky :)

1
kelleystar

Je tu skvělá otázka SO .

Moje odpověď byla:

Nejlepší způsob, jak zlepšit, je trénovat!

Přihlaste se k odběru RSS kanálu na: http://www.mensa.org.uk/puzzles/ a věnujte čas jejich dokončení, jakmile vyjdou.

Denní kalendář na skládačky puzzle (např. http://www.calendars.com/product.asp?PID=1&MGID=-1&IID=46387&cm_mmc=Affiliate_Program--performics--k137666-_-DDI%20Link ) je také dobrý nápad, protože vám poskytne pravidelné, kousavé a rozmanité problémy, které je třeba vyřešit.

I když to bude vždy mimo téma z problémů, které ocitnete čelí, rozmanitost je důležitá, protože vás donutí přemýšlet způsoby, které jste dosud neudělali, což je opravdu to, o čem je řešení problému.

Upravit: Také zkontrolujte: http://www.mindtools.com/pages/main/newMN_TMC.htm , kde najdete tipy pro řešení problémů.

1
StuperUser

Hraj šachy

Hraní šachů je vynikajícím trenérem pro řešení problémů s programováním. Vrstvy problémů a logické stromy se vztahují velmi pěkně. Pomáhá vám také myslet dopředu a plánovat, než půjdete po suboptimální cestě a ztrácíte čas.

Šachy také vyžadují rovnováhu mezi levým a pravým „režimem myšlení“. Pokud se stanete příliš analytičtí, můžete se pokusit vše spočítat, což je nemožné. Každou kreativní inspiraci je však třeba zkontrolovat pomocí výpočtu, aby se zajistilo, že odpovídá konkrétní realitě dané situace. Těžké problémy jsou právě takto.

Šachy ukazují, jak studium a praxe vedou k solidnímu zlepšení velmi lineárním způsobem. To platí i pro řešení problémů s programem.

Hraní šachů vám také pomůže získat dobrý přehled o tom, kolik toho se má naučit. Přestože programujete (nebo hrajete šachy) již 10 let, ještě nejste velmistrem.

1
Jeff Davis

Nedávno jsem řešil problémy na Project Euler . Problémy mají různé potíže. Řešení obvykle nevyžadují velké množství kódu, ale musíte zvážit mnoho faktorů, jako je běh vašeho algoritmu. Při zadávání odpovědi můžete použít jakýkoli jazyk, který se vám líbí. Existuje dobré řešení optimálního řešení mnoha problémů a spousta diskusí o každém problému. Pokuste se řešit jeden problém každý den a budete překvapeni, jak se vaše řešení problémů a analýza zlepšují. Chcete-li získat další kredit, zkuste vyřešit stejný problém v mnoha jazycích, jako je procedurální jazyk (možná C++), skriptovací jazyk (jako je python) a funkční jazyk (jako F #).

1
Erik

Nejtěžší součástí řešení problémů je „vnímání zúžení“.

Vyberete si něco, co se zdá být problémem, a vytrvale jdete, dokud nejste vyčerpaní a neděláte žádný pokrok.

Způsob, jak toho dosáhnout, je zajistit si - zcela jistě - problém opravdu pochopíte. „Řešení správného problému“ je nejdůležitější součástí řešení problému.

Někdy to nazývají „myšlení mimo krabici“. „Box“ je úzké hledisko, které nemusí zahrnovat skutečný základní problém. Myslet mimo krabici znamená hledat ten správný problém, který je třeba vyřešit.

Existuje řada knih o strategiích, jak se vyhnout zúžení, které je spojeno s předčasným zaměřením na špatný problém.

Trik je většinou v tom, zjistit, jaký skutečný výsledek má být. Pak zjistěte, co blokuje tento žádoucí výsledek.

0
S.Lott

Ve vývoji aplikací je mnoho z problémů, kterým čelíme, buď náš vlastní vynález, nebo vynález idiota, který jsme zdědili, ze kterého jsme vydělali základnu kódu. Řešení problému nejčastěji spočívá na nalezení zdroje. Často, jakmile zjistíme kde to se děje, je k tomu řešit to, co je potřeba, pouhá kompetence.

Do toho konce:

  1. Naučte se svou platformu.
  2. Naučte se své nástroje.
  3. Zjistěte, jaké nástroje jsou k dispozici pro vaši platformu, s níž jste se dosud nesetkali.

Celý trénink mozku na světě je zbytečný bez informací, které by mozek mohl použít. K vyřešení problému musíte vědět, jaké jsou možnosti první! I tehdy je mnohem rychlejší pracovat s dobrými informacemi, než jen s popisem problému.

Mohl bych spekulovat, až krávy přijdou domů, proč něco trvá příliš dlouho na to, abych to provedl. Pokud ale řeknu „Nejdříve získám některá data“, mohl bych vidět, že je vyvoláno mnoho výjimek a uvědomit si, že bych to mohl místo toho změnit na příkaz if. Aniž bychom věděli, jak shromažďovat informace, vědět, že na mé platformě výjimky trvají docela trochu režijně a že existuje způsob, jak zkontrolovat před pokusem, který je rychlejší, nikdy bych problém nevyřešil.

0
MIA

Vaše odpověď má dvě části:

a) Technika řešení skutečného problému

b) Učinit mozek neodmyslitelně „lepším“ při myšlení a řešení problémů

Vždy existovalo několik skvělých odpovědí na techniku ​​(předpokládejme, že znáte problém atd.), Takže se toho nebudu tolik zabývat. Pokud jde o trénink mozku, můžete udělat několik věcí, abyste tyto synapsie překročili a vytvořili další propojení

1) Naučte se nový jazyk, skutečný jazyk (například francouzština nebo čínština může být v těchto dnech dobrá sázka)

2) Naučte se hrát na nový nástroj

3) Dělejte něco uměleckého, jako je Malování, kreslení nebo sochařství

4) Zahrajte si scrabble nebo proveďte křížovky

5) Tanec, jak to myslíš. Ne, nedělám si srandu. Ukázalo se, že tanec má dopad na váš mozek a myšlení

6) Rozšiřte své zkušenosti, inovativní řešení přicházejí z aplikace teorie v jednom oboru v jiném, takže studujte různé obory a oblasti, které vás zajímají

7) Cvičení, cvičení je zásadně důležité ke zlepšení procesu myšlení

Nakonec nabídnu svůj nejlepší tip pro řešení těžkých problémů: vydejte se na dlouhou procházku. Zjistil jsem, že to funguje zázraky, abych vyčistil hlavu a nechal jeden rozjímat o problémech


0
Homde

Pro programátora je snadné problém mentálně napadnout vizualizací, jak problém vyřešit pomocí svého oblíbeného programovacího jazyka. Stejně jako klasický tesař, který vidí všechny problémy jako hřebíky, když je jeho oblíbeným nástrojem kladivo.

Myslím, že nejlepší cvičení pro řešení problémů přicházejí, když se dostanete nad praktickou úroveň, a jen si pomyslím „to je to, co bych potřeboval, abych to vyřešil optimálním způsobem“. V některých případech se možná budete muset naučit (spousta) nových věcí, abyste mohli řešení vůbec aplikovat, ale klíčovým bodem je to, že vaše schopnost vypracovat řešení by se neměla omezovat na vaše historické a stávající techniky.

Starý praktický příklad pro mě je, že jsem se naučil, jak implementovat efektivní kooperativní multitasking, když jsem si uvědomil, že můj problém ve skutečnosti nepotřebuje preventivní vlákna, i když obvykle bych šel přímo do své zóny pohodlí, kde by všechny ty mutexy narážel (že nakonec se vždy zdá, že přestane být pohodlný v určitém okamžiku ..).

0
sharkin

Řešení problémů není něco, co se dá naučit nebo dokonce naučit čtením. Jediným způsobem, jak získat lepší řešení problémů, je řešení problémů.

Existují různé techniky a metodiky řešení problémů, o kterých si můžete přečíst, a můžete si přečíst o nástrojích a technologiích, které můžete použít k řešení problémů v konkrétní doméně. Pokud nepřetržitě nepřemýšlíte o problémech, zkuste přijít s řešeními (přijít s více řešeními pro každý problém a vyhodnotit je proti sobě), a poté zhodnoťte svá řešení proti řešením vyvinutým ostatními, problém se nezlepší Řešení.

Doporučuji vyzvednout kopii Pragmatické myšlení a učení: Refactor Your Wetware by Andy Hunt . Je to kniha o porozumění tomu, jak přemýšlíte, reagujete a učíte se. Přináší relevantní teorie z teorie chování a dalších kognitivních věd. Je specificky zaměřena na vývojáře softwaru, ale vztahuje se na každého znalostního pracovníka.

0
Thomas Owens

Pro začátečníky v programování, jako jsem já, doporučuji knihu „Think Like a Programmer“. V první kapitole se zabývá technikami řešení problémů, jako je opakování a rozdělení problému, počínaje tím, co znáte, redukcí, analogií a experimentováním.

Dále existují pokročilejší techniky s příklady v C++: řešení problémů s poli, ukazateli a dynamickou pamětí, třídy, rekurze, opakované použití kódu. Nemohu komentovat tuto část, protože je to pro mě ještě příliš těžké.

0

Moje rada by byla vyhodit knihu!

Doslova samozřejmě. Mám na mysli to, že vstoupíte do tématické oblasti, ve které máte málo zkušeností, a řeší tam těžké problémy, aniž by se dozvěděli o existujících řešeních. Spolehněte se pouze na svou kreativitu a kritické myšlení a možná na referenční příručku.

Můžete navrhnout formát obrázku. Nebo webový server. Nebo schéma komprese. Souborový systém. Jádro. Umělá inteligence. Programovací jazyk. Systém počítačového vidění.

Něco, co považujete za zajímavé, to je poměrně složité a o kterém jste se nikdy nedozvěděli. Don't přečtěte si o tom: prostě skočte přímo dovnitř. Experiment. Dělat chyby. Znovu vynalézat kolo.

Nežádejte o pomoc. Drž se dál od tutoriálů. Drž se dál od teorie. Netahejte řešení z police.

Proč?

  • Učíme se nejlépe z chyb.
  • Poskytuje vám příležitost praktikovat přicházení s řešeními kreativně, spíše než opakovat a přizpůsobovat stará řešení.
  • Jste nuceni vyhodnotit své nápady. Nemůžete je hodnotit, aniž byste si dobře rozuměli svým nástrojům, problému, který řešíte, a myšlence, kterou chcete vyhodnotit. To vede k hlubšímu pochopení tématu, než byste se jinak vyvinuli. (Neváhejte a přečtěte si o nástrojích, které používáte, prostě nečtěte o problému, který se snažíte vyřešit.)

Udělejte několik pokusů a jakmile budete spokojeni s tím, čeho jste dosáhli, nechte to několik měsíců. Pak se vraťte svěží a zjistěte, zda můžete najít novou perspektivu. Poté je čas začít číst o problému a o tom, jak ho ostatní vyřešili (nebo mluvili s lidmi). V tomto bodě, místo toho, abyste si řekli „ano, to dává smysl“, když budete číst, řeknete „ano, přesně“, nebo „dobře, do určité míry“ nebo „páni, to je chytré ".

Jinými slovy, o tom, co čtete, budete mnohem kritičtěji přemýšlet a bude pro vás mnohem snazší porozumět a zapamatovat si ho, protože už k němu máte velký „mentální rámec“. Budete se cítit dobře s těmi věcmi, které jste objevili samostatně, a budete odcházet s hromadou nových znalostí.

Nesnažte se, aby vaše řešení bylo perfektní. Jen si dokažte, že můžete vyřešit problém. Přijměte postoj „můžete dělat“, a pokud se vám problém zdá, že vás tento problém zaskočil, nezapomeňte, že osoba, která jej poprvé vyřešila, o tom pravděpodobně věděla stejně jako vy (ve skutečnosti nevěděla, že má řešení!).

0
Artelius

Upřímně si myslím, že všichni jsou jiní, takže cestovní mapa pro lepší řešení problémů je jiná. Můžete se poučit ze zkušeností ostatních lidí, ale nakonec musíte vytvořit vlastní cestu. V zásadě se něco učí „tvrdým způsobem“, ale v tomto případě je to efektivní.

Zde je návod, jak jsem začal vylepšovat řešení problémů, i když ještě nejsem velký řešitel problémů, jen lepší než minulý rok. V práci jsem dostal nový projekt, který zahrnoval rozšíření části softwaru pro sledování času s otevřeným zdrojovým kódem, přidáním tří nových zpráv pro správu. Tento software byl napsán v jazyce, který jsem nikdy nepoužil, a byl špatně zdokumentován a velmi zmatený. Vrhl jsem se a udělal spoustu výzkumu a pak jsem právě pracoval na hlášeních v kojeneckých krocích, jakmile jsem měl základní funkčnost, vylepšil jsem je a nakonec jsem přidal další funkce.

Jinými slovy, doporučuji vám najít nějaký projekt dřezu nebo plavání v reálném světě, na kterém budete pracovat. Pokud jste v současné době zaměstnáni jako programátor, najděte si projekt nebo požádejte o něj šéfa. Pokud tento scénář není možné najít mimo práci, možná smlouva/práce na volné noze nebo tak něco. Problémy řeším velmi dobře a velmi rychle, když musím, a tyto znalosti si udržuji kvůli intenzitě projektu. Pokud to pro vás nebude fungovat, udělejte to, co navrhují všichni ostatní v tomto vláknu :).

0
hockfan86

Odpověď je sama v otázce tím, že vyšla s různými řešeními. Vždy existuje více než jedno řešení (např. Třídění lze provádět různými způsoby, například třídění bublin, třídění výběrů atd.), Stačí si vybrat způsob, jak to dokážete (třídění) efektivně. Zkuste příště s jiným a tak dále ..... A knihy pro řešení problémů ..... Žádné Nemůžete se učit dovednosti pro řešení problémů z knih, více kódu vám poskytne více znalostí, které získáte. Hodně štěstí

0
Ranger