Programista nie do zastąpienia

Programista nie do zastąpienia
semicolon
  • Rejestracja:ponad 5 lat
  • Ostatnio:prawie 5 lat
  • Postów:114
0

Ostatnio moje dyskusje na forum dają mi trochę do myślenia i dochodzę do prostego wniosku: mogę bardzo łatwo wprowadzić złożoność do dowolnego programu podpierając się jedynie oklepanymi "najlepszymi praktykam". Programiści to kupią, bo oni takie rzeczy kupują, a ja mogę pisać system, który coraz trudniej będzie pojąć innym osobom.

Moje pytanie brzmi tak, jak ciężko jest zastąpić osobę, która robi WIDOOOCZNĄ różnicę w jira, a i też wie najwięcej o systemie, i ma największy wpływ na kluczowe taski.

Ja wiem, że na moje miejsce przyjdzie inna osoba, ale firma tracąc herosa, mając ciężki kod do zrozumienia i zwłokę z ficzerami też coś straci.

W jakich systemach, i okolicznościach najtrudniej jest zwolnić takiego dobrego programistę? To musi być fin-tech czy inne dziedziny też wchodzą w grę? Tu bardziej polecacie java czy scala czy javascript? Nie znam się, ale chyba problem z javascript można wyelminując przepisując front na świeższy więc dużo tu ryzykuję. Może scala? W niej mógłbym wycisnąć wiele ciekawych rzeczy zarówno z OPP, jak i FP.

Czy programista, który robi widoczną różnicę, jest pomocny, robi więcej niż reszta i przede wszystkim dopycha do końca kluczowe zadania, może ugrać 3-krotną podwyżkę? A jeśli tak to jak to robicie? Co pół roku po 30%, podwyżki robicie na święta, czy wtedy gdy firma nie wyrabia z terminem? Jak tłumaczycie tak częste podwyżki, toksyczne warunki?

edytowany 3x, ostatnio: semicolon
CZ
  • Rejestracja:ponad 8 lat
  • Ostatnio:2 dni
  • Postów:2287
0

Sporo też zależy od branży, ale jak dla mnie firma sporo traci. Czasem jest tak, że wiedza domenowa jest najcenniejsza. Przyjdzie dobry programista, ale co z tego skoro nie wie jak kod wygląda a całość liczy parę milionów linii - poza tym nie wie jak produkt działa dokładnie, bo jest bardzo złożony. U nas np tej wiedzy domenowej jest cholernie dużo (wynika to z tego, że na każdy rynek musimy wydawać coś innego, bo w każdym kraju są inne obostrzenia prawne) i nawet pracując po kilka lat nie wiesz wszystkiego. Ktoś kto ma pełną wiedzę na temat produktu i rynku jest u nas na wagę złota. Nawet jak stary, który się zwalnia da z siebie wszystko jeśli chodzi o nauczenie innych swojej wiedzy to i tak może nie wystarczyć. Już nie mówiąc o takich, którzy byli przy tworzeniu programu od zera. Taki najwięcej wie. Dokumentacja też nie jest zawsze idealna.

Niemniej jednak siedząc po 10 lat w jednej firmie to też nie jest zdrowe. Gdzieś słyszałem, że powinno się zmieniać tak co 3 lata, aby się dobrze rozwijać. Są i tacy co uważają, że co 8 miesięcy. No, ale to zależy od stacku pewnie.też.

Zobacz pozostałe 3 komentarze
CZ
Co jest dla Ciebie lepsze? Boi się, że firma Cię zwolni i chcesz być coraz bardziej wartościowy?
semicolon
Sformatuj pytanie. Pytasz mnie o wybór, ale jednocześnie dajesz mi tylko jedną opcję do wyboru.
CZ
Zadaje dwa pytania. Możesz zaprzeczyć
semicolon
nie chodzi o strach, a o zaproponowanie warunków ktore nadal będą korzystne dla obu stron; jeśli system jest tak rozwijany, że jest coraaz więcej pracy to czemu pensja miałaby nie podskoczyć do góry?
semicolon
robiąc coraz więcej zadań, coraz więcej złożonych rzeczy to tak - chciałbym (pewnie jak każdy) wyjść na tym jak najkorzystniej.
rgawron
  • Rejestracja:ponad 9 lat
  • Ostatnio:4 miesiące
  • Lokalizacja:Cannes
  • Postów:67
9

Z jednej strony piszesz z pozycji najlepszego programisty w projekcie, z drugiej strony piszesz, jakbyś rozważał w bliskiej przyszłości, że Cię zwolnią i rozkmniał jak się ochronić, z trzeciej strony piszesz jakbyś był gotowy za-sabotować projekt (pierwszy akapit).

Nie ogarniam :)


edytowany 1x, ostatnio: rgawron
semicolon
Chodzi o podstawę do wyprowadzenia podwyżki. Jesli firma nie może tak łatwo zwolnić to znaczy, że jesteś wart dla niej więcej.
KL
Czekaj. Czyli chcesz sabotować projekt, żeby dostać podwyżkę? Nie lepiej po prostu zmienić pracę? :P
ZP
  • Rejestracja:ponad 8 lat
  • Ostatnio:2 miesiące
  • Postów:70
14

Najwięcej niezastąpionych to jest na cmentarzu, a mimo to świat dalej działa.

Przykład sprzed 10 może 12 lat. Jeden kolega zrobił bardzo dużo dla projektu, ale chciał być doceniony $. Firma go wypychała wręcz żeby sobie poszedł.
Na to inny kolega. No i on sobie pójdzie, przyjdzie nowy, nie ogarnie, to będzie po swojemu robił.
Inny przykład. Przenoszono projekt z Francji do Polski. Francuzi patrzyli się na naszych jak na wrogów. Nic nie pomogli. No ale tutaj to francuskie nazwy funkcji i zmiennych nie przeszkodziły ogarniać projektu.
Kolejny, po 23 latach z projektu odchodzi główny architekt. Gość jest od początku, no ale nie pyklo I idzie. Projekt trwa dalej.
Kolejny, kolega mój w jednej firmie przesiedział 16 lat. Mówił że nie chce odejść bo boi się że bez niego sobie nie poradzą. A był taki że jak się coś kwasilo to po objawach potrafił mniej więcej wskazać gdzie szukać w jakiej metodzie nawet. W końcu kasa go przekonała. Zmienił. Firma bez niego też działa

Jeśli wydaje ci się że jesteś niezastąpiony to masz rację
Wydaje ci się.

semicolon
Dzięki za odpowiedź, ale to Tobie się wydaje, że mi się wydaje. Ja nic takiego nie pisałem :-P Gdybym wiedział gdzie taki programista jest nietykalny to bym nie zadawał pytania.
ZP
@semicolon: to miało być zdanie kończące wywód. Nic osobistego.
JA
u mnie na projekcie niemieckiego architekta robiacego po 16h dziennie, ktory nie robil specjalnie dokumentacji zastapil polak bez znajomosci niemieckiego. Projekt sie udal z minimalna obsuwa. A facet tez sie przechwalal ze jest niezastepowalny. Dlatego w IT to bardzo sliska kwestia.
katakrowa
  • Rejestracja:około 10 lat
  • Ostatnio:około 2 lata
  • Lokalizacja:Chorzów
  • Postów:1670
2

Nie ma niezastąpionych programistów. W najgorszym wypadku projekt pisze się od nowa - a ten, kto dopuścił do takiej sytuacji ma jedynie nauczkę i pozostaje nadzieja, że podobnych błędów nie popełni przy kolejnych iteracjach systemu. Oczywiście mogą istnieć skrajne przypadki, że ktoś napisał cały ogromy system poza kontrolą "szefostwa" i wszystko robił po swojemu, źle, niezrozumiale itp ... Ale jeśli to "ogromy i ważny" system to jak głupi musiał być "szef"/"właściciel", że nie zadbał o to by się zabezpieczyć. Obecnie w większości sytuacji nawet jeśli ktoś komuś zleci zrobienie systemu "na oślep i bez kontroli" to raczej znaczy, że stać go na jego ponowne napisanie w razie porażki ( jeśli nie, patrz wyżej czyli zleceniodawca jest głupi / naiwny / nie zna się / nie powinien się za to zabierać / jak wtopi to jego wina ).

Dodam jeszcze, że to zwykle tym z niższego szczebla wydaje się, że są niezastąpieni bo niby "szefostwo" sprzedaje ich program. To nie do końca tak jest. Szefostwo sprzedaje pewną ideę, którą może zrealizować także z kimś innym.


Projektowanie i programowanie. Hobbystycznie elektronika i audio oszołom.
edytowany 2x, ostatnio: katakrowa
Zobacz pozostałe 12 komentarzy
katakrowa
Jak ktoś nie kontroluje, nie dba, nie sprawdza a to tego ma w d... co robią i jak jego pracownicy to może do takiej sytuacji dojść. Skoro u Ciebie w firmie do takiej sytuacji doszło to może właśnie mają w d..ie to co robisz.
semicolon
@katakrowa Potraktowałeś podwyżkę o 50% jak coś niemoralnego z mojej strony. Być może jak szantaż, być może jak rzecz przed którą trzeba się wystrzegać, eliminować. A w ogóle nie zapytałeś o wartość jaka dostarcza Ci taki programista, on jest Twoim pracownikiem, ale on też robi z Tobą biznes, to nie jest osoba tylko do dymania. Jeśli taka praca generuje wartość (bo o takim przypadk piszemy) to czemu taki programista nie miałby zarabiać więcej. Czy model firmy ma być komunistyczny (tzn zarabiamy mniej więcej po tyle samo, a nie względem wartości jaką się wnosi.
semicolon
Przy takim podejściu aż nie chce się współpracować i w sumie zaczynam rozumiem dlaczego ludziom po kilku latach wszystko jedno. Ludzie, którzy są na etacie chcą mieć spokój, nie chcą wychodzić przed szereg, bo zarząd firmy i tak to zgasi, potraktuje jak zagrożenie. Bardzo się mylę?
katakrowa
Wydaje mi się, że masz ze sobą poważny problem. Po pierwsze powinieneś o tym rozmawiać ze swoim szefem a nie na forum po drugie wtykasz mi w usta słowa, których nie napisałem. Po trzecie nadal uważam, że dawanie komuś podwyżki 50% za to by robił to samo co robił jest przejawem poważnych niedopatrzeń w organizacji pracy firmy i u mnie taka sytuacja nie ma prawa mieć miejsca. Idź do szefa powiedz mu żeby Ci dał podwyżkę 50% i sam zobacz co się wydarzy. Dalsze teoretyzowanie na forum nie ma sensu.
semicolon
Dzięki za odpowiedź.
semicolon
  • Rejestracja:ponad 5 lat
  • Ostatnio:prawie 5 lat
  • Postów:114
0

Z jednej strony piszesz z pozycji najlepszego programisty w projekcie

Nie jestem najlepszy, nie jestem gwiazda, nie mam gwiazdek na githubie, studiów, typowy zwykły głupek, który czasem spojrzy inaczej. Zawsze mnie dziwiło, dlaczego inni w pracy są tacy pewni siebie, jak to robią, że tak wiele rzeczy potrafią zapamiętać, odtworzyć czy też olać, tzn zachować dystans itp Ja do niektórych problemów potrzebuje czas by wymyśleć dobre podejście, a inni otwierają emacs/vim, trzaskają zadania, pisza, usuwają i gotowe - sęk w tym, że robią to bezmyślnie. Zamiast zastanowić się z czego wynika problem dowalają kolejne akrobacje albo kolejne narzędzia / techniki zwalniające z myślenia.

Oczywiście mam wątpliwości do swojego kodu - nie byłbym sobą, ale do pracy innych osób mam jeszcze większe.

Wątek założyłem, bo mam wrażenie, że gdybym komplikował projekty zgodnie z programistycznymi zwyczajami to wiele bym się nie różniłbym się od osób, które utrudniały mi prowadzenie projektów. Wtedy nie dość, że miałbym więcej luzu to może i byłbym w jakimś stopniu niezastąpiony :D

Yerbanos
  • Rejestracja:około 7 lat
  • Ostatnio:około rok
  • Postów:46
1

Skoro jesteś dobry to idź do firmy gdzie szukają wymiataczy i płacą grubą kasę. Albo powiedz obecnemu pracodawcy że na rynku za takiego specialistę płacą x a ty dostajesz y, i zapytaj co możemy z tym zrobić.
Natomiast psucie projektu i czynienie się niezastąpionym to patologiczne praktyki i mam nadzieję że ci teraz wstyd. Nie wiem jak można wpaść na taki pomysł. Wszystko u ciebie w pożądku?

edytowany 1x, ostatnio: Yerbanos
semicolon
Dzięki za odpowiedź, proszę rzuć jeszcze okiem na post wyżej, a potem na post niżej :D
semicolon
  • Rejestracja:ponad 5 lat
  • Ostatnio:prawie 5 lat
  • Postów:114
0

Psułbym zgodnie z normami. Przykładowo jeśli wiem, że w danym przypadku lepiej byłoby mieć niemodyfikowalne wartości, a z jakiejś przyczyny unormowało się używanie mutowalnej to komu podstawiam nogę? Przecież tak było, jest i będzie.

Cały czas piszę o komplikowaniu zgodnie z najlepszymi uznawanymi praktykami w zespole. To, że wiem, że da się lepiej nie znaczy, że mam się produkować i wszystkich do okoła przekonywać i tak mało kto to doceni.

edytowany 2x, ostatnio: semicolon
TurkucPodjadek
TurkucPodjadek
  • Rejestracja:około 8 lat
  • Ostatnio:około 4 lata
  • Postów:607
AM
  • Rejestracja:około 12 lat
  • Ostatnio:około 8 godzin
  • Postów:195
1

Zgadzam się w 100% z przedmówcami. Nie ma ludzi nie zastąpionych.

MI
  • Rejestracja:około 5 lat
  • Ostatnio:2 dni
  • Postów:148
7

Pracowałem parę ładnych lat w jednej firmie, oj- ile tam było ludzi niezastąpionych, z potężną wiedzą programistyczną i domenową, zwalniali się i... nic wielkiego się nie stało. Oczywiście były jakieś perturbacje na początku, ktoś musiał więcej siedzieć, żeby się czegoś dowiedzieć, ale świat się nie zawalił. Czasem po odejściu takiego kogoś nagle ktoś "wypływał". Okazywało się, że szary człowiek, który niczym się nie wyróżniał nagle wyrastał na ważną osobę, nawet lepszą niż ten, kto odszedł. Po prostu czuł się w jakimś stopniu stłumiony przez starego wyjadacza. Także z punktu widzenia firmy odejście "eksperta" to nie zawsze katafstrofa, czasem to przewietrzenie biura i poprawa atmosfery;) To tak jak np. w piłce nożnej- jeden gwiazdor przyćmi całą drużynę, a jak odchodzi, to się okazuje, że inni to całkiem dobrzy gracze tylko nikt ich nie zauważał, bo wszystko się koncentrowało na jednym człowieku, atmosfera była zła itd. tip.

Darck
  • Rejestracja:około 22 lata
  • Ostatnio:5 miesięcy
  • Lokalizacja:Monachium
  • Postów:848
2

Techlead zrobił półtora roku temu poradnik na ten temat:

vpiotr
"This add operation is being done in two different places in the code..." - ten przykład widziałem w praktyce... (#!^@5@^!)
biela_
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 2 miesiące
  • Lokalizacja:WPR
  • Postów:135
2

pracowałem w mniejszych i większych firmach
przeżyłem kilka takich odejść herosów nie do zastąpienia
czasem problemy które rozwiązywali odchodziły razem z nimi ;)
i potwierdziła się wszędzie prawda, nie ma ludzi nie do zastąpienia, zawsze ktoś jest za Tobą kto też chce być top of the top, albo nagle się ktoś zjawia z naprawdę łebską głową, albo ten skomplikowany system się zastąpi innym

Co do podwyżek to zależy od firmy, czasem same dbają o pracowników, czasem trzeba pochodzić za swoim, a czasem wyciskają ile się da i biorą nowy narybek, małe szanse żeby ktoś Ci rzucił 3x podwyżkę nawet jak cały team zastąpisz... za bardzo się uzależnią od Ciebie i dopiero będą w plecy ;)

vpiotr
  • Rejestracja:ponad 13 lat
  • Ostatnio:prawie 3 lata
1

Możesz spróbować być niezastąpiony. Widziałem nawet przypadki gdy komuś to się udawało.
Poradnik:
https://github.com/Droogans/unmaintainable-code

Co może się przydać:
http://www.buildyourownlisp.com/

Co może się nie udać:
https://www.freecodecamp.org/news/we-fired-our-top-talent-best-decision-we-ever-made-4c0a99728fde/

W przypadku z którym ja się spotkałem skończyło się na tym że system był tak przekombinowany że autor jego skomplikowania sam musiał zakasać rękawy bo większość doświadczonych programistów w końcu odeszła. Jeśli chcesz pracować ze z##%^! kodem (nie ważne że przez Ciebie) do końca życia to przepis masz powyżej.

semicolon
Fajny jest ten pierwszy link, niektóre cytaty dawniej widziałem/słyszałem, ale dopiero teraz inaczej na nie patrzę :D
viader
  • Rejestracja:około 12 lat
  • Ostatnio:około miesiąc
  • Postów:167
4

Nie opłaca się być ekspertem stricte projektowym, bo po odejściu z projektu może się okazać, że niewiele się umie. Warto codziennie starać się udoskonalać :)

Shalom
  • Rejestracja:około 21 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
1

a ja mogę pisać system, który coraz trudniej będzie pojąć innym osobom.

To chyba tylko jak nie macie tam żadnego code-review.

Moje pytanie brzmi tak, jak ciężko jest zastąpić osobę, która robi WIDOOOCZNĄ różnicę w jira, a i też wie najwięcej o systemie, i ma największy wpływ na kluczowe taski.

Jak splunąć. Im większe korpo tym prościej. Twój wyimaginowany wielki wkład nie ma absolutnie żadnego znaczenia.

Ja wiem, że na moje miejsce przyjdzie inna osoba, ale firma tracąc herosa, mając ciężki kod do zrozumienia i zwłokę z ficzerami też coś straci.

Znów: im większa firma, tym mniejsze to ma znaczenie. Jak firma ma pod korek zleceń/backlogu i 2-3 programistów, to może jeszcze by się ktoś zmartwił, ale jak ludzi jest 20-30 albo 200-300 to nikt nawet nie mrugnie.

W jakich systemach, i okolicznościach najtrudniej jest zwolnić takiego dobrego programistę? To musi być fin-tech czy inne dziedziny też wchodzą w grę? Tu bardziej polecacie java czy scala czy javascript? Nie znam się, ale chyba problem z javascript można wyelminując przepisując front na świeższy więc dużo tu ryzykuję. Może scala? W niej mógłbym wycisnąć wiele ciekawych rzeczy zarówno z OPP, jak i FP.

Przy dobrej architekturze nie da się tak zabetonować kodu. Zawsze da się wymienić moduł / mikroserwis albo obłożyć go adapterem i o nim zapomnieć. Robi się tak przecież od lat! Jest wiele systemów które działają na jakimś kodzie w COBOLu, Fortranie i innych, napisanym 50 lat temu. Ale przed tym kodem stoi jakiś adapter, który kiedyś mapował to na RPC, potem CORBE, potem SOAP, a dziś na jakiś REST.

Czy programista, który robi widoczną różnicę, jest pomocny, robi więcej niż reszta i przede wszystkim dopycha do końca kluczowe zadania, może ugrać 3-krotną podwyżkę?

3-krotną z jakiego pułapu? 3x stawka innego seniora w projekcie? xD Taki programista najwyżej ugra zwolnienie, bo będzie powodował ferment w zespole.

@semicolon co jest twoim celem? Chcesz złapać robotę z której cię nie zwolnią? Są łatwiejsze metody niż takie cyrki które proponujesz. Ot zatrudnij się dla organizacji międzynarodowej (ESA, ESO, CERN, NATO etc.) i dostaniesz wieloletni kontrakt, z którego praktycznie nie da się kogoś zwolnić.


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
Zobacz pozostałe 3 komentarze
semicolon
Znam przypadek, gdzie gosć napisał jeden z głównych algorytmów firmy cholernie niechlujnie, nie wiem czy celowo. To jeden z głównych algorytmów - kod jest totalnie nieczytelny, dałoby się go lepiej napisać - a typ chodzi dumny jak paw, ilekroć temat jego kodu był poruszany.
PA
@semicolon: zauważ, że są branże, gdzie firmy w o wiele bardziej chamski sposób próbują uzależnić od siebie użytkowników. automotive od autoryzowanych serwisów, apple od swoich produktów/serwisów. Jak dotąd zawsze okazywało się, że nie ma ludzi niezastąpionych.
Shalom
@semicolon: kod jest totalnie nieczytelny, dałoby się go lepiej napisać jesteś pewien? Widziałem wiele takich sytuacji w życiu, gdzie na pierwszy rzut oka "wydaje się" że kod jest słaby i da się to zrobić prościej. Po kilku dniach walki dochodzisz wreszcie do wniosku, że się nie da i ktoś jest geniuszem, że w ogóle ogarnął jak to zrobić. Pamiętaj że kod nie żyje sam dla siebie, tylko musi spełniać pewne wymagania, które nie muszą być dla ciebie oczywiste ;)
semicolon
@part: dzięki za odpowiedź, ona faktycznie pokazuje jaki ze mnie ziemniak :D
semicolon
jesteś pewien? - w tym przypadku tak osoba, która pisała nie jest rasowym programistą, poprawiałem ją w elementach związanych z postawami języka. Dostał pracę w firmie, bo znał podstawy, a w okolicy brakowało programistów. Zgody na refaktor nie dostałem, bo skoro działa to po co zmieniać.
LS
LS
  • Rejestracja:około 9 lat
  • Ostatnio:prawie 5 lat
  • Postów:85
2

Naprawdę są lepsze sposoby na to, żeby zostać kimś dającym ogromną wartość dla firmy i mieć pozycję do wołania sporej kasy na podwyżkę.
Powiem Ci na swoim przykładzie: wyciągnąłem projekt z bagna, które mogło sprawić, że przestałby istnieć. Złapałem się po prostu za coś, za co nikt nie chciał się łapać i nie wiedział, jak do tego podejść. Zysk dla projektu był ogromny.
I z chęcią dzielę się tą wiedzą dalej, bo jak mnie nie daj Boże tramwaj czy coś przejedzie, to ktoś będzie wiedział chociaż od czego zacząć. A cenny dla projektu jestem czy komuś przekazuje tą wiedzę, czy nie, bo ktoś wie, że można na mnie liczyć i że jak jest zadanie specjalne, to je ogarnę.
Czy to mimo wszystko dało mi efekt w postaci większej wypłaty? Tak. Właśnie dopinam rozmowy o nowej podwyżce z minimum 45% (poprzednia była rok temu, w projekcie jestem prawie 2 lata).

Miang
ale te sposoby wymagają pracy i zdobywania wiedzy... a OP chce iść na skróty ;)
TS
  • Rejestracja:ponad 5 lat
  • Ostatnio:około 3 godziny
  • Postów:853
0

Jeżeli chodzi o webdevelopment to praktycznie nie da się napisać kodu dzięki któremu byłoby się niezastępowalnym. Od dłuższego czasu takie aplikacje pisze się w architekturze mikroserwisowej gdzie każdy komponent jest wymienny. Jeżeli jesteś niewygodny dla zespołu to zostaniesz wyrzucony, a jeżeli Twojego kodu nie da się poprawić to zostanie przepisany na nowo. Nawet jeżeli jesteś super dobry to nikt nie poniesie odpowiedzialności za zwolnienie jednego programisty. Co najwyżej Twój szef wyleci po roku kiedy jego wydajność znacznie spadnie, ale i tak mało kto będzie w stanie zidentyfikować przyczynę. Twój szef znajdzie pracę gdzie indziej i karuzela będzie kręciła się dalej.

Natomiast trzeba przyznać, że istnieją takie projekty do których ciężko się zabrać. Zwykle są to projekty związane z metodami obliczeniowymi, szczególnie jakiś kod w Fortranie gdzie najtrudniejszą rzeczą jest matematyka, tutaj już nie da się nikogo oszukać i bez doktoryzacji projektu nie ruszysz. Ale czy doktorzy w takich projektach piszą taki kod umyślnie czy z powodu niekompetencji w inżynierii oprogramowania? Raczej takie projekty realizują z grantów więc pensję mają ustaloną na stałe i nic na czymś takim nie mogą ugrać.

AF
  • Rejestracja:prawie 7 lat
  • Ostatnio:5 dni
  • Postów:172
2

Napiszę z perspektywy takiej osoby. Połowa pracy wykonana przeze mnie (na 10os zespół), bardzo dużo usprawnień i zmian na lepsze. Dobra znajomość domeny i byłem też zawsze pierwszą osobą do której uderzali z problemami. No i zmieniłem niedawno projekt i.. nic :) Starałem się przeprowadzić KT, stworzyłem kilka stronek confluence z 'FAQ' i jakoś wszyscy ten wózek pchają beze mnie. Zauważyłem też, że jak odszedłem to parę osób które totalnie nic nie robiły nagle zaczęły się więcej uczyć, proponować zmiany itp.

Co do wynagrodzenia dostawałem często duże podwyżki (30-50%). Ale niedawno przy rozmowie z kolegą z zespołu okazało się, że i tak mniej zarabiam. Po prostu ja wynegocjowałem bardzo niską stawkę na starcie więc z dużymi podwyżkami się zbliżyłem do tego co niektórzy wynegocjowali na starcie. Okazuje się, że umiejętności miękkie są bardziej przydatne niż techniczne w takich sytuacjach :)

katakrowa
  • Rejestracja:około 10 lat
  • Ostatnio:około 2 lata
  • Lokalizacja:Chorzów
  • Postów:1670
2

Najbardziej "zaciemniony" i trudny kod z jakim miałem w życiu do czynienia pochodził od młodych i niedoświadczonych, którzy pisząc program używali wszystkiego o czym słyszeli a do tego w sposób niewłaściwy bo zwyczajnie nie rozumieli istoty rzeczy.
Doświadczony programista ma już wyrobione nawyki przez co z natury nie wymyśli takich kretynizmów, kulfonów i wygibasów składniowych jak początkujący, który jeszcze nie wie co robi a jego celem jest "byle zadziałało". To były fragmenty kodu, które niemal zawsze trzeba było wymienić w całości. Szybciej było napisać na nowo niż zastanawiać się jaką artysta miał wizję.
Przy kodach źródłowych pochodzących od zaawansowanych zawsze udało się zdebugować i rozgryźć koncepcję - nawet jeśli była one przerośniętą abstrakcją.


Projektowanie i programowanie. Hobbystycznie elektronika i audio oszołom.
OG
  • Rejestracja:około 6 lat
  • Ostatnio:prawie 4 lata
  • Postów:71
2

To czego chcesz(?) próbować nazywa się szantaż i każdy manager jeżeli nie jest warzywem za takie coś cię wywali od ręki. Robiąc takie akcje stajesz się narastającym zagrożeniem dla projektu, więc logiczne jest pozbyć się ciebie jak najszybciej i rozpocząć proces naprawy.

loza_wykletych
loza_wykletych
  • Rejestracja:prawie 5 lat
  • Ostatnio:około 4 lata
  • Postów:854
1
semicolon napisał(a):

W jakich systemach, i okolicznościach najtrudniej jest zwolnić takiego dobrego programistę?

Najtrudniej w takich gdy jego nazwisko ma gwiazdorską wartość rynkową i sam fakt jego odejścia może wpłynąć na wizerunek firmy. Tak jak w sporcie. Wszystko inne nie ma znaczenia.


Z wszelkiego drzewa tego ogrodu możesz spożywać według upodobania - ale z drzewa poznania dobra i zła nie wolno ci jeść, bo gdy z niego spożyjesz, niechybnie umrzesz.
PL
  • Rejestracja:ponad 6 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:kosmos
  • Postów:47
0

nie ma ludzi nie do niezastapienia

Shalom
Jego dało się zastąpić Lechem i widzisz co zrobił ... ;)
superdurszlak
  • Rejestracja:prawie 7 lat
  • Ostatnio:dzień
  • Lokalizacja:Kraków
  • Postów:1999
3

Nie sądzę żeby Twój sposób pozwolił Ci się gdziekolwiek zabetonować po wsze czasy, za to znalazłeś naprawdę dobry przepis na:

  • toksyczną atmosferę
  • frustrację i przedwczesne siwienie/łysienie dziesiątek Bogu ducha winnych programistów
  • wyrabianie sobie jak najgorszych nawyków, którymi będziesz mógł się pochwalić jak kiedyś przyjdzie Ci jednak zmienić pracę
  • architekturę spaghetti / big ball of mud / po trochu z każdego
  • robienie wszystkiego by projekt jednak klęknął, bo pułapek i złych rozwiązań będzie zbyt wiele

Tak trzymaj, najlepiej z dala ode mnie :D


semicolon
Cóż, mój post faktycznie ma negatywną aurę, ale z drugiej strony spójrz na swoje ręce jak piszesz kod. Zawsze rozwiązujesz zadania dobrze? A jeśli tak, to co to znaczy dobrze? I też nie masz ambicji, by zarabiać więcej. Myślę, że masz i dlatego na tym podłożu wiele się nie różnisz ode mnie. Wiele osób traktuje pracę jak zwykły zawód, po robocie wracają do żony i dzieci, a kodzie robią jednak śmietnik, ale wszystko jest OK, bo oni robią jedynie tyle ile się od nich wymaga - więc jeśli brzydzisz się mojego podejścia o jakim piszę w wątku. To ja nie wiem jak sobie radzisz i
semicolon
jak postrzegasz pracę z innych ludźmi.
semicolon
PS, żeby nie było: bezmyślny sposób pracy jaki zaobserwowałem u wielu osób był dla mnie jednym z ważniejszych powodów, dla których zrezygnowałem z prowadzenia pracy na etat. Myślałem, że ta rzecz poprawi się, gdy przechodzisz do lepszej firmy, ale w lepszych firmie ludzie zarabiają więcej, mają więcej lat, więcej wiedzy domentowej i cięzej jest zachęcić takich ludzi do przemyślenia tego co robią i jak robią.
semicolon
Oczywiście najlepszym sposobem do zmiany takich ludzi, jest bycie przykładem. Można pisać kod który zmniejsza złożonośc, pisać kod pod ludzi, a nie pod maszyny - ale tacy ludzie mają na ogół to gdzieś (szczególnie Ci, którzy wcześniej są pod ogromnym wrażeniem tego co zrobiłeś), i robią swoje mimo wprowadzanych zmian. Ja nie mam siły i nie chcę tracić życia do walki z wiatrakami.
semicolon
  • Rejestracja:ponad 5 lat
  • Ostatnio:prawie 5 lat
  • Postów:114
1

Odpowiedź na: https://4programmers.net/Forum/1682562

Dobry materiał i oddaje to co chciałem powiedzieć. Natomiast ze swojej strony chciałbym dodać, że widzę te antywzorce jak pulę o nieograniczonej pojemności. Wszystko to na czym w kodzie się bazuje ma obusieczne znaczenie i np. te punkty do których odniósł się Twój techlead raz są dobre, a raz są złe, wiele zależy od rozpatrywanego przypadku.

**1. Create tons of functions **

co robić w przypadku FP, też źle? kompozycja nie zawsze jest zła. Na video został omówiony przypadek dotyczący testów - być może testują zbyt dużo prywantnych rzeczy, być może podział na tak wiele funkcji wymuszcza pisanie ich w zbyt ogólny sposób. Podobne probemy da się spokojnie odtworzyć w klasach.

**2. Use one liner as much as possible
**

W kodzie częściej spotykam się z odwrotnym przypadkiem. Ktoś robi dużo rzeczy, dużo ifuje, a w praktyce część złożonych warunków z ifów da się wyodrębnić do postaci predykatów, a potem w głównej funkcji składasz te wyrażenia operatorami logicznymi - pisany kod brzmi jak zapis reguły i faktycznie może mieć jedną linię, ale jego czytelność ma zupełnie inny wydźwięk od wyrażeń z operacjami bitowymi.

**3. Use recursion
**

W imperatywnych językach może to robić problem, ale coraz więcej jest języków z mieszanym podejściem. Nie chcę bronić rekurencji, ale przykład jaki podał Twój techlead oznacza symulowanie pętli; co jeśli pętla symuluje rekurencje z własnym stosem, wtedy jest lepiej? Moim zdaniem to też zależy od przypadku.

**4. Good use of comments
**

No, ale np. zwrócenie uwagi na hacki na jakim opiera się kod. Np. jakiś element z javascriptu, gdzie coś zależy od wersji przeglądarki. Ja czasem zostawiam link do strony, która omawia detale związane z tym związane. Oczywiście dostaje upomnienia, że by nie robić komentarzy w kodzie, bo to niezgodne z clean code.

**5. Adding code you may need but never will
**

Nie chcę rozpoczynać tego tematu, ale tego typu rzecz rzecz ciężko nie realizować. Na tym założeniu opiera się mnóstwo praktyk gdzie pracę zaczynasz od wystawienia interfejsu. Być lepej byłoby opóźniać, pisać tak "ograniczony kod" jak to możliwe i w ramach refaktoryzacji uogólniać, ale mało kto tak robi.

**6. Lots of vairables the more the better
**

A lepsze jest mieć jedną zmienną, która na skutek mutacji reprezentuje coś innego? Zależy od przypadku, ja np. gdy widzę kod, który coś parsuje, normalizuje to nowy stan opisuje przez nową zmieną, aby taki kod opisywał przejścia. Czy to źle? Zależy od przypadku.

**7. Start to refactor the code
**

Przykład refaktoryzacji bez uwzględnienia kontekstu biznesowego rzeczywiście może sprawić, że programista zacznie się wstydzić, ale dla przykładu poruszę przykład krolika: jeśli masz w kodzie używasz linked list, ale nie funkcjonuje to jako klasa tylko wskaźniki na węzłych, w kodzie masz porozrzucane różne pętle iterujące - czy taka refaktoryzacja wymaga ustaleń z biznesem, czy biznes w ogóle takie rzeczy interesują? Ten przypadek jest dla mnie pisaniem kodu pod maszynę, a nie człowieka, tego typu rzeczy da się ratować bez kontaktu z biznesem.

PA
Use recursion - przecież ten gościu nie mówi, że rekurencja jest zła. On tylko twierdzi, że można zastąpić czytelną pętlę nieczytelną rekurencją. Tak samo jest wiele problemów, gdzie można zastąpić czytelną rekurencję mniej czytelną pętlą.
semicolon
A ja nie nigdzie nie piszę, że rekurencja jest dobra. Tylko twierdzę, żę w językach imperatywnych zwłaszcza bez TCO jest postrzegana jak wrzód na D.
jarekr000000
Nie tylko ja zadaje sobie pytanie: czy gościu wie, że jest trollem (na początku tak myślałem), czy po prostu jego słabe umiejętności i doświadczenie głównie (tylko?) w JS to powoduje. Za drugim wnosi fakt, że czasem, przez przypadek mówi coś z sensem. (Mój komentarz odnosi się do człowieka z youtube)
superdurszlak
  • Rejestracja:prawie 7 lat
  • Ostatnio:dzień
  • Lokalizacja:Kraków
  • Postów:1999
1

@semicolon:

Cóż, mój post faktycznie ma negatywną aurę, ale z drugiej strony spójrz na swoje ręce jak piszesz kod. Zawsze rozwiązujesz zadania dobrze? A jeśli tak, to co to znaczy dobrze?

Nie rozwiązuję dobrze, częściej robię źle niż dobrze i to mimo najlepszych starań. Nawet jak wydaje mi się, że zrobiłem coś dobrze, to po jakimś czasie może się okazać (i nieraz się okazuje), że tylko mi się wydawało i jednak jest źle.

Albo bardzo źle.

Albo może nie jest stricte źle, ale dobrze też nie jest, albo dało się coś zrobić lepiej i prościej.

Zdarza się też, że z premedytacją "muszę" coś ohakować, wcisnąć protezę i wybrać słabe, brzydkie rozwiązanie, bo żeby zrobić coś na porządnie musiałbym ścigać niezastąpione osoby, które już dawno odeszły, analizować przez kolejne 3 lata, później kolejne 3 lata przepisywać pół systemu, potem kolejne 5 lat naprawiać rzeczy, które przy okazji zepsułem... chyba już widzisz, dokąd to zmierza ;)

I też nie masz ambicji, by zarabiać więcej. Myślę, że masz i dlatego na tym podłożu wiele się nie różnisz ode mnie.

Rzecz w tym, że nie próbuję i nie chcę próbować wykorzystywać tego jako karty przetargowej, by się zabetonować i jeszcze stworzyć sobie ciepłe gniazdko z dobrą płacą. Mam ambicję żeby zarabiać więcej, ale zdążyłem sobie ubzdurać, że warto byłoby cokolwiek sobą reprezentować, by móc się upominać o podwyżki.

Wiele osób traktuje pracę jak zwykły zawód, po robocie wracają do żony i dzieci, w kodzie robią śmietnik, ale wszystko jest OK, bo oni robią jedynie tyle ile się od nich wymaga -

Posiadanie rodziny i brak jakiegoś nie wiem, duchowego natchnienia jak się zasiada do kodowania nie usprawiedliwia wykonywania swojej pracy niedbale. Jak hydraulik zrobi byle jaką instalację i zawartość toalety na piętrze zaleje pół domu, to przyjmiesz tłumaczenie że on ma dzieci a w ogóle to nie pasjonuje się rurami?

więc jeśli brzydzisz się mojego podejścia o jakim piszę w wątku. To ja nie wiem jak sobie radzisz i jak postrzegasz pracę z innych ludźmi.

Jak na razie to ja jestem tym, który najczęściej robi dziadostwo i musi po sobie poprawiać, więc radzę sobie próbując robić mniej syfu :D

W firmie i zespole, w którym pracuję używanie takich wspomagaczy, jak code review czy statyczna analiza kodu jest must have, jeśli ktoś (czytaj ja) zaczyna robić śmietnik to PR jest wałkowany do skutku. Jak nie otestujesz tego co napisałeś albo testy niczego nie testują, to też możesz zapomnieć o approvalach. Jak jakiś jeden zespół ma nazwijmy to niższe standardy pracy niż drugi, to ten drugi zaczyna truć, źlamdać i suszyć głowę.

Dla przykładu - w poprzedniej firmie/zespole CR było, testy były, ale wałkowania i statycznej analizy już na przykład nie. Niby się staraliśmy, ale siłą rzeczy bywało różnie i pewnie wiele rzeczy mogliśmy poprawić, często nawet pewnie nie wiedzieliśmy, że robimy coś źle, bo niby skąd mogliśmy wiedzieć, że robimy źle, nie używając odpowiednich narzędzi... A w mojej pierwszej testów nie było, standardów innych niż nawyki kogoś-tam nie było, CR składało się z nader wartościowych komentarzy typu hyhyhy co to jest XDDDD, był jeden master guru który mergował u siebie do mastera, mimo używania VCS było pełno kodu zakomentowanego "na zapas"... no, ale wtedy to była norma, a dziś za odwalenie czegoś takiego chyba bym się sam zgłosił po dyscyplinarkę :D


semicolon
Jak hydraulik zrobi byle jaką instalację i zawartość toalety na piętrze zaleje pół domu, to przyjmiesz tłumaczenie że on ma dzieci a w ogóle to nie pasjonuje się rurami? - ja coś takiego chciałbym w firmach, ale póki są scrumy, praca zespołowa to bardziej widzę coś na kształt rozmytej odpowiedzialności.
semicolon
Rzecz w tym, że nie próbuję i nie chcę próbować wykorzystywać tego jako karty przetargowej, by się zabetonować i jeszcze stworzyć sobie ciepłe gniazdko z dobrą płacą. - no dobrze, pewnie beton byłby skutkiem, a nie celem samym w sobie. Co byś w takim razie wykorzystał jako kartę przetargową? Na co byś się powołał? Pomogłem wam zrobić 10 ray więcej ficzerów niż reszta osób, znam wasz system na wylot?
TS
  • Rejestracja:ponad 5 lat
  • Ostatnio:około 3 godziny
  • Postów:853
2

Trochę temat zaczyna zajeżdżać syndromem oszusta.

To, że pewnych zadań nie da się rozwiązać w jakimś określonym czasie, przy określonym budżecie jeszcze nie czyni z nikogo słabego programisty. Praca jako programista zawsze wiąże ze sobą to ryzyko, że trzeba będzie w którymś momencie poświęcić trochę czasu na dokształcania i management ma to wliczone w koszty. Jeżeli stwierdzasz, że albo zrobisz prostego workarounda (lub napiszesz brzydki kod), albo będziesz siedział nadgodziny za które nikt ci nie zapłaci, żeby zrobić coś dobrze, a później wybierzesz pierwszą opcję to również nie będzie czyniło cię złym programistą. Dług techniczny nie zawsze jest zły. Czasami warto go zaciągnąć, żeby wydać produkt, zrobić demo i ściągnąć pierwszych klientów szybciej.

Jeżeli uważasz, że twoi koledzy piszą słaby kod poniżej ich umiejętności i sam rozważasz pisanie takiego kodu (bo po co się starać) to zadaj sobie następujące pytania:

  • czy oni są kompetentni na tyle, żeby pisać lepszy kod?
  • czy oni świadomie zaciągają dług techniczny?
  • czy zwróciłeś im uwagę podczas code review? Jaka była reakcja?
  • czy ich menadżer wie o zaciąganiu tego długu technicznego?
  • czy nie zyskasz więcej poprawiając po nich ten kod i pokazując menadżerowi, że jesteś proaktywny?
Zobacz pozostałe 3 komentarze
semicolon
czy ich menadżer wie o zaciąganiu tego długu technicznego? - jeezu.. chciałbym, aby ludzie swoją pracę postrzegali jak dług, ale wiele razy jest tak, że nikomu nawet przez myśl nie przyjzie, że właśnie robi dług
semicolon
czy nie zyskasz więcej poprawiając po nich ten kod i pokazując menadżerowi, że jesteś proaktywny? - jasne są wtedy pochwały, chociaż nie zawsze (np. gdy poprawiasz spaghetti kod lidera); wtedy nikt nic nie powie. Pochwała jest dobra do końca wieczoru, kolejny dzień jest to samo.
TS
Moim zdaniem powinieneś porozmawiać z liderem na temat przejęcia roli głównego reviewera, powinieneś pogadać z nim na temat zorganizowania prezentacji na ten temat i mówić w kategoriach tego jak produktywność całego zespołu się podniesie jeżeli jakość kodu się poprawi. Taka dyskusja na pewno będzie dobrym argumentem podczas rozmowy na temat podwyżki.
semicolon
To nie jest tak, że chcesz jakość i masz jakosć. Do wypracowania jakości musisz mieć w zespole osoby między którymi jest dobra chemia, wewnętrzna chęć. Np. masz 3 osoby i każda z nich dba o to by się nie zbłąźnić w oczach pozostałych, a jak dyskusja to starcia, wypracowanie podejścia, które ma najwięcej sensu. Jeśli ktoś ma wygwizdane albo może nie ma kompetencji to co możesz zrobić? Ostatni mój lider w zespole był bardziej z przypadku bo długo siedział w poprzedni projekcie, i co wtedy?
semicolon
Mój problem polega na tym, że nie umiem rozpoznać dobrych firm. Osoby, które ładnie się wypowiadają na rozmowach kwalifikacyjnych, które mówią z sensem, a potem widzę jeden wielki bullshit. Obracam się wśród ludzi z ktorymi nie wiem jak pracować, bardziej by nie zwariować musiałem pracować nad dystansem do wszystkiego niż nad problemami technicznymi. Prywatnie nie chcę pracować w korpo, nie lubię pisać kodu statycznie typowanego.
loza_wykletych
loza_wykletych
  • Rejestracja:prawie 5 lat
  • Ostatnio:około 4 lata
  • Postów:854
0
twoj_stary_pijany napisał(a):

Dług techniczny nie zawsze jest zły. Czasami warto go zaciągnąć, żeby wydać produkt, zrobić demo i ściągnąć pierwszych klientów szybciej.

Scieżka ta jest szybka i jednokierunkowa. Granica jest płynna a entropia ciągle rośnie.


Z wszelkiego drzewa tego ogrodu możesz spożywać według upodobania - ale z drzewa poznania dobra i zła nie wolno ci jeść, bo gdy z niego spożyjesz, niechybnie umrzesz.
LukeJL
  • Rejestracja:około 11 lat
  • Ostatnio:17 minut
  • Postów:8409
3
semicolon napisał(a):

Ostatnio moje dyskusje na forum dają mi trochę do myślenia i dochodzę do prostego wniosku: mogę bardzo >
Moje pytanie brzmi tak, jak ciężko jest zastąpić osobę, która robi WIDOOOCZNĄ różnicę w jira, a i też wie najwięcej o systemie, i ma największy wpływ na kluczowe taski.

Jak programista jest nie do zastąpienia, to zwykle jest to antypattern, bo wtedy dany programista idzie na urlop / nie ma czasu itp. i projekt stoi. A jak odejdzie z pracy to też jest problem, jeśli tylko on znał dobrze dany projekt i tylko on go był w stanie pociągnąć.

Ale programowanie tłumowe, polegające na tym, że każdego da się zastąpić i każdy może robić wszystko w zespole, też jest niedobre, bo wtedy burdel jest, jak każdemu się wydaje, że jest full stackiem i jest w stanie zrobić każde zadanie.


BU
  • Rejestracja:około 10 lat
  • Ostatnio:15 dni
  • Postów:422
2

Może nie ma ludzi nie do zastąpienia, ale strach przed odejściem takich ogarniających wszystko osób jest. Mi się wydaje, że największą podwyżkę można dostać znajdując inną pracę. Po rozmowie z obecnym przełożonym można przebić stawkę wynegocjowaną w nowej firmie, dalej robić to samo i cieszyć się dużo większymi zarobkami. Jest ryzyko, że to się nie uda, ale bez strat, bo i tak w nowej pracy będą czekać na podpisanie umowy z większą stawką, niż się miało do tej pory. Ale trzeba samemu ocenić, czy zasługuje się na więcej, niż się dostaje i czy firma może sobie na taki wydatek pozwolić. Ameryki pewnie tym wpisem nie odkryłem ;)

edytowany 3x, ostatnio: Burmistrz
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)