Nieudany test rekrutacyjny - zły silnik bazodanowy

Nieudany test rekrutacyjny - zły silnik bazodanowy
BP
  • Rejestracja:około rok
  • Ostatnio:około rok
  • Postów:8
0

Cześć wszystkim.

Piszę do was po wczorajszym teście rekrutacyjnym na staż na analityka danych (Power BI i te sprawy).
Sprawa jest wielowymiarowa, bo i proszę o radę, i o opinię, i o pomoc 😆 Wszystkie zadania i rozwiązania moje wkleję pod główną częścią posta.

Dostałem do rozwiązania 5 zadań z sql-a do wykonania w ciągu godziny na tej stronie https://www.w3schools.com/sql/trysql.asp?filename=trysql_op_in. Patrzę na nie, wydają się w porządku. Początek zresztą idzie mi dobrze, aż do końcówki 3 zadania. Klauzula LIMIT nie chciała mi za nic działać. Straciłem jakieś 10 minut na rozwiązanie tego, nadal nic. Pod koniec znalazłem takie coś, jak klauzula TOP. Zadziałało, więc uznałem, że dodam to jako alternatywne rozwiązanie.

Zostawiłem więc to i przeszedłem do zadania 4. Tu też wydawało się wszystko dość łatwe. Problem w tym, że nie mogłem sprawdzić, czy to działa, bo z jakiegoś powodu przy wklepaniu drugiego INNER JOINA przestało wszystko działać. Znowu straciłem na tym długie minuty. Skończyło się to tym, że zrobiłem literówkę (dodatkowy średnik) i chyba nie do końca zrozumiałem to zadanie.

Na zadanie 5 nie starczyło mi czasu, by spróbować napisać podzapytanie (miałem takiego rodzaju zadania na zajęciach). Zauważyłem jednak, że klauzula TOP 4 spełnia warunki zadania i wyznacza tych dodatkowych klientów, więc zostawiłem to.

Po fakcie odkryłem, że został mi wysłany link do edytora dla silnika SQL Server, a nie jakiegoś innego (np. MySQL, który bardzo dobrze znam), którego zupełnie nie znałem. Nie wiedziałem, że tam INNER JOIN-y trzeba wstawiać w jakieś nawiasy, bo inaczej to nie zadziała...

W mailu zwrotnym napisałem, że nie byłem w stanie używać klauzuli LIMIT i wielokrotnych INNER JOIN-ów, przez co nie byłem w stanie sprawdzić, czy zadanie dobrze działa.

I teraz pytania:

  1. Czy jest jakaś szansa, że na podstawie tych odpowiedzi mnie nie odrzucą, ewentualnie dadzą drugą szansę? xd
  2. Czy pisać do nich jakiegoś dodatkowego maila z informacją o tym, że link został mi wysłany do silnika bazy danych, którego nigdy nie używałem, przez co miałem te wymienione problemy? Trzeba tutaj też dodać, że zadanie 3 było niemożliwe do wykonania, bo w SQL Server nie ma klauzuli LIMIT.
  3. Jak w ogóle oceniacie moje wypociny?

I teraz obiecane zadania i moje rozwiązania:

  1. Wyświetl zamówienia złożone w czwartym kwartale 1996 roku.

    Kopiuj
    SELECT *
    FROM Orders
    WHERE (MONTH(OrderDate) = 10 OR MONTH(OrderDate) = 11 OR MONTH(OrderDate) = 12)
    AND YEAR(OrderDate) = 1996;
    
  2. Wyświetl zamówienia od klientów z Brazyli.

    Kopiuj
    SELECT *
    FROM Orders o
    INNER JOIN Customers c
    ON o.CustomerID = c.CustomerID
    WHERE c.Country = 'Brazil'
    
  3. Wyświetl nazwę klienta i liczbę zamówień dla TOP 3 klientów, którzy złożyli najwięcej
    zamówień w 1996 roku (skorzystaj z klauzuli „LIMIT”).

    Kopiuj
    SELECT c.CustomerName, COUNT(o.OrderID) AS 'Liczba zamówień'
    FROM Orders o
    INNER JOIN Customers c
    ON o.CustomerID = c.CustomerID
    WHERE YEAR(OrderDate) = 1996
    GROUP BY c.CustomerName
    ORDER BY 2 DESC
    LIMIT 3;
    
    Alternatywnie
    
    SELECT TOP 3 c.CustomerName, COUNT(o.OrderID) AS 'Liczba zamówień'
    FROM Orders o
    INNER JOIN Customers c
    ON o.CustomerID = c.CustomerID
    WHERE YEAR(OrderDate) = 1996
    GROUP BY c.CustomerName
    ORDER BY 2 DESC
    
    
  4. Wyświetl produkty i wartość zamówień złożonych w 1997 roku. Wyniki posortuj malejąco
    według przychodów.

    Kopiuj
    SELECT p.ProductName, o.OrderID, SUM(p.Price * od.Quantity) AS Kwota
    FROM Products p
    INNER JOIN OrderDetails od
    ON p.ProductID = od.ProductID
    INNER JOIN Orders o
    ON od.OrderID = o.OrderID;
    WHERE YEAR(OrderDate) = 1997
    GROUP BY p.ProductName, o.OrderID
    ORDER BY 3 DESC;
    
  5. Wyświetl nazwę klienta i liczbę zamówień dla TOP 4 klientów, którzy złożyli najwięcej
    zamówień w 1996 roku. Obsłuż sytuację, w której klienci mają tyle samo zamówień (wyświetl
    kolejnych klientów jeżeli mają tyle samo zamówień co czwarty z kolei klient).

    Kopiuj
    SELECT TOP 4 c.CustomerName, COUNT(o.OrderID) AS 'Liczba zamówień'
    FROM Orders o
    INNER JOIN Customers c
    ON o.CustomerID = c.CustomerID
    WHERE YEAR(OrderDate) = 1996
    GROUP BY c.CustomerName
    ORDER BY 2 DESC
    

Pozdrawiam! 😀

edytowany 1x, ostatnio: Riddle
YA
  • Rejestracja:prawie 10 lat
  • Ostatnio:około 2 godziny
  • Postów:2364
2

W zależności od silnika bazodanowego i tego jaki ma optymalizator zapytań i jaka jest struktura fizyczna:

  1. Zamiast (co może generować konieczność wywołaniu funkcji MONTH i YEAR na każdym z przetwarzanych wierszy)

    Kopiuj
    (MONTH(OrderDate) = 10 OR MONTH(OrderDate) = 11 OR MONTH(OrderDate) = 12)
    AND YEAR(OrderDate) = 1996;
    

    można bezpośrednio użyć zakresu dat (jeśli będzie indeks na OrderDate, to silnik może z niego skorzystać)

    Kopiuj
    OrderDate>= ... and OrderDate < ... 
    
  2. Warunki złączenia

    Kopiuj
       JOIN Customers c
    ON o.CustomerID = c.CustomerID
    WHERE YEAR(OrderDate) = 1996
    

    vs

    Kopiuj
       JOIN Customers c
    ON o.CustomerID = c.CustomerID AND YEAR(OrderDate) = 1996
    

    vs

    Kopiuj
       JOIN Customers c
    ON o.CustomerID = c.CustomerID AND OrderDate >='1996-01-01' and OrderDate<1997... -- plus/minus właściwe skonstruowanie daty 
    

    (vs FILTR po zakresie dat w kaluzuli WHERE).

W zależności od silnika może to mieć znaczenie wydajnościowe, ale nie musi.

edytowany 1x, ostatnio: Riddle
DR
  • Rejestracja:prawie 12 lat
  • Ostatnio:około 7 godzin
  • Postów:1129
0

@Dawid Nicpoń

  1. Jak wyżej,
  2. Ja osobiście bym zrobił to podzapytaniem, nie jestem pewny SQL server, ale w MySQL będzie wydajniejsze, ponadto tak skonstruowane, zapytanie zwróci nie tylko Order ale też Customers, a nie tak brzmi polecenie,
  3. TOP nie wymaga ORDER BY, więc osoba sprawdzająca, będzie wiedzieć, że albo nie znasz danego silnika, albo nie wumkesz w dokumentację. Nie ma też LIMIT,
  4. Tutaj też bym zrobił podzapytanie, by ograniczyć na samym początku przeszukiwany zbiór,
  5. To c,ego szukasz to WITH TIES.
    No słabo to widzę, tym bardziej, że z tego co mówisz to było jakieś nieporozumienie, że nie wiedziałeś na jakim silniku będziesz pracować.
PA
ad. 3 nie wymaga, ale żeby top zadziałał dla klientów z największą ilośćią zamowień musi być, w przeciwnym wypadku dostanie 3 rekordy w kolejności zwracania
DR
@Panczo: Tak, tak. Masz rację
LukeJL
  • Rejestracja:około 11 lat
  • Ostatnio:mniej niż minuta
  • Postów:8397
5

Kategoria Bazy danych, ale odpiszę tak, jakby to było w dziale Kariera.

Ten post pokazuje bardzo smutną rzeczywistość branży IT. Aplikujesz na stanowisko intelektualne wymagające myślenia w szeroko pojętej branży IT:

Piszę do was po wczorajszym teście rekrutacyjnym na staż na analityka danych (Power BI i te sprawy).

A każą ci robić w ciągu godziny zadania na czas jak w jakimś teleturnieju czy reality show:

Dostałem do rozwiązania 5 zadań z sql-a do wykonania w ciągu godziny na tej stronie

Specyfika tego zadania wymaga od ciebie myślenia na czas, gdzie każda minuta jest ważna, bo stracisz punkty:

Patrzę na nie, wydają się w porządku. Początek zresztą idzie mi dobrze, aż do końcówki 3 zadania. Klauzula LIMIT nie chciała mi za nic działać. Straciłem jakieś 10 minut na rozwiązanie tego, nadal nic. Pod koniec znalazłem takie coś, jak klauzula TOP. Zadziałało, więc uznałem, że dodam to jako alternatywne rozwiązanie

I tak dobrze, że nie każą się tarzać w błocie.

A na końcu wisienka na torcie, czyli mimo tych wszystkich upokorzeń, to nie masz wyboru, jak uszy po sobie i prosić o drugą szansę:

Czy jest jakaś szansa, że na podstawie tych odpowiedzi mnie nie odrzucą, ewentualnie dadzą drugą szansę? xd

I nie jest to krytyka skierowana do ciebie, tylko ogólna refleksja na temat tego, jak wygląda "rynek kandydata" w praktyce :D


Zobacz pozostałe 12 komentarzy
SE
@LukeJL: W ogole nie rozumiem tego twojego oburzenia i subiektywnych, kompletnie niepotrzebnych emocji. Przeciez nikt tych rzeczy nie wymysla zlosliwie czy zeby cie upokorzyc (schizofrenia mocno), bo rowno z koncem procesu nikt nie bedzie o Tobie pamietac. Sytuacja jest nader oczywista: liczba chetnych przekracza "moce przerobowe" stad trzeba jakos wstepnie odfiltrowac liczbe kandydatow. Gdyby sytuacja byla odwrotna to zapewniam Cie, ze kazdy dostalby te 1-2h na rozmowe f2f - co zreszta mialo miejsce w okolicach covida, kiedy rekrutowano na potege.
LukeJL
@Seken Ale ja nie twierdzę, że oni robią to celowo. To efekt uboczny. Chociaż może faktycznie w swoich komentarzach zapominam o brzytwie Hanlona https://simple.wikipedia.org/wiki/Hanlon%27s_razor (żeby nie przypisywać złych intencji tam, gdzie można to wytłumaczyć głupotą).
WeiXiao
@LukeJL: wszystko jest do ustalenia. Zakomunikuj firmie że chcesz porozmawiać z devami czy kimś tam, to może/pewnie się zgodzą, szczególnie jeżeli zaliczysz przejdziesz rozmowę i będzie etap przed podpisaniem umowy.
JB
@LukeJL: nie lubisz się sprawdzać?
LukeJL
@johnny_Be_good: niekoniecznie w taki sposób. Zresztą... jak dostaję zadanie domowe, to cieszę się, jeśli czegoś się dowiedziałem nowego, jeśli to jest inspirujące (ostatnio po 2h robienia tego typu zadania domowego uznałem, że nauczyłem się co trzeba i olewam dalej, że nie zrobię do końca, ale za to czegoś się nauczyłem).
BP
  • Rejestracja:około rok
  • Ostatnio:około rok
  • Postów:8
0

@Dregorio

  1. TOP nie wymaga ORDER BY, więc osoba sprawdzająca, będzie wiedzieć, że albo nie znasz danego silnika, albo nie wumkesz w dokumentację. Nie ma też LIMIT,

Co do zadania 3. to było wprost napisane, żeby użyć klauzuli LIMIT, więc stąd mój mindfuck.

No słabo to widzę, tym bardziej, że z tego co mówisz to było jakieś nieporozumienie, że nie wiedziałeś na jakim silniku będziesz pracować.

Na żadnym dotychczasowym etapie rekrutacji nie było mowy, w jakim silniku będzie praca.
W wymaganiach była tylko "Podstawowa znajomość SQL-a".

mustang_ex
  • Rejestracja:około rok
  • Ostatnio:12 dni
  • Postów:98
0

Na żadnym dotychczasowym etapie rekrutacji nie było mowy, w jakim silniku będzie praca.

No więc właśnie. Kłamstwo rekrutera #1.

W wymaganiach była tylko "Podstawowa znajomość SQL-a".

No to po kiego ch* wymóg biegłości w sql? Zagadnienia typu budowanie kompleksowych zapytań to już zaawansowany aspekt i wykracza daleko poza ramy stanowiska.
A tak btw: od kiedy to analitylk danych musi być biegły/znać jakieś z duopy wzięte niuanse sql?

abrakadaber
abrakadaber
tyś widział kompleksowe zapytania SQL. Przecież te pytania to są podstawy podstaw
KE
Niestety prawda. Jak kiedyś zobaczyłem sobie, co prawdziwy bazodanowiec pisze na co dzień u mnie w pracy, to usunąłem SQL z CV, bo przypał.
mustang_ex
@abrakadaber: tak widziałem komplexowe zapytania sql. Podstawą to jest np składnia wielomianowa. A sekwencje typu limit, order itp to już średniozaawansowane
abrakadaber
abrakadaber
Nawet nie wiem jak to skomentować...
JB
  • Rejestracja:około 2 lata
  • Ostatnio:3 dni
  • Lokalizacja:Holandia
  • Postów:843
0

Proponuję Ci teraz odwrócenie ról. Pomyśl co dla nich jest naturalne - chodzi o listę czynności. Wykonuj je i sprawdzaj reakcję. Zaplanuj tak działania, żeby to nie budziło w nich zdziwienia, dowiedz się czego chcą i wydzielaj im to po jak najmniejszym kawałku. Przy każdej porcji staraj się wyciągnąć jak najwięcej informacji. Możesz je tutaj publikować.
Zrobienie zadań i wysłanie to jest jedna czynność, zastanów się jak to podzielić tak, żeby to zrobić w jak największej liczbie kroków - odwrotnie do algorytmu.
Poszukaj informacji o nich, staraj się rozpoznać strukturę w jakiej operują.

Chyba, że chcesz zawsze robić za szczura laboratoryjnego.


BP
  • Rejestracja:około rok
  • Ostatnio:około rok
  • Postów:8
0

@johnny_Be_good
Tylko że ja nie wiem, czego chcą xD
Jestem świeżak na rynku pracy. Nigdy nie zaszedłem tak daleko w rekrutacji. To mogłaby być pierwsza rozmowa rekrutacyjna w życiu.

JB
  • Rejestracja:około 2 lata
  • Ostatnio:3 dni
  • Lokalizacja:Holandia
  • Postów:843
0
BezqyczekPL napisał(a):

@johnny_Be_good
Tylko że ja nie wiem, czego chcą xD
Jestem świeżak na rynku pracy. Nigdy nie zaszedłem tak daleko w rekrutacji. To mogłaby być pierwsza rozmowa rekrutacyjna w życiu.

A czego może chcieć rekruter? Wziąć pieniądze i coś tam pokazać jako wynik. Ty chyba w jego życiu znaczysz najmniej. Więc jest duże prawdopodobieństwo, że Cię nie widzi.
Zapewne jest mężczyzną albo kobietą. Chyba wiesz czym się różnią ludzie.
Chcesz być analitykiem, to co piszę to najczystsza analiza. Lista możliwości, obliczanie prawdopodobieństwa.
Może to jest właśnie test a nie ten SQL.

Ogólnie jedyna bardzo pewna rzecz, to jest to, że chce żyć, może zagraj tą kartą?


edytowany 1x, ostatnio: johnny_Be_good
BP
  • Rejestracja:około rok
  • Ostatnio:około rok
  • Postów:8
0

@johnny_Be_good
Ale to jeszcze za wcześnie, żeby coś się od nich dowiadywać. Wyniki miały być po nowym roku dopiero prawdopodobnie xd
Jeśli dostanę odmowę, to zacznę wypytywać, co zrobiłem źle i wyciągnę wnioski na kolejną rekrutację.
Nie wiem, co miałbym wypytywać więcej xd

Moja teoria jest taka, że rekruter sam za bardzo nie zna się na SQL-u, tylko dostał od kogoś zadania i pewnie przesłał.

mustang_ex
Moja teoria jest taka, że rekruter sam za bardzo nie zna się na SQL-u, tylko dostał od kogoś zadania i pewnie przesłał. no dokładnie tak było podjrzewam; w sumie byłoby to logiczne; rekruter ma znać się na rekrutacji a nie na żądaniach klientów.....co innego jest że jedną z technik rekruterów jest perfidne okłamywanie (potencjalnych) przyszłych pracowników.
JB
  • Rejestracja:około 2 lata
  • Ostatnio:3 dni
  • Lokalizacja:Holandia
  • Postów:843
0
BezqyczekPL napisał(a):

@johnny_Be_good
Ale to jeszcze za wcześnie, żeby coś się od nich dowiadywać. Wyniki miały być po nowym roku dopiero prawdopodobnie xd
Jeśli dostanę odmowę, to zacznę wypytywać, co zrobiłem źle i wyciągnę wnioski na kolejną rekrutację.
Nie wiem, co miałbym wypytywać więcej xd

Moja teoria jest taka, że rekruter sam za bardzo nie zna się na SQL-u, tylko dostał od kogoś zadania i pewnie przesłał.

Czemu miałby Ci prawdę powiedzieć?

Bardzo dobra metoda to jest , przygotowywanie się na sytuacje już teraz, długie spacery i się przygotowujesz na to, że nie zostałeś przyjęty. I wtedy powinny Ci wpaść różne możliwości prowadzenia dialogu.

Nauka IT nie zajmuje dużo czasu, jak by szukali pracownika to by wzięli pierwszego lepszego.

Ale to jest IT - wymiana informacji.

To nie jest DIT (digital information technology) tylko IT (information technology)


mustang_ex
Czemu miałby Ci prawdę powiedzieć? Ze zwykłej ludzkiej uczciwości (jeśli nie z innych powódek), Nauka IT nie zajmuje dużo czasu bardzo względne
JB
Twój interes publikować taką opinię. Powiedzieć, napisać można wszystko.
Marcin.Miga
  • Rejestracja:prawie 17 lat
  • Ostatnio:4 dni
  • Postów:2792
2

Sorry, ale na analityka danych bez baz danych ani rusz. Dostałeś do zrobienia podstawy podstaw. A i tak jedno zrobiłeś źle (5), a dwa średnio (1 i 2).
Albo się poducz, albo startuj na juniora.
Powodzenia

BP
  • Rejestracja:około rok
  • Ostatnio:około rok
  • Postów:8
0

@Marcin.Miga
Ale to jest staż/praktyki, czyli coś etap przed juniorem. To czemu miałbym tak to zrobić?
Piąte zadanie zrobiłbym na podzapytanie, ale straciłem pół godziny na to, że nie rozumiałem, że pracuję na innym silniku niż mi się wydaje.

Co do pierwszego i drugiego to wiem, że mógłbym zrobić lepiej.

Marcin.Miga
"Staż" - faktycznie, umknęło mi to słowo.
obscurity
  • Rejestracja:około 6 lat
  • Ostatnio:około 8 godzin
1
BezqyczekPL napisał(a):
  1. Czy jest jakaś szansa, że na podstawie tych odpowiedzi mnie nie odrzucą, ewentualnie dadzą drugą szansę? xd
  2. Czy pisać do nich jakiegoś dodatkowego maila z informacją o tym, że link został mi wysłany do silnika bazy danych, którego nigdy nie używałem, przez co miałem te wymienione problemy? Trzeba tutaj też dodać, że zadanie 3 było niemożliwe do wykonania, bo w SQL Server nie ma klauzuli LIMIT.

Pozostali kandydaci zapewne mieli te same zadania i problemy, jeśli wypadli lepiej mimo tego to zapewne oni zostaną wybrani. Nie ważne jak niesprawiedliwe jest zadanie, jeśli wszyscy grają według tych samych reguł to jest to nadal fair.
W związku z tym nie ma też sensu pisać do nich o tym, z tego co rozumiem miałeś napisać tylko zapytania w MySQL, nie musiałeś ich testować i nie ma znaczenia że edytor obsługiwał inny dialekt tym bardziej że zadania wyglądają na tyle prosto że nie było takiej potrzeby ich testowania jeśli ogarniasz temat.

Jest coś takiego jak ANSI SQL, zapytania które działają na praktycznie każdym silniku SQL, polecam od tego zacząć a dopiero później poznawać dodatkowe składnie dla konkretnego silnika. Choć akurat nie ma nadal z jakiegoś powodu w 2024 roku unormowanego sposobu na LIMIT / TOP i operacje na datach.


"A car won't take your job, another horse driving a car will." - Horse influencer, 1910
BP
  • Rejestracja:około rok
  • Ostatnio:około rok
  • Postów:8
0

@obscurity To, że wszyscy mogli mieć to samo, to jedyna moja nadzieja. xD
Dam znać po rekrutacji, jeśli nie zapomnę, jaką dostałem informację zwrotną.
Proste zapytania, jak 1, 2 i 3, jestem w stanie pisać z głowy, ale gdy już pojawiają się różne sumy, czy podzapytania, to często metodą prób i błędów dochodziłem do rozwiązań, bo jakieś błędy wywalało :P
Często chodziło o jakieś literówki, ale nie tylko.

JB
  • Rejestracja:około 2 lata
  • Ostatnio:3 dni
  • Lokalizacja:Holandia
  • Postów:843
0
BezqyczekPL napisał(a):

@obscurity To, że wszyscy mogli mieć to samo, to jedyna moja nadzieja. xD
Dam znać po rekrutacji, jeśli nie zapomnę, jaką dostałem informację zwrotną.
Proste zapytania, jak 1, 2 i 3, jestem w stanie pisać z głowy, ale gdy już pojawiają się różne sumy, czy podzapytania, to często metodą prób i błędów dochodziłem do rozwiązań, bo jakieś błędy wywalało :P
Często chodziło o jakieś literówki, ale nie tylko.

Błędy czy komunikaty?


BP
  • Rejestracja:około rok
  • Ostatnio:około rok
  • Postów:8
0

@johnny_Be_good Komunikaty o błędach 🙃

Zobacz pozostałe 2 komentarze
BP
No głównie to, że jest jakiś błąd składniowy, podaje kod tego błędu i można albo samemu na ślepo szukać rozwiązania albo sprawdzić co oznacza ten kod w dokumentacji (co często w sumie też niewiele dawało xD)
BP
Już nie przesadzaj xd Chcę wykonać coś, aby działało. Nie musi być wszystko po mojemu
JB
Nic na ślepo, lecisz wzrokiem czy literówek nie ma w słowach kluczowych, potem czy nazwy się zgadzają (np. tabel) a potem czy logika jest ok. Co ja się na SQL nie znam , ale tak powinieneś myślę robić.
JB
SQL nie powstał od razu taki. Zaczęło się od prostego wyszukania elementów w tablicy. Potem dodano kilka tablic i wyszukiwanie elementów w nich. i tak dalej. Ale to się zaczęło od jednej tablicy i mechanizmu wyszukiwania w niej obiektów.
BP
Ale nie opłaca się wszystkiego po kolei sprawdzać. Większa szansa, że będzie wszystko dobrze. A logikę staram się zrozumieć właśnie na podstawie prób i błędów. A co do SQL-a. W mojej pracy głównie bym robił jakieś wykresiki, tabelki. Nie potrzebuję ewolucji SQL-a :D
KE
  • Rejestracja:około 6 lat
  • Ostatnio:około godziny
  • Postów:659
0
LukeJL napisał(a):

A każą ci robić w ciągu godziny zadania na czas jak w jakimś teleturnieju czy reality show:

Czy limit czasowy na zadania jest złą praktyką? Bo mam wrażenie, że jest konieczny do odsiania ściemniaczy, możemy co najwyżej dyskutować, czy 60 minut jest wystarczające czy nie.

LukeJL
  • Rejestracja:około 11 lat
  • Ostatnio:mniej niż minuta
  • Postów:8397
1
kelog napisał(a):
LukeJL napisał(a):

A każą ci robić w ciągu godziny zadania na czas jak w jakimś teleturnieju czy reality show:

Czy limit czasowy na zadania jest złą praktyką? Bo mam wrażenie, że jest konieczny do odsiania ściemniaczy

Odwrotnie chyba. Ściemniacz wygeneruje kod za pomocą ChatGPT albo przeklei skądś i zmieści się w limitach czasowych tego typu zadań. To właśnie ktoś uczciwy może się nie zmieścić (nie mówię o tym zadaniu, tylko ogólnie o tego typu zadaniach, gdzie każą pisać jakiś kod i "w godzinę masz się zmieścić". Bywało tak, że chciałem zrobić dobrze, uczciwie, a potem okazywało się, że przez np. godzinę rozkminiałem rozwiązanie, a nie napisałem wiele kodu, albo napisałem tak brudny kod, że aż szkoda pokazywać. Tego typu zadania jakoś strasznie odległe są od rzeczywistej pracy, gdzie jednak nikt nie każe napisać w ciągu godziny czy dwóch rozwiązania, tylko wszystko na spokojnie (dopóki się wyrabiasz z taskami, ale tego po godzinie nikt nie oceni. A na rekrutacjach oceniają).


edytowany 1x, ostatnio: LukeJL
obscurity
dokładnie to samo chciałem napisać
KE
Hmm. Chyba rozumiem. Ale nie widzę rozwiązania - to ile powinien wynosić ten czas? Tydzień? Miesiąc? Rok?
obscurity
tylko rozwiązywanie na żywo z rekruterem ma sens, zadania domowe zupełnie straciły, nie ważne jaki będzie ten czas
LukeJL
@kelog Ile firma potrzebuje, żeby zbadać czyjąś wiedzę, pod warunkiem, że zapłaci. Ale tu już wchodzimy w kwestie "prac domowych", które mają odwrotny problem niż livecoding - zadania rekrutacyjne dawane przez firmy "do domu" często mają spoko limity czasowe. Problem w tym, że są bezpłatne. I robisz zadanie np. 7-10h, a potem jak firma wybierze innego kandydata, to nie zwróci ci hajsu za poświęcony czas. Ba, nawet code review ci nie da sensownego. Dobrze będzie, jak dostaniesz jakikolwiek feedback.
KE
Ok ma sens :) dzięki
BP
  • Rejestracja:około rok
  • Ostatnio:około rok
  • Postów:8
0

Chciałbym jeszcze na dobranoc dodać jedną notkę do tych moich zadań.

Zobaczcie na wynik tego mojego zadania 5. To co miało zwrócić, zwraca. Dlatego nie mam pewności zupełnie, jak zostanie potraktowane to zadanie. W pewnym sensie zrobiłem go dobrze, ale jeśli na przykład wymagano MySQL, to dlaczego dostałem edytor Server SQL, a nigdzie nie było wprost mowy, jakiego SQL-a mam używać.
screenshot-20231228224654.png

R7
  • Rejestracja:około 6 lat
  • Ostatnio:7 miesięcy
  • Postów:216
1

Zamiast pisać tu posty, znajdź tutorial SQL i ucz się na przyszłość. Dostałeś zadania pt. "Zaliczenie z podstaw SQL", wyszło średnio no i trudno. Jak się poduczysz, to wyjdzie lepiej.

mustang_ex
Tyle tylko że te podstawy podstawami. nie są.........
R7
Nie są? Dwa joiny na krzyż, jakieś proste grupowanie, to naprawdę nie są zaawansowane rzeczy.
marian pazdzioch
Nie są, podstawy to by było omówienie co do zasady co chciał zrobić i jak, a że szczegóły poszły nie tak to mogło spowodować że firma odrzuci możliwe że rokującego kandydata... Ale tak działa ten świat.
Miang
  • Rejestracja:prawie 7 lat
  • Ostatnio:około godziny
  • Postów:1659
1
LukeJL napisał(a):

Kategoria Bazy danych, ale odpiszę tak, jakby to było w dziale Kariera.

Ten post pokazuje bardzo smutną rzeczywistość branży IT. Aplikujesz na stanowisko intelektualne wymagające myślenia w szeroko pojętej branży IT:

Piszę do was po wczorajszym teście rekrutacyjnym na staż na analityka danych (Power BI i te sprawy).

Właśnie obawiam się że niekoniecznie stanowisko intelektualne wymagające myślenia , raczej stanowisko klepacza raportów.
Dziwaczne nazwy stanowisk , nie mające nic wspólnego z tym kogo chcą zatrudnić to prawdziwa plaga ostatnio


dzisiaj programiści uwielbiają przepisywać kod z jednego języka do drugiego, tylko po to by z projektem nadal stać w miejscu ale na nowej technologii
SL
  • Rejestracja:około 7 lat
  • Ostatnio:około 12 godzin
  • Postów:857
0

Jak dla mnie to miałeś mało szczęścia. Jeśli nie miałeś wiedzy o tym, że to inny silnik a nie poczułeś na własnej skórze jakie mogą być różnice to nauka tego w czasie tak napiętego czasu jest słaba. Do tego ta sprawa z Limitem to zawalenie sprawy po stronie rekrutera

Z drugiej strony coś tam wyniosłeś:

  • ogarnij sobie jakiś edytor, który waliduję sładnie zapytania, bo ten średnik to xd
  • proces rekrutacyjny często bywa spierdolony i trzeba improwizować
mustang_ex
zgadzam się co do drugiej kropki
marian pazdzioch
  • Rejestracja:ponad 6 lat
  • Ostatnio:około 19 godzin
  • Postów:708
1

No to jest dobre podsumowanie co tu się w tym IT odjaniepawla

A każą ci robić w ciągu godziny zadania na czas jak w jakimś teleturnieju czy reality show

Jak widzę że rekrutacja będzie tak wyglądać, to wywracam im ten stolik i wychodzę.

LukeJL
Może jak i tak trzeba zakuć, to lepiej zakuć wiedzę ogólną, a potem iść do Milionerów, tam solidną kasę dają przynajmniej (jeszcze jest 1 z 10, ale tam podobno mniejsza kasa). A w programowaniu odpowiadasz na pytania i jak odpowiesz dobrze, to nie dadzą i tak od razu hajsu, tylko trzeba i tak pracować, więc to niby jak teleturniej, ale bez kasy, tylko wygraną jest samo prawo pracy.
marian pazdzioch
No i prestiż i poważanie wśród kolegów
Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)