Nauka przez czytanie cudzego kodu

0

Przeglądając to tematyczne blogi i to forum natknąłem się na porady dla koderów, którzy coś tam już niby wiedzą, ale poza prostymi programikami nie mają nic na swoim koncie. Na tym etapie nauki podobno dużo daje analizowanie cudzego kodu. Stąd moje pytanie, skąd brać taki kod do analizowania?
Z jednej strony, żeby program nie był zbyt skomplikowany, z drugiej, żeby nie narobić sobie złych nawyków podpatrując zły styl programowania.

Macie jakieś swoje źródła/programy, których przeanalizowanie dużo Was nauczyło?
Dodam, że kodzę w C++

0

Analizowanie cudzego kodu jest najgorszą możliwą metodą nauki moim zdaniem. Trzeba pisać! Jeśli chodzi o wyrabianie stylu to "Clean Code" + code review ;]

1
Shalom napisał(a):

Analizowanie cudzego kodu jest najgorszą możliwą metodą nauki moim zdaniem.

Ale dlaczego?
Czytając cudzy kod można poznać inne podejście do rozwiązywania problemów, co pozwala otworzyć oczy. Czasem pozwala w ogóle ruszyć z miejsca, a dla początkującego, który często zacina się na prostych problemach (patrz dział Newbie) jest to bardzo ważne.

Problem w tym, że źródeł dobrego kodu jest niewiele. Blogi często prowadzą ludzie, którzy próbują się chwalić swoją wiedzą, mimo że sami są bardzo początkujący. Na Code Project jest kupa syfu, projekty open source to zazwyczaj ogromna kupa syfu. Jedyne sensowne miejsce to chyba blogi doświadczonych programistów, ale tam raczej spotka się wstawki kodu niż całe projekty. Tylko jak początkujący ma odróżnić blog profesjonalisty od bloga nieprofesjonalisty?

Oczywiście czytanie nie powinno być jedyną, ani nawet główną metodą nauki. Pisanie swojego kodu jest ważniejsze.

0

Ale dlaczego?

Bo potem rosną tacy pseudo-programiści którym się wydaje że sporo umieją, bo potrafią pozmieniać coś w istniejącym kodzie, a jak im przyjdzie foobara napisać to nagle się okazuje że coś nie bangla ;)

1
somekind napisał(a):
Shalom napisał(a):

Analizowanie cudzego kodu jest najgorszą możliwą metodą nauki moim zdaniem.

Ale dlaczego?
Czytając cudzy kod można poznać inne podejście do rozwiązywania problemów, co pozwala otworzyć oczy. Czasem pozwala w ogóle ruszyć z miejsca, a dla początkującego, który często zacina się na prostych problemach (patrz dział Newbie) jest to bardzo ważne.

Początkujący ma niestety tendencję do skopiowania żywcem czyjegoś kodu, często wmawiając sobie, że coś z tego rozumie. Nawet jak mu to może i trochę coś rozjaśni, to niestety nie doszedł do tego sam i w ten sposób niekoniecznie wie co i jak z czego wynika. Do analizy/nauki/użycia cudzego kodu trzeba już mieć jakąś wiedzę...

0

Analiza cudzego kodu nigdy nie zaszkodzi, pod warunkiem, że się nie zawierza na ślepo w to co tam jest. Swoją głowę też trzeba mieć i próbować rozróżnić, czy jest to dobrze napisane, czy można lepiej. Wydaje mi się, że dobrym podejściem jest próbowanie rozwiązania samodzielnie jakiegoś problemu, bez kopiuj - wklej. Później można się pochwalić na forum co się zrobiło i spytać jak można zrobić to lepiej ;) Ogólnie rzecz biorąc analiza cudzego kodu owszem pomoże poznać jakieś standardy itp (pod warunkiem, że jest to dobry kod), ale najlepiej uczyć się pisząc samemu. W tedy poznajesz działanie określonych funkcji, mechanizmów itp. Przeglądając nie nauczysz się tego, a o tym co się przeczytało za kilka dni nie będziesz pamiętać.

3

Analiza cudzego kodu się przydaje, kiedy nie ogarniasz jak coś zrobić, nie wychodzi Ci, a "u niego działa". Wtedy jak masz możliwość to zaglądasz do tego "jego" kodu i podglądasz. Ahaa, a więc to tak się podchodzi do takiego problemu - i klepiesz dalej.
Analuza całych programów raczej nie ma sensu, szczególnie, jeżeli tego kodu nie rozumiesz - równie dobrze możesz sobie czytać wiersze po chińsku.

Analiza całych programów ma sens, kiedy już wymiatasz i zastanawiasz się jak do problemu podeszli inni, dlaczego ich algorytmy są o 1/3 szybsze.

no a to co wspomniał @madmike: co do kopiowania żywcem kodu - ma to taki sam sens jak odpisane czegoś z przyrody przed lekcją od kolegi - potem i tak pani zapyta i się nie wie w ogóle o co chodzi - ale bardzo kusi, bo masz gotowe rozwiązanie, a ty przecież możesz poświęcić czas na coś ważniejszego/trudniejszego - ale to ślepa uliczka

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