Jestem początkującym inżynierem oprogramowania (obecnie student drugiego roku, kierunek CS) i naprawdę trudno mi zrozumieć programy innych ludzi. Chcę wiedzieć, czy ta umiejętność (lub jej brak) może być dla mnie przeszkodą, a jeśli tak, to jak ją rozwinąć?
reading-code
James Bond
źródło
źródło
Odpowiedzi:
To jest istotne.
Sposób, w jaki go rozwijasz, polega na pisaniu własnego kodu (dużo) i tak, walcząc o czytanie kodu innych osób.
Problem polega oczywiście na tym, że nie wszyscy myślą w ten sposób. Dawno temu byłem na zajęciach z języka Java na pierwszym roku i przydzielono nam zadanie. W przeciwieństwie do tego, w co wierzyłem (że odpowiedzi będą zbieżne w przypadku trzech lub czterech wspólnych rozwiązań), wszyscy w klasie mieli unikalne rozwiązanie tego zadania.
Wynika z tego, że powinieneś czytać dobry kod.
Jest to jeden z powodów, dla których wzorce projektowe stały się tak popularne i dlatego powinieneś je przestudiować. Wzorce projektowe stanowią wspólne słownictwo dla programistów do komunikowania się i dostrojenia umysłu do „lepszych” sposobów rozwiązywania problemów obliczeniowych.
Powinieneś także przestudiować algorytmy i struktury danych.
Konsekwencją: Zawsze powinieneś starać się pisać kod, który inni programiści mogą łatwo zrozumieć.
źródło
To bardzo ważne.
Po ukończeniu studiów i wydostaniu się na świat większość projektów, nad którymi będziesz pracować, będzie już miała kod opracowany przez innych. Lucky jest programistą, który spędza cały swój czas na projektach typu greenfield!
Jest to umiejętność, którą nabywa się poprzez praktykę i cierpliwości, a w wielu przypadkach jest to umiejętność, którą wielu ludzi tak naprawdę nie dostać dużo okazji do pracy nad aż po skończeniu studiów i uzyskać pierwszą pracę. Zrelaksować się!
(chociaż jeśli twoja szkoła ma program współpracy, dałbyś ci doświadczenie przed ukończeniem szkoły w pracy nad dużymi projektami, które są w większości napisane przez innych ludzi ORAZ dostaniesz kredyty akademickie! Coś do zbadania, jeśli jest dostępne)
źródło
To ważna umiejętność , w zależności od specyfiki miejsca pracy, może być nawet ważniejsza niż pisanie kodu.
Podobnie jak inne umiejętności, praktyka czyni mistrza! Spróbuj odczytać kod innego programisty, debugować go, a to, co pomaga mi osobiście, polega na refaktoryzacji lub ulepszeniu małych fragmentów kodu i rozwinięciu stamtąd.
źródło
Istnieją różne umiejętności zarówno w czytaniu, jak i pisaniu kodu.
Co do czytania a pisania. Tak, czytanie jest niezbędne.
Kilka maksym, które pomagają wielu z nas, to:
DOBRZE. To wszystko świetnie. Teraz do tego, czego prawdopodobnie doświadczasz.
omg, ta cholernie ogromna baza kodu z dziesiątkami tysięcy linii kodu źródłowego i klasami, które mają setki linii długości z szalonymi zależnościami i za każdym razem, gdy próbuję podążać za czymś, muszę utrzymać 10 poziomów w głowie itp.
Brzmi znajomo ? Tak. Głęboki oddech. Zrelaksować się. To normalne. Z tego wykonane są systemy produkcyjne. Ludzie przeżywają (i kwitną) w tych pozornie niezrozumiałych sytuacjach, ponieważ:
źródło
Większość tych odpowiedzi skupia się na znaczeniu czytania kodu dla samodoskonalenia. Z całego serca się z tym zgadzam i popieram.
Jest jeszcze jeden aspekt, na który należy uważać - nawet jeśli byłeś cudownym, który nie mógł skorzystać z czytania innych podejść (niemożliwe, ale ze względu na argumenty ...), nadal musisz wiedzieć, jak czytać kod z powodu koncepcja, która w zasadzie nie istnieje w środowisku uniwersyteckim: zdecydowana większość projektów branżowych to projekty typu brown field (tj. albo w ramach istniejącej bazy kodów, albo integrujące się z nią).
Konieczność odczytu kodu tylko po to, aby zrozumieć istniejącą bazę kodu i procesy, jest realna. Zawsze można zadać innym programistom pytania dotyczące kodu, ale może to zająć tylko tyle czasu. Ludzie odchodzą, zmieniają projekty lub czas po prostu mija. Szczegóły niskiego poziomu znikają z pamięci, a programiści stosują łatki. W pewnym momencie nie ma jednego źródła prawdy oprócz samego kodu.
Dobra higiena kodu, przewodniki po stylach, recenzje kodu i dokumentacja pomagają, ale w pewnym momencie kod jest źródłem prawdy o tym, co się dzieje, a jedynym sposobem na znalezienie odpowiedzi będzie znalezienie go samemu. Oprócz zastosowań w samorozwoju umiejętność czytania kodu jest wyraźnie odrębną umiejętnością od pisania.
źródło
Zrozumienie kodu innej osoby jest czymś, czego nie można uciec, ponieważ najprawdopodobniej będziesz pracować w zespole, nawet jeśli nie w zespole, będziesz wyszukiwać w Google różne rzeczy i będziesz musiał zrozumieć przykładowy kod. Więc tak, to konieczność.
Wydaje mi się, że każdy odczuwa, że na początku uczucie to może być mniejsze niż inne, lepiej rozumiesz swój kod niż kod innych, ponieważ spędzasz znacznie więcej czasu z własnym kodem niż z kodem innej osoby, ponieważ nie tylko czytasz, ale piszesz i tworzysz strukturę to w twoim umyśle. Jeśli zaczniesz spędzać więcej czasu z kodem innej osoby i najpierw spróbujesz zobaczyć, jakiej struktury / przepływu używasz, z pewnością sprawi to, że lepiej zrozumiesz kod.
Aby mój punkt był jeszcze bardziej przekonujący, jeśli masz jakiś kod, który napisałeś rok temu, spróbuj go zrozumieć ponownie, a ja z całą pewnością będę wiedział, że poświęcisz więcej czasu, ale mniej niż kod innego, ponieważ masz pojęcie o tym, jak ustrukturyzujesz swój kod.
Mam nadzieję, że ta pomoc, nie zawiedź się, to zupełnie normalne. Poświęć więcej czasu na kod, a w końcu go zdobędziesz.
źródło
Właśnie dostałem projekt z około 100 000 wierszy kodu napisanego przez zespół z innego kraju i muszę wprowadzić kilka bardzo znaczących zmian w kopii ich kodu w ciągu najbliższych miesięcy, pozostawiając tyle samo kodu wspólne jak to możliwe.
Powiedz mi, jak mogę szybko wykonywać swoją pracę bez umiejętności czytania kodu innych osób. Jeśli nie umiesz czytać kodu innej osoby, utkniesz całkowicie.
źródło