vpiotr
2019-09-18 09:27

Po raz kolejny dostalem pytanie o watki na interview. Po raz kolejny stwierdzilem ze ich nie lubie. Dlaczego nikt nie pyta o message passing, aktorow, async, AVX, fibers, map reduce, numa, cache trashing, RAID, partycjonowanie itd?

vpiotr

@Shalom: GPGPU to ciekawa idea ale nie jestem do konca jej fanem. 1) troche ogranicza (SIMD) 2) wymaga niskopoziomowego myslenia (te regiony pamieci w CUDA, OpenCL) 3) Intel ma wprowadzic (lub juz to zrobil) CPU 64c, a AMD 32c. Pewnie zaniedlugo beda cpu z 128c. Mimo tego na wszelki wypadek kupilem 2070...

tdudzik

@vpiotr: a na jakie stanowisko aplikowałeś? Zwykły SWE?

tdudzik

Miałem raczej na myśli czy stanowisko jakoś szczególnie związane z obliczeniami równoległymi lub podobnymi. Jeżeli nie, to po co o to pytać? A z wątkami to do czynienia miał raczej każdy programista, niezależnie od dziedziny.

vpiotr

@tdudzik: caly problem polega na tym ze IMHO wątki (bariery, mutexy, blokady) są dla obliczen rownoleglych przecenianym narzedziem. Co innego jak piszesz serwer http lub stack TCP/IP.

Kamil Żabiński

@vpiotr: Ponieważ wątki działają i "Netflix point"

tdudzik

Nie wiem czy się zrozumieliśmy. Miałem na myśli, że firmy raczej starają się mieć ustandaryzowany proces rekrutacji, żeby móc porównywać kandydatów, a jeżeli rekrutuje kogoś na stanowisko typu web czy mobile, to nie ma sensu pytać o rzeczy z którymi raczej niewiele kandydatów miało styczność. Jednocześnie praktycznie niezależnie jakiej technologii używałeś, to z wątkami styczność miałeś.

vpiotr

@tdudzik: tak, uzywalem ale nie polubilem. Pracowalem tez w PHP, Pythonie, JavaScript, PL/SQL, REXX, BASICu, Turbo Pascalu i tam ich chyba nie bylo.

tdudzik

No ale w rekrutacji chyba nie chodzi o to co lubisz, tylko o to co umiesz i rozumiesz. :) Wątki po prostu wypada znać i rozumieć i tyle, dlatego niektórzy o to pytają.

vpiotr

Moda w IT (co wypada) jest mało użyteczną rzeczą (bo subiektywną i nie wytrzymującą czasu). Moglbym zapytac na interview o setki takich waznych z punktu widzenia historii rzeczy. Ale caly ten post jest subiektywny wiec lets agree we disagree.

Kamil Żabiński

Niestety nie rozumiem czemu wątki miałyby być modą w IT. W takiej brzydkiej Javie są prawie od samego początku, czyli jakieś 20 lat, i są używane na produkcji. Agenty (takie jak w Clojure) się nie przyjeły (była jedna biblioteka). Aktorzy - trochę (jest Akka i jeszcze jakieś inne rozwiązanie). Włókna i korutyny dopiero wchodzą (mimo że koncepcyjnie są pewnie tak samo stare jak wątki). Nie wiem jak to wygląda w innych topowych językach, ale nazywanie wątków modą jest IHMO trochę nadużyciem.
PS. nie bronię wątków, też ich nie cierpię, ale rozumiem czemu na rozmowach o pracę o nie pytają

vpiotr

Modą sa pytania o watki, nie same watki. Te ostatnie sa w uzyciu od dziesiatek lat (np task w os/360, 1966). Lekko nowsze sa korutyny np w Modula 2 (1978), message passing (Smalltalk, 1972) i aktorzy (1973, w Erlang od 1986).

yarel

@vpiotr: Myślę, że dobrze byłoby pokierować rozmowę pod siebie, tj. "Wątki? Trochę nudne, myślałem, że raczej porozmawiamy o ..." . Co do wątków, to sympatie/antypatie odłożyłbym na bok i traktował po prostu jako narzędzie, które wypada znać.

Kamil Żabiński

@yarel: na jednej rekrutacji jak mocno odbiegłem od tematu opowiadając o alternatywach usłyszałem żebym tak nie robił, bo rekruter może pomyśleć, że specjalnie przeciągam odpowiedź żeby nie dostać pytań na które nie znam odpowiedzi :D

vpiotr

@yarel: nawet jeslibym wygral dyskusje / przeszedl interview, to moglbym trafic potem do jakiegos zapomnianego przez ludzi wielowatkowego projektu, co raczej dla mnie nie byloby wygrana.

tdudzik

@yarel takie stwierdzenie nigdy nie jest dobrym pomysłem. :D

yarel

@Kamil Żabiński: rekruter przecież może przerwać wypowiedź i zadać pytania na które nie znasz odpowiedzi, więc ta rada trochę podejrzana ;)
@vpiotr: a to już loteria czy rekruter prawdę powiedział, czy jednak będziesz jednym z wątków w jakimś większym kieracie :P
@tdudzik: do odważnych świat należy, no chyba że nie masz ciekawszego od wątków tematu, to wtedy ryzykowny pomysł :P

no_solution_found

no to to jest idealna okazja by poopowiadać o message passing, aktorow, async, AVX, fibers, map reduce, numa, cache trashing, RAID, partycjonowanie itd :D obróc te pytanie na swoją korzyść!