Myślę, że to bardzo pozytywny znak twoich umiejętności. O wiele bardziej powszechne jest, że ludzie, którzy mają trudności z wymyśleniem „lepszego” projektu w zespole, zupełnie nie są w stanie rozpoznać, dlaczego inny projekt jest lepszy.
Masz dwie naprawdę wielkie (i zaskakująco rzadkie) mocne strony:
- Jesteś w stanie obiektywnie ocenić swoje projekty na tle innych
- Masz pragnienie i wysiłek, aby Twoje projekty były optymalne
Masz dopiero kilka lat i masz przed sobą długą drogę, ale dzięki temu podejściu na pewno się tam dostaniesz, po prostu nie poddawaj się; wszyscy mamy do czynienia z takimi mentalnymi niepowodzeniami. Tak często, jak mam szansę, lubię podłączać Zasady Projektowania (NIE takie same jak wzorce projektowe) i myślę, że jest to doskonały przykład tego, gdzie się przydają. Przestudiuj je i przećwicz ich stosowanie w swoich projektach, zanim się zorientujesz, zrobił kolejny krok w tym zakresie.
Na koniec pamiętaj, że projektowanie jest trudne. Codziennie mamy do czynienia ze złożonymi abstrakcjami na wysokim poziomie, aby tworzyć je z cienkiego powietrza, aby działały dobrze, a łatwość w użyciu dla kolegów jest niezwykle trudnym zadaniem. To wymaga praktyki, na lata .
Więc odpręż się i pamiętaj: istnieje grupa ludzi, którzy nie potrafią ocenić dwóch projektów i faktycznie uznają jeden za lepszy od drugiego, jak myślisz, jak dobrze sobie radzą w tworzeniu dobrych projektów?
Edycja:
„inna wskazówka, po zapoznaniu się z zasadami i poćwiczeniu ich zastosowania, myślę, że jest inny klejnot z innego pytania, który mówi o wartości studiowania różnych języków, które mają różne cele i zasady:
Idealnie każdy programista powinien znać język z każdej klasy. Czego możesz się nauczyć:
- Język głównego nurtu OOP o typie statycznym: Java, C # (używany głównie w oprogramowaniu dla przedsiębiorstw) i C ++ (programowanie systemu i złożone aplikacje komputerowe)
- Protokółowy język OOP: JavaScript (programowanie po stronie klienta)
- Język proceduralny: C (oprogramowanie wbudowane i programowanie systemu)
- Język funkcjonalny: Haskell, ML lub Lisp (języki funkcjonalne są dobre dla wysoce zrównoleglonego oprogramowania).
Logiczny język programowania (Prolog) prawdopodobnie nie jest tak przydatny w przemyśle, ponieważ jest wykorzystywany głównie w badaniach nad AI.
Pomoże to poszerzyć różnorodność pomysłów, które przychodzą na myśl podczas próby zaprojektowania rozwiązania.