Jak nauczyć się (kolejnego) języka?

Odpowiedź na to pytanie jest prosta – napisać coś w nim.

Tyle tylko, że co mam napisać? Oczywiście najprościej jest naskrobać kolejnego klona Pet Clinic, własny system blogaskowy, albo bibliotekę (taką z książkami). Nie przeczę, są to zacne metody, ale mają pewną wadę. Wymagają od nas znajomości języka i narzędzi na pewnym minimalnym poziomie. Bez tego dość szybko popadniemy w kłopoty i zniechęcimy się po „10 godzinach walki z jakimś mavenem, eclipsem i innym springiem”, gdy chcemy się nauczyć podstaw Javy. Projekty są dobre, ale jako „praca końcowa”. Na początek znacznie lepsze są mniejsze zadania, które pozwalają poznać składnię języka i pobawić się z kodem. Przykładem może być samodzielna implementacja zadań z książki Mazes For Programers. Przykładowy kod jest napisany w Ruby, co samo w sobie może być motywacją do poznania tego języka, ale jest też na tyle prosty i dobrze opisany, że można zaimplementować rozwiązania w innym języku.

Inną drogą jest wzięcie udziału w jakiejś formie rywalizacji. Począwszy od starego dobrego SPOJa, poprzez Project Euler, czy też Top Coder. W tym przypadku mamy dowolnie dużo czasu i nie mamy narzuconej kolejności zadań. Ma to swoje plusy, ale też minusy. Jednym z nich jest brak bata i zachęty do codziennej pracy. Dlatego też warto zainteresować się Advent of Code, która niejako wymusza na nas systematyczną, codzienną pracę.

Te wszystkie metody są doskonałe też wtedy, gdy chcemy nauczyć się kolejnego języka. Najpierw zróbmy rozwiązanie w nowym języku, a następnie w naszym głównym. Zobaczycie różnice.

Na koniec małe przypomnienie. Już 26 listopada będę mówił o Elixirze na InfoMeet, start o 9:30 w sali C. Będzie zabawnie 🙂

3 myśli na temat “Jak nauczyć się (kolejnego) języka?

  1. Polecam hackerrank.com, wiele typow zadan, wiele zadan, wiele jezykow, platforma z kompilacja i testami, nie musisz walczyc z IDE i nowym jezykiem by cos skompilowac.

Napisz odpowiedź

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *