Wszystkie pytania, czy ludzie naprawdę są powolni, są głupie. Stanie się szybszym programistą bez poświęcania jakości jest zawsze dobrym celem, bez względu na to, jak powolny lub szybki jesteś. To jest mój pierwszy cel jako programista i nigdy nie będę skończony. Zawsze staram się być szybszy bez poświęcania jakości, mam obsesję na tym punkcie. Oto, co do tej pory działało dla mnie w kolejności pomocności, wraz z kilkoma eksperymentalnymi pomysłami na końcu:
1) Nigdy nie przestawaj się uczyć: dowiedz się wszystkiego, co możesz na temat programowania i korzystania z komputerów w ogóle. Znajdź obszary, w których jesteś słaby i naucz się ich. Nawet jeśli wydaje się to całkowicie niezwiązane z twoją pracą i językiem C #, gwarantuję, że jeśli jej szukasz, często znajdziesz sposoby na zastosowanie jej do tego, co robisz. Nauka dotyczy również doświadczenia, więc nie tylko czytaj rzeczy, ale wypróbuj je i poszerz swoje umiejętności. Jeśli jesteś przyzwyczajony do korzystania z systemu Windows, wypróbuj system Unix lub odwrotnie. Jeśli zwykle lubisz korzystać z IDE, wypróbuj narzędzia wiersza poleceń i edytory tekstu lub odwrotnie. Jeśli słyszysz o narzędziu lub technologii, o której wcześniej nie słyszałeś lub o którym niewiele wiesz, nie poddawaj się pokusie, aby przejść dalej. Sprawdź to! Nie bój się myśleć nieszablonowo i uczyć się nowych eksperymentalnych technologii, które według innych są niepraktyczne;
2) Rozbij projekty: Spróbuj rozbić swoje projekty na mini projekty. Staraj się robić nowe wydanie codziennie lub co najwyżej raz na kilka dni. Zadaj sobie pytanie: „Jaką minimalną ilość funkcji mogę wydać, i nadal wydać coś, co jest przydatne dla użytkownika”. Jest to umiejętność, której nauczysz się, robiąc to. Być może będziesz musiał przekonać swoich menedżerów, aby ci to zrobili, ale zwykle będą zadowoleni z wyników dość szybko. W ten sposób zaczniesz zauważać, że rzeczy, które Twoim zdaniem były niezbędne dla Twojej funkcji, są w rzeczywistości dodatkowymi funkcjami, które można później opracować. Pozwala to Tobie i Twoim menedżerom na ustalenie priorytetów tylko najważniejszych funkcji zamiast wszystkich funkcji związanych z tą, nad którą pracujesz. To pozwala myśleć szybciej, utrzymując umysł w czystości i skupieniu. Z kolei programujesz szybciej zgodnie z prawem. Twoi menedżerowie, a przynajmniej menedżerowie menedżera, mogą również zauważyć, że programujesz teraz nawet szybciej niż w rzeczywistości, ponieważ dostajesz więcej wydań. Inną ogromną zaletą tego jest to, że będziesz znacznie lepiej oceniać, ile czasu zajmie ukończenie wydań, a Twoi menedżerowie pokochają cię za to. Ponieważ już przeprowadzasz wiele automatycznych testów, nie powinieneś mieć problemów z częstymi wydaniami, które są stabilne. Może być jednak konieczne udoskonalenie automatycznego systemu kompilacji. Bardzo polecam przeczytanie książki Continuous Delivery z serii Martin Fowler. Jest to trudna lektura, ponieważ jest niezwykle powtarzalna, ale nadal bardzo pomocna. Menedżerowie mogą również zauważyć, że programujesz teraz nawet szybciej niż w rzeczywistości, ponieważ dostajesz więcej wydań. Inną ogromną zaletą tego jest to, że będziesz znacznie lepiej oceniać, ile czasu zajmie ukończenie wydań, a Twoi menedżerowie pokochają cię za to. Ponieważ już przeprowadzasz wiele automatycznych testów, nie powinieneś mieć problemów z częstymi wydaniami, które są stabilne. Może być jednak konieczne udoskonalenie automatycznego systemu kompilacji. Bardzo polecam przeczytanie książki Continuous Delivery z serii Martin Fowler. Jest to trudna lektura, ponieważ jest niezwykle powtarzalna, ale nadal bardzo pomocna. Menedżerowie mogą również zauważyć, że programujesz teraz nawet szybciej niż w rzeczywistości, ponieważ dostajesz więcej wydań. Inną ogromną zaletą tego jest to, że będziesz znacznie lepiej oceniać, ile czasu zajmie ukończenie wydań, a Twoi menedżerowie pokochają cię za to. Ponieważ już przeprowadzasz wiele automatycznych testów, nie powinieneś mieć problemów z częstymi wydaniami, które są stabilne. Może być jednak konieczne udoskonalenie automatycznego systemu kompilacji. Bardzo polecam przeczytanie książki Continuous Delivery z serii Martin Fowler. Jest to trudna lektura, ponieważ jest niezwykle powtarzalna, ale nadal bardzo pomocna. a twoi menedżerowie pokochają cię za to. Ponieważ już przeprowadzasz wiele automatycznych testów, nie powinieneś mieć problemów z częstymi wydaniami, które są stabilne. Może być jednak konieczne udoskonalenie automatycznego systemu kompilacji. Bardzo polecam przeczytanie książki Continuous Delivery z serii Martin Fowler. Jest to trudna lektura, ponieważ jest niezwykle powtarzalna, ale nadal bardzo pomocna. a twoi menedżerowie pokochają cię za to. Ponieważ już przeprowadzasz wiele automatycznych testów, nie powinieneś mieć problemów z częstymi wydaniami, które są stabilne. Może być jednak konieczne udoskonalenie automatycznego systemu kompilacji. Bardzo polecam przeczytanie książki Continuous Delivery z serii Martin Fowler. Jest to trudna lektura, ponieważ jest niezwykle powtarzalna, ale nadal bardzo pomocna.
3) Użyj techniki pomodoro i dostosuj / zmień to, co nie działa dla Ciebie. Jeśli połączysz to z numerem 2 na tej liście, otrzymasz OGROMNY wzrost wydajności.
4) Naucz się Vima. Nawet jeśli skończysz używać tych poleceń w Visual Studio za pośrednictwem ViEmu lub z Eclipse za pośrednictwem wtyczki lub z Emacsa, zwiększysz produktywność. Najlepszym sposobem, aby nauczyć się Vima, jest zacząć go używać i zmusić się, aby nigdy (nie wyłączać go / wracać do starych narzędzi), dopóki go nie opanujesz. Na początku jest to bolesne, ale nigdy nie będziesz chciał się wycofać, a nawet skulić, gdy będziesz musiał bez niego pracować. Niektórzy twierdzą, że nie zwiększy to znacznie prędkości. Ale szybsze jest szybsze, szczególnie gdy czytanie i modyfikowanie kodu jest tym, CO ROBIMY, i okazało się, że oszczędzam przy tym mnóstwo czasu.
5) Ten ostatni niekoniecznie jest zalecany, ponieważ nie jestem pewien, czy to dobry pomysł i może faktycznie zmniejszyć twoją wydajność, ale i tak to zrobię. Możesz spróbować wykonać więcej testów akceptacyjnych i mniej testów jednostkowych, a może przynajmniej upewnij się, że wykonałeś testy akceptacyjne. Miałem sukces z SpecFlow, ale podejrzewam, że jest coś lepszego. Nawet napisanie specyfikacji może być dość techniczne, więc możesz po prostu poprosić swojego menedżera / klienta, aby najpierw napisał wstępną wersję roboczą, którą znacząco zmienisz, lub możesz napisać całą rzecz samodzielnie i po prostu przeczytać i OK. Pomoże ci to z numerem 2 z tej listy. Również testy akceptacyjne mogą być bardziej praktyczne i wymagać mniej kodu niż testy jednostkowe. Nie oznacza to, że zastępują je, różne narzędzia do różnych rzeczy.
6) Ten jest jeszcze bardziej eksperymentalny i kontrowersyjny. Nie zrobiłem tego sam, więc nie mogę tego dokładnie polecić. Naucz się i korzystaj z Meta Programming System od JetBrains. Skorzystaj z niego, aby stworzyć narzędzia, których użyje Twój menedżer / klient, aby samodzielnie stworzyć pożądane oprogramowanie. Możesz nawet przestać przeprowadzać testy jednostkowe i akceptacyjne, jeśli możesz użyć tego do stworzenia narzędzi, których używa twój menedżer / klient, aby określić zachowanie w bardzo prosty i niezbyt skomplikowany sposób. Chodzi o to, aby nie pozbyć się programisty. Programiści nadal musieliby dodawać nowe funkcje do tych narzędzi używanych przez klienta / kierownika, ilekroć (ludzie, a nie narzędzia) nie mogą łatwo stworzyć pożądanej funkcjonalności. Wierzę, że MPS lub inne podobne narzędzia to droga przyszłości.