Programista .NET - pytania zadawane na rozmowach kwalifikacyjnych

1

Temat ten jest skierowany głównie do osób, które rekrutują programistów .NET. Chciałbym się dowiedzieć, jakie pytania zadajecie kandydatom podczas rozmów? Myślę, że taki temat przyda się wielu osobom. Proponuję, żeby posty miały taką postać:

Pytanie: <treść pytania>
Odpowiedź: <prawidłowa odpowiedź na pytanie>

0

Nie byłem jeszcze na żadnej rozmowie ale wydaje mi się, że głównie są pytania o teorie, dostajesz kod wytłumaczyć musisz czemu to działa lub nie, pytania o twoje projekty itd...

2

Wszystko zależy od stanowiska i technologii, ale mogą być np. takie:

  1. Jakie jest zastosowanie słowa kluczowego yield?
  2. Do czego służy słowo kluczowe __makeref? ;)
  3. Czym się różni Enumerable.Single od Enumerable.SingleOrDefault?
  4. Jeśli w jednym katalogu znajdują się plikiMyPage.aspx i MyPage.cshtml, który z nich zostanie wyświetlony?
  5. Czym się różni left join od right join?
  6. Ile elementów maksymalnie może zwrócić join?
  7. Czego można użyć, żeby nie powielać kodu widoku wyświetlającego użytkownikowi dany obiekt?
  8. Jaki jest cykl życia strony w technologii WebForms?
  9. Jakie są rodzaje kontrolek WebForms?
  10. Jakie są sposoby realizacji hierarchii klas w NHibernate i czym się różnią?
  11. Co to jest SOLID i YAGNI?

Nie wiem tylko, czemu to pytanie skierowane jest do rekruterów, a nie ludzi, którzy na rozmowy chodzą. Może źle, że się wypowiedziałem? ;P
Zresztą, rekruterzy, to raczej do działów innych niż oferty pracy tutaj nie zaglądają. ;P

0

Jako, że pytać można o wszystko, oczywiście zgodnie z prawem, to stworzenie takiej listy jest niemożliwe. Ja preferuje pytania ogólne, jak np "dziedziczenie vs kompozycja", "po co interfejsy/hermetyzacja", opinie o jakimś wzorcu projektowym. Potem coś o algorytmach i strukturach danych i implementacja jakiegoś prostego problemu na kartce. To wystarczy, żeby odsiać 90% "programistów" .NET. Reszta zależy od stanowiska i szczegółowych wymagań.

0

Zdaję sobie sprawę z tego, że można pytać o wszystko, ale właśnie zależało mi na wypowiedzi osób, które przepytują kandydatów po to, żeby mniej więcej wiedzieć na co kłaść nacisk podczas przygotowywań do takich rozmów. Osoby, które np. studiują i nie mają stałego zatrudnienia, a miały już do czynienia z platformą .NET nie używają jej na co dzień, więc zdarza im się zapomnieć jak działa dana technologia i muszą sobie pewne rzeczy przypomnieć (np. ja nie używam LINQ cały czas więc jak już idę na rozmowę to zawsze muszę usiąść trochę czasu nad tym, żeby sobie przypomnieć jak się takie zapytania tworzyło)

0
somekind napisał(a):

Wszystko zależy od stanowiska i technologii, ale mogą być np. takie:

  1. Jakie jest zastosowanie słowa kluczowego yield?
  2. Do czego służy słowo kluczowe __makeref? ;)
  3. Czym się różni Enumerable.Single od Enumerable.SingleOrDefault?
  4. Jeśli w jednym katalogu znajdują się plikiMyPage.aspx i MyPage.cshtml, który z nich zostanie wyświetlony?
  5. Czym się różni left join od right join?
  6. Ile elementów maksymalnie może zwrócić join?
  7. Czego można użyć, żeby nie powielać kodu widoku wyświetlającego użytkownikowi dany obiekt?
  8. Jaki jest cykl życia strony w technologii WebForms?
  9. Jakie są rodzaje kontrolek WebForms?
  10. Jakie są sposoby realizacji hierarchii klas w NHibernate i czym się różnią?
  11. Co to jest SOLID i YAGNI?

Nie wiem tylko, czemu to pytanie skierowane jest do rekruterów, a nie ludzi, którzy na rozmowy chodzą. Może źle, że się wypowiedziałem? ;P
Zresztą, rekruterzy, to raczej do działów innych niż oferty pracy tutaj nie zaglądają. ;P

Ja pracuję od pół roku jako młodszy programista .NET - jakbym miał odpowiadać na te pytania z głowy bez korzystanie z Internetu to:

Jakie jest zastosowanie słowa kluczowego yield?

Słyszałem o yield, ale nic o nim nie wiem, nie używałem tego więc na to pytanie bym nie odpowiedział.

Do czego służy słowo kluczowe __makeref? ;)

Pojęcia nie mam, nigdy nie słyszałem.

Czym się różni Enumerable.Single od Enumerable.SingleOrDefault?

Single zwraca jeden np. rekord, ale zgłosi wyjątek jak będzie 0 rekordów, SingleOrDefault nie zgłosi wyjątku jak będzie 0 rekordów.

Jeśli w jednym katalogu znajdują się plikiMyPage.aspx i MyPage.cshtml, który z nich zostanie wyświetlony?

Pracuję jako programista ASP.NET MVC więc z widokami mam styczność na co dzień, obstawiam, że aspx tak na 90%.

Czym się różni left join od right join?

No to bierze wszystkie rekordy z lewej tabeli w złączeniu nawet jak nie ma odpowiedników w prawej tabeli, right join to na odwrót.

Ile elementów maksymalnie może zwrócić join?

Nie mam pojęcia, ale dużo :D

Czego można użyć, żeby nie powielać kodu widoku wyświetlającego użytkownikowi dany obiekt?

Partial View?

Jaki jest cykl życia strony w technologii WebForms?

Nie mam pojęcia, znam tylko ASP.NET MVC.

Jakie są rodzaje kontrolek WebForms?

Nie mam pojęcia, znam tylko ASP.NET MVC.

Jakie są sposoby realizacji hierarchii klas w NHibernate i czym się różnią?

Nie wiem.

Co to jest SOLID i YAGNI?

Nie wiem.

To co bym się nie dostał pewnie? Kurde to dobrze, że udało mi się znaleźć pracę, w której pracuję obecnie. :D

0

@miniprogramista - to słabo u Ciebie, ja programuję hobbistycznie, czasem coś robię na potrzeby firmy w której pracuję ale znam odpowiedz na większość tych pytań(poza MVC I Hibernate), może powinenem się rozejrzeć za pracą stricte programistyczną :P.

0

Somekind - z całym szacunkiem - podał bardzo dziwne pytania (żeby nie powiedzieć głupie).
W rzeczywistości spotkałem się tylko z jednym z tych pytań, a konkretnie z tym o right join i left join, co więcej jest to jedno z faktycznie praktycznych pytań.

Na rozmowach zadadzą kilka technicznych pytań, ale o poziomie raczej normalnym i przydatnym (nie żadne makeref - w ogóle wtf?) w stylu co to jest having w sql, po co indexować tablice w sql, zapytają się o wzorce projektowe itd...

Poza tym u mnie często rozmowy przebiegały w 50% czasu na omawianiu projektów, którymi się chwaliłem w CV. Z tego rekruterzy wyciągali wystarczające wnioski :)

1
dziwnePytania napisał(a)

Somekind - z całym szacunkiem - podał bardzo dziwne pytania (żeby nie powiedzieć głupie).

Pytanie o przeznaczenie yield? Pytanie o SOLID i YAGNI? Pytanie o cykl życia strony, co jest kluczowe przy projektowaniu wszystkiego i wywraca niekompatybilne koncepcje do góry nogami? :|

Programista jest od klepania kodu, czy od myślenia? Bo to czego wymagasz to kwalifikacje raczej na typowego klepacza.

1

Jak się ma do mojej wypowiedzi Twój ból d**y?

Podejrzewam, że chodziło mu o to, iż to temat o pytaniach występujących na rozmowie kwalifikacyjnej na stanowisko programisty, a wypowiada się w nim osoba, która nigdy na owym stanowisku nie pracowała i nie była na rozmowie kwalifikacyjnej :D

2

I co to ma do rzeczy? Nie mogę patrzeć jak na forum lecą complainty, bo pracodawca daje pytania o rzeczy przy których trzeba, o zgrozo, myśleć i znać podstawy działania używanych przez siebie narzędzi...

1

Rozmowy kwalfikacyjne i tak sa ciulowe ;)

0

I co to ma do rzeczy?

No dużo, bo to, co obecnie pleciesz to jedynie twoje mylne wyobrażenia i totalny miks opinii kilku innych osób (z resztą bardzo często źle zinterpretowanych).

Programista jest od klepania kodu, czy od myślenia? Bo to czego wymagasz to kwalifikacje raczej na typowego klepacza.

I to jest właśnie jedna z rzeczy, którą zweryfikuje rzeczywistość jak za kilka lat pójdziesz do pracy. Pytania przytoczone przez somekinda właśnie badały fundamentalną znajomość narzędzi, w tym języka. Bo pierwszorzędnym zadaniem programisty jest właśnie klepanie kodu i realizacja projektu. A jak ktoś wyjaśni na czym polega SOLID to z dużą dozą prawdopodobieństwa zrealizuje go poprawnie.

Jakiś czas temu głośno w tematach o pracy zawodowej wypowiadał się.. polaczek z równie dużym doświadczeniem.

0

Bo pierwszorzędnym zadaniem programisty jest właśnie klepanie kodu i realizacja projektu. A jak ktoś wyjaśni na czym polega SOLID to z dużą dozą prawdopodobieństwa zrealizuje go poprawnie.

Chyba nie zrozumiałeś intencji mojej pierwszej wypowiedzi, dorzuciłem cytat do mojego pierwszego postu w tym wątku. Od początku uważałem że krytykowanie pytań o cykl życia strony i SOLID to pomyłka, odpisywałem bezpośrednio do dziwnePytania. Junior, senior, jeśli faktycznie robi komercyjnie to musi znać takie podstawy. Te pytania za głupotę może krytykować tylko newbie.

Nie wiem skąd taka interpretacja, chyba coś paliłeś :F

0

Z pewnością zapytałbym o polimorfizm(interfejsów, dziedziczenie). O to w jaki sposób przekazywane są obiekty do funkcji itp.
http://stackoverflow.com/questions/40480/is-java-pass-by-reference

1

Nie po to mrugałem przy pytaniu o __makeref, żebyście mieli to traktować poważnie. ;P
Pytaniem o to moglibyście spokojnie zagiąć 99% tych, którzy rozmowy przeprowadzają.

dziwnePytania napisał(a):

Somekind - z całym szacunkiem - podał bardzo dziwne pytania (żeby nie powiedzieć głupie).
W rzeczywistości spotkałem się tylko z jednym z tych pytań, a konkretnie z tym o right join i left join, co więcej jest to jedno z faktycznie praktycznych pytań.

Te pytania to jakiś tam wybór z tych, które mi się trafiały na rozmowach. Które z nich (oprócz 2.) jest niby niepraktyczne? To bardzo podstawowe pytania, które pozwalają stwierdzić, czy ktoś wie cokolwiek o technologii, w której chce pracować.

Poza tym u mnie często rozmowy przebiegały w 50% czasu na omawianiu projektów, którymi się chwaliłem w CV. Z tego rekruterzy wyciągali wystarczające wnioski :)

Owszem, o projekty też pytają. Niektórych nawet pytają o pracę magisterską. Czasami też chcą zaprojektowania zgrubnej architektury jakiegoś małego systemu i doboru technologii/narzędzi do niej.
Wszystko zależy od firmy.

miniprogramista napisał(a):

To co bym się nie dostał pewnie? Kurde to dobrze, że udało mi się znaleźć pracę, w której pracuję obecnie. :D

Jeśli nie pracujesz w WebFormsach ani NHibernate, to nie musisz mieć wiedzy z tych dziedzin. Chociaż moje pytanie o NHibernate dotyczy ogólnie stosowanych w ORMach wzorców projektowych.
Pytanie o join to pytanie tak naprawdę na myślenie, zahaczające lekko o teorię mnogości.
Jeśli nie wiesz, co to SOLID i YAGNI, to naucz się jak najszybciej, bo to po prostu wstyd nie wiedzieć.

A propos interfejsów:

  • Jakie są dwa sposoby implementacji intefejsów, i który z nich jest ważniejszy, jeśli są użyte oba?
0
somekind napisał(a):

A propos interfejsów:

  • Jakie są dwa sposoby implementacji intefejsów, i który z nich jest ważniejszy, jeśli są użyte oba?

Jawne i niejawne, o to pytasz? Ale z ich ważnością nie mam pojęcia, stawiał bym że explicit jest wazniejszy

0

Te pytania to jakiś tam wybór z tych, które mi się trafiały na rozmowach. Które z nich (oprócz 2.) jest niby niepraktyczne? To bardzo podstawowe pytania, które pozwalają stwierdzić, czy ktoś wie cokolwiek o technologii, w której chce pracować.

Pytania te zahaczają o web technologie nieco, stąd moje zdziwienie bo to nie moja bajka. Jako programista C# przyzwyczaiłem się do nieco innych zagadnień :)
No i gdyby ktoś na rozmowie zapytał mnie o makeref (o którym dawno temu słyszałem tylko tyle, że istnieje i wiem, że 99% programistów tego nie zna) uznałbym to za agresję w stylu: "Ok, gość jest niezły, ale musimy mu pokazać, że jednak my jesteśmy górą to wtedy mniej kasy się mu da".
No bo wiadomo potem w negocjacjach wyskoczą z tekstem: "No tak, ale zaawansowanej wiedzy Pan jeszcze nie posiada".

ps: a tak kompletnie na marginesie - kiedyś na rozmowie chcieli bym napisał projekt (tak, cały projekt) do ich firmowego projektu dużego na którym zarabiają :D
Krótko mówiąc - zrób to za darmo, a my Cię może łaskawie zatrudnimy :D

1

Ja tez wrzucę garść zasłyszanych pytań. Niektóre są sformułowane tak jak zostały zadane na rozmowie:

  1. Jakie znasz wzorce projektowe? Podaj przykład zastosowania.
  2. Co robi obfuskacja?
  3. Wytłumacz czym jest IoC?
  4. Czy można dziedziczyć po klasie statycznej?
  5. Czym jest GAC?
  6. Wyjaśnij boxing.
  7. Jakie są różnice między Reference Type, a Value Type?
  8. Jakie metody posiada klasa object?
  9. Jaka jest różnica pomiędzy int, a Int32?
  10. Czym jest internowanie stringów?
  11. Jak porównywać stringi?
  12. Do czego służy refleksja?
  13. Czy klasa abstrakcyjna może mieć pola protected?
  14. Czy int jest ThreadSafe?
  15. Na jakie sposoby wywołać można operacje w nowym wątku?
  16. Czym jest ThreadPool?
  17. Jak zapewnić synchronizacje wątków przy zapisie jakiejś wartości?
  18. Czy równoczesny odczyt z poziomu kilku wątków jest bezpieczny?
  19. Wymień zastosowania słowa using?
  20. Jak zaimplementować interface IDisposable?
  21. Czy interface może mieć Eventy?
0

Ja na rozmowie miałem bardziej praktyczne zadania. Z tego co pamiętam:

  1. Mamy encję Produkty. Napisać do niej metody LINQ, które zwrócą określone dane - zastosowania Where, Select, Count, Sum, Join, OrderBy.
  2. Narysować diagram bazy danych: relacje z kategorii firma-klienci z elementami dziedziczenia
  3. Napisać kod klasy generycznego drzewa binarnego, która umożliwia dodawanie nowych elementów oraz ich wypisywanie w kolejności od najmniejszego elementu. Następnie napisać metodę, która będzie odwracała to drzewo.
  4. Jaki skutek dla liczby ma funkcja, którą można opisać : x &= x-1;

1 użytkowników online, w tym zalogowanych: 0, gości: 1