W tym wpisie podzielę się zbiorem pytań, które często powtarzają się na różnych rozmowach wstępnych na stanowisko programisty C/C++. Są to pytania techniczne - nie opisałem tu żadnych pytań miękkich (HR'owych). Spotkałem się z nimi sam (już prawie 10 lat pracy, jak ten czas leci..), a niektóre zadawałem osobiście, gdy byłem po drugiej stronie stołu. Mam nadzieję, że taka lista okaże się pomocna podczas przygotowań do rozmowy.
Na początek pytania związane stricte z C/C++. Kolejność losowa.
- Czym jest język obiektowy? Czy C++ jest językiem obiektowym (odpowiedź na to, czy jest może się różnić w zależności od tego, jak definiujemy język obiektowy)?
- Napisz program, który jest poprawny składniowo w C, a nie jest w C++.
- Czym są słowa kluczowe (w kontekście zmiennej, w kontekście metody) static i const? Co oznacza słowo kluczowe volatile?
- Czym różni się alokacja pamięci na stosie od alokacji pamięci na stercie? Jak zmienną na oba sposoby? Kiedy stosować jedno, a kiedy drugie?
- Czym jest smart pointer? Kiedy go stosować? Jakie są rodzaje?
- Co wypisze poniższy program? Dlaczego?
#include <iostream> #define multiply(a, b) a*b int main() { std::cout << multiply(1, 2+2) << std::endl; return 0; }
- Co dodać do istniejącego kodu (można tylko w zaznaczonych miejscach), by program wypisywał:
foo() main()
#include <iostream> static int foo(); /* Tu można dopisywać swój kod */ /* Koniec miejsca na dopisywanie */ static int foo() { std::cout << "foo()" << std::endl; return 0; } int main() { std::cout << "main()" << std::endl; /* Tu można dopisywać swój kod */ /* Koniec miejsca na dopisywanie */ return 0; }
- Napisać metodę, która przyjmuje numer elementu ciągu Fibonacciego i zwraca wartość tego elementu. Jak przetestować taką metodę (przykład testu jednostkowego (unit test))?
- Jak sprawić, by ten program nic nie wypisał na wyjściu?
- Czym różni się przekazywanie zmiennej przez wartość, przez referencję i przez wskaźnik (pass by value, by reference, by pointer)?
- Jaka jest różnica między wskaźnikiem, a referencją?
- Dana jest funkcja foo(), która ma tylko jeden argument, który zawsze powinien być liczbą całkowitą nie mniejszą, niż zero. Jak sprawić, by poniższy kod nie skompilował się:
foo(-1);
Pytania niezwiązane bezpośrednio z C/C++
- Czym jest wyciek pamięci? Czym jest wyścig wątków? Czym jest zakleszczenie (deadlock)? Jak wykrywać te problemy w już istniejącym kodzie?
- Czym się różni wątek od procesu? Jakie są wady i zalety jednego i drugiego?
- Jakie są mechanizmy synchronizacji wątków i procesów?
- Czym jest tablica asocjacyjna (hash table)? Podać przykład jej użycia (jest dostępna w std). Czym jest kolizja w tablicy asocjacyjnej? Jak taka tablica jest zaimplementowana? Czym jest funkcja skrótu (hash table)? Podać przykład swojej implementacji takiej tablicy i omówić jest odporność na kolizję?
- Czym są wzorce projektowe i dlaczego są stosowane? Podaj przykład wzorca projektowego (innego, niż singleton)?
- Czym jest UML? Dlaczego go stosujemy? Napisać diagram klas dla wybranego przez siebie problemu.
Kolejne pytania w kolejnych wpisach.
Super! Bardzo przydatny spis.
ReplyDeleteSektor IT – rekrutacja. Czy warto skorzystać z usług https://nexttechnology.io/ – może ktoś z Was już z nimi rozmawiał w tym zakresie?
ReplyDeletehttps://bayanlarsitesi.com/
ReplyDeleteCihangir
Heybeliada
Yalova
Adana
7FR3FH
whatsapp görüntülü show
ReplyDeleteücretli.show
APT5
ordu evden eve nakliyat
ReplyDeletebursa evden eve nakliyat
konya evden eve nakliyat
osmaniye evden eve nakliyat
bitlis evden eve nakliyat
YT7Y5
30E2C
ReplyDeleteYalova Lojistik
Etimesgut Boya Ustası
Hatay Şehirler Arası Nakliyat
İzmir Parça Eşya Taşıma
Kırşehir Evden Eve Nakliyat
Şırnak Şehir İçi Nakliyat
Bayburt Lojistik
Ankara Boya Ustası
Kars Şehir İçi Nakliyat
59C03
ReplyDeleteÇankırı Parça Eşya Taşıma
Edirne Parça Eşya Taşıma
Maraş Parça Eşya Taşıma
Çanakkale Lojistik
Urfa Evden Eve Nakliyat
Aksaray Şehirler Arası Nakliyat
Adana Şehir İçi Nakliyat
Maraş Evden Eve Nakliyat
Mamak Boya Ustası
05413
ReplyDeleteZonguldak Evden Eve Nakliyat
Denizli Evden Eve Nakliyat
Muğla Evden Eve Nakliyat
Rize Evden Eve Nakliyat
order sarms
order masteron
sustanon
Karaman Evden Eve Nakliyat
primobolan for sale
DC5A5
ReplyDeleteŞırnak Görüntülü Sohbet Kızlarla
Elazığ En İyi Sesli Sohbet Uygulamaları
bursa yabancı sohbet
igdir sesli sohbet siteleri
kırşehir rastgele sohbet odaları
ordu en iyi ücretsiz sohbet uygulamaları
ordu sesli sohbet sitesi
sohbet odaları
antep en iyi ücretsiz görüntülü sohbet siteleri