konto usunięte

Temat: Przykładowe pytania na rozmowie kwalifikacyjnej

Witam,
interesują mnie przykłady zadań z c++, jakie mogą pojawić się na rozmowie kwalifikacyjnej na stanowisko programisty c++. Jakby ktoś mógł podać jakieś przykłady, byłabym wdzięczna:) Dodam, że firma wymaga PODSTAWOWEJ znajomości języka (bez doświadczenia) i chciałabym wiedzieć, jakiego mniej więcej zakresu zagadnień można sie spodziewać?
Pozdrawiam i z góry dziękuję.
L P

L P podskala.net

Temat: Przykładowe pytania na rozmowie kwalifikacyjnej

To co firma wymaga, czyli PODSTAWOWEJ znajomości języka C++, może być bardzo releatywne w moim czy Twoim odczuciu. Za podstawową rzecz w C++ rozumiem znajomość gramatyki, semantytki i pragmatyki tego języka - utrwaloną w praktyce. Przez "bez doświadczenia" rozumiem, że firma chce zatrudnić osobę, która nie musi mieć (ale może) doświadczenie w realizacji komercyjnych aplikacji w tym jęzku. Myślę, że na rozmowie kwalifikacyjnej możesz się spodziewać pytań praktyczno-teoretycznych, przykładowo: czym różni się wskaźnik od referencji ? czym różni się dynamic_cast od static_cast? Może dostaniesz kawałek kodu do analizy + pytania do niego, a może to będzie zwykła pogadanka przy kawie :) Powodzenia!

Ł

konto usunięte

Temat: Przykładowe pytania na rozmowie kwalifikacyjnej

Na rozgrzewke daje cos takiego:
Zaprojektowac hierarchie klas Zwierzatko, Kotek, Piesek. Kazda ma miec metode daj_glos().

Tu pytam jak defniujemy interfejs w C++ (klasa czysto abstrakcyjna itp, co daje virtual, czy potrzebny destuktor).

Zdefiniowac vector wskaznikow na zwierzatka, wrzucic tam pare kotkow i pieskow. Dalej przechodzimy po wektorze wykonujac polimorficzny call i zwierzatka daja glos (wypas :P). Najlepszy foreach z boost::bind, potem jakis ptr_fun, potem iteratory (czy beda const? :P) a potem zwykly for (ostatecznie).

75% kandydatow z doswiadczeniem (1-5 lat) nie potrafi wykonac tego zadania :)Przemysław O. edytował(a) ten post dnia 06.05.10 o godzinie 13:51

konto usunięte

Temat: Przykładowe pytania na rozmowie kwalifikacyjnej

Ja dostałem kiedyś klasyczne już chyba pytanie: Jak wykryć, czy w liście jednokierunkowej jest pętla?
Jerzy M.

Jerzy M. C#/JavaScript
Developer

Temat: Przykładowe pytania na rozmowie kwalifikacyjnej

Przemysław O.:
75% kandydatow z doswiadczeniem (1-5 lat) nie potrafi wykonac tego zadania :)

hmm... pociąć się idzie ;->

Ale fakt, zadanie fajne - przez to, że ostatnio C++ nie ruszałem, trochę się namęczyłem - bo to się za klasą średnika nie postawiło, czy przed funkcją public się wciskało ;-)

[trochę zmodyfikowane, w stosunku do pytania - bo co tam pętla ;-) ]
http://ideone.com/PI1KD
[Do kompletu potrzebny jest jeszcze destruktor wirtualny]Jerzy M. edytował(a) ten post dnia 06.05.10 o godzinie 16:54

konto usunięte

Temat: Przykładowe pytania na rozmowie kwalifikacyjnej

Jerzy M.:
[trochę zmodyfikowane, w stosunku do pytania - bo co tam pętla ;-) ]
http://ideone.com/PI1KD

Brakuje Ci destruktorów. Powinny być wirtualne na dodatek.
Przemysław O.:
Na rozgrzewke daje cos takiego:
Zaprojektowac hierarchie klas Zwierzatko, Kotek, Piesek. Kazda ma miec metode daj_glos().

Tu pytam jak defniujemy interfejs w C++ (klasa czysto abstrakcyjna itp, co daje virtual, czy potrzebny destuktor).
75% kandydatow z doswiadczeniem (1-5 lat) nie potrafi wykonac tego zadania :)Przemysław O. edytował(a) ten post dnia 06.05.10 o godzinie 13:51

Powiem wiecej. 90% ludzi z 5-letnim doswiadczeniem widzac cos tego typu sie dziwi:

copy(path.begin(), path.end(), ostream_iterator<Node<string>*>(cout, " "));

Ludzie po prostu slaba znaja <algorithm>. Co tu mowic o booscie... ;)Adam Michalski edytował(a) ten post dnia 06.05.10 o godzinie 16:34
Jerzy M.

Jerzy M. C#/JavaScript
Developer

Temat: Przykładowe pytania na rozmowie kwalifikacyjnej

Adam Michalski:
Jerzy M.:
[trochę zmodyfikowane, w stosunku do pytania - bo co tam pętla ;-) ]
http://ideone.com/PI1KD

Brakuje Ci destruktorów. Powinny być wirtualne na dodatek.

Damn, rozwydrzyłem się tym C# za bardzo ;-)
A co lepsze, sobie ostatnio sam na blogu pisałem, żeby o tym nie zapominać :D

konto usunięte

Temat: Przykładowe pytania na rozmowie kwalifikacyjnej

Krzysztof Kondrak:
Ja dostałem kiedyś klasyczne już chyba pytanie: Jak wykryć, czy w liście jednokierunkowej jest pętla?
2 wskaźniki :) Przyznam, że jak dostałem tą zagadke od kumpla to nie wpadłem na to sam.
L P

L P podskala.net

Temat: Przykładowe pytania na rozmowie kwalifikacyjnej

Przemysław O.:
Krzysztof Kondrak:
Ja dostałem kiedyś klasyczne już chyba pytanie: Jak wykryć, czy w liście jednokierunkowej jest pętla?
2 wskaźniki :) Przyznam, że jak dostałem tą zagadke od kumpla to nie wpadłem na to sam.

Lista jednokierunkowa cykliczna (ogon wskazuje na głowę).
To ode mnie jeszcze jedno,
czym różnią się instrikcje ++i od i++ (jak to się ma do iteratorów?)
Daniel Łysiak

Daniel Łysiak Specjalista w
sprawach
audiowizualnych

Temat: Przykładowe pytania na rozmowie kwalifikacyjnej

Zależy od pracodawcy i czego od Ciebie będzie faktycznie wymagał. W przypadku "podstawowego poziomu trudności" może nie będzie wogóle pytań stricte z c++. Czasami nie muszą być to pytania / zadania związane bezpośrednio z językiem programowania:

Jeden poprosił mnie kiedyś podczas pierwszej rozmowy o wykonanie prostej aplikacji. Na drugiej okazało się, że podczas prezentacji wyniku - programu oceniał efekt a nie kod - czyli jak "błędoodporny" jest interfejs użytkownika i co w nim się da zrobić (ponieważ program obrabiał pliki, to czy programista pomyślał o tym, czy da się cofnąć operacje / odtorzyć dane nawet w przypadku napotkania błędu "w trakcie pracy", czy potrafi program zapamiętać ustawienia itp.)
Inny zaś zasypał testami typu "2 pokoje, w jednym 3 żarówki w drugim 3 wyłączniki..." "znalezienie jednej lżejszej monety w zestawie 8 monet mając do dyspozycji wagę szalkową i minimalną ilość ważeń(bodajże 2)". W każdym bądź razie metody można znaleźć w necie.
Jeszcze inny po prostu poprosił o próbki kodu (interesowała go i całego teamu czytelność i dbałość o dokumentację).

W końcu dobry lider projektu bądź sam pracodawca nigdy nie powinen nowej osoby rzucać na głęboką wodę już stworzonego projektu tylko albo wyznaczyć kogoś albo samemu wdrożyć rekruta w arkana i przez pewien okres czasu pilnować, bo niuanse z algorytmów i struktur danych czy samego języka w normalnym pisaniu programu można sobie przypomnieć korzystając z książek/internetu a sama znajomość "na blachę" tych zagadnień nie zagwarantuje wysokiej jakości kodu.Daniel Ł. edytował(a) ten post dnia 14.05.10 o godzinie 19:37
Szymon Kubisiak

Szymon Kubisiak Developer aplikacji
mobilnych Android

Temat: Przykładowe pytania na rozmowie kwalifikacyjnej

Równie dobrze możesz trafić na ludzi którzy sami nie będą rozumieć zadawanych przez siebie pytań. Ja kiedyś trafiłem na kolesi którym przy projektowaniu algorytmu wydawania reszty do automatu nie spodobało się moje odejmowanie w pętli zamiast którego woleli dzielenie + resztę z dzielenia.

Wymyślenie prostego algorytmu jest dobrym testem na to czy człowiek w ogóle myśli jak programista.

konto usunięte

Temat: Przykładowe pytania na rozmowie kwalifikacyjnej

Łukasz Podkalicki:
Lista jednokierunkowa cykliczna (ogon wskazuje na głowę).

Wtedy dodali założenie, że nie wiemy, gdzie jest początek listy.

konto usunięte

Temat: Przykładowe pytania na rozmowie kwalifikacyjnej

Szymon Kubisiak:
Wymyślenie prostego algorytmu jest dobrym testem na to czy człowiek w ogóle myśli jak programista.

Skreśliłbym ostatnie dwa słowa i dostaniemy prawdę życiową :) Ogólniejszą - dotyczącą nie tylko programowania :)

konto usunięte

Temat: Przykładowe pytania na rozmowie kwalifikacyjnej

Łukasz Podkalicki:
czym różnią się instrikcje ++i od i++ (jak to się ma do iteratorów?)

Do iteratorów czy ogólnie do typów złożonych?

konto usunięte

Temat: Przykładowe pytania na rozmowie kwalifikacyjnej

pytanie o i++ to banalne, klasy też do zrobienia, ale z tą listą to się poddaję!!! :) możesz wyjaśnić o co chodzi?

konto usunięte

Temat: Przykładowe pytania na rozmowie kwalifikacyjnej

Spróbuj sama rozwiązać. Podpowiedź jest wyżej: potrzebne są 2 wskaźniki. Jak to wiesz, to już banalne.
L P

L P podskala.net

Temat: Przykładowe pytania na rozmowie kwalifikacyjnej

Beata Szwichtenberg:
pytanie o i++ to banalne, klasy też do zrobienia, ale z tą listą to się poddaję!!! :) możesz wyjaśnić o co chodzi?

Nom, ja też myślałem, że i++ to banał i popełniłem błąd (tu m.in. odpowiedź dla Krzycha). Iteratory dla enuma o losowych wartościach, enum i { A=0, B=5, C=3, ..., N=98} - mój błąd polegał na założeniu, że enum wygląda standardowo {A=0, B, C, ..., N}, czyli że kolejne elementy listy są inkrementowane o 1 i zaimplementowane iteratory nie były sprawne dla innych założeń. Cóż, zdarza się :))
Maciej Hehl

Maciej Hehl w teorii Automatyk i
Robotyk (po wydziale
mechanicznym), ...

Temat: Przykładowe pytania na rozmowie kwalifikacyjnej

Wtedy dodali założenie, że nie wiemy, gdzie jest początek listy.

Podejrzewam, że chodzi o początek cyklu. Jeśli ogon wskazuje na głowę , i to wiemy, to nie ma co sprawdzać. Jest cykl. jeśli są dwie możliwości - albo ogon wskazuje na głowę, albo nie ma cyklu, to łatwo to sprawdzić. Jeśli cykl występuje to jesteśmy w środku, prosta sprawa.

Gorzej jeśli trzeba sprawdzić czy występuje cykl, ale nie wiadomo gdzie się zaczyna. Nie jest trudno wymyślić brzydkie rozwiązanie o złożoności O(n^2). Ale coś bardziej eleganckiego to nie wiem czy jest takie oczywiste. Ja w każdym razie prędzej poznałem rozwiązanie niż sam wpadłem. Potem poznałem drugie nie brzydsze.Maciej Hehl edytował(a) ten post dnia 07.05.10 o godzinie 01:21
L P

L P podskala.net

Temat: Przykładowe pytania na rozmowie kwalifikacyjnej

Krzysztof Kondrak:
Łukasz Podkalicki:
Lista jednokierunkowa cykliczna (ogon wskazuje na głowę).

Wtedy dodali założenie, że nie wiemy, gdzie jest początek listy.

Pierwsze co mi przychodzi na myśl to trawersować listę od zadanego elementu, np. d. Zapamiętać wskazanie i porównywać podczas trawersowania z elemntowami listy aż do uzyskania efektu równości wskazań (d == g->next) lub końca listy (g->next == NULL).

jednokierunkowa: a->b->c->d->e->f->g
jednokierunkowa cykliczna: a->b->c->d->e->f->g->a

konto usunięte

Temat: Przykładowe pytania na rozmowie kwalifikacyjnej

Łukasz Podkalicki:
Nom, ja też myślałem, że i++ to banał i popełniłem błąd (tu m.in. odpowiedź dla Krzycha). Iteratory dla enuma o losowych wartościach, enum i { A=0, B=5, C=3, ..., N=98} - mój błąd polegał na założeniu, że enum wygląda standardowo {A=0, B, C, ..., N}, czyli że kolejne elementy listy są inkrementowane o 1 i zaimplementowane iteratory nie były sprawne dla innych założeń. Cóż, zdarza się :))

Pytanie tylko, kto w praktyce robi coś takiego. Z ciekawości próbowałem znaleźć rozwiązanie jak taki iterator zrobić dla nieciągłych enumów i jak do tej pory wynajduję odpowiedzi w stylu "to niewykonalne, użyj wektora".

Następna dyskusja:

dr Bjarne Stroustrup odpowi...




Wyślij zaproszenie do