Dzisiejsze statystyki

Ukończone ćwiczenia
-
Napisane znaki Napisane słowa
-
Czas ćwiczeń
-

Łączne statystyki

Ukończone ćwiczenia
-
Napisane znaki Napisane słowa
-
Czas ćwiczeń
-

Lekcje szybkiego pisania
dla programistów

  • Różne języki programowania
  • Nawiasy, operatory i słowa kluczowe

Każdy język programowania ma własną składnię. Możesz pisać kod szybciej dzięki ćwiczeniu pisania bezwzrokowego. Powyższe lekcje zawierają różne fragmenty kodu wybranego języka, na których przećwiczysz wpisywanie jego słów kluczowych i symboli.

Lekcje szybkiego pisania dla programistów

postęp
słowa/min / dokładność
poziom
1. Programowanie: Python
-
-
2. Programowanie: JavaScript
-
-
3. Programowanie: Java
-
-
4. Programowanie: C++
-
-
5. Programowanie: C#
-
-
6. Programowanie: Go
-
-
7. Programowanie: PHP
-
-
8. Programowanie: SQL
-
-
9. Programowanie: Bash
-
-

Ćwicz pisanie bezwzrokowe na przykładach z języków programowania

Pisanie bezwzrokowe w programowaniu

Programowanie często opisuje się jako rozwiązywanie problemów logicznych, projektowanie systemów i budowanie aplikacji. To wszystko prawda. W codziennej pracy przydaje się też sprawne wpisywanie kodu do edytora za pomocą klawiatury. Gdy przy pisaniu nawiasów lub pętli for musisz szukać klawiszy, przerywasz pracę nad rozwiązaniem. Płynne pisanie ogranicza takie przerwy podczas wprowadzania kodu. Pisanie bezwzrokowe w programowaniu pozwala skupić się na problemie, a nie na samym akcie pisania. Szybkie pisanie w programowaniu nie polega na "120 słowach na minutę", lecz na dokładności i wprawie we wpisywaniu symboli, słów kluczowych i konstrukcji, z których składa się kod.

Dlaczego pisanie bezwzrokowe jest ważne dla programistów

W przeciwieństwie do zwykłego tekstu kod ma ściśle określoną strukturę i składnię. Nie możesz liczyć na to, że kompilator lub interpreter odgadnie twój zamiar, jeśli wpiszesz niewłaściwy znak. Literówka może wywołać błąd składni albo zmienić działanie programu, nawet gdy kod pozostaje poprawny składniowo. Szybkie pisanie w programowaniu ćwicz więc razem z dokładnością; sama prędkość nie oznacza mniejszej liczby poprawek. Pisanie bezwzrokowe pozwala patrzeć na edytor zamiast na klawiaturę i mniej uwagi poświęcać szukaniu klawiszy. Sprawdzanie logiki programu i rozwiązywanie problemów pozostają odrębnymi zadaniami.

AgileFingers koncentruje się właśnie na tym wyzwaniu: oferuje programistom lekcje oparte na prawdziwym kodzie, a nie przypadkowych znakach składni. Nie chodzi o naukę języka programowania od zera, lecz o nabieranie wprawy we wpisywaniu jego konstrukcji. Połączenie pisania bezwzrokowego ze znajomością składni danego języka przekłada się na pewność siebie programisty.

Języki według wyzwań podczas pisania

Różne języki stawiają różne wymagania podczas pisania. Patrząc z perspektywy pisania bezwzrokowego, uzasadnione jest grupowanie ich według sekwencji klawiszy, które naciskasz podczas pisania, a nie według paradygmatów programistycznych (np. programowanie obiektowe czy funkcyjne). AgileFingers oferuje ćwiczenia dla języków Java, JavaScript, C++, C#, Go, PHP, SQL, Bash oraz Python. Oto czym się różnią:

Języki mocno oparte na klamrach (Java, JavaScript, C++, C#, Go)
Te języki często korzystają z klamr {} i nawiasów okrągłych. W Javie, C++ i C# instrukcje zwykle kończą się średnikiem; Go wstawia większość średników automatycznie, a JavaScript w wielu przypadkach pozwala je pominąć. Te znaki tworzą szkielet kodu. Gdy podczas pisania musisz szukać ich na klawiaturze, odrywasz się od rozwiązywanego problemu. Przykład w języku Java:


public class Greeter {
    public static void main(String[] args) {
        for (int i = 0; i < 5; i++) {
            System.out.println("Witaj " + i);
        }
    }
}

Albo C#, gdzie składnia jest rozbudowana, lecz konsekwentna:


for (int i = 0; i < 10; i++) {
    Console.WriteLine($"Wartość: {i}");
}

Szybkie pisanie takich pętli wymaga swobody w stawianiu klamr, nawiasów i operatorów. C++ dodaje operatory wskaźnikowe (*, ->), a Go upraszcza składnię, ale również opiera się na klamrach. Ćwiczenia tych wzorców w AgileFingers pomagają je utrwalić, tak abyś nie tracił rytmu podczas pisania.

Języki skryptowe i języki zapytań (Bash, PHP, SQL)
Skrypty to inna historia: intensywnie korzystają z symboli. W Bash często używasz potoków (ang. "pipe" - |), przekierowań i znaku dolara $:


for file in *.txt; do
  echo "Przetwarzanie $file"
done

W PHP nazwy zmiennych poprzedza znak $. Gdy kod PHP jest osadzony w HTML, w pliku przeplatają się znaczniki HTML i kod o składni zbliżonej do C. W SQL większe znaczenie mają słowa kluczowe, z których budujesz zapytania:


UPDATE users
SET active = 0
WHERE last_login < NOW() - INTERVAL '30 days';

W takich językach pisanie bezwzrokowe oznacza obycie z sekwencjami słów kluczowych i symboli. Nawet krótka pauza przy wpisywaniu potoku lub brakujący średnik potrafią wyrwać z toku rozumowania.

Języki o składni zależnej od wcięć (Python)
Python jest szczególny, bo wcięcia są częścią składni. Brak spacji czy dwukropka może zepsuć program. Sekwencja pisania jest klarowna: if ...:, nowa linia, wcięcie. Na przykład:


def factorial(n):
    if n == 0:
        return 1
    return n * factorial(n - 1)

Ćwiczenie pisania bezwzrokowego w Pythonie pomaga oswoić się z wyglądem kodu i zapisem opartym na wcięciach. W większości edytorów tabulatory lub spacje są wstawiane automatycznie, ale nadal trzeba rozpoznawać początek i koniec każdego bloku. Znajomość typowego układu ułatwia orientację w kodzie podczas pisania i sprawdzania go. AgileFingers zawiera wiele fragmentów kodu w Pythonie, na których możesz ćwiczyć wpisywanie tych konstrukcji i nabierać wprawy w korzystaniu z jego składni.

Inne języki programowania
Poza językami już wspieranymi, Rust, Kotlin, Swift czy Haskell mają własne osobliwości składni. Rust akcentuje bezpieczeństwo pamięci poprzez pożyczanie (&) i okresy życia ('a). Kotlin chętnie korzysta z lambd i "strzałek", Swift łączy znane konstrukcje C ze współczesną ekspresją, a Haskell wymaga dbałości o wcięcia i częstego użycia operatorów symbolicznych. Niezależnie od języka, pisanie bezwzrokowe ułatwia oswojenie "trudnych" elementów i sprawne korzystanie z nich na co dzień.

Programowanie w stanie "flow"

Programowanie sprawia przyjemność, gdy możesz w pełni skupić się na zadaniu i bez zbędnych przerw zapisywać swoje pomysły w kodzie. Taki stan głębokiej koncentracji często nazywa się "flow". Pisanie bezwzrokowe ogranicza przerwy na szukanie klawiszy i ciągłe przenoszenie wzroku z edytora na klawiaturę. Dzięki temu samo wpisywanie znaków pochłania mniej uwagi, gdy zajmujesz się logiką programu, jego projektem i rozwiązywaniem problemów. Nadal musisz jednak znać składnię i sprawdzać kod; tej wiedzy nie zastąpią wyćwiczone ruchy palców. Autouzupełnianie i kopiowanie kodu także mogą ułatwiać pracę. Ćwiczenie pisania uzupełnia te narzędzia, a zrozumienie i kontrola wstawianego kodu pozostają zadaniem programisty.

Autouzupełnianie kodu

Autouzupełnianie przydaje się do długich nazw zmiennych i klas, a także do powtarzających się pętli i bloków kodu. Gdy przyjmujesz całą podpowiedź, nie ćwiczysz jednak samodzielnego wpisywania każdego znaku. Jeśli uczysz się języka, przeczytaj wstawiony kod i sprawdź, czy rozumiesz jego budowę. Wybrane konstrukcje spróbuj też napisać samodzielnie. Samo korzystanie z autouzupełniania nie oznacza, że zapomnisz składnię.

Asystenci AI (ang. "AI copilots") potrafią sugerować całe funkcje, a czasem wiele bloków kodu naraz. Mogą w ten sposób ograniczyć ilość ręcznego wpisywania, ale podpowiedź nadal trzeba przeczytać i dostosować do zadania: drobne szczegóły mogą zmienić działanie programu. Korzystanie z asystenta nie czyni programisty biernym recenzentem. To ty decydujesz, jaki kod przyjąć i jak połączyć go z resztą projektu. Pisanie bezwzrokowe przydaje się przy własnych zmianach, uzupełnieniach i poprawkach. AgileFingers pozwala ćwiczyć samodzielne wpisywanie konstrukcji języka oraz nabierać wprawy w używaniu jego symboli i słów kluczowych.

Praca z IDE i edytorami

Zintegrowane środowisko programistyczne (ang. Integrated Development Environment, IDE) to coś więcej niż edytor tekstu: łączy edycję, debugowanie, refaktoryzację, testy i zarządzanie projektem w jednym narzędziu. Przykłady to IntelliJ IDEA, PyCharm czy Rider. Zapewniają podpowiedzi kodu, wykrywanie błędów i zaawansowaną nawigację. Sprawne pisanie przydaje się podczas wprowadzania i edycji kodu. Wiele często używanych poleceń można wywołać skrótami klawiaturowymi, a wybór między myszą a klawiaturą zależy od zadania i twoich przyzwyczajeń.

Autouzupełnianie w IDE jest wygodne, ale nie zastępuje podstawowej znajomości języka. Możesz z niego korzystać przy długich nazwach i typowych konstrukcjach, jeśli rozumiesz powstały kod. Gdy chcesz przećwiczyć zapis pętli for, napisz ją czasem bez szablonu i sprawdź jej warunek oraz zawartość. Pisanie bezwzrokowe przydaje się do samodzielnego wpisywania i zmieniania kodu. Autouzupełnianie i ćwiczenia pisania mogą więc uzupełniać się w codziennej pracy.

Na styku IDE i edytorów znajduje się Visual Studio Code. Niektórzy nazywają go IDE, ale technicznie to zaawansowany edytor tekstu. Z odpowiednimi wtyczkami staje się niezwykle potężny. Rozszerzenia emulujące Vima pozwalają używać jego skrótów klawiaturowych w VS Code. Obsługa Gita jest wbudowana w edytor; inne rozszerzenia dodają przeglądanie baz danych czy linting (ang. "linting"). Pisanie bezwzrokowe przydaje się podczas wprowadzania i edycji kodu, ale korzyści z tych narzędzi zależą też od tego, jak wykorzystujesz je w konkretnym zadaniu.

Neovim - siła edytora zorientowanego na klawiaturę

Neovim został zaprojektowany z myślą o pracy na klawiaturze, ale obsługuje też mysz i można go używać przez interfejsy graficzne. Jego polecenia pozwalają wykonywać precyzyjne zmiany: dd usuwa wiersz, ciw zmienia słowo, a :%s/foo/bar/g podmienia tekst w całym pliku. Do nawigacji służy na przykład 42G, które przenosi bezpośrednio do wiersza 42. Pisanie bezwzrokowe przydaje się przy wpisywaniu poleceń i kodu. Ważna jest również znajomość samych poleceń. Uczysz się ich i nabierasz wprawy w ich używaniu, wykonując konkretne zadania podczas edycji.

Ekosystem wtyczek (ang. "plugins") czyni Neovim niezwykle wszechstronnym: telescope.nvim do wyszukiwania, coc.nvim lub nvim-cmp do podpowiedzi, fugitive.vim do pracy z Gitem. Te wtyczki dodają do edytora polecenia wyszukiwania, uzupełniania kodu i obsługi kontroli wersji. Jeśli wolisz pracę z klawiaturą, możesz nauczyć się ich skrótów wraz z poleceniami Neovima, a podczas wpisywania kodu korzystać z pisania bezwzrokowego.

Klawiatury mechaniczne a komfort programowania

Po latach pisania kodu dostrzegasz, jak klawiatura wpływa na twój sposób pracy. Klawiatury mechaniczne mają osobne przełączniki mechaniczne pod klawiszami i oferują różne wrażenia podczas naciskania klawiszy. Komfort dłuższej pracy zależy od konkretnego modelu, jego ustawienia i twoich preferencji. Możesz dobrać rodzaj przełączników, często oznaczanych kolorami takimi jak czerwony, niebieski czy brązowy (ang. "red, blue, brown"). Różnią się między innymi wymaganą siłą nacisku, wyczuwalną reakcją i dźwiękiem; szczegóły zależą od modelu. Dzięki temu wybierasz sposób działania klawiszy, który ci odpowiada. Pisanie bezwzrokowe możesz ćwiczyć na wygodnej dla siebie klawiaturze. Same przełączniki mechaniczne nie gwarantują mniejszego zmęczenia, większej dokładności ani rozluźnionych palców podczas długich sesji programowania. Na komfort wpływają również ułożenie rąk i przerwy w pracy.

Rola AI i jak nie tracić umiejętności

Narzędzia AI mogą generować fragmenty kodu, całe funkcje i programy. Ich podpowiedzi oszczędzają część ręcznego wpisywania, ale trzeba sprawdzić, czy rozwiązują rzeczywisty problem. Przyjęcie kodu, którego nie rozumiesz, utrudni późniejsze zmiany i szukanie błędów. Dlatego nadal warto uczyć się języka i pisać własne programy. Samo korzystanie z AI nie oznacza utraty znajomości składni ani rezygnacji z twórczej pracy. Projektowanie rozwiązań, podejmowanie decyzji o zmianach i sprawdzanie wyników pozostają częścią programowania.

AI może pomagać przy pisaniu powtarzalnego kodu albo wstawianiu komunikatów diagnostycznych za pomocą print czy console.log. Także wtedy decydujesz, co i gdzie ma być wypisane, oraz sprawdzasz proponowany kod. Zależnie od zadania piszesz własny kod, zmieniasz go lub przeglądasz podpowiedzi; każda z tych czynności należy do pracy programisty. Pisanie bezwzrokowe przydaje się przy ręcznym wpisywaniu i poprawkach. AgileFingers oferuje ćwiczenia ze słowami kluczowymi i symbolami w przykładach kodu, dzięki którym pracujesz nad szybkością i dokładnością pisania. Znajomość języka i projektowania programów rozwijasz przez naukę i własne projekty.

Na zakończenie

Pisanie bezwzrokowe przydaje się podczas tworzenia i edytowania kodu. Gdy znasz położenie klawiszy, możesz patrzeć na edytor zamiast co chwilę spoglądać na klawiaturę. Szukanie znaków nie przerywa wtedy tak często zapisywania pomysłu. Szybkość pisania i poprawność programu to jednak odrębne sprawy: nadal trzeba sprawdzić logikę kodu i przetestować jego działanie. Samodzielne pisanie kodu można łączyć z autouzupełnianiem i sugestiami AI, dobierając narzędzia do zadania.

AgileFingers oferuje lekcje z fragmentami kodu w językach takich jak Java, Python i Go. Powtarzając używane w nich sekwencje klawiszy, ćwiczysz szybkość i dokładność pisania oraz rozwijasz pamięć mięśniową potrzebną do wpisywania często spotykanych symboli. To okazja do oswojenia się z zapisem kodu, ale zrozumienie jego działania wymaga nauki języka i pracy nad własnymi projektami. Także przy korzystaniu z narzędzi generujących lub uzupełniających kod pisanie bezwzrokowe przydaje się do wprowadzania własnych zmian i poprawek.

słowa na minutę znaki na minutę słowa/min znaki/min słowa/min znaki/min Wykres /zadanie-domowe /praca-na-lekcji /in-class-assignment