Jakie waszym zdaniem należy znać wzorce projektowe (taki pułap minimum), aby nie spalić się ze wstydu na rozmowie rekrutacyjnej?
Chodzi o OOP? Takie podstawy jak strategia, dekorator, obserwator, fabryka czy budowniczy warto by znać. To znaczy nie zrozum mnie źle - uważam, że wkuwanie ich na pamięć jest bez sensu, jedyna sensowna opcja to "odkryć je samemu" i zrozumieć po co tak się robi. Poznanie ich nazw też jest oczywiście przydatne, choćby na twoją rozmowę ;)
nie chwal się, że znasz singletona :P
@up A czemu nie? Jeśli jakiś wzorzec jest nadużywany, to tym bardziej należy o tym wiedzieć, żeby nie stosować go błędnie ;)
Head First Design Patterns to dobry początek. Do tego jeśli używasz jakiegoś frameworka to używane w nim, np MVP, MVVM, MVC
Inną sprawą jest moje zdanie, a inną oczekiwania pracodawców.
Moje zdanie to te wzorce, co powyżej podano. Albo kazałabym opowiedzieć, albo dla zadanej sytuacji kazałabym napisać kawałek kodu i niech delikwent użyje tego, co uważa za stosowne - jak w życiu.
W praktyce zwykle wystarcza singleton i ewentualnie jakiś jeszcze popularny np. dekorator. W większości rekrutacji, w jakich brałam udział, albo nie pytano o wzorce wcale (choć w ofercie były wymagane), albo kazano napisać singletona. Bodajże w jednym przypadku trzeba było opisać słownie jakiś wzorzec ze wskazaniem, żeby to nie był singleton, w jednym kazano narysować UML dla obserwatora, raz miałam dla proxy chyba narysować UML.
Czy "Head First Design Patterns" to na pewno dobra książka? Jest to pozycja z 2004 roku.. Jestem początkującym programistą Pythona, jeżeli to może pomóc.
Design Patterns: Elements of Reusable Object-Oriented Software jest z 1994, a nadal jest dobra :). Wzorce jak wino, im starsze tym lepsze ;) (oczywiście z przymrużeniem oka)
Mnie zawsze pytali o implementacje singletona.
Z ważnych wzorców to MVC, fabryka abstrakcji, Kompozyt, Dekorator.
Najlepiej obczaj to http://www.algorytm.org/wzorce-projektowe/
Czy "Head First Design Patterns" to na pewno dobra książka? Jest to pozycja z 2004 roku.. Jestem początkującym programistą Pythona, jeżeli to może pomóc.
IMO dla Pythonisty nie, tam po prostu wiele rzeczy się robi inaczej niż w Javie (w której przykłądy są w książce), C# czy C++.