Byłem dzisiaj na rozmowie kwalifikacyjnej na staż z C/C++. STAŻ. I czy powinienem był się spodziewać takich pytań? 1. Różnica pomiędzy procesem i wątkiem 2. Sposób dzielenia pamięci przez wątki i procesy (w sensie opisać co dokładnie się dzieje) 2. Dostęp do zmiennej z różnych wątków (czy możliwe i jak przeprowadzić) 3. Mutexy, lockguardy, unique_locki 4. Singleton 5. Różnica między stosem i stertą (to ok) i co jest szybsze w dostępie (???) 6. Jeszcze coś związanego z samą pamięcią (coś strasznie niskopoziomowego)
Reszty nie pamiętam. Było też trochę takich typowych rzeczy (dziedziczenie, funkcje wirtualne, napisanie własnego memcpy, wyszukiwanie memleaków etc.). Jednak ogólnie poczułem się rozmazany jak robak :D Programowania współbieżnego uczyłem się dopiero tydzień (i to bardzo pobieżnie, dopiero zaczynam), na wszystko coś tam pobąkiwałem (w tych trudnych rzeczach podkreślając, że nie mam pojęcia, i że to tylko moja intuicja). Ale różnica między procesem a wątkiem mnie zniszczyła, nie miałem świadomości w jaki sposób się to rozróżnia.
@Fitoplankton: Pytania jak najbardziej ok, sprawdzają czy wiesz w ogóle co to jest ta "Informatyka". W dzisiejszych czasach programowanie współbieżne to coś co trzeba umieć.
@Jurigag: @leoha: szczerze spodziewałem się raczej nieco wyższego poziomu abstrakcji (czyli najnowszego standardu cpp etc.). A jestem też trochę zaskoczony tym, że programowanie współbieżne jest wymagane tak wcześnie. Gdybym wiedział, że pytania będą na takim poziomie to dałbym sobie jeszcze z pół roku na naukę
@Fitoplankton: te pytania przy c/cpp to jak dla mnie podstawowa wiedza bo to co się ciebie spytali jest dużo częściej wykorzystywane niż w innych językach w których w większości nie trzeba się przejmować takimi rzeczami
nieco wyższego poziomu abstrakcji (czyli najnowszego standardu cpp etc.
@Fitoplankton: i dobrze ze o to nie pytają początkującego, bo tego to można sie nauczyć niejako na bieżąco w pracy/stażu/praktykach ad hoc kiedy potrzebne. A podstawy, o które pytali sprawdzają czy człowiek coś wie na temat Informatyki i rozumie i czy ma jakiś potencjał. Wg mnie nauka wysokopoziomowych abstrakcji nie ma sensu jak nie rozumiesz/nie znasz synchronizacji i współbieżności.
@Fitoplankton: Omg to są takie podstawy, na każdych normalnych studiach z informatyki tego uczą. Rozumiem żeby cię pytali o jakąś konkretną technologię czy bibliotekę, to co innego. Pytali cię samej teorii. Jeżeli wymagali wiedzy z programowania współbieżnego to powinni to wcześniej ci określić.
Po za tym nie przejmuj się, rozmowy kwalifikacyjne zawsze się robi na wyższym poziomie niż rzeczywiste wymagania. Tak najlepiej sprawdzić jak ktoś radzi sobie w trudnych sytuacjach.
@leoha: damn. Oczywiście rozumiem te wymagania, tu nie mam pretensji jakichkolwiek (poza sobą). Ale co mnie trochę irytuje to to, że jakoś w ogólnym zarysie w internetach spotykałem się z opisami, że nawet na juniora potrzeba dużo mniej (choć teraz myślę, że to przez atmosferę produkowaną przez właśnie javę).
No ale spoko, zrewidowałem swoje poglądy, wiem teraz do czego dążyć i nad czym się skupić :)
@leoha: no właśnie w ten sposób się w to wgryzałem - żeby dokładnie zrozumieć, co dzieje się na warstwie sprzętu, jak wspierać hardware, mieć precyzyjne wyobrażenie na temat całych bebechów. Szczególnie przy współbieżnym - i mam tego świadomość, nie zamierzam iść na skróty :)
@GotoFinal: wiesz - nie wątpię, że to nie byłoby trudne. Ale c++ tak na serio uczę się od 2/3 miesięcy (wcześniej odrobinę klepałem w C, jakieś 2 miesiące). Jestem na etapie pisania pierwszych programów współbieżnych (napisałem dopiero parallel_sum, teraz będę klepał nieco matematycznych rzeczy w stylu całki etc).
Jestem więc motzno zielony jeszcze w tym temacie :)
@Porana123: nieee, nie tyle co nie znam, co nie przeszywam na wylot zrozumieniem. Chodziło mi w szczególności o serwery - po prostu nie łapię jeszcze, jak następuje wybudzanie wątków i jak dokładnie działa uniquelock. O mutexach i lockguardach mówiłem. Pisałem taką prostą sumę - żadnych data races, modyfikacji etc. Po prostu zrównolegliłem obliczenia. Nie pisałem jeszcze niczego opartego na serwerach (w najbliższym czasie to ruszę)
@Fitoplankton: Bardzo mi sie podobaja te watki. Kazdy pisze jak latwo jest znalezc prace w programowaniu. Wystarczy kilka miesiecy nauki i juz.
No i po kilku miesiacach idzie na pierwsza rozmowe, a potem pisze taki wpis o jakie to trudne/dziwne/inne niz wszystkie pytania dostal... To sortowanie to powinno byc legenda - jak oni mogli dac cos tak trudnego. (akurat nie w tym ale w ktoryms z poprzednich wpisow).
@Trytka: sam padłem ofiarą tej manipulacji, no ale jestem bogatszy o REALNE wymagania, gdzieś w miesiąc dobiję na poziom, którego tam ode mnie oczekiwali. Jestem jedynie poirytowany, że komuś chce się rozpuszczać te plotki na temat zaniżonych oczekiwań :)
@Fitoplankton: Z drugiej strony ja bym nic nie zakladal. Na jednej z rozmow na staz powiedzialem, ze polimorfizm to jest to samo co dziedziczenie, a i tak mnie przyjeli.
@Fitoplankton: Te plotki dotyczą Javy. Z C++ jest nieco trudniej @Trytka: Dokładnie, testy mają wykazać w którym miejscu wiedza się kończy. Nawet uzyskując 25% w trudnym teście możesz zostać zatrudniony
Byłem dzisiaj na rozmowie kwalifikacyjnej na staż z C/C++. STAŻ. I czy powinienem był się spodziewać takich pytań?
1. Różnica pomiędzy procesem i wątkiem
2. Sposób dzielenia pamięci przez wątki i procesy (w sensie opisać co dokładnie się dzieje)
2. Dostęp do zmiennej z różnych wątków (czy możliwe i jak przeprowadzić)
3. Mutexy, lockguardy, unique_locki
4. Singleton
5. Różnica między stosem i stertą (to ok) i co jest szybsze w dostępie (???)
6. Jeszcze coś związanego z samą pamięcią (coś strasznie niskopoziomowego)
Reszty nie pamiętam. Było też trochę takich typowych rzeczy (dziedziczenie, funkcje wirtualne, napisanie własnego memcpy, wyszukiwanie memleaków etc.). Jednak ogólnie poczułem się rozmazany jak robak :D Programowania współbieżnego uczyłem się dopiero tydzień (i to bardzo pobieżnie, dopiero zaczynam), na wszystko coś tam pobąkiwałem (w tych trudnych rzeczach podkreślając, że nie mam pojęcia, i że to tylko moja intuicja). Ale różnica między procesem a wątkiem mnie zniszczyła, nie miałem świadomości w jaki sposób się to rozróżnia.
Jestem motzno zaskoczony nieprzyjemnie ( ͡° ʖ̯ ͡°)
#naukaprogramowania #cpp #jezykc
źródło: comment_P0T3KtjnFIo2Z7tFB7JCsw2PmsuXDbt2.jpg
Pobierz@Fitoplankton: i dobrze ze o to nie pytają początkującego, bo tego to można sie nauczyć niejako na bieżąco w pracy/stażu/praktykach ad hoc kiedy potrzebne. A podstawy, o które pytali sprawdzają czy człowiek coś wie na temat Informatyki i rozumie i czy ma jakiś potencjał. Wg mnie nauka wysokopoziomowych abstrakcji nie ma sensu jak nie rozumiesz/nie znasz synchronizacji i współbieżności.
Rozumiem żeby cię pytali o jakąś konkretną technologię czy bibliotekę, to co innego. Pytali cię samej teorii.
Jeżeli wymagali wiedzy z programowania współbieżnego to powinni to wcześniej ci określić.
Po za tym nie przejmuj się, rozmowy kwalifikacyjne zawsze się robi na wyższym poziomie niż rzeczywiste wymagania. Tak najlepiej sprawdzić jak ktoś radzi sobie w trudnych sytuacjach.
No ale spoko, zrewidowałem swoje poglądy, wiem teraz do czego dążyć i nad czym się skupić :)
Komentarz usunięty przez autora
@leoha: gdzie już bym był gdyby ktoś mi o tym wcześniej powiedział ( ͡° ʖ̯ ͡°) Polazłem w takim razie w błędnym kierunku
Jestem więc motzno zielony jeszcze w tym temacie :)
No i po kilku miesiacach idzie na pierwsza rozmowe, a potem pisze taki wpis o jakie to trudne/dziwne/inne niz wszystkie pytania dostal...
To sortowanie to powinno byc legenda - jak oni mogli dac cos tak trudnego. (akurat nie w tym ale w ktoryms z poprzednich wpisow).
@Trytka: Dokładnie, testy mają wykazać w którym miejscu wiedza się kończy. Nawet uzyskując 25% w trudnym teście możesz zostać zatrudniony