Credit Scoring i makro-programowanie w SAS

Pełny opis:

Podstawowym celem przedmiotu jest przekazanie studentom doświadczenia i umiejętności łączenia wiedzy teoretycznej i praktycznej: nie tylko jak przeprowadzić zaawansowaną analizę statystyczną, ale także jak takich analiz wykonać wiele, być może nawet tysiące, i jak wybrać z nich tę, która spełnia pożądane kryteria. Przedmiot głównie koncentruje się wokół zagadnień budowy karty skoringowej i modeli PD (prawdopodobieństwa default), ale celem jest nie tylko przedstawienie idei budowy takiej karty i modelu, ale wspólne studiowanie programów (kodów) w SAS 4GL i wejście we wszystkie szczegóły każdego z elementów budowy. Cel zatem jawi się jako prezentacja metody do samodzielnego rozwijania i badania technik kart skoringowych, aby móc w pełni rozumieć i panować nad każdym etapem budowy i nie być zależnym od konkretnego oprogramowania, gdyż wszystkie algorytmy są samodzielnie pisane, modyfikowane i dowolnie parametryzowane. Trzeba jednak bazować na pewnych podstawach, dlatego też wykorzystuje się oprogramowanie SAS by nie implementować od podstaw typowych modeli takich jak regresja logistyczna, a tym samych zmieścić się w czasie jednego semestru. Dodatkowo możliwe jest także studiowanie elementów napisanych w R. Kolejnym celem jest także przedstawiwnie wszelkiech problemów biznesowych związanych z procesem akceptacji kredytowej i złożonym procesem akwizycji i sprzedaży krzyżowej. Podczas zajęć student uczy się analizowac proces symulacji akceptacji i sam może doświadczyć konsekwencji zmian parametrów procesu. Dzięki specjalnym symulowanym danym wykorzystywanym w czasie zajęć, student może poczuć się jak Dyrektor Departametu Ryzyka Kredytowego i zarządzać procesem bankowym, w którym albo przynosi zyski dla banku, albo je traci. Projekt zaliczeniowy jest rodzajem gry strategicznej, gdzie kazdy zespół stara się tak zdefiniować parametry procesu akceptacji, by zmaksymalizować zyski i zarobić więcej niż startowy model.

Narzędzia dla początkującego programisty i testera

Praktycznie każdy, kto zaczyna swoją pierwszą pracę w IT, jest zaskoczony nie poziomem skomplikowania zadań programistycznych, które ma wykonać, a całą dziejącą się dookoła otoczką. Okazuje się, że umiejętność samego programowania bądź testowania, to zaledwie jedna z wielu części tego, co czeka na świeżo upieczonego dewelopera od pierwszych chwil w pracy. Właśnie dlatego dla pracodawcy doświadczenie komercyjne, a więc przy prawdziwych projektach i w prawdziwych firmach, jest tak ważne. Nie chodzi tu bowiem tylko i wyłącznie o znajomość samego języka czy technologii, ale o sposób pracy, organizacji całego procesu i pojedynczych jego elementów, a także znajomość podstawowych narzędzi, które nie zawsze należą do prostych i przyjemnych, ale są absolutnie konieczne.

Temat doświadczenia, którego nie ma, a które jest potrzebne do pracy, by mieć to pierwsze doświadczenie, jest długi i szeroki i temu też poświęcony będzie artykuł. Jeśli zaś chodzi o narzędzia, tutaj sprawy możesz wziąć w swoje ręce i samodzielnie podszkolić się w ich używaniu.

Spis treści:

1. Co to są narzędzia?

2. System zarządzania zadaniami (Issue Tracker)

3. System kontroli wersji

4. System zarządzania repozytoriami

5. Edytor kodu

6. System operacyjny

7. Wyszukiwarka internetowa

Proces produkcji oprogramowania, jak to się ładnie i mądrze mówi, jest dość łatwy do domyślenia się, nawet jeśli nigdy nie pracowałeś/aś w branży IT. Zresztą – jako aspirujący programista czy tester już z założenia mniej więcej wiesz, co będzie należało do Twoich obowiązków, choćby po nazwie stanowiska. To zaś, co nie jest takie oczywiste, to właśnie te nieszczęsne narzędzia, czyli coś, co nie zawsze jest bezpośrednio związane z programowaniem czy testowaniem, ale w codziennej pracy jest absolutnie niezbędnym elementem procesu, jak i ważnym i cennym wsparciem, gdy nad jednym projektem pracuje więcej niż jedna osoba. A często nawet wtedy, gdy projekt jest prowadzony (pozornie, bowiem nigdy nie jest się tak całkiem samym) w pojedynkę. To wszystko to, czego używa się w pracy do wykonywania (np. edytor kodu), ale też do monitorowania zadań i całych projektów, do komunikacji między osobami pracującymi w tym samym projekcie, a nawet do takich rzeczy jak podania o urlop czy ocena roczna, która może być podstawą do awansu czy zmiany zespołu.

Z reguły, im większa firma, tym więcej tego rodzaju rzeczy, bo i projektów i ludzi jest zwyczajnie więcej, a jakoś nad tym trzeba zapanować. Czasem korporacje mają własne, wewnętrzne systemy, czasem korzystają z gotowych rozwiązań dostępnych na rynku. Czasem to, z czego będziesz korzystać, będzie z góry narzucone, czasem wybierzecie wszystko wspólnie w zespole, w innych przypadkach zaś tylko jeden system będzie dla wszystkich, a resztę dobierzesz sobie według własnych potrzeb i preferencji. Póki nie wejdziesz do środka, nigdy nie wiesz, ale jedno jest pewne – każdy czegoś używa. I lepiej być na to przygotowanym, szczególnie wtedy, gdy nigdy nie miałeśaś z tym styczności, a pierwsza praca w IT jest dopiero przed Tobą.

W ogłoszeniach o pracę raczej nie znajdziesz w wymaganych umiejętnościach obsługi tych właśnie rzeczy. Czy rekruterzy patrzą, czy w CV są wymienione te pozycje, też jest kwestią raczej dyskusyjną, ale z naszego doświadczenia wiemy tyle, że przy dwóch identycznych aplikacjach (znajomość technologii, doświadczenie, etc.), liczą się właśnie takie dodatki. Co jest zaś pewne na sto procent, to że przynajmniej pobieżna i teoretyczna znajomość tych narzędzi ułatwi Ci pierwszy dzień w pracy, a na pewno oszczędzi dużo stresu, kiedy absolutnie wszystko wokół Ciebie jest nowe i nieznane.

Narzędzia dość łatwo pogrupować pod względem celu, któremu służą, a aplikacje czy systemy tej samej grupy są z reguły do siebie podobne. Jedne mają mniej funkcji, inne więcej, w jednych znajdziesz możliwość integracji z innymi, w innych z kolei będzie możliwość pełnej personalizacji i ustawienia sobie tła w Pokemony… ale to tak naprawdę tylko szczegóły. Podstawowe czynności wykonuje się przeważnie w zbliżony sposób. Dlatego, jeśli opanujesz aplikację od jednego producenta, prawdopodobnie przesiadanie się na inny system nie będzie stanowiło większego problemu.

Poniżej znajdziesz krótką listę pogrupowanych narzędzi, które, naszym zdaniem, warto poznać jeszcze zanim zaczniesz szukać pierwszej pracy. Wymienione tu nazwy i systemy są szeroko wykorzystywane nie tylko w pracy programistów, ale w ogóle w całym procesie wytwarzania produktów – od projektu, aż po sprzedaż.

System zarządzania zadaniami (Issue Tracker)

Niektórzy twierdzą, że pisanie kodu przypomina sztukę, a testowanie oprogramowania to nie praca a stan umysłu... Nieważne, czy jest to prawdą, czy też nie – praca programisty czy testera to przede wszystkim rozwiązywanie problemów i wykonywanie zadań. Tak więc zarządzanie zadaniami jest nieodłączną częścią całego procesu, a więc i Twojej pracy.

Najogólniej, system zarządzania zadaniami to taka bardziej rozbudowana lista rzeczy do wykonania, współdzielona przez cały zespół, z masą dodatkowych znaczników i opcji. Jedne z podstawowych funkcji to status zadania, a więc czy jest zrobione, czy nie, przypisanie zadania do konkretnej osoby za nie odpowiedzialnej, grupowanie mniejszych zadań w większe projekty czy ustalanie kolejności i priorytetów zadań. Takie narzędzie służy przede wszystkim do planowania rzeczy do zrobienia i monitorowania całego procesu. Pozwala też osobom spoza zespołu (np. menedżerom innych zespołów czy szefom wszystkich szefów) na sprawdzenie, jak idą postępy w projekcie, ale też Tobie, bo dokładnie wiesz, co jest do zrobienia, często też, jaki dane zadanie ma termin wykonania, czy jest zależne od pracy innych członków zespołu i jak bardzo kluczowy jest jego rezultat dla całego projektu. Daje też jasny pogląd na to, co robią inni i w przypadku zdarzeń nagłych (np. katar, wiemy przecież, że to prawie zabija), inni w zespole mogą zastąpić nieobecną osobę. A przynajmniej jest to znaczniej prostsze, bo wiadomo, za co była odpowiedzialna.

Taki system może być rozbudowany o wiele bardzo różnych funkcji. Np. może zostać do niego dodany moduł do zgłaszania błędów, także przez ludzi z zewnątrz. Takie zgłoszenie trafia na listę rzeczy do zrobienia i zespół wie, że podczas kolejnego planowania, musi się tym zająć. Lub, jeśli jest bardzo poważny błąd, porzucić wszystko natychmiast i w tej chwili przystąpić do naprawy.

Stopień skomplikowania i liczba funkcji dostępnych zależą od potrzeb zespołu czy projektu. Łatwiej zarządzać ogromnymi projektami przy pomocy systemu, który został do tego zaprojektowany, niż używając tylko długopisu, kartki i pamięci jednej osoby. Czasem, gdy do końca nie wiadomo, jak duży będzie projekt, wybiera się system o większych możliwościach, niejako na wszelki wypadek. W innych przypadkach o wyborze decyduje przyzwyczajenie albo w ogóle się niczego nie wybiera, bo w tej firmie używamy tylko aplikacji X.

Trello

Prostym, a jednocześnie praktycznym narzędziem do pracy z niedużym projektem jest Trello. Zostało ono stworzone z myślą o wspieraniu tablicy kanban, a więc podziału zadań na kolumny względem statusu wykonania. Całość jednak można dostosować do swoich potrzeb. Ważną opcją jest też możliwość współdzielenia jednej lub kilku tablic z innymi.

podstawowa (wystarczająca) wersja jest darmowa

dodatkowe funkcje od $9.99/użytkownik/miesiąc

Jira

Najpopularniejszym chyba systemem tego typu, bo o wielu możliwościach dostosowywania do potrzeb konkretnych zespołów, jest Jira. Oprócz kanbanowej tablicy wspiera różne sposoby zarządzania projektami i procesami, jak scrumowe sprinty, udostępnia też szereg opcji automatyzacji niektórych procesów. Pilnuje zadanej kolejności wykonywania zadań, przypomina o terminach, umożliwia pracę wieluset osobom w tym samym momencie, w niezliczonej liczbie projektów naraz. Monitorowanie czasu pracy nad zadaniami, w połączeniu z dostępnymi po jednym kliknięciu raportami, pozwalają coraz lepiej szacować i planować w przyszłości. Jira to system bardzo rozbudowany, o niezliczonej liczbie funkcjonalności i opcji, ale dzięki temu dostosowuje się do niemal każdych potrzeb.

dwie opcje do wyboru – chmura i własny hosting

darmowa wersja próbna na 7 dni

chmura – od $10/miesięcznie, własny hosting – od $10 jednorazowej opłaty

Oba wymienione systemy mają wersję bezpłatną, której możesz użyć do nauki. Nawet przeklikanie wszystkiego na sucho pomoże Ci lepiej odnaleźć się w przyszłej pracy. Radzimy Ci jednak wypróbowanie takiego narzędzia do monitorowania nawet niedużego projektu, których i tak robisz wiele w trakcie nauki. To będzie dobry trening na przyszłość.

System kontroli wersji

Mam cichą nadzieję, że koncept systemu kontroli wersji jest Ci znany. Jeśli nie wiesz, czym jest obecnie najpopularniejsze narzędzie tego typu, czyli GIT, to dam Ci cenną radę – przerwij czytanie tego artykułu i zacznij się go uczyć. Teraz! GIT jest zbyt cennym, przydatnym i ważnym narzędziem, żeby go nie znać.

GIT to wentyl bezpieczeństwa, dla Ciebie, ale i Twojego pracodawcy, dlatego jest podwójnie ważny i pożądany.

Po pierwsze, bezpieczni deweloperzy w bezpiecznym deweloperskim środowisku. Oznacza to ni mniej ni więcej tyle, że zanim cokolwiek, jakakolwiek nowa funkcjonalność, trafi do klienta, najpierw można nad nią bezpiecznie pracować na odrębnej gałęzi, a gdy nowa wersja przejdzie wszystkie testy – dopiero wtedy ujrzy światło dzienne.

Po drugie, mniejsze straty w razie czego. Coś nie wyszło na testach, a jednak wywróciło całą aplikację, która po udostępnieniu światu nowej funkcji całkiem przestała działać. Cóż, z systemem kontroli wersji dwie minuty i wracamy do punktu wyjścia, a więc do wersji sprzed poprawki i wszystko działa, jak dawniej.

Po trzecie, GIT pozwala na jednoczesną pracę wielu osób nad tym samym produktem, tak, by jedna nie przeszkadzała drugiej. System sam poinformuje Cię, że w pliku, który edytowałeś, ktoś wprowadził zmiany i teraz jest konflikt. Ba! Jeszcze powie kto i jakie zmiany wprowadził!

Po czwarte, piąte i siedemnaste – tych zalet jest zdecydowanie zbyt dużo, by wymieniać wszystkie w tym tekście. Mam nadzieję, że w tym miejscu już dokładnie wiesz, po co jest GIT i jak bardzo jest ważny. I jak bardzo nie stać ani Ciebie, ani Twojego pracodawcy na nieużywanie go w codziennej pracy.

GIT w 2019 roku to standard i nie umiejąc go, niestety, zostajesz w tyle. Jeśli myślisz o pracy w tej branży na poważnie, to stanowczo musisz go znać – przed wszystkim innym, nawet jeśli nie jesteś programistą, a tylko pośrednio masz do czynienia z kodem. Tester (czy nawet manager!), który potrafi zobaczyć co, kiedy i jak zmienia się w systemie, to prawdziwy skarb. Jeśli jeszcze takie osoby są w stanie przywrócić system do ostatniej działającej wersji, to jest to naprawdę imponujące.

Umieć GIT-a, czyli co?

Często spotykamy się z sytuacją, kiedy początkująca osoba pokazuje CV, w którym umie GIT-a na trzy gwiazdki z pięciu. Szybko okazuje się, że te trzy gwiazdki to tak naprawdę kombinacja trzech komend: git add, git commit i git push. A to jedynie wierzchołek góry lodowej, który jest stanowczo niewystarczający do płynnej komercyjnej pracy!

Czym są wspomniane trzy gwiazdki na pięć?

Solidne podstawy, które nie ograniczają się do trzech komend, a uwzględniają między innymi branche, porównywanie wersji i konieczność opisywania wprowadzanych zmian. GitFlow, czyli umiejętność pracy w grupie, a więc jak wspólnie rozwijać produkt, by praca szła sprawnie, a ludzie nie wchodzili sobie w drogę. Przywracanie kodu, gdy coś się zepsuje.

Warto przyjrzeć się filmikowi, który w fajny sposób tłumaczy podstawy. O GitFlow i przywracaniu kodu specjaliści z Atlassiana zrobili naprawdę fajne poradniki, które wszystkim gorąco polecam: pierwszy i drugi. Warta uwagi jest także ta gra online, która w interaktywny sposób uczy nawet bardziej wyrafinowanych mechanizmów GITa.

To, jak ważny w pracy programisty jest GIT, chcę zaznaczyć tym, że na tej liście zamieszczam aż dwa narzędzia z nim związane. Kolejnym jest System zarzadzania repozytoriami (z ang. Repository Management Tool).

System zarządzania repozytoriami

To miejsce, w którym zgrupowane są różne repozytoria kodu wielu projektów, współtworzonych przez wielu użytkowników. Nie każdy użytkownik jest w każdym projekcie i nie każde repozytorium jest dostępne dla każdego. Są systemy otwarte i zamknięte. To doskonałe miejsca, w których możesz znaleźć dobre (i złe, choć rzadziej i często odpowiednio podpisane) przykłady, duże i małe projekty, prywatne, komercyjne i otwarte, wewnętrzne i te, które widzi klient. Słowem – jest się z czego uczyć! W związku z tym, że najczęściej jest to oparte o GIT-a, możesz tam przeglądać niemal wszystko, jak błędy kodu dotyczące konkretnego repozytorium, aktywnych kontynuatorów projektu, sprawdzić, które zadania zostały ostatnio dodane do wersji produkcyjnej aplikacji.

Jest to także świetne narzędzie do rewizji kodu. Sprawne poruszanie się w tym systemie w firmie, w której przyjdzie Ci pracować lub już pracujesz, pomoże Ci w szybki sposób zorientować się, nad czym teraz pracuje Twoja drużyna, jaki jest aktualny stan aplikacji, a także umożliwi łatwą dyskusję o tworzonym kodzie. Jeśli dopiero zaczynasz przygodę z programowaniem, na pewno spędzisz w takich miejscach dużo czasu, przeglądając sugestie kolegów dotyczące Twojego kodu czy dobre praktyki programistów z całego świata.

GitHub

Najpopularniejszym z takich otwartych serwisów jest GitHub, który uchodzi za Facebooka dla programistów. Poza możliwością współpracy i pokazywania swoich projektów udostępnia szereg funkcji społecznościowych. Jest to także stolica kodu open source, dzięki czemu możesz tam znaleźć takie perełki, jak:

Na GitHubie każdy użytkownik może mieć wiele repozytoriów, każde z nich może być współdzielone z innymi. Serwis udostępnia możliwość tworzenia stron internetowych z repozytoriów.

podstawowa, dość rozbudowana wersja jest darmowa

wersja PRO jest dostępna od $7/miesięcznie

możliwość współpracy z innymi w jednym projekcie (maksymalnie z trzema osobami w wersji darmowej, w płatnej – bez limitu)

BitBucket

BitBucket firmy Atlassian świetnie integruje się ze wspomnianą wcześniej Jirą, w końcu to jeden producent. Oznacza to, że pewne działania w jednym z systemów automatycznie prześlą określone dane do drugiego, zmieniając na przykład status zadania czy umożliwiając przypięcie konkretnego kawałka kodu do związanego z nim zadania. Ogólna zasada działania jest zbliżona do GitHuba, ale BitBucket jest mniej popularny wśród społeczności. Za to szerzej wykorzystywany komercyjnie.

dwie opcje do wyboru – chmura i własny hosting

chmura – podstawowa wersja do 5 użytkowników jest darmowa, dodatkowe funkcje i więcej użytkowników – od $10/miesiąc

własny hosting – 30-dniowy darmowy okres próbny, potem od $10 jednorazowo

UpSource, GitLab i inne

Do innych popularnych systemów należą UpSource wyprodukowany przez firmę JetBrains, i GitLab. Znów – ogólna zasada jest taka sama. Różnice polegają np. na możliwości postawienia takiego systemu na prywatny (czy firmowy, w każdym razie zamknięty) użytek na własnym hostingu.

Nie musisz jednak uczyć się każdego z nich – jeśli potrafisz poruszać się w jednym, bardzo łatwo przerzucisz się na każdy kolejny. Na początek jednak polecam GitHuba. Jest popularny, ma wielu użytkowników, a mając tam konto, możesz w prosty sposób stworzyć swoje portfolio. Dzięki temu, że twórcy wolnego oprogramowania są trzonem społeczności githubowej, znajdziesz tam też wiele projektów, do których będziesz mógł dołączyć i w ten sposób uczyć się i zdobywać doświadczenie w realnych projektach. Jak to zrobić? Załóż konto, wejdź w sekcję zadań (Issues), przejrzyj to, co jest na liście, poczytaj dyskusje na temat funkcjonalności, sprawdź kod, który czeka na rewizję. Kto wie, może nawet dołożysz swoją cegłówkę do lepszego software'u na świecie.

Edytor kodu

Jeśli pracujesz bezpośrednio z kodem, to potrzebujesz narzędzia, w którym będziesz go pisać, czytać, sprawdzać i (często) testowo uruchamiać, a to wszystko w sposób szybki i efektywny. Nie powiem Ci, który edytor kodu jest najlepszy, bo to zależy od wszystkiego – począwszy od języka, w którym piszesz, przez wymogi firmy, w której pracujesz, aż po własne widzimisię i preferencje. Jeśli możesz pomarudzić, wybierz po prostu to, co jest dla Ciebie i Twojej pracy optymalne i najwygodniejsze i nie zwracaj uwagi na internetowe batalie.

Na początku, gdy chcesz wybrać ten pierwszy edytor kodu lub po prostu szukasz czegoś nowego dla siebie, a nikt Ci niczego nie narzuca z góry, warto spojrzeć na kilka rzeczy:

technologia – bo są takie dedykowane tylko kilku językom, więc warto sprawdzić, czy wybrany przez Ciebie jest w ogóle obsługiwany, popularność – im popularniejsze jest dane narzędzie, tym większa szansa na fajne i wartościowe wsparcie społeczności, nie tylko producentów, cena – na początek nie inwestuj w profesjonalne narzędzie, za którego cenę równie dobrze możesz kupić nowy komputer; wystarczy w zupełności któreś z darmowych open sourcowych rozwiązań, licencja – jeśli chcesz na tym od razu zarabiać, sprawdź, czy licencja Ci na to pozwala; wiele darmowych wersji ma w założeniach służyć tylko celom edukacyjnym, prostota i szybki start – nie potrzebujesz kokpitu promu kosmicznego do napisania pierwszej strony w HTML czy kalkulatora w Pythonie, a mnogość opcji czy potrzeba wielogodzinnej konfiguracji przysporzy niepotrzebnego stresu, a niczego nie nauczy. Bo skąd masz wiedzieć, jak konfigurować to poprawnie i czego właściwie chcesz od tego narzędzia?

Jeśli potrzebujesz konkretów, to polecam Ci:

Eclipse

Eclipse został napisany m.in. w Javie, do programowania w Javie… i nie tylko. Dzięki nakładkom może służyć do programowania w wielu różnych językach, a wbudowany kompilator pomaga podglądać kod, czy działa, za pomocą jednego kliknięcia myszą. Podstawowa, domyślna konfiguracja wystarczy do wielu rzeczy, nawet nie tak prostych projektów.

darmowy do użytku komercyjnego

projekt open source – możesz dołożyć swoje trzy grosze do rozwoju tego narzędzia!

Windows / Linux / Mac

Visual Studio

Jeśli pracujesz z produktami ze stajni Microsoftu – wtedy integracja ze wszystkimi innymi produktami, z którymi i tak masz styczność, jest świetna. Możesz poczuć, że wszystkie produkty tworzy jedna firma i dzięki temu wspaniale ze sobą współdziałają.

od $499 jednorazowo lub $45/miesiąc

płatne jednorazowo – tylko Windows, przy miesięcznej subskrypcji – Windows / Mac

Visual Studio Code

Jeśli potrzebujesz nieskomplikowanego narzędzia do pracy z kodem, użyj Visual Studio Code. Nie przytłacza ilością funkcji, co definitywnie jest plusem dla początkujących.

darmowy do użytku komercyjnego

projekt open source – możesz dołożyć swoje trzy grosze do rozwoju tego narzędzia!

Windows / Linux / Mac

Jeden z produktów studia JetBrains

Jeśli czujesz, że potrzebujesz czegoś więcej, pod każdym względem. Więc opcji, więcej możliwości, więcej udogodnień i usprawnień.

komercyjne, płatne narzędzia – różne, dla różnych technologii i języków (w tym różne ceny)

czasem dostępne są wersje Community, czyli darmowe proejkty open source – przeważnie mają trochę mniej możliwości, np. PyCharm Community czy InteliJ IDEA Community Edition

To już nie tylko edytory kodu

Produkty takie jak Eclipse, Visual Studio czy JetBrains IntelliJ IDEA to nie tylko edytory kodu, ale całe środowiska programistyczne (z ang. IDE, Integrated Development Environment), które mogą znacznie, znacznie więcej. Potrafią niemal wszystko, co jest potrzebne programiście do pracy. Są bardziej przedłużeniem Twoich palców, osobistym asystentem, a nie tylko narzędziem.

Najważniejsze, by środowisko programistyczne, czy edytor kodu, dobrać do swoich potrzeb, umiejętności i możliwości, nigdy na odwrót. Zbyt dużo opcji może zniechęcić, z kolei brak pewnych ułatwień na początek (jak wbudowany kompilator czy kolorowanie składni), też nie zawsze jest dobrym rozwiązaniem, bo rodzi niepotrzebne frustracje.

System operacyjny

Być może zabrzmi to niedorzecznie, ale żeby lepiej pracować z kodem i wokół niego, musisz naprawdę umieć pracować na komputerze. I mamy tu na myśli coś więcej niż tylko Pakiet Office i system Windows w stopniu średnio-zaawansowanym. Jeśli chcesz wiązać swoją przyszłość z IT, musisz nauczyć się korzystać z komputera lepiej niż przeciętny Kowalski. O wiele lepiej.

System nie powinien mieć przed Tobą żadnych tajemnic, a zmiana i edycja plików systemowych czy konfiguracyjnych, nie może przysparzać kłopotów. Czasem tworzony przez Ciebie lub Twoich kolegów software może zepsuć pewną część systemu operacyjnego, a zwykłe wyłączenie i włączenie ponownie, w takich przypadkach niewiele pomoże.

Terminal, wiersz poleceń, linia komend…

Jak zwał, tak zwał. Jest w każdym systemie i poruszanie się po jakiejś tego formie przyda się prędzej niż później. Prawdopodobnie nikt nie będzie od Ciebie wymagać, by łączyć się w terminalu zdalną sesją SSH, czy edytować pliki w Vimie, jednak odpalenie prostych skryptów, czy zainstalowanie pewnych rzeczy, może być wymagane. Na początek pewnie tylko przekopiujesz parę komend z dokumentacji, jednak warto się zorientować, co tak naprawdę robisz, żeby uniknąć niewiedzy i robienia czegoś na wiarę. Bez zrozumienia, niewiele się uczymy.

Nie musisz być czarnoksiężnikiem, który ma na wszystko zestaw skryptów i magicznych funkcji. Wystarczy, że z pomocą Internetu będziesz wiedzieć, co tak naprawdę wykonują używane komendy. Ta wiedza przyda Ci się na wypadek, gdyby coś się zepsuło lub po prostu nie zadziałało.

I pamiętaj – zawsze dobrze żyj z administratorami serwerów w firmie, bo nie dość, że naprawdę mogą Ci wiele razy pomóc, to i chętnie pokażą nowe sztuczki czy funkcje, o których nie miałeś pojęcia, nawet jeśli z danym systemem pracujesz od wielu lat.

Wyszukiwarka internetowa

Przyznam szczerze, że ostatni punkt na tej liście wydaje się najbardziej podstawowy, a jednak najtrudniejszy do nauczenia się. Każdy z nas korzysta z wyszukiwarki Google, nie ma w tym nic trudnego. Zauważ jednak, że każdy z nas inaczej formułuje zapytania, gdy czegoś szuka. Czasem są to jedynie nieznaczne zmiany, a w innych przypadkach to kompletnie inaczej sformułowane pytanie.

Zaznaczam to dlatego, że sposób, w jaki formułujesz pytania w wyszukiwarce internetowej, ma bardzo duży wpływ na to, co dostajesz w odpowiedzi. Również to, jakiego silnika wyszukiwania używasz, może mieć znaczenie. Nic dziwnego więc, że wpisując tę samą frazę w innej wyszukiwarce, np. DuckDuckGo, uzyskasz kompletnie inny wynik, niż ten z Google.

Kiedyś formułowania zapytań do wyszukiwarki uczono na lekcjach informatyki i wcale nie było to takie proste jak dzisiaj. Teraz nie jest to konieczne, bo wyszukiwarki są dla nas bardziej tolerancyjne i próbują myśleć za nas. Jednak w przypadku poszukiwania bardziej specjalistycznej wiedzy, może to już stanowić pewne wyzwanie - dla pytającego, jak i dla wyszukiwarki, by pokazać faktycznie najlepsze możliwe odpowiedzi.

Nie da się tego nauczyć. To przychodzi z doświadczeniem. Są jednak dwie rzeczy, na które warto zwrócić uwagę, poszukując odpowiedzi na pytania.

Formułuj zapytania w języku angielskim

Ponad 90% zasobów w Internecie jest dostępnych wyłącznie w tym języku. Ponadto, angielski jest ogólnoświatowym standardem, nie tylko w IT. Korzysta z niego kilkaset razy więcej osób niż tych posługujących się wyłącznie językiem polskim. Im więcej osób i zasobów do przeszukania, tym większa szansa na znalezienie wyniku lepszej jakości.

Podpatruj bardziej doświadczonych

Podczas programowania w parach lub gdy pomaga Ci ktoś z choćby odrobinę większą wiedzą, czy doświadczeniem, staraj się patrzeć mu przez ramię i notować w pamięci, jak pyta wujka Google i jakie wyniki otrzymuje. Czasem informacja jest na wyciągnięcie ręki, jednak szukasz wszystkiego, tylko nie tego, co jest potrzebne. To całkowicie naturalne. Wtedy warto zasięgnąć opinii kogoś, kto siedzi obok. Gdy patrzysz na problem świeżym okiem, szukasz informacji zupełnie inaczej, nie zdając sobie nawet z tego sprawy. Jedno pytanie i odpowiedź, na której zależało Ci od początku, pojawia się już w pierwszym wyniku. W takiej sytuacji przyjrzyj się, jak inna osoba podeszła do problemu.

Kiedyś jakiś mądry człowiek powiedział, że najtrudniej jest nie znaleźć odpowiedź, ale postawić właściwe pytanie. I w stu procentach się z tym zgadzam. I to do Ciebie przyjdzie, tylko potrzeba czasu i doświadczenia. I miliardów przetestowanych zapytań.

Na koniec

Najważniejsza rzecz - pamiętaj, że to wszystko, o czym pisałam wyżej, to tylko narzędzia. Mają Ci pomóc wykonywać pracę – to ich jedyne zadanie. Dlatego pamiętaj, że bez względu na to, z czego przyjdzie Ci korzystać, za sukces projektu i dobry produkt, odpowiadać będą Twoje umiejętności i wiedza.

Do tego, bardzo łatwo można wpaść w pułapkę, w której odkrywasz coraz to nowsze, lepsze, bardziej wyrafinowane narzędzia, które na pewno od razu przyspieszą Twoją pracę czy zrobią ją przyjemniejszą i mniej męczącą. Problem w tym, że czas, który możesz poświęcić na coś o wiele przydatniejszego, zaczynasz poświęcać na poznawanie kolejnych aplikacji i systemów, bo to kolejne rozwiązanie na pewno będzie lepsze od tego, które masz teraz. Mówię z własnego doświadczenia – poszukiwanie nowych narzędzi uzależnia. Nie daj sobie wmówić, że koniecznie musisz użyć X, bo sprawi, że będziesz pracować lepiej, a dzięki oszczędności czasu, będziesz wychodzić z pracy pół godziny szybciej. Tak się nie stanie.

Dyskusje o wyższości jednego systemu nad drugim mają sens tylko w przypadku omawiania konkretnego projektu, a i wtedy nie zawsze są na miejscu. W każdym innym przypadku możesz je spokojnie uznać za jałowe. To często wygląda podobnie do rozmowy o wyższości jednego koloru nad drugim – kwestia gustu i celu użycia jednocześnie.

Jeśli coś działa dla Ciebie, to znaczy, że jest wystarczająco dobre. Kropka.

O Autorce

Jestem z CODE:ME. Jesteśmy programistami i pasjonatami nowych technologii. Na co dzień organizujemy kursy i szkolenia z programowania, ale główną ideą nie jest nauka per se, ale i szerzenie świadomości, jak to w praktyce wszystko wygląda. Takie mamy czasy, że zostać programistą wydaje się bardzo łatwo, a tak naprawdę to ciężka i mozolna praca. To ona oraz ludzie, którzy Cię otaczają, przede wszystkim sprawiają, że możesz stać się profesjonalistą.

Jeśli chcesz wiedzieć więcej o nas, czy o największej technologicznej społeczności w północnej Polsce, którą tworzymy – Hackerspace Trójmiasto, odwiedź nasz profil na Facebooku.

Ja nazywam się Magdalena Eichler i jestem Wiceprezes CODE:ME oraz współzałożycielką Hackerspace Trójmiasto.

Najlepsze narzędzia do programowania na rok 2022

W celu stworzenia krótkiego kodu nie warto uruchamiać całego środowiska ze skomplikowanymi narzędziami. Przy prostych zadaniach sprawdzi się zwykły edytor pozwalający wybrać język kodowania i odpowiednio prezentujący składnię. Edytory w tym dziale to potrafią. Dodatkowo w Visual Studio Code w zależności od języka możemy uruchamiać w interaktywnym oknie kawałki kodu. A jeśli chcemy tworzyć kompletne aplikacje, polecam Visual Studio 2022 Community.

Notepad++ - najpopularniejszy edytor dla programistów

Jeden z najpopularniejszych edytorów tekstu dla programistów i webmasterów. Notepad++ wyposażony jest w wiele udogodnień związanych z pisaniem i edytowaniem kodu programów, skryptów oraz stron internetowych. Notepad++ podświet­la składnię C, C++, C#, Java, XML, HTML, TeX, PHP, JavaScript, ASP, VB/VBS script; obsługuje autouzupełnianie kodu, wyszukiwanie i zamianę ciągów znaków za pomocą wyrażeń regularnych, a także wyszukiwanie i podświetlanie par nawiasów (otwierającego i zamykającego). Do dyspozycji mamy funkcję edycji z podziałem ekranu, mechanizm kart umożliwiający pracę z wieloma plikami jednocześnie, tworzenie makr oraz obsługę wtyczek zwiększających możliwości programu.

Wybieramy składnię do podświetlania

Zanim zaczniemy tworzyć kod źródłowy lub go przeglądać, warto na nowej karcie programu zdefiniować, jaki to będzie język.

1. Po uruchomieniu programu klikamy w górnym lewym rogu na Nowy.

2. Następnie zaczynamy wpisywać kod źródłowy lub od razu klikamy na górnym pasku na Składnia i na przykład na R i Ruby (jeśli nasz kod jest w języku Ruby).

3. Od tej pory dla tej zakładki wszystkie dane będą interpretowane jako dane składni języka Ruby.

Aktywujemy wtyczki

W celu aktywowania konkretnej wtyczki należy kliknąć na górnym pasku na Wtyczki, Zarządzaj wtyczkami.

Następnie zaznaczamy wybraną wtyczkę na liście w zakładce Dostępne i klikamy na Instaluj.

Visual Studio 2022 Community - całe środowisko

Visual Studio Community to darmowa, podstawowa wersja popularnego środowiska programistycznego Microsoft, przeznaczona dla uczniów, studentów, twórców oprogramowania open source oraz indywidualnych deweloperów. Visual Studio pozwala na tworzenie aplikacji dla systemów Windows, Android, iOS, komputerów Mac, aplikacji webowych oraz usług w chmurze. Kod możemy pisać w języku C/C++, C#, Visual Basic, F#, Python i wielu innych. Do dyspozycji mamy również aktywny ekosystem z dostępem do wielu rozszerzeń (takich jak GitHub, ReSharper i Visual Assist). Zamieszczony na płycie instalator pobiera z internetu pliki niezbędne do zainstalowania Visual Studio.

Pierwsze kroki

1. Po uruchomieniu instalacji należy wybrać komponenty, które będą potrzebne w trakcie pracy z programem. Głównie chodzi o pobranie i przygotowanie środowisk programistycznych, które pozwolą na uruchomienie i testowanie całych aplikacji, a nie jedynie pisanie kodu. W przykładzie instalujemy pakiety do tworzenia w języku Python – zaznaczamy opcję Opracowanie zawartości w języku Python i klikamy w dolnym prawym rogu na Zainstaluj.

2. Po zakończeniu instalowania wybieramy ustawienia środowiska programistycznego oraz motyw i klikamy na Uruchom program Visual Studio.

3. Teraz klikamy na Utwórz nowy projekt.

4. Ponieważ wybraliśmy dodatkowo instalację zawartości języka Python, możemy wybrać opcję Aplikacja języka Python i kliknąć na Dalej, aby utworzyć aplikację w tym języku. W kolejnym oknie nadajemy nazwę aplikacji i klikamy na Utwórz. Możemy rozpocząć tworzenie kodu.

5. Po napisaniu kodu przetestujemy go, klikając na górnym pasku na Rozpocznij. Spowoduje to uruchomienie napisanego przez nas kodu.

Możemy skorzystać z opcji debugowania kodu i przechodzić linijka po linijce przez całość. Wystarczy kliknąć prawym przyciskiem myszy na kod i wybrać opcję Uruchom z debugowaniem.

Visual Studio Code - szybkie narzędzie

Visual Studio Code to jeden z najpopularniejszych darmowych edytorów kodu źródłowego, stworzony przez Microsoft jako darmowe narzędzie z licencją MIT. Program jest wysoce konfigurowalny, oferuje kolorowanie składni dla wielu języków, inteligentne uzupełnianie kodu, fragmentów, refaktoring kodu i wbudowany Git. Użytkownicy mogą zmieniać wygląd programu za pomocą motywów, skróty klawiaturowe, a także instalować rozszerzenia, które dodają dodatkowe funkcje. Oprócz wersji na Windows Visual Studio Code ma wersje na systemy Linux i macOS.

Programujemy w wybranym języku

1. Zanim zaczniemy pracę w Visual Studio Code, musimy sprawdzić, czy nasz język jest wspierany i czy można zainstalować dodatkowe narzędzia ułatwiające dalszą pracę.

2. Po uruchomieniu programu klikamy na Tools and Languages.

3. Po lewej stronie na liście

wyszukujemy język, który nas interesuje, i go wybieramy. Po prawej stronie znajdziemy szczegółowe informacje dotyczące konkretnego języka lub rozszerzenia i instalujemy go, klikając na Install.

4. Two­rzymy no­­­wy dokument, klikając kolejno na File i New File.

5. Następnie klikamy na File, Save As i nadajemy naszemu plikowi dowolną nazwę i jako rozszerzenie podajemy cpp – domyślne rozszerzenie plików źródłowych w C++.

Dzięki temu dla wybranego pliku zostanie zastosowane odpowiednie podświetlanie składni.

Jarosław Kułak
Jarosław Kułak

Leave a Comment