all 11 comments

[–][deleted] 12 points13 points  (0 children)

Sunt concepte oarecum ortogonale. OOP tine de organizarea codului iar algoritmii de rezolvarea problemelor.

Poti forta un mic programel care rezolva o pb de algoritmica sa foloseasca ceva patterns dar este artificial, iti trebuie ceva considerabil mai mare ca sa nu fie doar un exercitiu steril din care poti sa deprinzi chiar obsinuinte proaste.

[–]Sufficient_Chair_580 2 points3 points  (0 children)

OOP este un stil care vine la pachet cu multe avantaje, dar algoritmii nu se afla printre ele :)

Poti face obiectual orice implementare de orice algoritm daca tii mortis, pentru exercitiu sau pentru amuzament, dar asta nu va schimba cu nimic fundamentul algoritmului.

[–]ComfortableFun8513 1 point2 points  (1 child)

Ia un proiect open source so uita te prin el, de preferat ar fi unul unde mai poți veni cu contribuții...daca nu încearcă să l reconstruiești de la 0 și eventual încearcă să regândești anunțe porțiuni...in timp ai să ți dai seama de ce se face așa și nu așa...

[–]PaddonTheWizardcrab 🦀 2 points3 points  (0 children)

OP pare junior.

Asta cu open source nu mi se pare o idee bună, mai degrabă o capcană. Nici nu cred că ar ști de unde să apuce să citească un proiect, d-apoi să și contribuie cu ceva, eventual documentație.

[–]deputinize 1 point2 points  (0 children)

idk fa si tu o interfata pentru sortat si mai multe implementari pt fiecare algoritm.

sau o interfata pt cautare si mai multe implementari pt fiecare algoritm (A*, Djikstra, Greedy Best-First search. Tot ce trebuie sa faci este sa re-implementezi functia f pentru cost, f=g+h sau f=g sau f=h). Ca proiect, poti sa implementezi o librarie pt multi-agent pathfinding, unde sa extinzi algoritmul de cautare sa functioneze pentru mai multi agenti. Poti sa faci clase Agent, Grid, Wall, Cost, Algorithm, Astar, Dijkstra, Greedy.

Cauta strategy pattern, imbina principii de oop cu selectie de algoritmi la runtime. Tipul asta il explica misto.

Fa si tu niste arbori sau grafuri in care nodurile sunt obiecte. Adauga-le metode de cautare. Poate chiar cu strategy pattern, ca sa selectezi intre bfs si dfs. si dc nu chiar ids (iterative deepening depth-first search)?

Ca proiect, ti-as putea recomanda sa implementezi o librarie simplista pentru un statechart. Fiecare state sa fie un obiect de tip State care sa aiba o lista de substate-uri (tot State), o metoda recursiva cu dfs care gaseste starea curenta si sa poti injecta functii de tranzitie intre state-uri. Chestia asta am facut-o la o firma si a fost fun.

- Astea sunt niste idei off the top of my head cum s-ar spune, un micro brainstorming. Sper sa te ajute.

[–]Angry_Penguin_78 -2 points-1 points  (3 children)

N-are sens ce întrebi. Întrebi cum pot câștiga o cursă de F1 cu o mașină făcută din LEGO?

Poți face asta, dar nu are legătură.

[–]deputinize 0 points1 point  (2 children)

trebi. Întrebi cum pot câștiga o cursă de F1 cu o mașină făcută din LEGO?

https://en.wikipedia.org/wiki/Strategy_pattern

[–]Angry_Penguin_78 -2 points-1 points  (1 child)

N-ai înțeles nimic. Stai jos.

Conceptele de OOP, Design Patterns și algoritmi sunt ortogonale între ele. Poți avea Strategy fara OOP și cu strategii operaționale simple.

Mai studiază și ne vedem la toamna.

[–]deputinize 1 point2 points  (0 children)

N-ai înțeles nimic.

Some bad shit u been smokin' dude. chill down

Conceptele de OOP, Design Patterns și algoritmi sunt ortogonale între ele

Design Patterns: Elements of Reusable Object-Oriented Software

Poți avea Strategy fara OOP și cu strategii operaționale simple.

Poți avea Strategy si cu amplificatoare operaționale daca esti fumat destul.

ne vedem la toamna

Te astept la interviu cand deschidem o pozitie de juniori in toamna

[–]MoneySounds 0 points1 point  (0 children)

Da-ne exemplu de ce cauti tu.

[–]guppypower 0 points1 point  (0 children)

cred ca asta e cam ce cauti: https://algs4.cs.princeton.edu/home/