Najważniejszy jest pomysł…Ale skąd go wziąć?
Zapewne większość mniej lub bardziej doświadczonych programistów spotkała się z sytuacją kiedy mając chwilę wolnego czasu chcieli kodzić, ale nie mieli pomysłu na jakąś użyteczną aplikację. Ja właśnie doświadczam tego ostatnimi czasy. Siadam przed komputerem, otwieram IDE i… nic. Całkowita pustka w głowie. Co właściwie mógłbym napisać? Jaka aplikacja by była jednocześnie użyteczna i pozwalała mi przy pisaniu powiększyć doświadczenie w danej technologii? No bo same testy pojedynczych kontrolek czy bibliotek to jedno, ale kompletny program, który mógłbym kiedyś jeszcze uruchomić już nie z poziomu IDE to zupełnie co innego.
Powyższy problem, przynajmniej w moim przypadku, dotyczy głównie pisania małych programów, na które chciałbym poświęcić kilka, kilkanaście dni. No bo pomysły na duże systemy, z mnóstwem funkcjonalności, które podbiją świat, i które by wymagały tygodni, a nawet miesięcy programowania, przychodzą do głowy dosyć szybko, ale nie o to chodzi :)
Czasami siedząc przed komputerem nachodzi mnie ochota, żeby otworzyć IDE i coś zakodzić i przy okazji się czegoś nowego nauczyć, lub rozszerzyć swoją wiedzę. Ale w tym momencie robi się problem, no bo jaką aplikację mógłbym na szybko napisać? Ta niemoc dosyć szybko gasi we mnie chęć klepania kodu w najbliższym czasie co zdecydowanie nie wpływa dobrze na moje programistyczne doświadczenie, w końcu to praktyka czyni mistrza. Niestety w takim wypadku tracę czas, który mógłbym i powinienem poświęcić na tą praktykę.
Dlatego zacząłem się zastanawiać nad tym gdzie lub w jaki sposób zdobywać inspiracje. M.in. pod tym aspektem programistę można porównać do artysty, ani jeden, ani drugi, nawet mając duży talent, bez pomysłu, jakiejś koncepcji na dzieło niewiele jest w stanie zrobić. Dobrze ale co zrobić, żeby ten pomysł znaleźć? Post ten nie byłby kompletny gdybym nie spróbował odpowiedzieć na to pytanie, ponieważ nie chciałbym, żeby był on tylko opisem mojej niemocy przy próbie uporania się z tym, wbrew pozorom, dosyć poważnym problemem. Tak więc opiszę kilka sposobów które albo się już sprawdziły, albo uważam je za godne wypróbowania. Uprzedzam, że są to moje osobiste opinie i przemyślenia, ale może dla kogoś okażą się przydatne lub przynajmniej zachęcą do wymyślenia i spróbowania własnych sposobów na radzenie sobie z kreatywną niemocą, chociaż wiem, że w Internecie tak polskim jak i zagranicznym można znaleźć wiele artykułów na ten temat.
1. Kiedy nadchodzi pomysłowy zastój najlepiej wykorzystać… swoje pomysły. Tak, w końcu zdarzają się momenty dużej kreatywności, np. kiedy się leży w łóżku, lub spaceruje po parku nagle w naszej głowie powstają różne koncepcje, raz bardziej ogólne innym razem konkretniejsze. Warto to wykorzystać. Zawsze na moim biurku leży jakiś notatnik lub przynajmniej kartka, którą mogę zapełnić pomysłami. Jeśli nastąpi przypływ kreatywności, po prostu sięgam po długopis i zapisuję jedno, dwa ogólne zdania opisujące aplikację. Zauważyłem, że lepiej jest najpierw utrwalić myśl na kartce papieru, a dopiero potem myśleć o tym jak powinno to dokładnie wyglądać, co robić itd. Chociaż uważam, że przed rozpoczęciem właściwej pracy myślenie o strukturze kodu może skutecznie zniechęcić do klepania w klawiaturę lub spowodować, że dojdziemy do momentu w którym uznamy pomysł za niemożliwy do realizacji przez zbyt dużą liczbę featurów, jakie chcielibyśmy w nim zawrzeć. Warto zachować umiar ;) Mając spisaną listę pomysłów, kiedy wystąpi brak weny, zawsze można do niej zajrzeć.
2. Jak wspomniałem na początku, program, który chcę napisać powinien być użyteczny. Zawsze większą motywację się ma robiąc coś co będzie przydatne, co można pokazać innym. Dlatego czasami warto słuchać innych. Zapewne zdarzyło się, że osoba z którą rozmawiałeś wspominała, że np. chciała by trzymać jakieś dane na komputerze, lub narzekała, że jakieś powtarzalne obliczenia zajmują jej sporo czasu, który może przeznaczyć na coś innego. Tutaj dosyć łatwo możesz znaleźć inspirację do stworzenia niewielkich programów, w przytoczonych przykładach będzie to program bazodanowy lub program, który pobiera dane i przelicza je i ew. pozwala zapamiętać wynik żeby wykorzystać go w kolejnych obliczeniach. Takich przykładów mógłbym przytoczyć więcej jednak nie o to chodzi. Czasami warto słuchać czyichś narzekań. Tutaj też można wykorzystać znajomość z np. fizykiem. Program obliczający jakieś fizyczne wartości, który wykorzystuje przy tym GPU jest godny rozważenia, a i można taką aplikację wysłać do tego znajomego, co da dodatkową satysfakcję z tego, że nasz program jest wykorzystany w praktyce.
3. Jako, że pisząc takie niewielkie programy większość z nas robi to pod kątem rozwijania umiejętności przydatnych w przyszłej lub aktualnej pracy dobrze jest przeglądać portale z ogłoszeniami dla programistów, takie jak freelancer.com. Często osoba wstawiająca ogłoszenie oprócz ogólnego opisu problemu pisze również dość dokładną specyfikację. Ten sposób zdobywania pomysłu na program ma jeszcze jedną zaletę w postaci możliwości zarobienia, jeśli zgłosimy się jako wykonawcy lub gdy później pojawi się podobna oferta będziemy już mieli gotowe rozwiązanie ;)
Opisałem tu trzy przykłady na inspirację, które moim zdaniem są pomocne. Jednak każdy problem można rozwiązać na wiele sposobów. Zachęcam do prób, bo najgorsze co można robić to nie robić nic. Niech chwilowy zastój w wymyślaniu projektów nie spowoduje zastoju w pracy i zdobywaniu doświadczenia tak potrzebnego w tym zawodzie.
Leave a Comment