Jestem początkującym w Pythonie i do tej pory bardzo mi się podoba. Jednym z pytań, które przychodzi mi do głowy bardzo często, jest to, czy muszę zrozumieć, a zatem nauczyć się języka wewnętrznego języka programowania (jak w moim przypadku Python). Jak zapewne wiesz, sam Python jest napisany w C.
Więc moje pytanie brzmi: jak głęboko trzeba nurkować w języku programowania, aby być biegłym lub biegłym w tym języku. Porównuję to pytanie do języków „naturalnych”. Nie znam wszystkich szczegółów gramatyki w moim języku ojczystym, ale jestem w stanie wyrazić się bez problemów w tym języku. To wtedy mówię, że mówię biegle w języku. Czy dotyczy to także języków programowania?
programming-languages
python
knowledge
Flo Schönfeld
źródło
źródło
Odpowiedzi:
Nie musisz nic wiedzieć o wewnętrznych elementach języka programowania, aby pisać programy w tym języku. Jednak im lepiej rozumiesz język, tym lepsze będą twoje programy.
Znajomość struktur danych i algorytmów pomoże ci wybrać struktury danych najbardziej odpowiednie dla danego zadania. Niektóre języki posiadają te struktury danych wewnętrznie.
Zrozumienie „kultury” języka pomaga pisać programy zgodne z „najlepszymi praktykami”, dzięki czemu są łatwiejsze do zrozumienia, łatwiejsze w utrzymaniu i mają lepszą wydajność.
Napisanie kompilatora dla tego języka (lub kompilatora dla innego języka w tym języku) może dać ci głębokie zrozumienie języka i ulepszyć twoje programy, które nie są jedynie przeciętne.
Biegła znajomość innych języków (zwłaszcza tych z innym paradygmatem) sprawia, że jesteś lepszym programistą w swoim podstawowym języku, ponieważ możesz wykorzystać te umiejętności i narzędzia w swoim podstawowym języku.
W rezultacie nie musisz nic wiedzieć o komputerze, aby pisać na nim programy. Ale wiedza o tym, jak działa komputer, ułatwia pisanie programów.
źródło
Po prostu tak. Tak długo, jak dobrze potrafisz wyrażać siebie (i rozumieć innych), jesteś uważany za biegłą w języku.
To powiedziawszy, po prostu płynność nie wystarcza do niektórych zadań. Pewni autorzy, prace wymagające wzorowych umiejętności wystąpień publicznych i niektórzy naukowcy, którzy koncentrują się na języku, powinni go znać „lepiej niż płynnie”. Podobnie niektóre specjalizacje programistów wymagają znajomości wewnętrznych elementów językowych, ale dla większości osób znających język programowania odpowiednik pytania o numer telefonu lub zamówienia cheeseburgera jest wystarczający.
źródło
Zdefiniowałbym „biegły” z językiem jako:
Zauważ, że działa ten język nie na tej liście, ale istnieje wiele „umiejętności uczenia się”. Posiadanie co najmniej pobieżnego zrozumienia elementów wewnętrznych może być pomocne, ale nie jest konieczne, aby być biegłym. Jednak wiedza na ich temat, że będziesz w stanie zrozumieć wszelkie odniesienia w czytanej dokumentacji, jest bardzo dobrym pomysłem.
Na przykład: Wiem, że zarówno VB.NET, jak i C # są kompilowane do IL .NET (Intermediate Language) .NET, który jest następnie kompilowany dla docelowego frameworka. Nie wiem dużo o IL, ale wiem wystarczająco dużo, aby ją rozpoznać, kiedy ją widzę i ogólnie rozumiem, w jaki sposób radzi sobie z niektórymi rzeczami. Uważam się za biegłego w języku C #, ale nie w VB.NET, mimo że „elementy wewnętrzne” są takie same, a moje rozumienie ich nie jest głębokie.
źródło