Witam wszystkich bardzo serdecznie jako nowy członek forum php.pl. Przyznam się iż jest mi odrobinę niezręcznie, gdyż w swoim pierwszym poście proszę od razu o pomoc, jednak mam nadzieję iż okażą mi Państwo wyrozumiałość, oraz pomocną dłoń.
Jestem studentem 3 roku informatyki i siłą rzeczy bardzo lubię programować. Swój pierwszy program napisałem w pascalu uczęszczając jeszcze do gimnazjum. Nie był on co prawda skomplikowany, a za zadanie miał emulować zapewne znane wszystkim dosowe narzędzie jakim jest 'format'. Program działał prawidłowo, nie licząc faktu, że nie świeciła się dioda oraz dysk tak na prawdę nie był formatowany. Jako nieświadomy gimnazjalista poznawałem podstawowe elementy języka programowania jakim są między innymi pentle. Zanim zacząłem studiować poznałem tak pascala, c, c++, htmla, clippera, basica (kolejność przypadkowa).
Myślałem, że na studiach nauczę się czegoś nowego, niestety na pierwszym roku (pascal i c) nie dowiedziałem się niczego nowego. W tym czasie zacząłem jednak swoją przygodę z php - językiem który szybko przypadł mi do gustu i którego podstawy szybko przyswoiłem. Po kilku miesiącach programowania drobnych aplikacji posługując się paradygmatem imperatywnym postanowiłem poznać możliwości programowania objektowego. Zawsze uważałem iż duże projekty najlepiej jest projektować i pisać używając właśnie OOP. Tutaj spotkała mnie mała niespodzianka. Mianowicie obiekty w php są bardzo ubogie w porównaniu do innych języków. Mimo to przyzwyczaiłem się do tego i prawde mówiąc dziś nie wyobrażałbym sobie programowania w innym języku niż php (co nie znaczy, iż nie mógł bym).
W każdym bądź razie z dnia na dzień poznając ów język programowania zdecydowałem się na większy projekt. Nie oczekiwałem od nikogo pomocy, wierzyłem we własne możliwości, ufałem iż to pozwoli mi nabrać wprawy w programowaniu. Chciałbym także w tym miejscu dodać że z rególy sam dochodziłem do tego gdzie popełniłem błąd, dogłębnie analizując problem bądź to nawet metodą prób i błędów. Czasami tylko decydowałem się na skorzystanie ze sprawdzonych metod. Mam tutaj na myśli różnego rodzaju wzorce projektowe, czy algorytmy. Zdarzało się też czasami tak, że korzystałem z jakeigos wzorca projektowego zupełnie nie zdając sobie z tego sprawy. Przy okazji poznawania php dowiedziałem się np co to hermetyzacja - mimo iż używałem jej przed tem, nie zdawałem sobie z tego sprawy i nie wiedziałem do końca nawet, że ma to swoją nazwe.
Z czasem jednak, gdy mój projekt zaczynał przybierać coraz więcej linii kodu, a z toczącej się kóli zmieniał po mału w prawdziwą aplikację zaczynałem zauważać w nim niedogodności. Zdałem sobie sprawę z tego, iż napisana przeze mnie klasa spełnia co prawda założenia, jednak nie jest w pełni optymalna. Zacząłem po mału optymalizować i usprawniać kod - poprawiałem błędy, optymalizowałem kod, dodawałem nowe funkcjonalności i usprawnienia, które miały pomóc w przyszłej implementacji. Doszedłem jednak do takiego momentu, że gdy patrze na własny kod to jedyne co przychodzi mi na myśl to 'matko co za niewypał' czy 'to nie ma prawa działać'. Zupełnie jakbym spojrzał w lustro i powiedział 'co to za brzydal?'. Zacząłem zdawać sobie sprawę z tego, że jestem idealistą, że chciałbym aby kod który napisze był idealny - ale tak sie nie da. Czasami też miewam sytuacje gdy coś sobie zaplanuje, rozrysuje - i wygląda to dobrze, ale gdy przystępuje do pisania wydaje mi się to proste, wręcz banalne, nie skomplikowane, brzydkie - zupełnie jak jakaś średniowieczna technologia. W pewnym momencie zacząłem się zastanawiać, czy to jest jakis problem psychologiczny, czy może tak na prawdę nie potrafię programować?
Nie chciałbym z tego rezygnować - bardzo to lubię i zawsze gdy tylko mam czas albo gdy mi się nudzi sięgam do programowania. Na studiach też nie było z tym nigdy większego problemu - pisałem małe programiki na laboratoriach i większe projekty na zaliczenie. Nie chwaląc się nigdy nie dostałem oceny niższej niż 4,5 - bez względu na to czy było to laboratorium czy wykład, a kolokwia kończyłem jako jeden z pierwszych - jeżeli nie pierwszy - gdyż jako chory idealista zawsze sprawdzałem czy program działa poprawnie, mówiąc potocznie nie wysypuje się, czy robi to co miał robić i czy nie dałoby się tego zrobić prościej.Przyznam szczerze iż nie wiem co mam o tym sądzić i jak sobie z tym poradzić. Moim wielkim marzeniem jest stworzyć jakąś apliakcję którą ludzie uznaliby za lepszą od pozostałych, za użyteczną, szybką i dobrą którą z checią by używali, co może dodałobymi dodatkowych sił i motywację do dalszego pisania, usprawniania i dodawania nowych możliwości.
Z tego miejsca chciałbym Państwa bardzo gorąco prosić o wszelkie komentarze i opinie, a przede wszystkim o pomoc. Mam nadzieję że nie zanudziłem Państwa swoją opowieścią i że przeczytają ją Państwo cała, po czym doradzą coś strudzonemu studentowi, programiście samoukowi. Bardzo dziękuję za poświęcony mi czas oraz uwagę. Dziękuję!