Zawody IT: programista .NET

W internecie, również w naszym portalu, nie brakuje ogłoszeń skierowanych do programistów .NET. Z dużej liczby takich rekrutacji łatwo wywnioskować, że to bardzo poszukiwani na rynku pracy specjaliści. Postanowiliśmy zatem przybliżyć profil programisty .NET oraz zwięźle opisać tę technologię.

Powracamy do cyklu Zawody IT, w ramach którego przybliżaliśmy już kilkakrotnie pracę różnych specjalistów IT. Tym razem koncentrujemy się na programistach .NET. Zanim napiszemy nieco więcej o tej technologii, warto kilka słów poświęcić jej historii. Microsoft rozpoczął pracę nad .NET w 1990 roku, nadając wtedy projektowi nazwę Next Generation Windows Services. 13 lutego 2002 roku pojawiła się pierwsza wersja .NET Framework. Od tego czasu Microsoft nieustannie pracuje nad rozwojem .NET, wypuszczając na rynek coraz nowsze wersje frameworku.

.NET – technologia i idea

Warto od razu zauważyć, że .NET to nie tylko technologia, ale również idea. U jej podstaw leży przeświadczenie, że internet jest bardzo ważnym źródłem komunikacji pomiędzy różnymi urządzeniami (np. smartfony, tablety, komputery). Microsoft .NET to taki sposób tworzenia aplikacji, który pozwala na łatwą wymianę informacji pomiędzy różnymi systemami IT. Jednocześnie platforma .NET dostarcza technologie, które umożliwiają realizację opisanej wcześniej idei.

Podstawowe bloki platformy .NET:

  • CLR (Common Language Runtime) - wspólne środowisko uruchomieniowe, to trzon platformy, ładuje i zarządza typami .NET. To środowisko uruchomieniowe, umożliwiające pracę na wielu różnych systemach operacyjnych. CLR jest maszyną wirtualną, wykonującą kod w postaci CIL. Warto dodać, że w CLR znajduje się również mechanizm kontroli bezpieczeństwa, a także moduł odpowiedzialny za czyszczenie pamięci (Garbage Collection), usuwający obiekty, dla których brak już referencji.

  • CTS (Common Type System) - wspólny system typów, blok opisujący dane, które udostępnia środowisko uruchomieniowe. Chodzi o to, że programista w .NET może używać dowolnych składni w różnych językach zgodnych ze specyfikacją CLI, ale przynajmniej część typów danych (np. class, string, array itd.) musi być określona przez CTS. Ten ostatni definiuje nie tylko same typy, ale również ich zachowanie.

  • CLS (Common Language Specification) - specyfikacja wspólnego języka. To właśnie ten blok definiuje, jaki podzbiór CTS powinien zostać wdrożony, żeby dany język był kompatybilny z innymi, które wykorzystują CLS. Innymi słowy, CLS określa zasady współpracy rożnych języków programowania.  

Programista .NET – jakie umiejętności powinien posiadać?

Jeśli przeanalizować ogłoszenia dotyczące rekrutacji programisty .NET, można zauważyć, że najczęściej pracodawcy oczekują następujących umiejętności: doświadczenie w budowaniu aplikacji w oparciu o .NET, znajomość języka C#, HTML, JavaScript, jQuery, CSS, ASP.NET MVC, baz danych SQL, znajomość wzorców projektowych i VBA. Takie wymagania wynikają z faktu, że programiści .NET to często specjaliści full-stackowi, czyli zajmują się zarówno front-endem, jak i back-endem. Oczywiście w zależności od konkretnej firmy, mogą pojawić się również dodatkowe wymagania od kandydatów. Najczęściej opisywany przez pracodawców zakres obowiązków to implementacja rozwiązań back-endowych i WEB w technologii .NET, sporządzanie dokumentacji technicznej, współpraca z osobami zajmującymi się front-endem i testerami, tworzenie nowych aplikacji i utrzymywanie dotychczasowych. Chociaż często w ogłoszeniach wymieniana jest konieczność znajomości języka C#, w rzeczywistości jednak z platformy .NET można korzystać, znając również inne języki (np. C++, Visual Basic itd.), ponieważ tutaj podstawa jest idea wykorzystania wspólnego języka (Common Language Specification). Kompilacja programu dokonywana jest do języka pośredniego CIL, a dopiero potem metoda klasy jest kompilowana do języka maszynowego.

Programista .NET musi znać co najmniej jedno środowisko programistyczne .NET. Najpopularniejszym z nich jest Visual Studio, wspierające bardzo wiele różnych języków programowania. Według danych ze StackOverflow, używa go na świecie 35,6% programistów. To zintegrowane środowisko posiada edytor kodu, debugger, ale również takie elementy, jak narzędzia do tworzenia aplikacji, klas, projektowania baz danych i nie tylko. Visual Studio pozwala tworzyć zarówno samodzielne aplikacje, jak i usługi sieciowe, a nawet strony internetowe. Inne środowiska programistyczne, które mogą być alternatywą dla Visual Studio, to na przykład MonoDevelop lub SharpDevelop. Programista powinien znać również gruntownie środowisko .NET Framework, które jest najbardziej znaną platformą .NET (inne to np. Mono, DotGNU) oraz ASP.NET do tworzenia aplikacji internetowych i stron www.

Zapotrzebowanie na programistów .NET jest duże zarówno na świecie, jak i w Polsce. Nic nie wskazuje na to, żeby miało dojść w tym względzie do jakiejś zasadniczej zmiany. Dlatego jeśli planujecie karierę specjalisty od technologii .NET i zdobędziecie odpowiednią wiedzę, nie powinniście mieć problemów ze znalezieniem atrakcyjnej pracy.