Kurs programowania zacznijmy od zastanowienia się i odpowiedzenia na pewne ważne pytanie.
Pytanie od którego powinien każdy zacząć i prawie nikt nie zaczyna: po co właściwie stukamy dzień w dzień w te klawisze?
Dlaczego firmy są gotowe płacić naprawdę duże pieniądze za pracę programistów? Czemu ten zawód tak dynamicznie się rozwija?
Nikt nie płaciłby za pracę, która nie jest potrzebna. Firma czy klient nie są organizacjami charytatywnymi, które chcą dawać programistom możliwość stukania palcami w firmową klawiaturę, żeby mogli na koniec dnia wrócić do domu zadowoleni po dobrej zabawie.
Zrozumienie dlaczego akurat Twoja praca jest potrzebna i za co tak naprawdę jesteś wynagradzany to klucz do zrozumienia istoty Twojej (przyszłej) pracy. Dzięki temu będziesz mógł skupić się na rozwijaniu tych elementów, które przyniosą Ci faktyczny profit i pozwolą w optymalny sposób osiągnąć cel.
W szkole, a potem na studiach często uczymy się dla uczenia się. Jeżeli sami nie drążymy mocno tematu ciągle zadając pytanie „po co?” to nikt nam nie mówi po co właściwie tej wiedzy potrzebujemy.
Ile to osób zastanawia się do czego im się przydadzą te wszystkie wzory z matematyki? Albo znajomość budowy ameby, o której słucha się na biologii? Doświadczenia na fizyce niby są ciekawe, ale czemu właściwie służą? Temu żebyśmy mieli co potem liczyć na sprawozdaniach z tych zadań?
A czy nauka nie byłaby dużo przyjemniejsza gdybyśmy od razu widzieli jej sens? Zadanie sobie pytania „dlaczego?” będzie służyło za drogowskaz przy poszerzaniu wiedzy i umiejętności.
Whether you are an entrepreneur, an employee, a leader of a team, or are looking to find clarity on your next move, your WHY is the one constant that will guide you toward fulfillment in your work and life.
źródło:Start with Why
Podobnego pytania „po co?” nie zadaje sobie bardzo duża grupa początkujących programistów. A i ci bardziej doświadczeni nie zawsze wiedzą jaka jest istotna programowania.
Na pewno nie jest nią sam fakt pisania kodu. Nawet najwytrwalszy programista w końcu by miał dosyć gdyby jedynym efektem jego tygodni pracy była po prostu większa ilość kodu. Ot po prostu kilka kB więcej zapisanych na dysku.
Można by to porównać do przerzucania ziemi łopatą. Jak długo byś wytrzymał gdybyś przerzucał ziemię z jednego kupy na drugą nie wiedząc po co to robisz? Nie wydaje mi się żebyś potrafił tak pracować chociażby kilka miesięcy.
A właśnie w ten sposób najczęściej wyglądają kursy uczące podstaw jakiegoś języka programowania. Suche fakty i konstrukcje, które pisze się tylko po to żeby były napisane. Encyklopedyczne definicje dopełnione słowami „tak jest i koniec”. Bez wspomnienia o tym do czego akurat ten fragment wiedzy możemy użyć. Po co go poznajemy.
Również porady dotyczące rozwoju jako programista nieraz sprowadzają się do stwierdzenia „pisz więcej kodu„. Poza pojedynczymi wyjątkami nikt nie chce powiedzieć jak to potem wykorzystać. Co właściwie mamy pisać wykorzystując nabytą wiedzę. Co nam daje zastosowanie takiej, a nie innej metody czy struktury? A jest to moim zdaniem klucz do czerpania przyjemności z programowania i chęci ciągłego rozwoju – wiedza jak to wszystko wykorzystać w praktyce.
Odpowiedź na zadane w tytule pytanie jest bardzo prosta – programujemy po to żeby ułatwiać życie użytkownikom. Ludziom. Tak zwyczajnie.
Jesteśmy po to żeby dostarczać wartość. Czy to będzie oszczędzony czas, czy możliwość zredukowania kosztów jakichś operacji, albo możliwość zmaksymalizowania przychodów, a może dostarczenie rozrywki. To wszystko są konkretne cele.
Programy zawsze pisze się po coś. Każdy z nich ma jakieś przeznaczenie. I w ten właśnie sposób powinniśmy patrzeć na to co robimy. Kiedy dowiemy się co piszemy to będziemy mogli łatwiej odpowiedzieć na pytanie jak to najlepiej zrobić. Zaczniemy patrzeć na projekty z innej perspektywy.
Jeżeli jesteś lub byłeś na studiach i miałeś tam programowanie to zastanów się, które projekty były najfajniejsze do wykonania? Te, których celem było napisanie programu, który „miał zawierać klasę, metodę i koniecznie mieć użyte dziedziczenie pomiędzy przynajmniej trzema klasami„? A może takie gdzie rozwiązywałeś problem typu „grupa naukowców musi szybko policzyć jaki wpływ na miasto będzie miała nadchodząca powódź. Pomóż im pisząc program, który…„?
Wysoka jakość kodu też nie jest tylko po to żeby była. Ma swój cel – ograniczenie kosztów utrzymania aplikacji i ułatwienie przyjmowania nowych członków zespołu. Dbanie o wysoką jakość tego co robisz wpłynie pozytywnie na zadowolenie końcowego odbiorcy w przyszłości. Nawet jeżeli nie wie, że tego potrzebuje albo chce. Bo jeśli będziesz pisał kod niechlujnie to zwiększasz szansę na wprowadzenie błędu, który dotknie użytkownika, a w dodatku spowodujesz, że czas naprawienia go będzie dużo dłuższy. Jeśli Twój kod będzie tak słaby, że nikt nie będzie chciał albo wręcz mógł z nim pracować to być może uśmiercisz przez to aplikację, która na co dzień pomaga tysiącom ludzi.
Może jesteś zdziwiony, że na początku kursu jeszcze nie złapałeś za żadne narzędzia i nie ruszyłeś wystukiwać kolejnych liter na klawiaturze. Ani nawet nie usłyszałeś żadnego zdania dotyczącego języka C#. Jednak jak już wspomniałem, programy pisze się w jakimś celu, mają one jakieś zastosowanie. Dlatego zanim przejdziemy do zużywania naszych klawiatur zastanówmy się po co w ogóle będziemy to robić.
Jest to tak zwany etap zbierania wymagań. Nawet jeżeli na początku będą to tylko bardzo ogólne założenia to i tak nadadzą one kierunek dalej przygodzie. Nie chcesz przecież robić czegoś nieprzydatnego, prawda?
Ustalmy więc cel naszej pracy. Będzie to drogowskaz dla dalszych działań, dzięki któremu w każdej chwili będzie można ocenić co już jest gotowe, a czego jeszcze brakuje.
Dokładnie tak samo wygląda to w pracy. Nikt nie zaczyna pisania kodu bez sprecyzowania co właściwie ma ostatecznie powstać. A przecież jesteś tutaj żeby nauczyć się być programistą, który wie co robi. Zacznijmy więc od zebrania wymagań i zastanowienia się nad tym jaki cel chcemy osiągnąć w trakcie kursu.
Następna lekcja – pomagamy koledze, który otwiera bank
Leave a Comment