Każda osoba zamierzająca zostać programistą błyskawicznie orientuje się, że pisanie kodu nie ogranicza się do notatnika i konsoli tekstowej. Na pewno nie w dzisiejszych czasach, w których właściwie pojawia się problem, które narzędzia dla programisty wybrać. Dzisiaj przedstawię wam oręż niezbędny na zero-jedynkowym polu.
Framework
Framework można nazwać platformą do budowania aplikacji, która dostarczając szereg bibliotek i zewnętrzny kod autorstwa jego twórców, rozszerza możliwości programisty oraz zdecydowanie ułatwia mu szybką implementację danego rozwiązania. Frameworki nie zmieniają struktury języka, ale za to dostarczają wielu nowych, szybszych rozwiązań poprawiając przy tym produktywność programisty. Przykładowo QT, w którym pracuję wystarczą dosłownie dwie linijki kodu do stworzenia okienka programu, podczas gdy w C++ z biblioteką WinAPI jest to właściwie kilkanaście linijek.
Do frameworków należą:
-
- QT – jest to multijęzykowy framework, w którym sam pracuję. Zdążyłem rozpisać się o nim w dedykowanym poście. Pozwala nie tylko na sprawne tworzenie aplikacji desktopowych, ale również mobilnych oraz dostarcza wiele modułów, które znacznie usprawniają proces tworzenia aplikacji, jak np. obsługa baz danych czy funkcję GPS.
-
- SFML – platforma umożliwiająca sprawne tworzenie gier czy aplikacji multimedialnych. Właśnie game development jest popularnym zastosowaniem SFML.
-
- Ruby on rails – popularny framework Ruby’ego do tworzenia aplikacji internetowych opartych o model MVC (Model-View-Controller).
-
- Angular – niezbyt lubiany, ale za to szalenie potężny framework ze stajni Google’a do zastosowań internetowych.
- Vue.js – przydatne narzędzie do tworzenia interfejsu użytkownika w javascript.
To tylko kilka dostępnych narzędzi, a jest ich naprawdę cała masa. Szkoda Twojego czasu na wymienianie ich wszystkich. Jeżeli dopiero się uczysz i zastanawiasz się, który framework wybrać to po prostu wymyśl projekt i sprawdź za pomocą czego będziesz mógł go stworzyć. Uczyć się będziesz na bieżąco. Wszystko zależy od projektu.
IDE – zintegrowane środowisko programistyczne
Narzędzie łączące wiele pomniejszych funkcjonalności w jedno. W jednym narzędziu mamy możliwość pisania w edytorze ułatwiającym to za pomocą podpowiedzi, kolorowania składni czy śledzenia struktury plików w projekcie, debugowanie kodu i jego kompilacja oraz pisanie np. testów jednostkowych. Niektóre wprowadzają wewnętrzną obsługę systemu kontroli wersji.
Kilka mniej i bardziej znanych środowisk:
-
- Microsoft Visual Studio – rozbudowane, wielojęzykowe IDE dostępne również w ramach darmowej licencji.
-
- Eclipse – popularny open source’owy projekt znany chyba każdemu programiście Javy.
-
- Code::Blocks – podstawowe, dla wielu pierwsze narzędzie do pracy z C++. Na późniejszych etapach rozwoju jako programista rzadko kiedy wystarcza.
-
- QT Creator – zaawansowane IDE od twórców frameworka QT. Posiada wbudowany Designer do tworzenia interfejsu użytkownika.
- Android Studio – narzędzie dla programujących pod system Android niekoniecznie w samej Javie.
System kontroli wersji
Jest to oprogramowanie umożliwiające kontrolę nad zmianami wprowadzanymi do projektu. Dokumentowane i komentowane są wszelkie zmiany w kodzie. Jeżeli na przykład tworząc aplikację coś po drodze sknocimy to zawsze możemy wrócić do działającej wersji. System kontroli wersji jest nieoceniony przy pracy indywidualnej, ale niezbędny przy pracy grupowej. Wtedy każdy programista biorący udział w projekcie może oddzielnie pracować nad swoimi zadaniami bez ryzyka, że wejdzie w drogę swoim kolegom.
Ciekawostką jest fakt, że korzystają z niego nie tylko programiści monitorujący zmiany w kodzie, ale również na przykład scenarzyści do gier. W każdym bądź razie, systemy kontroli wersji to narzędzia dla programisty, bez których praca nad średnio zaawansowanymi, jednoosobowymi projektami byłaby prawie niemożliwa, a co mają powiedzieć wielomilionowe przedsięwzięcia?
Bezapelacyjnie za króla systemów kontroli wersji uznawany jest GIT. Jego znajomość jest w wymaganiach praktycznie każdej oferty pracy dla programisty. Z pewnością należy mu się dedykowany wpis na moim blogu z technicznym wprowadzeniem do tematu.
Do mniej popularnych narzędzi zaliczają się Mercurial czy też Subversion.
Narzędzia do notowania
Dobre pomysły i rozwiązania potrafią wyparowywać z głowy równie szybko co się w niej pojawiać. Dlatego dobrze jest mieć na biurku papier i długopis, aby w razie potrzeby urzeczywistnić swoje myśli. Jestem tradycjonalistą, więc wolę takie klasyczne rozwiązanie od cyfrowych odpowiedników notatek, ale to już kwestia indywidualna. Osobiście korzystam z tablicy suchościeralnej, brulionu i kolorowych karteczek do zapisywania drobnych zadań do zrobienia.
Programistyczne grupy wsparcia
Może trochę nie na miejscu jest porównywanie kolegów z branży do narzędzi, ale trudno 😉 Nie wyobrażam sobie pracy bez porad bardziej doświadczonych kolegów szczególnie na początku kariery (czyli tu, gdzie aktualnie jestem). Nie bójcie się pytać, dzielić swoim kodem, prosić o pomoc.
Pomoc możecie znaleźć na:
-
- Grupach tematycznych na FB,
Narzędzia dla programisty wspierające organizację pracy
Zarówno pracując w pojedynkę czy też w zespole pojawiają się problemy z zorganizowanym podejściem do obowiązków i sumiennym ich wypełnianiem. O mocy planowania wypowiadało się wielu coach’ów tego świata. Faktem jest, że efektywniej jest pracować z odpowiednio przygotowanym planem działania. Nie musimy zastanawiać się wtedy od czego zacząć, za co się zabrać. Robimy to co mamy w planie, odhaczamy i bierzemy się za kolejne zadanie.
Przykładowe narzędzia do organizacji pracy i planowania:
-
- Microsoft Planner,
-
- Todoist,
-
- 2Do,
- Asana
Podsumowanie
Mam nadzieję, że szczególnie dla programistycznych świeżaków ten wpis będzie wartościowy pod względem merytorycznym. Piszcie czego wy używacie do ułatwienia sobie pracy 😉
gielo
says:Jeśli chodzi o system do zlecania zadań i organizacji pracy warto było wspomnieć o redmine. Nie jest on może tak kolorowy i fiszkowy jak Trello ale według mnie dużo bardziej funkcjonalny jeśli chodzi o pisanie programów. Sporo ludzi też z niego korzysta. Z innych polecanych jest jeszcze Jira. Osobiście jednak wole jakoś Redmine. Gdyby ktoś chciał skorzystać z niego za darmo dla swoich projektów, to polecam http://www.hostedredmine.com/ można założyc tam za free konto dla własnych projektów.
Łukasz Kosiński
says:Właśnie miałem się Jirą zainteresować. Dzięki za link!