Live coding na rozmowie rekrutacyjnej

Live coding na rozmowie rekrutacyjnej
R8
  • Rejestracja:ponad 4 lata
  • Ostatnio:około 4 lata
  • Postów:45
0

Witam,

Co sądzicie o live codingu na rozmowie rekrutacyjnej? Ostatnio cos takiego mialem na rozmowie i miałem coś zakodowac wykorzystujac pewne mechanizmy, ktorych wczesniej nigdy nie uzywalem przez co bardzo kiepsko mi to poszlo. Sama roznowa techniczna poszla mi dobrze, natomiast ten live coding mocno mi ja zepsuł. Mam wrazenie, ze tak jednym zadaniem zaprzepaścilem wtedy mozliwosc pracy w danej firmie. Nie przyjeli mnie tam.

Bonanzaa
  • Rejestracja:ponad 4 lata
  • Ostatnio:około 4 lata
  • Postów:168
1

@rysiek81: Skoro miałeś wykazać się znajomością tych mechanizmów, których nie znałeś to co za różnica czy Cię o nie zapytają czy kodujesz? I dla mnie takie rzeczy to tylko na własnym kompie albo na kartce mają sens.

edytowany 1x, ostatnio: Bonanzaa
Shalom
  • Rejestracja:około 21 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
5

@rysiek81 hmm no ale jak to sobie wyobrażasz? Bo skoro nie umiałeś na rozmowie, to w pracy też byś nie umiał. Dostajesz podobnego taska i co wtedy? ;)


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
Zobacz pozostałe 3 komentarze
WeiXiao
who knows? zresztą czym innym jest jak masz 15/30 min, a normalnie :) zależy oczywiście co miał zrobić itd.
KA
meh, dla mnie taki live coding na rekrutacji a w pracy to dwie rozne rzeczy
Shalom
@karsa: bo? Miałem juz takie rekrutacje gdzie dostałem w zasadzie normalny kawałek kodu, jakiś mały serwis (związany zresztą z tym co robiła firma) i kilka failujacych testów / bugów i miałem siąść z drugim koderem i rozkminić gdzie jest coś nie tak i poprawić. Nie da się już chyba bardziej realistycznie tego zrobić.
KA
@Shalom: to ja takiej nie miałem nigdy. 70% głównie około algorytmów lub coś abstrakcyjnego. Zazwyczaj też bardzo jednostronne, ja mam wiedzieć wszystko i jestem oceniany a nie faktyczne pair programming
M2
Nieprawda. Rozmowa to zupełnie co innego niż praca.
Michał Sikora
Michał Sikora
  • Rejestracja:około 7 lat
  • Ostatnio:prawie 4 lata
  • Lokalizacja:Kraków
  • Postów:834
11

Uważam, że to jeden z lepszych sposób sprawdzania kandydatów.

ZP
Też tak uważam. Zdecydowanie lepiej niż zadanie domowe
M2
Bzdura, live coding testuje głównie poziom stresu obserwowanego kandydata, a osiągane wyniki są znacznie gorsze niż gdyby pracował w spokoju. Przeprowadzono już badania na ten temat: https://www.sciencedaily.com/releases/2020/07/200714101228.htm
DH
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 3 lata
  • Postów:3
6

Nie przejmuj się.
Rozmowa kwalifikacyjna w IT dzisiaj to błazenada.
Change my mind.

Zobacz pozostałe 3 komentarze
DH
idź na kartce pisz programy xD
Bonanzaa
dzisiaj pisałem na rozmowie o prace xD
superdurszlak
@Dhuum: no podczas 60min pair programmingu / kodowania na kartce / tablicy to i tak żadnego R&D nie zrobisz, ale CRUDa lub prostokąty i cylindry już jak najbardziej. Czego nie rozumiesz?
DH
Jak wam zagrają te korporacje, tak zatańczycie jak posłuszne małpki. :D Róbcie zadania i wyluzujcie.
Shalom
@Dhuum: nie pracuje w FAANGu, ale jeśli interesuje cię gdzie, to wejdź na mój profil. Reszty bełkotu nie rozumiem. Przecież OP płacze że miał peer-programming a nie jakieś ciężkie algorytmy do rozkminiania. Co więcej napisał że pokonały "mechanizmy" których nigdy nie używał, a to sugeruje jakieś elementy języka (dajmy na to że nie umie użyć dziedziczenia) i trudno mi sobie wyobrazić jak klepiesz cokolwiek, nawet tego CRUDa, bez takich umiejętności.
superdurszlak
  • Rejestracja:prawie 7 lat
  • Ostatnio:3 dni
  • Lokalizacja:Kraków
  • Postów:1999
21
Dhuum napisał(a):

Nie przejmuj się.

Rozmowa kwalifikacyjna w IT dzisiaj to błazenada.
Change my mind.

  • Zadania domowe krótkie - źle
  • Zadania domowe długie - źle
  • Codility - źle
  • Kodowanie na kartce - źle
  • Kodowanie na komputerze - źle
  • Programowanie w parach - pewnie tym bardziej źle
  • Pamięciówka język/framework z kartki - źle
  • Pytania jakim typem zwierzęcia jesteś - źle
  • Whiteboard z zadaniem typu Leetcode - źle
  • Whiteboard prostokąty i cylindry - źle

Tak czytając wypowiedzi różnych ludzi na forum - praktycznie każda forma rekrutacji jest zła. Teraz okazuje się, że live coding też. Jaka forma rozmowy kwalifikacyjnej NIE jest zatem błazenadą?


Zobacz pozostałe 3 komentarze
LukeJL
a, że takie coś. No to spoko. Fajnie sobie coś maznąć czasem.
superdurszlak
Niektóre rysowanki nawet mają sens, ale wtedy akurat nie ma gdzie wcisnąć cylindrów (mówię o diagramach sekwencyjnych). A pozostałe... można rozszyfrowywać kropka - kreska - kropka - kreska - pusta strzałka vs kreska - długa kreska - kreska - kreska - długa kreska - pełna strzałka z kółkiem albo narysować prostokąty, cylindry, strzałki i podpisać o co chodzi.
Czulu
Może ma to jakiś związek z tym że co człowiek to inna opinia, geniusze ?
ZP
Opinia jest taka, bo (moim zdaniem) rozmowa odbiega od realnej pracy. Np dokery, chmury, kolejki - Widzisz to raz na rok. Codzienność to czytanie kodu i odpowiadanie na pytania czy to ma tak działać albo czemu tak wyszło. Na rozmowach wygania są nieporównywalnie większe niż potem w pracy. To irytuje. Po co ktoś pyta z algo jak potem tego nie wymaga?
piotrpo
Gdyby wziąć pod uwagę sumę negatywnych odpowiedzi z tego forum, to pewnie skończyłoby się na "pokoloruj drwala"
LukeJL
  • Rejestracja:około 11 lat
  • Ostatnio:2 minuty
  • Postów:8398
5

Wolę kodować na tablicy niż live coding, bo na tablicy łatwiej być kozakiem i robić skróty myślowe, a w live codingu to musi być działający program, więc od razu widać, jak się jest słabym xD


Miang
na tablicy nie masz jak udowodnić ze Twój SQL jest ok , tylko sprawdzający nie zna pewnych instrukcji
LukeJL
a więc jest to miecz obosieczny...
Satanistyczny Awatar
  • Rejestracja:ponad 6 lat
  • Ostatnio:13 minut
  • Postów:694
0

Co sądzę? Ale ogólnie czy o konkretnych modelach jej prowadzenia?
Zależy co się koduje.
Zależy gdzie.
Zależy czego chcą.

Jak rekrutacja do czegoś "okołowebdev" i oczekują coś pokroju autoryzacji jakimś tokenem i połączenia z bazą danych którą pierwszy raz na oczy widzisz,ale masz dostęp do dokumentacji i gdzie oczekują że obsłużysz błędy to co innego niż coś kalibru idziesz na rozmowę do firmy piszącej renderery na zamówienie i każą zakodować na żywo raytracer od zera z palca bez dostępu do jakiejkolwiek dokumentacji czy bibliotek bo oczekują że pisałeś tego typu rzeczy tyle razy, że wzory na rzutowanie wektora na wektor i podobne zabawy z algebry recytujesz obudzony w środku nocy a strukturę plików png pamiętasz lepiej niż swój pesel. Graf sceny moż być zadany z góry. Może być oczekiwana dyskusja o tym jaką strukturę najlepiej wykorzystać do grafu.I tak dalej i tak dalej.

edytowany 1x, ostatnio: Satanistyczny Awatar
LukeJL
  • Rejestracja:około 11 lat
  • Ostatnio:2 minuty
  • Postów:8398
0
Satanistyczny Awatar napisał(a):

idziesz na rozmowę do firmy piszącej renderery na zamówienie i każą zakodować na żywo raytracer od zera z palca bez dostępu do jakiejkolwiek dokumentacji czy bibliotek

Są takie firmy? Myślałem, że takie coś to zabawa dla hobbystów ;)


WeiXiao
  • Rejestracja:około 9 lat
  • Ostatnio:około 13 godzin
  • Postów:5107
3

@superdurszlak:

Tak czytając wypowiedzi różnych ludzi na forum - praktycznie każda forma rekrutacji jest zła. Teraz okazuje się, że live coding też. Jaka forma rozmowy kwalifikacyjnej NIE jest zatem błazenadą?

nie no, nie odkrywajmy świata na nowo xd
oczywiście że każda z form rekrutacji jest zła, ale dla danych osób (wątpię że na każdą z tych form narzeka ta sama osoba)

Kto będzie bardziej skłonny narzekać na długie zadania - singiel czy ktoś mający dwójkę dzieci?
i tak samo do każdego innego

edytowany 5x, ostatnio: WeiXiao
Shalom
wątpię że na każdą z tych form narzeka ta sama osoba. -> czy ja wiem? Jak ktoś jest słaby to będzie narzekać na każdą...
superdurszlak
Na czym wtopisz na to narzekasz :]
Satanistyczny Awatar
Wystarczy być leniwym. Nie trzeba być od razu słabym.
teez
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 4 lata
  • Postów:122
4

Lubię rozwiązywanie zadań na tablicy (w postaci pseudokodu), które sprawdzają myślenie. Nie lubię zadań, które muszą się od razu kompilować (jeszcze jak ktoś chce, aby pisać w google docsach, a on to sobie skopiuje do IDE i sprawdzi czy się skompiluje). Takie zadania imo nie sprawdzają nic sensownego. W codziennej pracy nie muszę pamiętać o średniku, bo IDE mi przypomni więc nie zawracam sobie glowy bzdetami - no chyba, że robi się jakieś zmiany w vimie na serwerze to wtedy faktycznie się to przydaje, ale to scenariusz dość rzadki. :P

Trochę rozmów przeszedłem i najbardziej spodobała mi się forma zadań w stylu: Mamy problem X - jak byś go rozwiązał? Przykładowo: w dzialającej aplikacji, której nikt nie ruszał od roku, klienci zaczęli się skarżyć, że bardzo długo czekaja na odpowiedź. Co byś zrobił, aby zdiagnozować problem? Sprawdzenie logów, połączenia z serwerami, sprawdzenie puli wątków na bazie itd.

Albo zadania typowo około architektury - Zaproponuj obsłużenie komunikacji w momencie gdy [tutaj wpisz różne wymagania tej komunikacji]

Zobacz pozostałe 29 komentarzy
AO
@teez: do edycji/przeglądanie plików w kontenerze, oczywiście poza tym volume który i tak lokalnie montuję
teez
No ale gdzie ja napisałem, że nie lubię vima?
AO
@teez: innym, w tym tym którzy nie lubią Vim
teez
Jak już tak się czepiamy to bez wyrywania z kontekstu: " żeby zasugerować tobie i innym, w tym tym którzy nie lubią Vim i nie chcą tego używać" czyli też mi i tym, którzy mimo, że nie mają potrzeby również chcesz to zasugerować bez względu na scenariusz w którym używają vima. Ale to ty dzwonisz. :P Po prostu są scenariusze kiedy zwykły vim wystarcza, są takie kiedy trzeba użyć czegoś innego. Po co na siłę używać jednego rozwiązania do wszystkiego.
teez
mi wygodnie w vimie, Tobie w emacsie i skończmy dyskusje, bo to do niczego sensownego nie prowadzi ;)
The Pontiff
  • Rejestracja:ponad 4 lata
  • Ostatnio:10 miesięcy
  • Postów:128
4

Po tym jak zobaczyłem trzech wymiataczy z rzędu którzy nie potrafili zrobić fizz buzza zostałem 100% fanem live codingu.

Zobacz pozostałe 7 komentarzy
The Pontiff
Nie zgadzam się, ja uważam że takie typki nie potrafią już w ogóle programować a jeśli zastąpią ify streamami albo frameworkami to wcale nie zacznie to działać, tylko będzie jeszcze trudniejsze do wykrycia. Naprawdę widziałem cuda gdzie pojedynczy if na jednym obiekcie jest zastępowany streamem (ciągle z jednym obiektem) i lambdą która ma źle napisany warunek i jeszcze się całkowicie wysypuje na null pointerze. Nie można zatrudniać takich ludzi a szczególnie nie na stanowiska seniorskie.
LukeJL
Fakt, widać to po programistach Reacta, ktoś przychodzi z problemem niby reactowym, a okazuje się, że naprawdę nie ogarnia zmiennej this albo domknięć w JS i stąd ten problem, że jak ktoś nie ogarnia podstaw języka to i framework nie pomoże.
PaulGilbert
A co to jest fizz buzz w ogóle?
M2
To beznadziejnie musisz przeprowadzać rekrutacje, że zestresowałeś ich do tego stopnia, że zapomnieli podstaw.
robertwadowski
robertwadowski
  • Rejestracja:ponad 9 lat
  • Ostatnio:ponad rok
  • Lokalizacja:Płock
  • Postów:106
1

Za często nie prowadzę rozmów rekrutacyjnych. Ale ostatnio właśnie ten peer coding "ocalił" pewnego juniora bo jeśli chodzi o teorię chłopak leżał, ale kodowanie udowodnił mi, że potrafi myśleć a to najważniejsze dzięki czemu przyjęto go na okres próbny a potem normalnie i chłopak sobie radzi. Wg. mnie musisz zwyczajnie poćwiczyć.

Czulu
w taki razie wygląda na to że cała część teoretyczna jest wspólną stratą czasu, chyba musisz przemyśleć ten proces.
robertwadowski
robertwadowski
nie no odpowiedział na część pytań, ale nie na tyle bym był zadowolony. Ale fakt - nie jestem najlepszym kandydatem do tej funkcji i następnym razem chyba jest lepiej kodować i zadawać pytania odnośnie interesujących mnie zagadnień.
Czulu
Mnie się szczególnie spodobał sposób który ktoś miał w firmie w Niemczech, tj zadanie domowe, a potem modyfikacja live z rozmową o danych aspektach na bieżąco.
Czulu
  • Rejestracja:ponad 10 lat
  • Ostatnio:około godziny
  • Postów:649
3

Wielu programistów jest szybkich w łojeniu kandydatów którzy nie radzą sobie z zadaniami na rozmowie, ale druga strona medalu jest taka że mało który programista jest w stanie wymyślić zadanie które ma jakiś związek z realnymi zadaniami w pracy, zamiast czegoś co związku nie ma i tak na prawdę nic nie sprawdza. Zresztą mam ogólne wrażenie że ze względu na przesycenie rynku kandydatami rozmowy rekrutacyjne w IT zmieniły się w festiwal spierd**enia, podobnie jak na początku lat 90 w innych zawodach, tak że nie chodzi już o to żeby przede wszystkim znaleźć kompetentnego pracownika, tylko uwalić nieperfekcyjnego kandydata i potem kręcić z tego bekę na kawie.

edytowany 1x, ostatnio: Czulu
Zobacz pozostały 1 komentarz
KA
a moze zamiast robic zaawansowanych rekrutacji to przyjac ludzi na podostawie CV + rozmowy/pogadanki i zdecydowac pozniej na podstawie feedbacku od zespolu po okresie probnym lub w trakcie?
Czulu
To jest spory koszt w przypadku wtopy, można zrozumieć że firma chce się zabezpieczyć.
KA
mozesz kogos zrezygnowac wczesniej niż po uplywie 3 miesiecy
Czulu
Nawet miesiąc w przypadku pensji doświadczonych programistów przekraczających zwykle 15 tys to kupa kasy. Z kolei znacznie krótszy termin nie pozwoli na wiarygodne zweryfikowanie kandydata, bo każdy musi się wdrożyć w projekt zanim zacznie wymiatać.
KA
Ogólnie większość projektów nie wymaga jakiejs super wiedzy. Jedna firma w której byłem na początku dobrze o tym wiedziała, nigdy nie szukali wymiataczy z wielkimi ambicjami bo...nie mieli takich projektów a praca musiała być zrobiona, więc średniak za niższą kasę był dla nich akurat. Imo większość IT właśnie tak wygląda, mimo, że wielu utrzymuje jak to zatrudniają "najlepszych"
Crowstorm
  • Rejestracja:ponad 7 lat
  • Ostatnio:12 miesięcy
  • Postów:490
2

Dopóki zadanie jest proste sprawdzajace czy kandydat umie logicznie myśleć to nie mam nic przeciwko.
Jeśli jednak rekruter wyskakuje z zadaniem zaimplementowania jakiegoś algorytmu Pierdziochowa-Srakowicza to kończę rozmowę i małpy do cyrku szukają gdzie indziej. Nie zamierzam się uczyć tysiąca algorytmów na pamięć, bo zgooglanie ich zajmuje łącznie 30 sekund z implementacją.w docelowym języku

edytowany 1x, ostatnio: Crowstorm
AO
a często też implementacja ich od nowa nie ma sensu, lepiej wziąć coś gotowego, sprawdzonego przez tysiące ludzi w różnych środowiskach
ZP
Z algo mam taki problem że mi ulatuje ta wiedza szybko. Np wiedzę dot db to chlone szybko i raczej długo. Algo mam odwrotnie. I jak tylko z algo mam do czynienia na rekrutacji, bo w pracy jest jak jest. To zwyczajnie nie chce mi się już tego ponawiać. Jakbym miał z tego korzystać na codzień potem. Spox. A tak szkoda gadać
kimikini
  • Rejestracja:ponad 14 lat
  • Ostatnio:16 minut
0

w sumie spoko, taka rozmowa bardzo szybko wybije osoby niby z kilkuletnim doswiadczeniem ale kompletnie bez umiejetnosci bo przesiedzieli jakims cudem pare lat w jednej firmie nie robiac zbyt wiele

KA
z drugiej strony dawanie jakis trivia ludziom z kilkuletnim doswiadczeniem to tez troche absurd
Miang
mam wrażenie że niektórzy rekrutujacy nie potrafią na podstawie kilku liczb w cv ocenić tej ilości lat i zadają osobom doświadczonym pytania jak dla Świeżaka.....
KA
  • Rejestracja:prawie 11 lat
  • Ostatnio:około 2 lata
  • Postów:594
4

Mam nadzieje, że jak ktos aplikuje na kierownika budowy to mu każą budować dom z klocków lego zanim zacznie robote

Shalom
Słabe porównanie bo programowanie to praca zespołowa. W takim korpo jesteś jednym z setki programistów i możesz w zasadzie nic nie robić i spora szansa ze nikt się nie zorientuje. Z tego względu samo papierowe doświadczenie jest słabym wyznacznikiem czegokolwiek. Kierownik budowy to pozycja raczej w stylu Managera i rekrutacja jest zupełnie inna. Programista to jest jak gość z taczką na budowie i zaręczam ci, że zaproszą cię na 1 dzień "próbny" żebyś pokazał jak pracujesz, tak samo jak peer-programming na interview.
KA
Myślisz, że miało być to trafne porównanie czy celowo absurdalne?
Shalom
Nie wiem jakie miało być, ale było bez sensu bo porównujesz jabłka z pomarańczami. Programista to jest taczkowy na budowie czy kierowca wózka widłowego, a nie dyrektor. Pokaż mi gdzie zatrudnią cię do jeżdżenia wózkiem widłowym "na gębę".
KA
Absurdalne. Ogolnie te porownania do innych branży czy "architektów" to też totalny absurd
Interpod
  • Rejestracja:ponad 9 lat
  • Ostatnio:ponad 2 lata
  • Postów:81
4

Według mnie większość sposobów rekrutacji opierające rozwiązywania krótkich zadań/algorytmów czy nawet ten livecoding są tyle warte co rekrutacja żeby zadowolić wytyczne dotyczące diversity.

Jest masa stron, płatnych kursów pokroju leetcode, geeksforgeeks, które za gruby hajs uczą hindusów jak rozwiązywać zadania algorytmiczne po to tylko zeby dostać sie do faang'a a później wyrwać vise pracowniczą, i co później z tego wychodzi ? Masz "chłopa" z indii pracującego w facebooku, który jest w trakcie zmiany płci, a z programowaniem ma tyle wspolnego, że jest w stanie zbalansować BST stojąc na głowie. A później powstaje taki nowy messenger/facebook który działa jak działa...

Co do samego live codingu, każdy człowiek reaguje inaczej. Znam ludzi co są dużo bardziej efektywni jak ktoś im patrzy na ręce, inni z kolei się denerwują i wszystko im się sypie.

Patologią w IT jest to, że żeby dostać pracę nie jest nie wystarczy, że sie na tym znasz i jesteś w tym dobry ale też musisz być dobry w przechodzeniu rozmów rekrutacyjnych. Nie bez powodu powstaly ksiązki typu "cracking coding interview" i wiele innych. Sama autorka o tym pisze.
Potencjalny kandydat może być przeciętnym programistą albo w ogole ledwo co programować, ale bedąc dobrym w algosach i przechodzeniu rozmów rekrutacyjnych jest w stanie dorwać robote za 100k$ +. Co jak na Polskie warunki dosyć dużo.

Miałem okazję pracować z i supportować kod ludzi, których głownym atutem w życiu było to, że pracowali w google lub facebooku.
Byli dobrzy w pisaniu algorytmów na przeszukanie grafów albo rozwiązywanie jakiś karkołonych przypadków z dziedziczenia tak jak @Shalom wspomniał i na tym ich zajebistość sie kończyła.
I później przychodzi taki i ci pisze command patter do czegoś co można zrobic 2-if'ami bo on wielki ex-google engineer. I wiele innych kwiatków.

Z innym typem ludzi, z którymi miałem przyjemność pracować to chłop, który nie ma pojecia jak działa merge sort, albo dijstra, ale był topką w tym co robił, super przyjemnie sie z nim pracowało (nie to co z buffonami z faanga) i mega dużo można było się nauczyć.

Rzeczywistość zweryfikowała, ex-faang-cymbały miały wjazd do firm uznawanych za topowe w niektórych kręgach (typu Qulatrics, Alledrogo, Codewise, Revolut itp).
Z kolei ci kumaci mieli problem bo na twarz dostawali od razu pytanie o drzewo binarne, albo co sie wyświetli pierwsze jeżeli A extends B implements C..

edytowany 2x, ostatnio: Interpod
Zobacz pozostałe 13 komentarzy
KA
Ex-googler pewnie zrobi 8 ifow i ujowo
CP
@karsa: ja idę do google, i rozczarowała mnie twoja wypowiedź...
KA
Jak wszędzie, wszystko zależy od zespołu do jaki go trafisz. Ale to nie jest tak, że tysiące pracowników w google to wszyscy topka
LoneWanderer
  • Rejestracja:około 4 lata
  • Ostatnio:około 4 lata
  • Lokalizacja:Warszawa
  • Postów:5
0

Nie miałem jeszcze live codingu, ale rozmowy z HR są dobijające- pytania typu jak się czujesz jak coś robisz...

Algorytmy to tylko pewna działka i najwyraźniej kogoś od nich szukają, przynajmniej takie odniosłem wrażenie w jednej firmie, gdzie dostałem z nich zadanie do rozwiązania na za kilka dni. (Szkoda, że nie odbierali emaili ani telefonów - był wtedy pogrzeb mojego dziadka)

Bonanzaa
Albo ostatnio baba z HR pyta mnie jakie mam wrażenia po rozmowie technicznej, ja nie wiem o co ona pyta no to sobie otwieram https://pl.wikipedia.org/wiki/Wra%C5%BCenie i się zastanawiam o jakie jej wrażenia chodzi? Wzrokowe, smakowe, termiczne, mięśniowe? Czy ona szuka programisty czy pajaca?
Interpod
A miałeś jakies mięsniowe ? Ile lat miała?
Bonanzaa
Z 40 miała, uj ją to powinno obchodzić jakie miałem wrażenia mięśniowe, czy ja się do cyrku zapisuję?
LoneWanderer
Weź, na mnie HRówa się obraziła o to pytanie - powiedziała, że się nie staram i jestem niemiły :D Ale na szczęście jej zdanie się nie liczyło, a reszta rozmowy poszła bez przeszkód.
Czulu
Następnym razem powiedz jej że staje Ci jak programujesz, ciekawe co ona na to.
Satanistyczny Awatar
  • Rejestracja:ponad 6 lat
  • Ostatnio:13 minut
  • Postów:694
3

Algorytmy? Obecnie bym zaczynał od sprawdzenia czy kandydat po dostaniu do ręki dokumentacji funkcji umie ją wykorzystać i czy koduje obsługę błędów. Piszę to po doświadczeniu jako admin z dziesiątkami jak nie setkami "webdeveloperów" którzy uważają sprawdzenie wartości zwracanej za niepotrzebny wysiłek a wyjątki łapią na zasadzie "catch any, do nothing", a potem ci w razie wykrzaczenia się kodu piszą do supportu, że serwery są źle skonfigurowane bo im kod się nie wykrzacza na ich lokalnych maszynach. Oczywiście dzięki brakowi obsługi błędów we własnym kodzie nie są w stanie przedstawić dowodów na poparcie tezy o błędnej konfiguracji, nie mówiąc już o wiedzy co konkretnie za błąd ma miejsce. No ale "oni wiedzą bo pracują już X lat".

Jeśli praca wymaga żonglowania algorytmami i strukturami danych - pytanie z nich ma sens. Jeśli nie ma takiego typu rzeczy w realnie prowadzonych projektach nawet na poziomie biernego czytania kodu - to mija się z celem. Tutaj jednak bym się skupił na składaniu ze sobą kilku różnych struktur danych i algorytmów niż na weryfikowaniu czy pamięta kandydat jak się balansowało drzewa czerwono-czarne. Skupił na zasadzie czy kandydat umie uzasadnić wybór takich a takich rozwiązań. Nie zakładając z góry klucza odpowiedzi, gdzie istnieje tylko jedna słuszna metoda rozwiązania. Czy live coding jednak by to miał testować to już uważam za dyskusyjną kwestię.

Z tym, że jeśli ktoś nie ogarnia takich podstaw jak co to jest tablica hashująca czy hasło graf w sensie struktur danych mu nic nie mówi to coś jest zdecydowanie nie tak. W dowolnej formule sprawdzania kandydata.

Inna sprawa to jak sensownie sprawdzić przejrzystość kodu czy zdolność wyszukiwania błędów i ich naprawy tak by mieć jakiś wartościowy obraz w realistycznej sytuacji bo to już materiał na minimum kilkaset linii kodu. A tego już niekoniecznie da się spawdzić poniżej bitych kilku godzin (gdy pracowałem w embedded trafiała się masa dość głupich błędów ale nawet seniorzy w skrajnych przypadkach mogli się szczaić o co chodzi dopiero po ładnych paru tygodniach drążenia tematu i mówię tu o ludziach, którzy spokojnie mogli ci pisać od zera funkcjonalne kernele na zlecenie), a tyle raczej nikt na live coding nie poświęca.

KR
  • Rejestracja:ponad 8 lat
  • Ostatnio:2 dni
  • Postów:166
0

@rysiek81: jakie mechanizmy?

wiciu
  • Rejestracja:ponad 11 lat
  • Ostatnio:17 dni
  • Postów:1205
2
Shalom napisał(a):

@rysiek81 hmm no ale jak to sobie wyobrażasz? Bo skoro nie umiałeś na rozmowie, to w pracy też byś nie umiał. Dostajesz podobnego taska i co wtedy? ;)

Wg mnie taki live coding to średnia metoda rekrutacyjna. Co innego jest zrobić jakieś zadanie w pracy, a co innego na takim live codingu. W pracy siedzisz sobie spokojnie, pijesz kawkę, pracujesz na skonfigurowanym pod siebie sprzęcie i możesz sobie spokojnie rozwiązać problem, który prawdopodobnie został parę dni wcześniej przegadany na jakimś backlog refinemencie lub planowaniu i wiesz, co co tam chodzi.

Raz dostałem zadanie na rekrutacji na zasadzie masz tu laptopa, jakiś edytor w przeglądarce i ścianę tekstu z opisem zadania bez słowa wyjaśnienia ze strony rekruterów. No i miałem 30 minut na analizę i zrozumienie tego, o co im tam chodzi, rozwiązanie zadania, zakodowanie i sprawdzenie, czy działa poprawnie i w tym samym czasie 3 osoby patrzyły mi na ręce. Była to dość stresująca sytuacja i normalnie nie pracuje się w takich warunkach. Co ciekawe, rozwiązałem to zadanie poprawnie, ale nie pasowało im, że rozwiązałem je inaczej, niż oni by to zrobili, a niestety w tak krótkim czasie nie ma możliwości dopracowania swojego rozwiązania.

Tak, czy inaczej, jeśli chcemy się dostać do firmy, która organizuje coś takiego podczas rekrutacji, to niestety musimy się do tego dopasować, czy nam się to podoba, czy nie i grać w tę "grę". Można się tego nauczyć. Na szczęście nie każda firma próbuje robić rekrutację w stylu google.

ID
Uniknąłeś JanuszSoftu.
wiciu
Akurat to była rekrutacja do korpo z Ameryki z biurem w Polsce xD. To był jeden z etapów. Prawie cały dzień straciłem na tej rozdmuchanej do granic możliwości rekrutacji i gadałem łącznie chyba z 10 osobami, więc przynajmniej jedna osoba z tego towarzystwa musiała się czegoś uczepić. IMO większość tego procesu to było zwykłe pier******e. Co ciekawe, od maganera dostałem maksymalną możliwą ocenę. Tak, czy owak, cieszę się, że tam nie trafiłem, bo wylądowałem lepiej. PS. Nie była to żadna topowa firma typu FANG.
W0
  • Rejestracja:ponad 12 lat
  • Ostatnio:40 minut
  • Postów:3536
0

Live coding - o ile przeprowadzony poprawnie - jest IMO najlepszą formą weryfikacji umiejętności. Warto na wstępie poprosić kandydata, żeby opowiadał o tym co robi - wtedy bardzo fajnie wychodzi czy rozumie co robi oraz czy jest w stanie zrozumiale komunikować co się dzieje.

JA
"warto na wstępie poprosić kandydata, żeby opowiadał o tym co robi" -- w ten sposób znajdziesz osoby, które potrafią jednocześnie myśleć, kodować i mówić -- niekoniecznie muszą to być najlepsi programiści. To tak, jakby zatrudniać tylko gitarzystów, którzy potrafią jednocześnie grać i śpiewać.
W0
Fałszywa analogia. Różnica jest taka, że (przynajmniej ja) wymagam, żeby programista potrafił opowiedzieć co z problemu zrozumiał oraz jak zamierza go rozwiązać - zwłaszcza, że zadania na live codingu nie są jakieś megaskomplikowane. Od gitarzysty niekoniecznie trzeba wymagać, żeby śpiewał.
AO
  • Rejestracja:około 9 lat
  • Ostatnio:około 24 godziny
  • Postów:183
0

Live coding to tylko dla jakichś prostych zadań typu fizzbuzz albo wyszukiwanie liczb parzystych w tablicy. Kiedyś dodałem zadanie "zaimplementuj swój malloc() i free()`", oczywiście nie zrobiłem tego, IMO to jest za trudne zadanie. Są też kwestie praktyczne - mój edytor, Emacs, pisze ze mnie dużo kodu, podkreśla errory, automatycznie robi wcięcia, w dowolnej chwili mogę ten kod skompilować i zobaczyć czy są warningi albo czy się uruchamia, ma inne keybindingi niż browserowe edytorki np. Control-w usuwa cały poprzedni wyraz (tak jak defaultowo w Bash) a w Firefox to zamyka taba.

mariano901229
  • Rejestracja:ponad 10 lat
  • Ostatnio:6 miesięcy
  • Postów:597
1

Powiem tak, że chyba najlepiej to rokującemu kandydatowi dać po prostu 3 miesiące okresu próbnego :) Na rozmowie kwalifikacyjnej można tylko odsiać ludzi, którzy naprawdę nie potrafią nic, a zostawić tych, którzy rokują.

Raz rekrutowałem gościa, który był świetny z teorii, w teście (manager wymusił programowanie na kartce, bo co to za herezja live coding), ale kompletnie sobie w robocie nie radził. W konsekwencji jego pracę w 2 tygodnie byłem w stanie zrobić w 30 minut po jego roku pracy.

Osobiście ostatnio mam dość oryginalny sposób na przechodzenie rozmów kwalifikacyjnych. W sumie to opowiadam o swoich błędach, rzeczach, które chciałem wdrożyć, elementach, które bym poprawił. Dlaczego używałem technologii X i dlaczego ma ona swoje wady. Po takiej rozmowie mam poczucie, że opowiadam bardziej o swoich przegranych niż sukcesach, ale chyba działa bo ostatnią pracę dostałem w jakimś rekordowym czasie po 33 minutach rozmowy 2 godziny później dostałem telefon z ofertą.

edytowany 2x, ostatnio: mariano901229
W0
  • Rejestracja:ponad 12 lat
  • Ostatnio:40 minut
  • Postów:3536
1
wiciu napisał(a):

Wg mnie taki live coding to średnia metoda rekrutacyjna. Co innego jest zrobić jakieś zadanie w pracy, a co innego na takim live codingu. W pracy siedzisz sobie spokojnie, pijesz kawkę, pracujesz na skonfigurowanym pod siebie sprzęcie i możesz sobie spokojnie rozwiązać problem, który prawdopodobnie został parę dni wcześniej przegadany na jakimś backlog refinemencie lub planowaniu i wiesz, co co tam chodzi.

Właśnie o to chodzi, że trzeba dobrać zadanie tak, żeby:

  • było w miarę rozwiązywalne
  • dało się "naprowadzić" kandydata

Dobry live coding nie wygląda tak, że dostajesz jakiś duży problem do rozwiązania w dwie godziny, a osoby rekrutujące siedzą przez ten czas, milczą i notują co robisz źle. Musi być komunikacja - trzeba spytać kandydata, jak coś by rozwiązał, jeśli gdzieś się machnie to trzeba wskazać, że jednak gdzieś tam jest problem żeby mógł się poprawić itp. itd. To nie jest łatwa sprawa dobrze to ogarnąć - ale jeśli się to zrobi dobrze to pay-off jest bardzo duży.

DKN
  • Rejestracja:ponad 4 lata
  • Ostatnio:7 miesięcy
  • Postów:128
1

Ogólnie jak ktos ma sprawdzić cie na szybko to jest to trudne, wszystko ma swoje minusy i plusy, inaczej się niestety nie da.
Powiedziałbym raczej, ze prócz umiejętności i doświadczenia ważne jest szczescie.
Dobry git i to czy się polubisz z gościem, czasem cos nie pyka po prostu.

Edit: tak pomyślałem, to podczas live codingu jest ważne by rozmawiać, potraktuj to może jako formę dalszej rozmowy tylko, ze teraz patrzycie w kod.
To nie polega na cichym pisaniu z pełnymi gaciami, a właśnie na głośnym myśleniu.
Np : Tutaj można zrobić walidacje tego co dostajemy za pomocą monady, ale skoro jest juz w klasie metoda to mogę z niej skorzystać..
Tutaj zależy jaki cel bizenesowy..
Tu warto pamiętać o tym, ze w transakcji mamy dirty checking i encja jest już w cyklu persist, wiec nie trzeba save...

Tak wiec kod to dalsza rozmowa, trzeba się nie bać, mówić pomysły. Nawet nie rozwiązując czegoś idealnie można być bardzo dobrze odebranym.


Z każdym dniem czuje się głupszym programista.
edytowany 1x, ostatnio: DKN
ZI
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 3 lata
  • Postów:208
2

Jednym z lepszych live codingów które miałem to była rozmowa gdzie dostałem jakiś wycinek aplikacji i miałem zrobić code review + zaklepać jakąś małą rzecz. Generalnie w kodzie było sporo błędów różnego rodzaju (od niespójnego formatowania przez jakieś nieobsłużone przypadki, N+1, jakieś bezsensowne calle do zewnętrznych API po w ogóle dziwną architekturę). 90% czasu zajęło gadanie o tym co i jak można poprawić, jak to testować, co zacznie się pierniczyć pierwsze jak się to zdeployuje, a faktyczne klepanie kodu to tak naprawdę był refactor żeby obsłużyć nowy (słabo opisany, trzeba było się dopytywać) scenariusz walidacji. Rozmowa trwała ponad 2 godziny ale najbardziej odzwierciedlała codzienną pracę z tych wszystkich na których byłem.

HA
  • Rejestracja:około 6 lat
  • Ostatnio:około 3 godziny
  • Postów:1006
3

Jak do tej pory tylko raz brałem udział w live coding. Ciekawe doświadczenie, ale raczej źle mi się w ten sposób kodowało. W moim przypadku zadania były dość proste - raczej taki przyczynek do rozmowy. Bardziej niż na rozwiązaniu zadania skupiałem się na walce z przeglądarką - zero kolorowania składni, wcięć, podpowiadania, kolorowania błędów, wyuczonych skrótów klawiaturowych, podpowiadania kolejności parametrów. Po wszystkim zauważyłem, że jedno z zadań mogłem rozwiązać znacznie lepiej, niż to zrobiłem bo dużo pary w gwizdek szlo aby chociaż dojść do tego, że kod działa bez błędów. Pracę dostałem, oceny niby bardzo wysokie ze względu na zachowanie komunikatywności w trakcie rozwiązywania zadań i tłumaczenia czemu co robię etc.

Myślę, że nie ma idealnego sposobu na prowadzenie rekrutacji. Po prostu każdemu co innego podejdzie. Kiedyś miałem zadanie zaprojektowania i zakodowania całego systemu w 4h. Chodziło głównie o architekturę i POC. Po 1h walki z edytorem, którego nie znałem i konfiguracją środowiska, która też była trochę nienaturalna stwierdziłem, że to nie ma sensu i wyszedłem. Ktoś kto nie przywiązuje się za bardzo do środowiska i nawet w Vimie klepnie większy kawałek kodu pewnie by sobie z tym poradził - mi już ciśnienie skaczę jak siadam na IDE, które ma domyślnie skróty klawiaturowe zamiast moich.

Najlepiej wypadam na rekrutacjach, gdzie jest rozmowa techniczna w dużej mierze dlatego, że potrafię bronić swoich poglądów nie idąc przy tym w konflikt z kimś kto uważa inaczej (nie dotyczy dyskusji w internecie ;-) ). Zazwyczaj łatwo łapię kontakt z ludźmi i większość takich rekrutacji przekształca się w luźną rozmowę przy kawie i bardziej wymianę opinii niż "egzamin".

Każdy typ rekrutacji ma tak, że promuje pewne umiejętności, a zmniejsza znaczenie innych, wiec różnym osobom będą podchodziły inne typy rekrutacji.

PP
PP
  • Rejestracja:prawie 8 lat
  • Ostatnio:prawie 4 lata
  • Postów:21
1

Zależy od zadania, live coding w słabych firmach to klepanie w frameworkach i sprawdzanie, czy małpa umie into framework. Brałem udział w 2 rekrutacjach z live codingiem w "lepszych" firmach, jedna firma sprawdzała moje podejście z narzędziem, które nie używałem od bardzo długiego czasu, a druga miała zadanie w plain javie - oczywiście wszystko miało być przetestowane. Doświadczenie bardzo fajne, bo jak nie masz abstrakcji frameworków, to okazuje się, że jednak napisanie kodu, który da się łatwo testować oraz jest czytelny, to zadanie trudniejsze niż się większości "programistów" wydaje.

Zobacz pozostałe 3 komentarze
DKN
@Shalom:albo jezeli chcesz rozbić transakcje tak, żeby mieć pewność, ze próba zapisu będzie zawsze logowana do bazy i nie będzie rollbacka, albo jak używasz pobierania list i pomimo batchowania puchnie ci cache enitityMenegera, albo nie wiesz ze dirty object będzie fleszowany, gdy bedziesz chciał ponownie pobrać go z bazy danych, albo nie ogarniesz ze proporacja req_new wywoływana z innej transakcji, będzie izolowana i bedziesz miał niespójność danych... Nikt nie płaci nikomu za czytanie, to fach w ręku. Cos jak mechanik by powiedział, ze doczyta jak działa podwozie..
Shalom
@DKN no tak, albo co się stanie jak wołasz metodę z transactional z metody która miała transactional, jak się to propaguje i co się stanie jak poleci wyjątek ;) o kwiatkach z attached/detached object w JPA to nawet nie będę pisać :D
PP
PoteznyProgramista
@DKN @Shalom Nadal nie rozumiem problemu, pracowałem z JPA i transactional. Widzę co piszecie i nadal nie jest to dla mnie wiedza tajemna. Sorry, ale osoba, która nigdy z tym nie pracowała ogarnie działanie transactional dosyć szybko. W przypadku JPA niekoniecznie tak szybko, tylko w jakim celu używać JPA? Wiem, że transactional używa implementacji JPA. Jeżeli pracowaliście z naprawdę sporą bazą danych, która nie kończyła się na dwóch joinach, to raczej powinniście mieć świadomość że użycie takiego Hibernate sprawia więcej problemów niż pożytku. Wolałbym już użyć jOOQ...
DKN
@PoteznyProgramista: Nawet duże bazy danych korzystają z jpa. Sekret tkwi w organizacji i optymalizacji. Wystarczy monitorować zapytanie, ewentualnie wspomóc się jakimś optymalizatorem. Zreszta to wszystko zależy od architektury, do query możesz użyć sql, do command jpa. Zreszta przyjmując kogoś nowego często jest potrzeba by dawał cos od siebie do projektu, a nie poświęcać mu czas na tłumaczenie frameworka.
PP
PoteznyProgramista
@DKN: Serio uważasz że używając orma powinieneś monitorować zapytania? Nie uważasz, że jednak twoj orm powinien zachowywać się w sposób na tyle consistentny, że tego nie potrzebujesz? "query możesz użyć sql" Nie wiem czy miałeś na myśli dosłownie sql, ale wtedy tracisz największy benefit JPA, aczkolwiek to raczej wiesz.
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)