Rekrutacja na mid/senior, a zadania algorytmiczne

0

Dzięki wszystkim za wyrażenie swoich opinii.
Przygotowuję się tak naprawdę do pierwszej zmiany pracy, bo w aktualnej się zasiedziałem za długo, a nic twórczego i rozwojowego już się nie dzieje.
Nie będę szukać pracy w algorytmach, ale o ile na juniora często mogą być algorytmy, bo to zawsze coś co można u nowego w branży sprawdzić, tak przy osobie po kilku latach spodziewałbym się bardziej sprawdzania tajników języka, sprawy architektury itp.
W każdym razie jeszcze raz dzięki, postanowiłem przelecieć sobie jakieś najpopularniejsze algorytmy i zadania. A nuż, trafie na taką rekrutacje to może się przydać

1

To poczekaj. Bo pytałeś o algorytmy.
Ja w rekrutacjach na seniora ostatnio miałem combo

  • kodowanie algorytmów w hackerrank

  • live coding z wykorzystaniem struktur danych

  • rozmowy o tajnikach frameworków

  • wysokopoziomowe projektowanie domeny

  • ...

    Dużo, wycieńczająco (szczególnie że poprosiłem o umawianie rozmów jedna po drugiej), ale raz na 14 lat można sobie zrobić maraton xD

0
Aventus napisał(a):

Algorytmika na rozmowach do pracy gdzie na co dzień się z niej nie korzysta to absurd

Zalezy dlaczego sie z niej nie korzysta. Jesli dlatego ze nikt w firmie nie potrafi albo nikomu sie nie chce to absurdem jest zatrudnianie tylko takich ludzi. Ale jesli ktos zajmuje sie ... hmm, no nie wiem czym, jeszcze nie pracowalem w firmie w ktorej programista nie musi myslec, rozwiazywac problemow z ktorymi wczesniej sie nie spotkal, czy znac podstaw typu hashowanie, sortowanie, ... A porzadne rekrutacyjne zadnia algorytmiczne to wlasnie absolutnie podstawowe klocki ktore trzeba wymyslic jak zlozyc. A ze zdazaja sie firmy ktore sprawdzaja czy ktos wykul na pamiec jakis konkretny algorytm to juz inna sprawa - to wedlug mnie jest pozbawione sensu.

Piotr.Net napisał(a):

W każdym razie jeszcze raz dzięki, postanowiłem przelecieć sobie jakieś najpopularniejsze algorytmy i zadania

W jakim celu? Jesli po to zeby wykuc w nadziei ze trafisz na identyczne na rekrutacji to wydaje sie to malo prawdopodobne. Ale jesli chcesz byc lepszy w zawodzie ktory wykonujesz, albo po prostu jako substytut np. gry w szachy, to zdecydowanie polecam.

2

@eleventeen:

Zalezy dlaczego sie z niej nie korzysta. Jesli dlatego ze nikt w firmie nie potrafi albo nikomu sie nie chce to absurdem jest zatrudnianie tylko takich ludzi.

Miałem na myśli takie miejsca, gdzie nie korzysta się na co dzień bo nie ma takiej potrzeby, już nie dorabiajmy dodatkowych teorii ;)

Ale jesli ktos zajmuje sie ... hmm, no nie wiem czym, jeszcze nie pracowalem w firmie w ktorej programista nie musi myslec, rozwiazywac problemow z ktorymi wczesniej sie nie spotkal

Znajomość algorytmów lub jej brak nie świadczy o umiejętności (lub braku) myślenia czy rozwiązywania problemów.

czy znac podstaw typu hashowanie, sortowanie, ... A porzadne rekrutacyjne zadnia algorytmiczne to wlasnie absolutnie podstawowe klocki ktore trzeba wymyslic jak zlozyc.

Nie znam hashowania ani sortowania. Coś tam pamiętam ze szkoły, a ostatnio z ciekawości przeglądałem o algorytmach żeby odświeżyć sobie pamięć ale... już zapomniałem. Jakbym naprawdę potrzebował to znowu sobie wygoogluje, i może lepiej właśnie tę umiejętność bardziej sprawdzać? Notabene, u mnie w pracy pozwalamy kandydatom używać google podczas części praktycznej rekrutacji technicznej.

A ze zdazaja sie firmy ktore sprawdzaja czy ktos wykul na pamiec jakis konkretny algorytm to juz inna sprawa - to wedlug mnie jest pozbawione sensu.

No właśnie w tym rzecz- wykucie na pamięć. Algorytm to algorytm, da się go wykuć na pamięć. Jaki sens więc sprawdzanie tego przy profilowaniu kandydata? Użyję analogii- to trochę jak z testami jednostkowymi które niektórzy piszą tak że mają mocka, konfigurują tego mocka tak aby coś zrobił, a później sprawdzają czy to zrobił. Gdzie tu faktyczna wartość?

1

Wszystko zależy od firmy, ja jak na juniora się rekrutowałem to prawie zawsze miałem coś z algorytmów.

4

Ktoś kiedyś podrzucał fajny artykuł odnośnie googla, chyba @Shalom . Google przenalizowało wyniki swoich pracowników - tych dobrych z algo i tych którzy wypadli gorzej. Finalnie w późniejszej pracy nie miało to znaczenia.

Nie jest to żadne usprawiedliwienie za, czy przeciw. Jeśli ktoś lubi algo to jak najbardziej spoko - krzywdy mu to nie zrobi. Jednak nie dorabiajmy jakiś absurdalnych teorii o braku umiejętności analitycznego myślenia, czy programowania w sensie ogólnym przez fakt nie rozwiązania jakiegoś zadania-algo, któe nie jest nawet realnym problemem.

0
Aventus napisał(a):

Ale jesli ktos zajmuje sie ... hmm, no nie wiem czym, jeszcze nie pracowalem w firmie w ktorej programista nie musi myslec, rozwiazywac problemow z ktorymi wczesniej sie nie spotkal

Znajomość algorytmów lub jej brak nie świadczy o umiejętności (lub braku) myślenia czy rozwiązywania problemów.

Nie zrozumiales co napisalem. Owszem, fakt ze ktos wykuje na pamiec implementacje mnostwa algorytmow niewiele znaczy. Jesli ktos nie jest w stanie wymyslic jak zrobic proste zadanie wykorzystujace dowolny z juz zaimplementowany podstawowych algorytmow, chocby wlasnie sortowanie, to ciagle jeszcze niewiele oznacza. Ale jesli to sie zdaza regularnie dla kazdego zadania, to tak bezposrednio oznacza wlasnie brak myslenia/umiejetnosci rozwiazywania problemow. No chyba ze sie nie zna absolutnie podstawowych struktur danych/algorytmow i sie nie wie co mozna wykorzystac. Tyle ze wtedy tez zatrudnianie kogos takiego nie ma sensu.

ledi12 napisał(a):

Google przenalizowało wyniki swoich pracowników - tych dobrych z algo i tych którzy wypadli gorzej. Finalnie w późniejszej pracy nie miało to znaczenia.

To google zatrudnia osoby ktore sobie nie poradzily z zadaniami? Czyli nie potrafili wymyslec kompletnie nic? Bo to ze na 5 zadan ktos sobie np. z 2 nie poradzil dziwne nie jest - kazdemu moze sie zdazyc. I zapewne w badaniach zostali oznaczeni jako "slabo sobie radza". Ale skoro zostali zatrudnieni to zapewne ze 3 zrobili, czyli potrafia rozwiazywac problemy (no albo mieli bardzo duzego farta i trafili na cos co wczesniej wykuli - wydaje mi sie malo prawdopodobne).
Ja z kolei pracowalem z ludzmi zatrudnionymi bez wiekszej weryfikacji - zdazali sie mocni i slabi. Ale chyba wszyscy ktorzy zostali zatrudnieni po jakiejs formie weryfikacji praktycznej (czyli zadania, w tym wykorzystujace algorytmy dostepne np. w JDK) w trakcie pracy nie przestali myslec i radzili sobie dobrze. Zatrudnienie na podstawie samej wiedzy teoretycznej nie bylo skorelowane z pozniejsza kumatoscia w pracy (no ale probka zbyt mala zeby wyciagac ogolnie wnioski).

4

Ja daję, ale specyficzny projekt i zadania wprost wzięte z naszego kodu. Nie są moim zdaniem trudne, wystarczy znajomość stosu, umiejętność zastosowania hashmapy, a w jednym przypadku na przykład semafora (aczkolwiek zadanie można rozwiązać też na kompletnie inne sposoby).

3
Piotr.Net napisał(a):

W każdym razie jeszcze raz dzięki, postanowiłem przelecieć sobie jakieś najpopularniejsze algorytmy i zadania

W jakim celu? Jesli po to zeby wykuc w nadziei ze trafisz na identyczne na rekrutacji to wydaje sie to malo prawdopodobne. Ale jesli chcesz byc lepszy w zawodzie ktory wykonujesz, albo po prostu jako substytut np. gry w szachy, to zdecydowanie polecam.

A ja bardziej polecam spożytkowanie swojego czasu na kontrybucję do projektów Open Source z których większość z nas korzysta, jest to bardziej przydatne światu od rozwiązywania zmyślonych zadań z algorytmami i i dobrze wpływa na wizerunek.

3

Jeśli ktoś na rozmowie Cie pyta o jakieś algorytmy i prosi o napisanie tego w pseudokodzie to są dwie opcje:

  1. Super projekt w którym wykorzystasz swój analityczny umysł.
  2. Trafiłeś na idiotę o wybujałym ego i jest szansa, że właśnie do niego będziesz raportował.

Szansa, ze wypadnie opcja 2 to 3/4, więc z mojego doświadzczenia radzę nie przyjmować oferty z takiej firmy.

1 użytkowników online, w tym zalogowanych: 0, gości: 1