Wpis z mikrobloga

Podrzućcie jakieś ciekawe, albo zaawansowane(albo nie podstawowe) pytania/zadania rekrutacyjne dla programisty C++.
Mogą być też z rzeczy powiązane np. linuks, narzędza, algorytmy.

Moje:
1. Zaimplementuj shared/unique pointer
2. Jakie znasz optymalizacje i flagi kompilatora. Czyli O2, O3, tco, sso, Wall, Wpathetic itd.
3. Opisz cały proces budowania - kompilacja, linkowanie itd.
4. Ogólnie o architekturze komputera i cache`u, dlaczego jest to ważne, hot loopy, false sharing.
5. Omów czym jest std::unordered_map i porównaj jego złożoność do std::map

Nie przygotowuje się do rozmowy, tylko chcę się czegoś ciekawego dowiedzieć, bo sprawia mi to dużo frajdy, a coraz rzadziej spotykam fascynujące tematy.
#cpp #programowanie
  • 22
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Malkof:
1. Problem misjonarzy i kanibali :)
2. Masz osiem kulek, z czego jedna ma inną wagę niż wszystkie pozostałe. Znajdź tę kulkę używając jednocześnie jak najmniejszej liczby ważeń.
  • Odpowiedz
@Malkof: to jeszcze mozesz poczytac o narzedziach do performance analysis tools, czym sie roznia perf toole statystyczne od "deterministycznej" (nie jestem pewnien czy to ma taka nazwe) instumentacji kodu
  • Odpowiedz
@Malkof, @dupasmoka
Edit: Najprostsza implementacja sharedptr jest raczej trywialna. Jeśli w grę wchodzą jakieś optymalizacje, to owszem robi się trudniej, ale nie przesadzałbym z twierdzeniem że seniorzy się wypieprzają na czymś takim.

Btw, kolejne pytanie - czym się różni shared
ptr od zmiennej globalnej?
  • Odpowiedz
3. Opisz cały proces budowania - kompilacja, linkowanie itd.


@Malkof: przed kompilacja masz jeszcze parsowanie, tokenizacje, budowanie drzewa ast, desugaring, budowanie ir (intermediate representation), optimization passes i dopiero wtedy komplikacja
  • Odpowiedz
Edit: Najprostsza implementacja sharedptr jest raczej trywialna.


@groman43: no to proponuje challenge. Usiadz i w 1.5h napisz swoja implementacje sharedptr, potem mi ja wyslij, a ja ją przetestuje
  • Odpowiedz
1. Czym się różni wątek od procesu?
2. Jak działa pamięć wirtualna?
3. Jak działa infrastruktura klucza publicznego?
4. Jakie znasz techniki służące poprawianiu jakości wytwarzanego kodu?
  • Odpowiedz
@Malkof: Przyszło mi do głowy kilka pytań. Niektóre się nie nadają na rozmowę, ale na pewno są ciekawe.
Budowanie:
1. Extern i static, czyli czym różni się external/internal linkage
2. Anonymous namespace - jak działa, kiedy i po co się to stosuje
3. Jak zainkludować header biblioteki C i dlaczego samo #include nie wystarczy
4. Dlaczego definicje szablonów umieszcza się w plikach nagłówkowych i co by się stało gdyby definicję umieścić w innym
  • Odpowiedz