Czy dobrze napisana dokumentacja jest wystarczającym powodem do nauki języka programowania? [Zamknięte]

14

Obecnie uczę się języka Python, który nie był częścią mojego programu studiów. W wywiadzie zapytano mnie, dlaczego wybrałem Python, i odpowiedziałem, że łatwo się go nauczyć, a dokumentacja jest bardzo dobrze napisana. Ankieter nie odpowiedział, czy to wystarczający powód. Wyglądał na przekonanego, ale nie jestem pewien.

Czy dobrze napisana dokumentacja i łatwość nauki są wystarczającym powodem wyboru języka skryptowego? A może powinienem bardziej szczegółowo omawiać dostępność bibliotek Python i większą bazę użytkowników Pythona?

Tylko uwaga. Python nie był wymagany do tego zadania. Firma pracowała nad Ruby-on-rail. Python był w moim życiorysie i myślę, że ankieter chciał po prostu wiedzieć, jakie rozważania podjąłem jako świeższy przy wyborze języka programowania.

Aseem Bansal
źródło
12
być może nie w wywiadzie, ale zapytałbym, czy potrzebujesz powodu, aby dowiedzieć się czegoś innego niż chcesz.
jk.
2
@ jk Znam tylko C do tej pory. Nie jestem wielkim ekspertem, ale znam składnię, potrafię implementować struktury danych i tym podobne. Potrzebowałem języka, w którym mogę szybciej wdrażać pomysły. Właśnie dlatego wybrałem język skryptowy. Dokumentacja, łatwość użycia i baza użytkowników były głównymi zaletami, gdy porównałem je do Perla i Tcl. Nie wszystkie trzy dotyczyły obu języków, ale o ile mogłem znaleźć używanie google Python było lepsze niż te w jednym z nich. Więc wybrałem Python. Uczenie się, bo chcę, to wystarczający powód, ale nie interesował mnie Python. Pomysły były najważniejsze.
Aseem Bansal,
1
[Robienie czegoś, ponieważ jest łatwe] nie jest tak imponujące jak [robienie czegoś, ponieważ jest trudne]. Chyba że jest to trudne i po prostu się popisujesz. ;)
TimG
5
Ponieważ jesteś nowy w Pythonie, sugeruję, abyś przestał się do niego odwoływać i traktował go jako „język skryptowy”. Jest to język . Ludzie piszą za jej pomocą strony internetowe, aplikacje komputerowe, małe skrypty, ogromne biblioteki, wbudowane kontrolery itp. Nazywanie go „językiem skryptowym” wydaje mi się nieodpowiednie.
Chelonian
@Chelonian Point odnotował. Dzięki za zwrócenie na to uwagi.
Aseem Bansal,

Odpowiedzi:

20

Nie, dobrze napisana dokumentacja nie jest wystarczającym powodem do nauki języka.

Źle napisana dokumentacja jest dobrym powodem, aby się jej nie uczyć.


Istnieją cztery powody, aby nauczyć się języka:

  1. Ponieważ może być przydatnym narzędziem w twojej karierze

    Język to narzędzie. Jeden używa języka zamiast drugiego ze względu na jego zalety w danym kontekście. Fakt, że język ma wysokiej jakości dokumentację, nie czyni go lepszym narzędziem, a jedynie marginalnie¹.

    Wybór języka byłby raczej oparty na wcześniejszym doświadczeniu, paradygmatach (przykład: programowanie funkcjonalne dla Haskell), podejściach (przykład: tryb w pełni asynchroniczny dla JavaScript jako języka programowania po stronie serwera z Node.js), interoperacyjności ( przykład: zgodność z prawie każdym systemem operacyjnym Java) itp.

    Możliwość korzystania z narzędzia w życiu codziennym jest jednym z powodów, dla których warto nauczyć się języka.

  2. Ponieważ poszerza twoją kulturę i wiedzę

    Innym powodem do nauki języka jest nauka nowych pojęć, paradygmatów i sposobów pisania eleganckiego kodu (przykład: Haskell). Również w tym przypadku dokumentacja pomaga, ale nie jest jedynym powodem do nauki języka.

  3. Ponieważ nauka wymaga minimalnego wysiłku

    Innym powodem do nauki języka jest to, że nauka jest prosta (przykład: PHP). Znowu dokumentacja ma duży wkład, ale sam język jest jeszcze ważniejszy. Ponadto unikałbym mówienia podczas wywiadu, że nauczyłem się języka tylko dlatego, że łatwo się go nauczyć.

  4. Bo to zabawne.

    Ostatnim powodem do nauki języka jest to, że nauka dobrze zaprojektowanego języka (przykłady: Haskell, Ruby) lub języka dla maniaków jest ekscytująca (przykład: Brainfuck).

W przypadku Pythona możesz odpowiedzieć na to:

  1. To jest dynamiczny język. Dynamiczne języki ułatwiają tworzenie prototypów i szybszy rozwój, gdy okoliczności sprawiają, że typy silne nie są ważne.

  2. Jest elegancki. Może nie tak elegancki jak, powiedzmy, Haskell, ale mimo to porównanie z głównymi językami internetowymi, takimi jak PHP, jest łatwe do zrobienia.

  3. Wykorzystanie znaczących wcięć jest interesujące, biorąc pod uwagę, że wiele języków głównego nurtu czyni wcięcia tylko ciężarem, który powinien być zarządzany przez IDE. Nawiasem mówiąc, kompilator i interpreter Haskell również polegają na wcięciach.

  4. Python ma elegancki sposób pracy z listami. Zrozumienia list i wyrażenia generatorów są interesującymi koncepcjami dla kogoś, kto nigdy wcześniej nie używał programowania funkcjonalnego.

  5. Django sprawia, że ​​bardzo łatwo jest szybko tworzyć aplikacje internetowe, utrzymując kod w czystości. Jest to ogromna zaleta w stosunku do wielu innych języków programowania.

  6. Jest wystarczająco szybki i wystarczająco wydajny, aby obsługiwać aplikacje internetowe na dużą skalę. Na przykład Dropbox jest napisany w języku Python. YouTube w dużej mierze opiera się na Pythonie. Reddit, jeśli dobrze pamiętam, polega również na Pythonie.


¹ Dobrze napisana dokumentacja nadal pomaga robić rzeczy we właściwy sposób i szybko.

Arseni Mourzenko
źródło
Po prostu wiem C. Nauczyłem się Pythona, ponieważ chciałem szybciej wdrażać pomysły. To wyklucza pierwszy punkt. Paradygmat funkcjonalny poznałem tylko przez Python, więc nie ma już drugiego punktu. Potem w tej sytuacji pozostaje mi tylko trzeci punkt. Jaki powinien być nacisk mojej odpowiedzi? Więcej informacji w tym komentarzu do pytania
Aseem Bansal,
@AseemBansal: Zredagowałem moje pytanie, aby pokazać, na co mogłeś odpowiedzieć. Również fakt, że „poznałeś paradygmat funkcjonalny tylko za pomocą Pythona”, jest dokładnie tym, o czym mówię: nauczyłeś się Pythona i pomógł ci on odkryć FP, który jest właśnie celem nauki języka.
Arseni Mourzenko,
1
Możesz użyć Dropbox jako przykładu zamiast youtube i Reddit. Jest całkowicie wykonany w Pythonie. O ile dobrze pamiętam, Guido pomógł Dropboxowi zbudować ich produkt, a ostatnio dołączył do nich ponownie.
Aseem Bansal,
Jest czwarty powód, dla którego pominąłeś: ponieważ język wygląda zabawnie!
martiert,
Nieco w linii Martiert, ale co z zabawą? Jeśli chcesz nauczyć się określonego języka, to więcej niż wystarczający powód. Wszystko nie musi być motywowane rozwojem kariery i strategiami, aby zmaksymalizować swoje umiejętności.
Gilles,
7

Jeśli jesteś podobny do mnie, nie używasz młotka tylko dlatego, że ma wygodny uchwyt. Używasz młotka, ponieważ potrzebujesz go do zrobienia czegoś młotkowanego.

Nie, chociaż dobra dokumentacja jest z pewnością pomocna, sama w sobie nie jest powodem do nauki języka programowania.

stakx
źródło
1
Dodałem rzeczy, które chciałem robić i korzystałem z Pythona, ale chyba powinienem był położyć większy nacisk na robienie rzeczy niż na dokumentację.
Aseem Bansal,
3
używasz młotka, ponieważ potrzebujesz czegoś młotkowanego ... zbyt wiele osób używa młotków, gdy bardziej odpowiedni byłby śrubokręt.
gbjbaanb,
@gbjbaanb: Dokładnie! Dzięki, że jesteś jeszcze bardziej precyzyjny.
stakx
1

Oto moje główne powody, dla których warto uczyć się nowego języka:

  1. reszta zespołu, z którym pracujesz, używa go, a ty jesteś nowym facetem, który stanie się częścią zespołu.

  2. chcesz rozwiązać problem, a język X lub biblioteki / frameworki dla języka X wydają się zapewniać najlepszą dostępną obsługę tego zadania

  3. Robisz to tylko dla własnych celów edukacyjnych.

Często w sytuacji 2 istnieje więcej niż jeden język lub struktura odpowiednia do rozwiązania problemu. Wtedy dobrze napisana dokumentacja może być jednym z czynników, które należy wziąć pod uwagę (ale także inne czynniki). W przypadku punktu 3 ważniejsza może być dobra dokumentacja, ale szczerze mówiąc, jeśli chcesz nauczyć się nowego języka tylko w celu jego nauki, najpierw znajdź problem, który chcesz rozwiązać, w przeciwnym razie wkrótce stracisz swoją motywację, dobrze… pisemna dokumentacja dostępna lub nie.

Doktor Brown
źródło
1

Tak, czemu nie? Im więcej języków się uczysz, tym łatwiej jest nauczyć się następnego języka. Wiele pojęć programistycznych można nauczyć się w różnych językach. Równie dobrze możesz zacząć od tego, który ma najlepsze dostępne materiały do ​​nauki.

Również większość zadań można wykonać w różnych językach. Zazwyczaj po chwili opanujesz podstawowe pojęcia i narzędzia językowe, ale w razie potrzeby nauczysz się większości bibliotek. Argumentem przemawiającym za językiem jest to, że biblioteki są dobrze udokumentowane, dzięki czemu można szybko zacząć działać w określonej domenie aplikacji.

Gilles „SO- przestań być zły”
źródło
0
  • Nie, dobrze napisana dokumentacja nie jest wystarczającym powodem do nauki języka.

  • Ankieter zadał to pytanie, ponieważ powiedziałeś mu o dobroci pytona. Powinieneś porównać pytona i ruby.

Edward Shen
źródło