Pisanie bezwzrokowe dla programistów
Pisanie bezwzrokowe pozwala wpisywać i edytować kod bez szukania klawiszy. Możesz patrzeć na ekran, gdy piszesz funkcję, wpisujesz polecenie lub przygotowujesz instrukcje dla agenta AI. Ćwiczenia dla programistów powinny obejmować nie tylko litery, lecz także cyfry, symbole i sposoby zapisywania nazw używanych w kodzie.
Najważniejsze wskazówki
- Ćwicz cyfry, symbole i konwencje zapisu nazw właściwe dla języka, w którym programujesz. Standardowy kurs AgileFingers obejmuje klawisze cyfr i znaków specjalnych.
- Korzystaj z lekcji programowania, aby przepisywać fragmenty kodu, lub wklej własny fragment w sekcji własne teksty.
- Możesz sprawnie pracować z klawiatury, korzystając z Vima lub poznając skróty klawiaturowe w swoim ulubionym środowisku programistycznym (IDE).
- Sprawdzaj kod generowany przez agenta AI i ucz się go poprawiać. Nadal odpowiadasz za powstający kod, nawet jeśli nie wpisujesz go samodzielnie.
Dlaczego pisanie bezwzrokowe przydaje się w programowaniu
Zasada pisania bezwzrokowego jest zawsze ta sama: piszesz bez patrzenia na klawiaturę. Oszczędzasz w ten sposób czas i skupiasz się na zadaniu, a nie na samym wpisywaniu znaków.
Programowanie wymaga lepszej znajomości klawiatury niż pisanie wypracowania. Krótkie wyrażenie, takie jak items[index] += value;, łączy litery z nawiasami kwadratowymi, operatorem i średnikiem. W innych konstrukcjach dochodzą nawiasy klamrowe i okrągłe, cudzysłowy oraz cyfry. Test pisania złożony ze słów zapisanych małymi literami nie obejmuje tych kombinacji. Gdy spoglądasz w dół, by znaleźć symbol, przestajesz czytać kod.
Kiedy zmieniasz warunek, musisz też spojrzeć na otaczający go kod. Pisanie bezwzrokowe pozwala go czytać podczas wprowadzania zmian. Po ponad 20 latach pracy przy tworzeniu oprogramowania nadal doceniam tę umiejętność, gdy edytuję kod, dodaję testy lub pracuję w terminalu.
Ćwicz kombinacje klawiszy, których rzeczywiście używasz
Warunki, pętle i deklaracje funkcji powtarzają się w całym kodzie. Nagłówek pętli w JavaScript, taki jak for (let i = 0; i < items.length; i++), zawiera nawiasy okrągłe, średniki, porównanie i inkrementację. Jeśli zatrzymujesz się przy którymś fragmencie, poćwicz wpisywanie takich wyrażeń. Ważne, żeby umieć je szybko i poprawnie wpisywać w języku, w którym programujesz.
Znaczenie mają też wielkie litery i sposoby zapisywania nazw. Wpisywanie userAccount i user_account wymaga innych ruchów palców i innych nawyków. Przewodnik po stylu kodu w Pythonie zaleca w nazwach funkcji i zmiennych małe litery oraz podkreślenia oddzielające wyrazy. Ten zapis nazywa się snake_case. Nazwy zmiennych w Javie zwykle zapisuje się w stylu camelCase, jak w userAccount. Nazwy klas i stałych mają własne konwencje. Warto swobodnie posługiwać się każdą z nich.
W nazwach zmiennych w Pythonie częściej trafisz na podkreślenia, a w Javie na wielkie litery wewnątrz nazwy. Warto uwzględnić to w ćwiczeniach pisania bezwzrokowego. Jeśli zamierzasz programować w Pythonie, bardziej przydadzą ci się ćwiczenia z Pythona niż ćwiczenia z Javy.
Podczas przepisywania kodu zwracaj uwagę na to, co robi i jak jest zbudowany. Zauważ, gdzie kończy się warunek, a zaczyna jego blok. W Pythonie wcięcia grupują instrukcje, więc ich zmiana może zmienić działanie programu. Zawsze staraj się rozumieć wpisywany kod; nie przepisuj go bezmyślnie.
Ćwicz wpisywanie cyfr i znaków specjalnych
Standardowy kurs pisania na klawiaturze AgileFingers obejmuje cyfry i znaki specjalne. Jeśli zatrzymujesz się przy konkretnej cyfrze, symbolu lub kombinacji klawiszy, wróć do odpowiedniej lekcji. Nie warto zaczynać od ćwiczeń z kodem, jeśli nie masz jeszcze opanowanego pisania zwykłego tekstu. Jeśli litery nie sprawiają ci trudności, przejdź od razu do klawiszy, których potrzebujesz. Nawet po latach programowania możesz czasem zerkać na klawiaturę, żeby znaleźć potrzebną kombinację klawiszy.
Poniższa ilustracja przedstawia amerykański układ QWERTY. Nawiasy klamrowe wpisuje się w nim, przytrzymując Shift i naciskając klawisze nawiasów kwadratowych. W innych układach symbole mogą znajdować się w innych miejscach i wymagać AltGr lub innej kombinacji. Dopasuj klawiaturę w ćwiczeniach do aktywnego układu w systemie operacyjnym. Od niego zależą znaki dostępne w danej lekcji. Jeśli używasz innego układu, możesz go wybrać w ustawieniach.
Obsługuj swoje IDE z klawiatury
W IDE JetBrains i w Visual Studio Code możesz z klawiatury wyszukiwać pliki, przechodzić do wywoływanych funkcji i zmieniać nazwy symboli. Poznaj skróty w edytorze, którego używasz na co dzień. Jeśli chcesz edytować kod bez myszy, możesz też skorzystać z wtyczki Vima. Pozwala ona wykonywać te czynności i wiele innych bez odrywania rąk od klawiatury.
Zacznij od czynności, które powtarzasz w zwykłym dniu pracy:
- Wyszukiwanie plików i symboli: otwórz plik lub przejdź do funkcji bez przeglądania drzewa katalogów.
- Przejście do definicji i powrót: przejdź od wywołania do implementacji, a następnie wróć do miejsca wywołania.
- Zmiana nazwy symbolu: korzystaj z narzędzia do zmiany nazwy, jeśli edytor obsługuje je dla danego języka. Sprawdź w podglądzie, które odwołania obejmie zmiana.
- Uruchomienie konkretnego testu: uruchom ponownie odpowiedni test i za pomocą klawiatury przejdź do miejsca, w którym zgłoszono błąd.
- Zaznaczanie i edycja tekstu: naucz się przesuwać kursor między słowami, rozszerzać zaznaczenie, komentować wiersze i przełączać się między edytorem a terminalem.
Najpierw poznaj wyszukiwanie poleceń, aby znajdować je bez przeglądania menu. W standardowych mapach klawiszy JetBrains dwukrotne naciśnięcie Shift otwiera Search Everywhere. Przewodnik JetBrains po skrótach klawiaturowych opisuje nawigację i ustawienia mapowania klawiszy.
W VS Code paletę poleceń zwykle otwiera Ctrl+Shift+P w Windows i Linuksie lub Cmd+Shift+P w macOS. Edytor skrótów klawiaturowych pozwala wyszukiwać polecenia i zmieniać przypisane do nich klawisze. Jeśli skrót działa inaczej, sprawdź aktywną mapę klawiszy. Zanim zmienisz domyślne przypisanie, dobrze to przemyśl: standardowa konfiguracja jest zwykle starannie dobrana.
Używaj autouzupełniania przy długich nazwach, a szablonów kodu przy powtarzających się konstrukcjach. Na przykład IntelliSense w VS Code oferuje uzupełnianie kodu i informacje o parametrach. Podczas ćwiczeń przepisuj cały fragment samodzielnie, żeby nabrać wprawy w jego wpisywaniu. Gdy wrócisz do projektu, korzystaj z pomocy edytora i sprawdzaj, co wstawia. Jeśli zauważysz, że ciągle powtarzasz te same kliknięcia, znajdź odpowiedni skrót i wypróbuj go przy następnym zadaniu.
Naucz się sprawnie pracować w terminalu
Programiści i administratorzy systemów korzystają z terminali, by wykonywać polecenia, uruchamiać testy, przeglądać logi, zarządzać plikami i pracować na zdalnych systemach. Polecenia łączą nazwy, ścieżki, opcje, cudzysłowy, potoki i liczby. Przed uruchomieniem trzeba przeczytać wpisaną treść. Pisanie bezwzrokowe pozwala patrzeć na polecenie podczas jego wpisywania lub poprawiania.
Poznaj skróty do edycji poleceń w swojej powłoce. W Bashu, przy domyślnych skrótach Readline w stylu Emacsa, Ctrl+A przenosi kursor na początek wiersza, a Ctrl+E na jego koniec. Ctrl+R przeszukuje historię poleceń wstecz. Tab służy do uzupełniania wpisanej treści, na przykład nazwy polecenia lub pliku. Te funkcje opisuje sekcja Readline w polskim podręczniku Basha. Inne powłoki i własne przypisania klawiszy mogą działać inaczej.
Korzystaj z uzupełniania i historii, żeby nie wpisywać wciąż tych samych poleceń. Jeśli pomylisz jeden argument, przesuń do niego kursor i go popraw. Nie musisz wpisywać całego polecenia od początku. Zanim naciśniesz Enter, sprawdź ścieżkę, opcje i katalog roboczy. Na zdalnym systemie sprawdź też, z jakiej powłoki korzystasz. Jej skróty edycji mogą różnić się od tych w twoim lokalnym środowisku.
Mierz dokładność i szybkość pisania
Śledź szybkość pisania, ale zwracaj też uwagę na błędy. Jeśli ciągle poprawiasz ten sam symbol, warto go poćwiczyć, nawet gdy ogólny wynik jest dobry. Edytor może wykryć literówkę w nazwie. Nie musi jednak wykryć poprawnego składniowo operatora, który robi coś innego, niż zamierzasz. Dlatego nadal sprawdzaj i testuj kod.
Zacznij w tempie, które pozwala dokładnie przepisać fragment. Przyspiesz, gdy piszesz już pewnie, literówki zdarzają się rzadko i od razu je zauważasz oraz poprawiasz. Porównuj wyniki na tym samym ćwiczeniu, z tym samym układem klawiatury, limitem ćwiczenia i sposobem pomiaru dokładności. Trudniejszy fragment może obniżyć wynik, mimo że piszesz coraz sprawniej. Dobrze widać to w kursie: pierwsze lekcje są łatwe, a kolejne wymagają coraz bardziej skomplikowanych kombinacji klawiszy. Przy nowych kombinacjach zwalniasz, więc wynik może spaść. Możesz wtedy mieć wrażenie, że tracisz wprawę, choć ćwiczenie jest po prostu trudniejsze.
AgileFingers pokazuje szybkość w słowach lub znakach na minutę. Przy przeliczaniu przyjmuje pięć znaków na słowo, więc długi identyfikator nie liczy się jako jedno słowo. Dokładność pierwszej próby uwzględnia błąd również po jego poprawieniu. Dokładność końcowego tekstu ocenia tekst pozostawiony w ćwiczeniu. Porównując wyniki, sprawdzaj, której metody użyto, bo mogą one dawać różne rezultaty. Wybierz metodę, która lepiej odpowiada twoim potrzebom.
Ćwiczenia AgileFingers dla programistów
Wesołe kolory, grafiki i prosty interfejs AgileFingers mogą sprawiać wrażenie, że jest to narzędzie tylko dla początkujących, nauczycieli i uczniów. Rzeczywiście dobrze sprawdza się ono w szkołach, ale stworzyli je zawodowi programiści, których pasją jest informatyka. Zależało nam na tym, by przydawało się także najbardziej doświadczonym specjalistom. Dlatego obok prostych słów i abstrakcyjnych kombinacji klawiszy jako ćwiczenia są tu fragmenty literatury, na których można ćwiczyć pisanie trudniejszych tekstów. Dla programistów przygotowaliśmy lekcje w różnych językach programowania. Dodaliśmy też motywy interfejsu w stylu retro i ciemną kolorystykę. To bardziej stonowane warianty; jeśli jasny interfejs męczy ci oczy, sprawdź, czy wygodniej będzie ci pracować z takim motywem.
Lekcje programowania zawierają fragmenty kodu w Pythonie, JavaScript, Javie i innych językach. Wybierz język i przepisuj wyświetlany kod. Klawiatura ekranowa i ilustracje dłoni pokazują, który klawisz nacisnąć i którym palcem. Po każdym ćwiczeniu otrzymasz informację o szybkości i dokładności pisania.
Ćwicz wpisywanie własnego kodu
Możesz też ćwiczyć na własnym kodzie w sekcji własne teksty w AgileFingers. Wklej krótki fragment, na którym chcesz poćwiczyć, nadaj mu tytuł i zapisz go. Następnie wybierz go ze swojego katalogu. Może to być funkcja z zagnieżdżonymi warunkami, zapytanie SQL ze złączeniami lub kod przetwarzający argumenty w Bashu. Wybierz kod, który rozumiesz, aby skupić się na jego wpisywaniu.
Jeśli trudność sprawiają ci podkreślenia i cyfry, wybierz kod z nazwami, które je zawierają. Jeśli mylisz się przy cudzysłowach i nawiasach, sięgnij po fragment, w którym jest ich dużo. Przed rozpoczęciem sprawdź wyświetlany tekst, zwłaszcza gdy oryginał zawiera tabulatory lub znaki spoza wybranego układu klawiatury. W ten sposób możesz też ćwiczyć przepisywanie opisów technicznych i instrukcji dla agenta AI.
Jasno opisuj zadania agentom AI i sprawdzaj ich pracę
Agent AI potrafi wygenerować kod, uruchomić testy i wprowadzić poprawki. Ty nadal musisz wyjaśnić, czego oczekujesz, i przejrzeć zmiany. GitHub w zaleceniach dotyczących swoich agentów programistycznych przypomina o jasnym określaniu zadań, przeglądzie kodu przez człowieka i testowaniu wygenerowanego kodu.
Nawet jeśli samodzielnie wpisujesz niewiele kodu, nadal opisujesz wymagania, podajesz przykłady, zgłaszasz błędy i przekazujesz uwagi. Polecenie "popraw formularz" zmusza agenta do zgadywania. Określ, jakie dane powodują błąd, co użytkownik powinien zobaczyć i co musi nadal działać. Gdy zmienią się wymagania albo agent cię źle zrozumie, trzeba będzie poprawić instrukcje. Dokładny opis zadania zwiększa szansę na trafne rozwiązanie. Przy pracy z agentami AI możesz więc pisać więcej niż wtedy, gdy samodzielnie tworzysz kod. Pisząc kod ręcznie, zastanawiasz się nad każdym symbolem i pilnujesz zwięzłości, żeby kod pozostał czytelny i łatwy w utrzymaniu. W instrukcjach dla AI ważniejsze jest dokładne wyjaśnienie zadania niż oszczędzanie słów. Trochę to zabawne: gdy kod pisze za nas AI, umiejętność pisania bezwzrokowego może przydawać się jeszcze bardziej niż wcześniej.
Niektórzy uważają, że klawiatura przestaje być potrzebna, skoro instrukcje dla AI można dyktować. Dyktowanie może pomóc w przygotowaniu pierwszej wersji, ale poprawianie takiego tekstu nadal zajmuje czas. Czasem trzeba zmienić ścieżkę do pliku, poprawić nazwę zmiennej lub usunąć jeden warunek z długiej instrukcji. Jeśli dyktowanie ci odpowiada, korzystaj z niego. Sam nadal ćwiczyłbym edytowanie tekstu na klawiaturze, żeby móc samodzielnie wprowadzać drobne poprawki. Poza tym nie zawsze masz ochotę mówić do mikrofonu przez cały dzień pracy. Nawet jeśli jesteś wyjątkowo rozmowny i lubisz rozmawiać ze wszystkimi i wszystkim, także z komputerem, twój głos też potrzebuje odpoczynku. Czasem chcesz popracować w ciszy. Od tego masz swoją ulubioną klawiaturę.
Nie chciałbym tworzyć produktu, którego działania nie potrafiłbym wyjaśnić. To, że agent odpowiada z przekonaniem, nie dowodzi, że kontrola uprawnień działa poprawnie ani że uwzględniono przypadki brzegowe. Jako właściciel produktu to ty odpowiadasz za te decyzje. Musisz rozumieć kod na tyle, by dostrzec problem i wyjaśnić, co wymaga poprawy. Nauka języka programowania wymaga pisania sporej ilości kodu. Jeśli nie chcesz tworzyć własnych programów, a zależy ci na lepszym zrozumieniu składni, przydadzą ci się lekcje programowania w AgileFingers.
Jeśli chcesz zostać świetnym programistą, nadal czytaj kod i samodzielnie go zmieniaj. Nadal możesz korzystać z pomocy agentów, ale dokładnie sprawdzaj ich pracę i krytycznie podchodź do przedstawianych przez nich propozycji. Lekcje programowania AgileFingers pomogą ci ćwiczyć symbole i konstrukcje kodu, które sprawiają ci największą trudność.
Podstawy edycji w Vimie i Neovimie
Vim to edytor tekstu oparty na poleceniach klawiaturowych, które pozwalają poruszać się po plikach i wprowadzać zmiany kilkoma naciśnięciami klawiszy, bez używania myszy. Neovim powstał na bazie Vima i zachował ten sam podstawowy sposób edycji. Oba edytory mają osobne tryby wpisywania i edytowania tekstu. W trybie normalnym dd usuwa bieżący wiersz, a ciw pozwala zmienić słowo pod kursorem i przełącza edytor do trybu wstawiania, w którym wpisujesz nowe słowo. Oficjalna dokumentacja Neovima opisuje poruszanie się po tekście, edycję i wiele innych funkcji.
Ucz się tych poleceń w edytorze, gdzie od razu zobaczysz ich działanie. W niektórych dystrybucjach Neovima możesz nacisnąć Escape, wpisać :Tutor i nacisnąć Enter, aby otworzyć interaktywny samouczek. Jeśli twoja dystrybucja go wyłącza, uruchom w terminalu nvim --clean i spróbuj ponownie. Ta opcja uruchamia Neovima z domyślną konfiguracją. W przypadku Vima skorzystaj z instrukcji uruchamiania vimtutor dla swojego systemu.
Wykonaj kilka ćwiczeń z samouczka, a potem powtórz je bez zaglądania do instrukcji. Później otwórz kopię znanego pliku i tymi samymi poleceniami zmień nazwę lub usuń wiersz. Opanuj kilka często potrzebnych operacji, zanim zaczniesz zapamiętywać długą listę poleceń.
Funkcje IDE w Neovimie
Neovim obsługuje wtyczki do wyszukiwania plików, nawigacji po kodzie, autouzupełniania, diagnostyki i formatowania. Możesz skonfigurować je samodzielnie lub wybrać dystrybucję z gotowymi ustawieniami i wtyczkami. Jednym z takich zestawów jest LazyVim. Udostępnia wiele funkcji znanych z IDE, choć nadal potrzebujesz odpowiednich narzędzi dla swojego języka. Przewodnik po skrótach i okno podpowiedzi which-key pomagają odnajdywać polecenia.
Możesz też używać wtyczki Vima w swoim dotychczasowym IDE. Sprawdź, które skróty obsługuje wtyczka, a które samo IDE, zwłaszcza gdy klawisz działa inaczej, niż oczekujesz. Zacznij od kilku poleceń, których najczęściej potrzebujesz przy edycji.
Krótki plan ćwiczeń pisania bezwzrokowego
Wybierz coś, co dziś cię spowolniło: symbol, którego trzeba było szukać, ciągle myloną nazwę lub polecenie edytora, którego nie udało się znaleźć. Od tego zacznij następne ćwiczenia:
- Wybierz z kursu lekcję, która obejmuje potrzebną cyfrę lub znak specjalny.
- Przepisz fragment kodu z lekcji programowania lub własnego tekstu, w którym występuje ten znak.
- Sprawdź wynik i powtórz błędnie wpisany fragment w tempie pozwalającym wpisać go poprawnie.
- Wróć do swojego edytora lub terminala i zastosuj to, co ćwiczysz, przy pisaniu kodu albo polecenia.
Ćwicz też pisanie zwykłego tekstu. Komentarze, dokumentacja i instrukcje dla agentów AI stały się istotną częścią pracy programisty. Możesz korzystać z fragmentów literatury dostępnych na przykład w sekcji teksty w AgileFingers lub przygotowywać i przepisywać własne notatki techniczne. Jeśli chcesz się trochę odprężyć, a jednocześnie nadal uczyć, wypróbuj gry do nauki pisania.
Pytania zadawane przez programistów
Poniższe pytania pojawiają się w dyskusjach programistów na Reddicie o pisaniu bezwzrokowym w branży IT.
Dlaczego szybko piszę słowa, ale zwalniam przy kodzie?
Możesz płynnie wpisywać litery, a nadal zatrzymywać się przy nawiasach, cudzysłowach, cyfrach czy wielkich literach. Nieznana składnia też może cię spowalniać. Wybierz krótki fragment kodu, który rozumiesz, i ćwicz kombinacje, przy których się zatrzymujesz. Porównuj kolejne próby na tym samym fragmencie. Lekcje programowania AgileFingers pozwalają w ten sposób nabrać wprawy we wpisywaniu kodu.
Czy trzeba nauczyć się pisania bezwzrokowego przed nauką programowania?
Możesz uczyć się obu umiejętności jednocześnie. Twórz programy i poświęcaj trochę czasu na ćwiczenie klawiszy, których ciągle szukasz. Nie musisz osiągać dużej szybkości pisania, zanim zaczniesz projekt. Jeśli już pracujesz jako programista, możesz włączyć takie ćwiczenia do swojego planu dnia.
Czy trzeba zmienić układ klawiatury, żeby wygodnie pisać kod?
Zacznij od układu, którego używasz w pracy, zwłaszcza jeśli potrzebujesz go także do pisania w swoim języku. Zanim zdecydujesz się na zmianę, poćwicz wpisywanie znaków specjalnych. Inny układ może ci odpowiadać, ale weź pod uwagę klawiatury używane w domu i w pracy. Przełączanie się bywa niewygodne, gdy domową klawiaturę masz skonfigurowaną pod siebie, a w pracy korzystasz ze standardowej, z innymi przypisaniami klawiszy.
Wybierz odpowiadające ci przypisania i sprawdź, czy możesz korzystać z nich na obu komputerach. Jeśli to możliwe, zachowaj te same pozycje najczęściej używanych liter i symboli oraz te same skróty, żeby nie uczyć się ich od nowa po każdej zmianie komputera. Jeżeli nie możesz dopasować klawiatury w pracy do domowej, nie trać też wprawy w obsłudze standardowego układu używanego w pracy. Nowy układ najpierw przećwicz, żeby nie uczyć się go dopiero w dniu, w którym masz dużo pracy.
Wypróbuj to przy następnym zadaniu programistycznym
Gdy następnym razem będziesz edytować kod lub wpisywać polecenie, zwróć uwagę, przy których klawiszach zatrzymujesz się i zerkasz na klawiaturę. Poćwicz je w lekcjach programowania lub dodaj odpowiedni fragment do własnych tekstów w AgileFingers. Korzystaj z edytora i narzędzi AI, ale czytaj, sprawdzaj i poprawiaj to, co tworzą. Nawet jeśli nie podoba ci się obecny stan branży IT i ostatnie zmiany, na wiele z nich masz niestety niewielki wpływ. Jako doświadczony programista radzę: dla własnego spokoju warto zaakceptować część zmian i dostosować się do nowej rzeczywistości. Nie zostawiaj jednak wszystkiego sztucznej inteligencji. Pisz przynajmniej część kodu samodzielnie, żeby zachować umiejętność nie tylko czytania kodu, ale i tworzenia własnych programów. Korzystaj z klawiatury: to fizyczne, namacalne narzędzie komunikacji. Tworząc cyfrowe produkty, nadal mamy pod palcami coś rzeczywistego. Potrzebujemy w życiu fizycznych przedmiotów, których można dotknąć i używać; pomagają nam zachować kontakt z rzeczywistością.