Czy uczenie się na innych/gotowych projektach jest bardzo złe?

0

cześć!

Potrzebowałem zrobić testy integracyjne i była mi do tego potrzebna wiedza z zakresu RestTemplate. 'Przypadkiem' znalazłem projekt na którym się tego dosyć dobrze nauczyłem i w zasadzie jestem w stanie teraz wykorzystać tą wiedze bez większych problemów (przy okazji w moim projekcie).
Zastanawiam się czy takie podejście jest złe? No bo w zasadzie moja klasa testowa wygląda prawie 1 do 1 jak z projektu innej osoby. Może powinienem jednak ujsrać się po pachy i sam do tego dojść jak coś takiego pięknie zrobić ( może takie podejście satysfakcjonującego męczennictwa da mi więcej w dłuższej perspektywie, a może wbije sobie do głowy pierw same antywzorce i będę musiał się i tak czegoś poprawnie później nauczyć po weryfikacji; może jak coś raz na jakiś czas 'podkradnę' sobie do głowy jest OK).
Nawet sobie tak teraz myślę, że takie podejście mogę wykorzystać gdy na prawdę stanę w jakimś momencie i czegoś nie potrafię zrobić nie tylko jeżeli chodzi o RestTemplate - w szczególności gdy robię jakieś zadanie (nie koniecznie komercyjne) sam, a później na jakimś gotowym projekcie sprawdzam czy to co ulepiłem własnymi siłami jest ze złota czy z gówna?

Co o tym sądzicie?

3

Ja zawsze wychodziłem z założenia, że większość rzeczy, które robimy ktoś już przed nami wymyślił i zrobił. Jeśli korzystamy z wiedzy innych, to raczej jest to cenna umiejętność, a nie wada. Jesli udało Ci się zrozumieć, dlaczego ten przypadek został rozwiązany w taki sposób i dlaczego ma to sens to nie widzę przyczyny, żeby się biczować, że nie "odkryłeś" po raz tysiącstopięćdziesiąty koła na nowo. Wg. mnie odkrywanie koła na nowo w programowaniu jest największą bolączką branży.

3

jeśli znaleziony gotowiec potrafisz autonomicznie ocenić w kat dobrze / źle, potrafisz dostrzec róznice kontekstu gotowca / swojego przypadku to OK.
Potwierdzeniem by było, że umiesz nad tym rozwiązać pojawiające się problemy.

Przeciwnym przypadkiem jest
"Mam takie KODY ale nie działają, koledzy pomóżcie"

3

Potrzebowałem zrobić testy integracyjne i była mi do tego potrzebna wiedza z zakresu RestTemplate

Wiedza z RestTemplate ma się nijak to tego jak robisz testy integracyjne...Co Ty chcesz testować? Adnotacje w Springu? :D

wracając do tematu, uczenie się na gotowych projektach to norma w pracy ;]

4
Sasori napisał(a):

Przypadkiem' znalazłem projekt na którym się tego dosyć dobrze nauczyłem (…) może wbije sobie do głowy pierw same antywzorce i będę musiał się i tak czegoś poprawnie później nauczyć po weryfikacji;

Na cudzych projektach tez można się nauczyć antywzorców…

a później na jakimś gotowym projekcie sprawdzam czy to co ulepiłem własnymi siłami jest ze złota czy z gówna?

żeby sprawdzić, czy dany kod jest dobry, czy zły, potrzeba czasu (miesięcy, lat)

Możesz sam do tego dochodzić, ale również żeby przyspieszyć naukę, możesz wyciągać wnioski z pomyłek innych ludzi.

Jeśli wchodzisz w projekt komercyjny, który jest już pisany np. rok, to masz w zasadzie darmowy rok doświadczenia, jeśli będziesz w stanie prześledzić rozwój/kod projektu i zrozumieć pomyłki, które popełnili twoi poprzednicy.

W projektach open source na GH masz dział issues, który tez jest pouczający, bo często masz tam opisy długu technicznego, że coś tam próbowali jakiegoś podejścia, ale okazało się to być antywzorce po czasie…

(Pomyłki/antywzorce objawiają się tym, ze dany kod trudno się utrzymuje, proste zmiany wymagają dużo roboty, ciężko zrozumieć, co dany kod robi, pojawiają się trudne do zlokalizowania i być moze niemożliwe do naprawienia bugi itp. Tak można rozpoznać zły kod i takiego kodu powinieneś szukać, jeśli już trochę czasu programujesz (bo na samym początku to lepiej szukać dobrych przykładów. Jak ktoś dopiero zaczyna to lepiej skorzysta na czystym kodzie i super przykładach. Ale jak chcesz iść dalej, to szukaj i ucz się dostrzegać dysfunkcje))

2
LukeJL napisał(a):

Możesz sam do tego dochodzić, ale również żeby przyspieszyć naukę, możesz wyciągać wnioski z pomyłek innych ludzi.

Ludzi się uczą na własnych błędach, zaś mądrzy ludzi uczą się na cudzych ... :D

2

Myślę, że najlepiej jest to połączyć. Ktoś, kto się będzie uczyć tylko na błędach innych ludzi to może co najwyżej doradzać innym, ale będzie słabym programistą, bo zabraknie mu praktyki.

1

Nie ma chyba jednego sposobu na naukę, który jest właściwy.

Ja często czytam example jakieś, ewentualnie tutorial, potem sama dokumentacja wystarczy.

Czytanie blogów jest w miarę przyjemne, stackoverflow lub można chatGPT o coś zapytać też ciekawe odpowiedzi.

Jak się rozwiąże jakiś problem to mamy mentalny obraz tego jak to działa potem możemy analizować czyjeś rozwiązanie i porównać z własnym.

Zdarzyło mi się uczyć jakiegoś softu jak działa, a że nie było dokumentacji i kod trochę jednoliterowe zmienne, to edycja build skryptów, żeby z symbolami debuggera kompilowało.
A potem analizowałem różne przejścia grafów jakiś prostych przypadków i dość szybko szło się zorientować jak działa, gdzie są kluczowe elementy.

Wiadomo najlepiej zacząć od najłatwiejszego sposobu czyli jakiś tutorial wprowadzający/example.
Tak jak się rozkłada problem na mniejsze elementy, tak można też rozłożyć sposób nauczenia czegoś na mniejsze elementy.

Ja w nowych technologiach zaczynam od klasycznego hello world, żeby się upewnić, że wszystko się kompiluje cacy za nim pójdę dalej.
Najgorsze co może być jak zostaniemy zalani bardzo dużą ilością błędów, wtedy trudniej sobie z problemami poradzić, dlatego najlepiej już na początku wszystko dobrze sobie przygotować.

1 użytkowników online, w tym zalogowanych: 0, gości: 1