Blog IT, Blog Marketing

Pytania rekrutacyjne .NET wraz z odpowiedziami

Pytania rekrutacyjne .NET wraz z odpowiedziami

Magdalena Uszyńska , 24.10.2022 r.

Pytania rekrutacyjne .NET

Z jakimi pytaniami z języka programowania .NET możesz się spotkać na rozmowie rekrutacyjnej? Poniżej przedstawiamy 21 pytań, które warto znać, jeśli ubiegasz się o stanowisko programisty .NET.

1. Różnice pomiędzy klasą a obiektem

Zarówno klasy, jak i obiekty są podstawą języka programowania C#. Obiekt ma konkretne wartości i można na nim wykonywać dalsze operacje. Klasa jest ogólnym zbiorem obiektów o różnych wartościach.

2. Czym jest klasa abstrakcyjna

To rodzaj klas, dla których nie można tworzyć obiektów. To klasa, która została zadeklarowana za pomocą słowa kluczowego. Można po niej dziedziczyć.

3. Czym jest enkapsulacja (hermetyzacja)?

Ukrywanie w obiektach pewnych funkcji, do których użytkownik obiektów nie powinien mieć dostępu np.ukrycie możliwości zmiany wartości w konkretnym obiekcie lub ukrycie danych przy pomocy modyfikatora private.

Senior Salesforce Developer 25000 - 30000 PLN

Praca zdalna
Aplikuj

Analityk Systemowy 8000 - 15500 PLN

Praca zdalna
Aplikuj

4.Czym jest dziedziczenie i jakie ma zalety?

Dziedziczenie jest mechanizmem dzielenia funkcjonalności pomiędzy poszczególnymi klasami (klasa może dziedziczyć po innej klasie atrybuty i zachowania). Klasy dziedziczące to inaczej klasy pochodne. Klasy, po których dziedziczą inne klasy to klasy bazowe. Z jednej klasy bazowej można uzyskać dowolną liczbę klas pochodnych. Główną zaletą dziedziczenia jest możliwość ponownego wykorzystania napisanego wcześniej kodu.

Dziedziczenie umożliwia dostosowanie klas będących niżej w hierarchii do swoich potrzeb, a także wprowadza modularność, czyli umożliwia wprowadzanie nowych funkcjonalności.

5. Czym jest Garbage Collector i jak działa?

Garbage Collector jest pewnego rodzaju odśmiecaczem pamięci. Pozwana na automatyczne zarządzanie dynamicznie przydzieloną pamięcią. Polega na sprawdzeniu wszystkich obiektów i zwalnianiu tych, dla których nie ma aktualnych referencji (czyli tych fragmentów pamięci, które nie są potrzebne).

6. Czym jest SOLID?

To zbiór zasad, którymi należy się kierować, korzystając z obiektowych języków programowania. Skrót SOLID pochodzi od konkretnych zasad:

  • S(ingle responsibility), czyli zasada jednej odpowiedzialności;
  • O(pen/closed principle), czyli zasada otwarte/zamknięte – klasy powinny być otwarte na rozszerzenia i zamknięte na modyfikacje;
  • L(iscov Substitution), czyli zasada podstawienia Liskova – funkcje które używają wskaźników lub referencji do klas bazowych, muszą być w stanie używać również obiektów klas dziedziczących po klasach bazowych, bez dokładnej znajomości tych obiektów;
  • D(ependency inversion principle), czyli odwrócenia zależności – Wysokopoziomowe moduły nie powinny zależeć od modułów niskopoziomowych. Zależności między nimi powinny wynikać z abstrakcji.

7. Wady i zalety Singletona

Singleton to kontrowersyjny wzorzec projektowy, choć niektórzy programiści mówią na niego ”antywzorzec”. Trzeba dokładnie wiedzieć, w jakich okolicznościach można z niego skorzystać. Zalety Singletona to: nie jest ograniczony do jednej instancji (przy niewielkiej zmianie tego podejścia można zarządzać większą ilością obiektów), klasa utworzona przy pomocy tego wzorca może samodzielnie kontrolować liczbę swoich instancji, proces pobierania instancji klas jest niewidoczny dla użytkowników. Główną wadą Singletona jest sztywno określona liczba instancji. To podejście mocno utrudnia testowanie aplikacji i łamie co najmniej 2 zasady podejścia SOLID, najczęściej dwie pierwsze.

QA Engineer 12000 - 18000 PLN

Gdańsk
Aplikuj

Senior Node.js Developer 23000 - 33000 PLN

Praca zdalna
Aplikuj

8. Wzorzec projektowy Fabryka

Fabryka to kreacyjny wzorzec projektowy, którego zadaniem jest dostarczenie interfejsu do tworzenia różnych obiektów jednego typu (tej samej rodziny) bez specyfikowania ich konkretnych klas. Dzięki temu pojedynczy obiekt może tworzyć swoje reprezentacje i podtypy w trakcie działania programu.

9. Czym jest refleksja w .NET?

To mechanizm, który pozwala na dostęp do metadanych (czyli informacjach przechowywanych np. w plikach exe) klas lub obiektów.

10. Czym jest polimorfizm w .NET

To mechanizm, który pozwala używać wartości, zmiennych i podprogramów na kilka różnych sposobów.

11. Czym jest atrybut

Atrybut to znacznik metadanych, który umożliwia przekazywanie informacji do środowiska wykonawczego. Atrybut określa zachowanie różnych danych. Najczęściej spotykanym przykładem użycia atrybutów, jest użycie ich np. w Web Service lub dodatnie informacji o autorze.

12. Czym jest CLR

To środowisko uruchomieniowe dla platformy .NET, przewidziane do pracy na wielu platformach i maszynach.

13. Czym jest extension method?

To metoda rozszerzeniowa, która umożliwia rozszerzenie funkcjonalności istniejących już typów. Może być zadeklarowana tylko w klasie statycznej i powinna być zadeklarowana przed typem, który chcemy rozszerzyć.

14. Co to jest LINQ

LINQ (Language Integrated Query) to część technologii Microsoft .NET, która umożliwia zadawanie pytań na obiektach. W przestrzeni, która obsluguje LINQ są bazy danych, język XML, obiekty implementujący interfejs.

15. Czym jest koncepcja delegacji w C#?

Delegacje w C# są wskaźnikami metod, które są opakowane w konkretną klasę. Obiekt w delegacji przechowuje listę metod, które obsługuje. To jest bardzo bezpieczne rozwiązanie, którego poprawność jest sprawdzana za każdym razem.

16. Czym są wyrażenia lambda

To anonimowa metoda (bez deklaracji) używana do tworzenia delegatów w LINQ. Przydaje się zwłaszcza w przypadku, gdy daną funkcję wywołuje się tylko raz.

17. Czym są obiekty immutable

Typy niemutowalne to typy zmienne. Obiekty immutable to wszystkie typy numeryczne, struktury oraz value type – klasy niemutowalne np. String, DateTime, typy anonimowe, ImmutableList. Te typy nie mogą zostać zmienione po ich inicjalizacji.

18. Czym są obiekty mutable?

To typy zmienne, które mogą zostać zmienione po ich inicjalizacji.

19. Charakterystyka wzorca MVC

Model-View-Controler to wzorzec architektoniczny, który służy do organizowania struktury aplikacji, posiadających GUI. Model to reprezentacja problemu lub logiki aplikacji, View opisuje, w jaki sposób wyświetlać część modelu w ramach GUI. Może składać się z kilku mniejszych widoków. Controller zarządza i aktualizuje model, by odświeżały się widoki interfejsu w momencie wykonywania akcji w systemie. Wszystkie części modelu MVC są ze sobą ściśle powiązane.

20. Jakie rodzaje testów możemy wyróżnić?

Podział testów ze względu na weryfikowalne obiekty, takie jak klasy, komponenty, podsystemy, całe systemu lub ich integrację pomiędzy sobą. Można także wyróżnić testy strukturalne (białoskrzynkowe), które weryfikują kod źródłowy oraz testy czarnoskrzynkowe, które weryfikują warstwy interfejsu i są niezależne od kodu.

Podział testów ze względu na metodę weryfikacji np. testy statyczne i dynamiczne. Podział testów ze względu na poziomy: testy jednostkowe, testy integracyjne i testy komponentów, testy systemowe, testy integracyjne z innymi systemami oraz testy akceptacyjne.

21. Pytanie w formie żartu: co powie żona na zmianę pracy?

Zmiana pracy wiąże się z pewnym ryzykiem, dlatego też warto zawsze upewnić się, że partnerka czy żona w pełni popierają tę decyzję ;). To pytanie jest ważne także z perspektywy rekrutera, który zorientuje się, jeśli kandydat przyjdzie na rozmowę kwalifikacyjną z nastawieniem innym niż zmiana dotychczasowego stanowiska pracy. W takim przypadku dalsza rozmowa kwalifikacyjna nie spełni swojego zadania.

Najnowsze oferty pracy:

Polecane wpisy na blogu IT:

Szukasz pracownika IT?

Dostarczymy Ci najlepszych specjalistów z branży IT. Wyślij zapytanie

Wyrażam zgodę TeamQuest Sp. z o.o. na przetwarzanie moich danych osobowych w celu marketingu produktów i usług własnych TeamQuest, w tym na kontaktowanie się ze mną w formie połączenia telefonicznego lub środkami elektronicznymi.
Administratorem podanych przez Ciebie danych osobowych jest TeamQuest Sp. z o.o., z siedzibą w Warszawie (00-814), ul. Miedziana 3a/21, zwana dalej „Administratorem".
Jeśli masz jakiekolwiek pytania odnośnie przetwarzania przez nas Twoich danych, skontaktuj się z naszym Inspektorem Ochrony Danych (IOD). Do Twojej dyspozycji jest pod adresem e-mail: office@teamquest.pl.
W jakim celu i na jakiej podstawie będziemy wykorzystywać Twoje dane? Dowiedz się więcej