Cum practicati voi problem solving ca devs?

Salut,

Voi cum practicati/invatati/exersati problem solving-u ca devs?

Eu de exemplu fac code katas pe code wars.

Cred ca la fel cum foamea e cel mai bun bucatar, realitatea si provocarile din productie sunt cel mai bun trainer. So, real fights no katas.
:sunglasses:

5 Likes

Cred că până acum am evoluat inconștient din punctul ăsta de vedere.

Acum cred că procedez cam așa:

Intâi identific tipul problemei.

Dacă este din partea mea, de programare, caut aceeași problemă pe Google, să văd cum au rezolvat alții.
De obicei rezultatul e unul din astea: soluție pe SO, soluție în documentație, issue pe GitHub.

Dacă este o problemă de logică, recurg la resursele proprii. Aici e vorba de imaginație, perseverență și voință.
De la început clarific rezultatul așteptat.
Nu mă dau bătut până nu epuizez toate opțiunile.
Mă opresc totuși când realizez că efortul depus depășește miza obiectivului.

În caz de nereușită ofer alternative celor care mi-au cerut să fac treaba asta.

Apropo de rezolvarea problemelor, fiica mea spune că vrea si ea să se facă “IT-istă”.
Am petrecut câteva luni cu ea să învețe principiile de bază ale IoT și am încercat să îi arăt partea frumoasă.
Însă i-am arătat totuși că parte din muncă este și debugging, iar asta e dureros :slight_smile:

5 Likes

Cea mai simpla solutie e de obicei si cea mai buna.

Exemplu Problema:
trebuie sa implementez o noua functionalitate intr-o aplicatie (eg: Gamitate)

Vechiul eu s-ar gandi la chestii super fandosite, OOP la greu, early optimization (vezi doamne ca o sa am nevoie in viitor de jdemii de functionalitati).

Noul eu face in schimb urmatoarele:

  1. Cu ce sisteme si cod ar trebui sa interactioneze noua functionalitate? Ma uit un pic peste ele.
  2. Incep sa implementez ceva “babeste” ca sa obtin un efect imediat. Sistemul reactioneaza si “imi spune” ce afectez si cum afectez.
  3. Modific implementarea “babeasca” ca s-o integrez cat mai curat cu sistemul actual. Pastrez totul extrem de simplu (dar curat) si ma limitez la implementa DOAR acea functionalitate, fara extra fluff.
3 Likes

In cazul meu:

Problema
Aplicatia de la munca nu colecteaza date pentru un anumit parametru.

Problem solving
Verific daca workflow-ul a fost facut corect. Daca da, atunci imi pun logurile pe debug si ma uit in loguri dupa posibile erori pt acel workflow. De asemenea, testez si local. Nu tot timpul insa.
In 99% din cazuri, cele mai comune probleme, asa le rezolv.
Ma uit dupa orice nu ar fi la locul lui. :slight_smile:

In cazul in care este ceva pur de cod:

  • breakpoin-uri unde crapa
  • citesc in documentatie, SO etc

Acum problem solving-ul ia timp si experienta. Sa documentezi totul. Pe viitor o sa te ajute mult.

No katas, fight like real man :sunglasses:

4 Likes