Patrząc na swój zestaw narzędzi do pracy(HTML, CSS, JS i PHP) zauważyłem, że mają one wspólne cechy, które stanowią o ich sukcesie w moich rankingach, o tym, że ich używam. W tym wpisie postaram się ustalić te cechy. Za przykłady posłużą mi głównie SublimeText, Vim i … Quake.
Adaptacja interfejsu
Poświęcenie czasu na naukę posługiwania się pewnym interfejsem (może to być samochód a nawet kosa spalinowa) sprawia, że posługujemy się nim pewnie. Po pewnym czasie stajemy się ekspertami w danym interfejsie. Czujemy instynktownie co należy w danym momencie zrobić, przewidujemy kolejne ruchy i ich skutki, nasza wydajność ciągle rośnie. Pewność siebie wzrasta i pozwala nam robić coś lepiej niż inni. A do poprawienia naszej wydajności, sprawności i do zdobywania nowych umiejętności dążymy (lub powinniśmy dążyć).
Wiedza to nie wszystko, twoje paluszki muszą zap…
Gdy zaczynałem naukę CSS i jQuery nie czułem potrzeby używania żadnych specjalnych narzędzi. Dopiero gdy zaczęła doskwierać mi to, że często nagle pojawia się potrzeba zapisania pomysłu lub rozwiązania na które składa się powiedzmy 20 linii kodu w 3 plikach i zabiera to mnóstwo czasu. Teraz dzięki ZenCoding, LESS, Spippetom i kilku innym sztuczkom tłuczenie w klawiaturę zajmuje mniej mojego czasu.
Zamiast pisać window.console && console.log(this);
piszę teraz conl [Enter] i loguje co chcę. Niedawno myślałem, że szkoda miejsca w mózgu na takie skróty. Teraz gdy wiem, że wystarczy sensownie nazwać snippety i nie trzeba niczego zapamiętywać. Pierwsze skojarzenie [Enter] i gotowe.
Oczywiście nie ma nic za darmo. Na Vima poświeciłem masę czasu. Tutoriale by Derek Wyatt i Jeffrey Way, konfiguracja dodatków, budowa vimrc. Przez kilka miesięcy na biurku non stop leżała karta z wydrukowaną mind mapą (by Joe Martinez). Inwestycja w Vima zwróciła się. Miałem swój wygodny i ładny edytor. Ta sama inwestycja powstrzymywała mnie od przesiadki na Sublime Text.
Gorzej gdy napotykasz na nowy, nieznany problem albo dziurę we własnej pamięci. W Vimie była obłędna dokumentacja ale wyszukanie w niej lub na forach było czasochłonne. Sublime Text częsciowo rozwiązuje ten problem. Świetne standardowe pliki konfiguracji ze wszystkimi dostępnymi opcjami. Świetne wyszukiwanie we wszystkich plikach projektu. Command Palette, Go To Anything i Package Control dają naprawde ogromne możliwości. Nie wiesz jak poprawić formatowanie pliku? Otwierasz Command Palette, wpisujesz „indent” … no co my tu mamy … „Reindent” i bęc. Zrobione.
Nie tylko tekstu edytory
Nasze ciało jest najdoskonalszym interfejsem. Możemy go dowolnie wykorzystywać i poprawiać w nim co zechcemy. Pewne interfejsy nie dają Nam dużych możliwości rozwoju. Vim i Quake podobnie jak ciało dają Nam duże możliwości ich wykorzystania. Doświadczony gracz w quake’a wygra z początkującym równie łatwo jak sprinter wygra bieg ze spasionym wołowiną i kukurydzą Amerykaninem. Co więcej nawet niewielka różnica w umiejętnościach oznacza przeważnie ogromne różnice w końcowym wyniku. Podobnie jest z oszczędnością czasu którą daje nam dokładne poznanie naszego edytora tekstu. Oczywiście trzeba najpierw wybrać taki któremu warto poświęcić czas. Jeśli w pracy nastawionej na HTML, CSS i JavaScript używasz kobylastego IDE typu Eclipse czy NetBeans to dużo tracisz. Tego typu środowiska działają wolno i udostępniają otchłań funkcjonalności o którą będziesz się tylko potykał wędrując po menu. Dodatkowo to zawsze będzie dajmy na to Eclipse a nie Twój Edytor. Zauważyłem, że wielu programistów nie zmienia nawet czcionki i schematu kolorów… Nie mieści się mi w głowie, że kogoś nie obchodzi czy patrzy na łatwe do rozpoznania litery o odpowiednim kontraście przez n godzin dziennie czy nie. Jeśli jeszcze nie wiesz jakie lubisz kolorki i font, to spróbuj mojego zestawu. Obecnie używam solarized dark i source code pro 11px. Oczywiście chętnie spróbuję czegoś innego. Czekam na rekomendacje!
Do napisania tego posta skłoniła mnie jedna linijka z ogłoszenia o pracę w last.fm. Jako jedna z dodatkowych pozytywnych cech kandydata było wpisane „używanie edytora opartego na Vim”. Mogę tylko zgadywać co taki ficzer mówi o kandydacie pracodawcy. Nasuwa mi się kilka cech:
- chęć używania najlepszych rozwiązań
- dążenie do rozwoju
- indywidualizm
- leet geek pro version high level
A może to po prostu eksperyment ludzi z HR :-)