Umiejętności praktyczne, których potrzebujesz do rozpoczęcia pracy jako programista cz.2

W artykule Umiejętności praktyczne, których potrzebujesz do rozpoczęcia pracy jako programista cz.1 przedstawiłem charakterystyczne umiejętności, które musi posiadać każdy Programista .NET. Nie jest to jednak pełny zasób wiedzy, którą należy sobie przyswoić przed rozpoczęciem przygody w branży IT. W tym artykule będę kontynuował temat, dlatego też postaram się przedstawić pozostałe kompetencje, które będą dla Ciebie najprzydatniejsze na drodze do zostania programistą NET.

Wzorce projektowe

Wzorzec projektowy to uniwersalne i sprawdzone w praktyce rozwiązanie często pojawiających się, powtarzalnych problemów projektowych. Pokazuje powiązania i zależności pomiędzy klasami oraz obiektami i ułatwia tworzenie, modyfikację oraz utrzymanie kodu źródłowego. To rozwiązanie problemu w pewnym kontekście. Dzięki wzorcom projektowym w wielu przypadkach nie musimy wymyślać rozwiązania danego problemu na nowo, ponieważ został on już wcześniej rozwiązany i możemy skorzystać z „gotowca”. Wzorzec projektowy jest opisem rozwiązania, a nie jego implementacją. Lista podstawowych wzorców projektowych: Strategia, Obserwator, Dekorator, Metoda Fabrykująca, Singleton, Polecenie, Adapter, Fasada, Metoda Szablonowa, Iterator, Kompozyt, Stan, Proxy.

Bazy danych

Baza danych to zbiór danych zapisanych zgodnie z określonymi regułami, zazwyczaj zorganizowany jako zestaw powiązanych ze sobą tabel. Do tworzenia i modyfikowania baz danych oraz do umieszczania, edytowania, usuwania i pobierania danych z baz danych służy język SQL. Najczęściej wykorzystywanym systemem zarządzania bazą danych jest Microsoft SQL Server (MS SQL), który  jako język zapytań wykorzystuje przede wszystkim Transact-SQL (T-SQL). T-SQL oznacza transakcyjny SQL, czyli rozszerzenie języka SQL, umożliwiające tworzenie konstrukcji takich jak pętle, instrukcje warunkowe oraz zmienne. Jest używany do tworzenia wyzwalaczy, procedur i funkcji składowanych w bazie.

Praca z bazą danych to bardzo często nieodłączny element pracy programisty .NET, dlatego warto dobrze opanować podstawy baz danych. Powinieneś wiedzieć przynajmniej: jak działają bazy danych, jak wykonywać podstawowe zapytania do bazy danych w celu odczytania danych, jak operować na danych w bazie: dodawać je, aktualizować i usuwać, jak łączyć dane sobą. Powinieneś także wiedzieć, w jaki sposób operować na danych w bazie z poziomu kodu.

ORM

Mapowanie obiektowo-relacyjne (Object-Relational Mapping ORM) to sposób odwzorowania obiektowej architektury na bazę danych (lub inny element systemu) o relacyjnym charakterze. Implementacja takiego odwzorowania stosowana jest m.in. w przypadku, gdy tworzony system oparty jest na podejściu obiektowym, a system bazy danych operuje na relacjach. W przypadku platformy .NET najpowszechniejszymi rozwiązaniami ORM są Entity Framework, NHibernate oraz Dapper.

Parsowanie danych

Parsowanie danych polega na przetwarzaniu informacji, ich porządkowaniu i dostarczaniu gotowych danych. Na co dzień programista pracuje z danymi, które najczęściej zapisane są w jednym z dwóch formatów: JSON (JavaScript Object Notation) albo XML (Extensible Markup Language). Dane tekstowe zapisane w tych formatach bardzo często służą do komunikacji między różnymi systemami czy modułami aplikacji. Musisz wiedzieć jak sparsować dane, czyli zamienić dane tekstowe (XML/JSON) na odpowiadającą im strukturę obiektową.

Algorytmy i struktury danych

Algorytm to sposób postępowania prowadzący do rozwiązania określonego problemu. Przykładem może być kilka algorytmów stosownych do sortowania elementów. Każdy z nich ma inne właściwości, jeśli chodzi o prędkość, wymagane zasoby pamięciowe czy rodzaje obsługiwanych danych. Istotą jest umiejętność pisania własnych algorytmów, rozwiązujących problem, na który natrafiliśmy. Ściśle powiązanym zagadnieniem z algorytmami są struktury danych. Struktury danych służą do przechowywania danych w pamięci komputera. To właśnie na nich operują algorytmy. Istnieje kilka struktur danych, z którymi należy się zapoznać: tablice, listy, stosy, kolejki, drzewa. Zrozumienie struktur danych i algorytmów pozwala w łatwy i elegancki sposób rozwiązywać wiele różnych problemów programistycznych.

Narzędzia

Najczęściej wykorzystywanym narzędziem w codziennej pracy programisty jest zintegrowane środowisko programistyczne (IDE). W przypadku platformy .NET i systemów z rodziny Windows jest to Microsoft Visual Studio. Visual Studio udostępnia złożone funkcjonalności obejmujące edycję kodu źródłowego, kompilowanie kodu źródłowego, tworzenie zasobów programu (tzn. formatek/ekranów/okien dialogowych, menu, raportów, elementów graficznych tj. ikony, obrazy), tworzenie baz danych, serwisów, komponentów i innych. Dobra znajomość IDE znacznie ułatwia i przyśpiesza proces wytwarzania oprogramowania.

Narzędziem powszechnie wykorzystywanym do zarządzania bazą danych (MS SQL) jest SQL Server Management Studio. Jest to zintegrowane środowisko do zarządzania wszystkimi komponentami (baza danych, usługi analityczne, usługi raportowe itd.), wchodzącymi w skład Microsoft SQL Server. Zawiera narzędzia do konfiguracji, monitorowania i administrowania instancjami SQL Server. Umożliwia budowę zapytań i skryptów, zawiera zarówno edytor skryptów, jak i narzędzia graficzne.

Kontrola wersji

Kontrola wersji to nieodłączny element w procesie tworzenia oprogramowania. System kontroli wersji pozwala na pracę kilku programistów nad tym samym kodem w tym samym czasie i łączyć wprowadzane zmiany ze sobą. Kontrola wersji pozwala także na śledzenie historii zmian wprowadzanych do różnych plików całego projektu. Obecnie najczęściej wykorzystywanym systemem kontroli wersji jest TFS (Team Foundation Server) albo GIT.

Testy jednostkowe

Testy jednostkowe to testy pisane przez programistę, które pozwalają zweryfikować poprawność działania pojedynczych elementów (jednostek) programu – np. metod lub obiektów. Testowany fragment programu poddawany jest testowi, który wykonuje go i porównuje wynik z oczekiwanymi wynikami. Testy jednostkowe na platformie .NET tworzy się przy pomocy frameworków NUnit, bądź XUnit.

Debugowanie

Debugowanie aplikacji to proces związany z naprawą błędów w kodzie, przez co jest zazwyczaj bardzo nielubiany przez programistów. W praktyce debugowanie oznacza śledzenia przebiegu programu krok po kroku. Aplikacje uruchamiane na platformie .NET Framework można łatwo debugować za pomocą Visual Studio. Musisz liczyć się z tym, że sporą część czasu spędzisz na zastanawianiu się, dlaczego Twój kod nie działa. Dlatego warto dobrze opanować tę umiejętność.

Metodyki tworzenia oprogramowania

Organizacja pracy zespołu to kolejny bardzo ważny element podczas procesu wytwarzania oprogramowania. Istnieje wiele metodyk opisujących jak należy to robić. W praktyce większość zespołów stosuje (albo przynajmniej stara się stosować) Scrum. Scrum zakłada, że oprogramowanie jest tworzone w wyszczególnionych odstępach czasowych, tzw. sprintach, w czasie których zespół ma za zadanie wykonać z góry określone wymogami zadania. Nad zespołem czuwa Scrum Master, który jest raczej pomocnikiem niż liderem zespołu. Oczywiście jest to tylko drobny zarys metodyki nurtu zwinnego.

Podsumowanie

Nauka programowania, szczególnie w początkowej fazie, nie jest niczym prostym. Wymienione przeze mnie umiejętności już tworzą dość długą listę, a przecież wcale nie opisałem wszystkiego. Możesz teraz czuć się trochę przytłoczony i bardzo możliwe, że nie rozumiesz większości poruszonych zagadnień. Nie martw się tym 😊 Wszystkiego można się nauczyć. Skoro mi się udało, to dlaczego tobie ma się nie udać? Potrzebna jest tylko odpowiednia motywacja, cierpliwość i konsekwencja.


Bądź na bieżąco!

Dziękuję za przeczytanie tego artykułu i mam nadzieję, że spotkamy się jeszcze na moim blogu. Jednocześnie mam do Ciebie wielką prośbę: jeśli cokolwiek co przeczytasz na tym blogu uznasz za wartościowe, to KONIECZNIE mi o tym napisz (w komentarzu, bądź mailowo). Każdy potrzebuje nieco motywacji i znacznie łatwiej będzie mi usiąść do tworzenia kolejnego materiału wiedząc, że Tobie też się to przydaje. Zachęcam Cię do polubienia strony na Facebooku oraz subskrybowania kanału na YouTube.

Polub stronę na Facebooku

Chcesz otrzymywać powiadomienia o nowych artykułach? W takim razie zapraszam Cię do polubienia strony na Facebooku. Miej pewność, że nie przegapisz kolejnych postów!

Subskrybuj kanał na YouTube

Wkrótce na YouTube pojawią się praktyczne kursy dotyczące programowania aplikacji na platformę .NET.