Przerażający scope w pracy software dewelopera

Przerażający scope w pracy software dewelopera
NS
  • Rejestracja:ponad 7 lat
  • Ostatnio:7 dni
  • Postów:455
13

Zakres wszystkich działek, w których musi się poruszać programista (backend developer w moim przypadku) to jest jakiś dramat. Mówię tu o małej firmie z własnym produktem, nie mówię z perspektywy korpo.

Kiedy się tego wszystkiego nauczyć? Jak Wy to robicie? Nie śpicie?
Cóż, nie jestem tytanem intelektu, ale podejrzewam, że w jakiejś średniej się mieszczę biorąc pod uwagę możliwości umysłowe programistów w Polsce.

  1. Naucz się programować
  2. Naucz się myślenia, mam tu na myśli algorytmikę i całą otoczkę
  3. Naucz się tworzyć kod w praktyce
  4. Ucz się masy narzędzi. Od tego może się coś w mózgu odkleić.. Jak to ogarnąć rozumiem to ja nie mam pojęcia. Muszę używać w pracy bazy danych, kolejek, konteneryzacja, CD/CI - Jenkins, AWS, Kubernetes, kontrola wersji, ogarniać infrastrukturę, żeby wiedzieć co i jak, analiza logów i debugowanie, znać w miarę OS, wiedza z zakresu sieci. Potem optymalizacja SQL, JVM, monitorowanie aplikacji, tutaj wchodzi ten ELK, Prometheus, Graphana. Żeby korzystać z tych narzędzi to trzeba znać inne narzędzia! Edytory tekstu, pluginy do edytorów różne etc.
  5. Żeby tego nie było za mało... naucz się kurcze domeny produktu, w którym pracujesz - i tu w moim wypadku kolejny hardkor - codziennie muszę się uczyć, zmagać, próbować zrozumieć ten pierdyliard integracji, pierdyliard endpointów i kolejek.
  6. To nie wszystko. Testy. Ciągle jest zbyt mało testów i trzeba to wszystko odpalać i testować wykonując requesty.
  7. Dobre praktyki, wzorce projektowe etc...

A te wszystkie umiejętności i tak trzeba ciągle podtrzymywać i szlifować...

Ogólnie wpadłem w konsternację i nie mam pojęcia jak to ugryźć, w czym się specjalizować, a co odpuścić.

Podzielicie się może Waszym sposobem na zapanowanie nad tym? Dodam, że wpadłem na dodatek w błędne koło i chciałbym nauczyć się wszystkiego, a się nie da. Mam na półce ogrom kolorowych książek, pięknych i pachnących, ale jak mam się z nich uczyć, kiedy w wolnych chwilach próbuję rozgryźć jak działa jakaś mikrousługa, w której muszę jutro robić task, a nawet nie wiem co ona dobrze robi i jak działa.

Ba, do tego wszystkiego dochodzi jeszcze podnoszenie poziomu z j. angielskiego i umiejętności miękkich jak jakieś scrumy etc.

Zobacz pozostałe 6 komentarzy
PerlMonk
@kicius: Nawet jeśli trzyma macicę w formalinie?
KI
@NeutrinoSpinZero: jesli chodzi o ilosc stackow to nie bierz do glowy, cos czego uczysz sie sam zabierze ci miesiac, w praktyce przy dobrym lead'zie nie wiecej niz tydzien. Kazdy projekt przyniesie ci cos nowego, i w rok czasu ogarniesz wszystko co wydawalo ci sie niemozliwe w ciagu 10-ciu
KI
@PerlMonk: nie mnie ale @lambdadziara pownienes o to zapytac, wszystko zalezy od tego jak bardzo ma splatane zwoje
99xmarcin
Lekarz ma prościej zapyta o diagnozę na SO... a nie czekaj ;)
RequiredNickname
Słowo klucz: just in time learning
abrakadaber
abrakadaber
  • Rejestracja:ponad 12 lat
  • Ostatnio:7 miesięcy
  • Postów:6610
8

jak nie zarabiasz 20k do ręki to szukaj innej pracy


Chcesz pomocy - pokaż kod - abrakadabra źle działa z techniką.
HA
  • Rejestracja:około 6 lat
  • Ostatnio:około 2 godziny
  • Postów:1006
7

Ja robię mniej więcej tak:

  • sporo czytam, słucham np. podcastów itp aby wiedzieć co w trawie piszczy
  • od czasu do czasu ogarnę jakiś kurs na Udemy w temacie, który mnie zainteresuje
  • w projektach, które prowadzę od czasu do czasu wciskam jakąś nowinkę
  • pogodziłem się, że nic nie umiem - wystarczy mi, że orientuje się w mocnych/słabych stronach danej technologi i mam (często zresztą błędne) pojęcie kiedy daną rzecz warto zastosować
  • jak już przychodzi ten wielki dzień, że coś trzeb zastosować to czytam dokumentację

Mam wrażenie, że podstawa dzisiaj to umiejętność szybkiego uczenia się i ogólny przegląd pola. Reszta to już kwestia zbierania doświadczenia.
Bardzo lubię się uczyć nowych rzeczy, więc dla mnie akurat to jest powód ciągłej radości, że jeszcze tyle jest do nauczenia ;-)

Gorzej jakbym dzisiaj miał zaczynać z zerowym poziomem wiedzy bo patrząc ile tematów trzeba ogarniać w dzisiejszym backendzie aby sobie nie strzelić w kolano można się lekko przytłoczyć.

NS
Dokładnie, ja też lubię się uczyć nowych rzeczy :) Ale wkurza mnie to, że używam wszystkiego po łebkach. Na przykład - co z tego, że skonfiguruję sobie Redisa, jak nawet nie będę wiedział że go skonfigurowałem źle i nieoptymalnie :/ A nie przeczytam docsów, bo nie ma na to czasu.
AO
Ale developer nie jest od konfiguracji redisa
NS
@aoeuidhtn: to co mam zrobić jak Redis nie wyrabia, i wpada task po prostu - naprawić. Apka sypie wyjątkami, więc nas to nie obchodzi, cache ma działać, a teraz gubi requesty co jest dopuszczalne.
PI
  • Rejestracja:ponad 9 lat
  • Ostatnio:3 miesiące
  • Postów:2787
5

Ogólnie pierwsza rada to wrzuć na luz, nie jest aż tak źle ;)

NeutrinoSpinZero napisał(a):
  1. Ucz się masy narzędzi. Od tego może się coś w mózgu odkleić.. Jak to ogarnąć rozumiem to ja nie mam pojęcia. Muszę używać w pracy bazy danych, kolejek, konteneryzacja, CD/CI - Jenkins, AWS, Kubernetes, kontrola wersji, ogarniać infrastrukturę, żeby wiedzieć co i jak, analiza logów i debugowanie, znać w miarę OS, wiedza z zakresu sieci. Potem optymalizacja SQL, JVM, monitorowanie aplikacji, tutaj wchodzi ten ELK, Prometheus, Graphana. Żeby korzystać z tych narzędzi to trzeba znać inne narzędzia! Edytory tekstu, pluginy do edytorów różne etc.

To co opisałeś to z reguły nazywa się doświadczenie - z takiej np javy to zarówno junior i jak expert mogą wiedzieć co to equals/hashCode, ale właśnie tej całej otoczki się człowiek uczy po prostu pracując.

  1. Żeby tego nie było za mało... naucz się kurcze domeny produktu, w którym pracujesz

Normalka, kwestia czasu - ja, patrząc po sobie, to zaczynam być dopiero produktywny i samodzielny jakoś po 3 miesiącach od wejścia w nową pracę. Rozmawiać sensownie z "biznesem" myślę że umiem po około pół roku.

  1. To nie wszystko. Testy. Ciągle jest zbyt mało testów i trzeba to wszystko odpalać i testować wykonując requesty.

Żeby nie musieć testować ręcznie, właśnie po to są testy automatyczne :P

  1. Dobre praktyki, wzorce projektowe etc...

Tutaj akurat 99% programistów narzeka, że ich projekt jest kupą g**na, więc na luzie

Ogólnie wpadłem w konsternację i nie mam pojęcia jak to ugryźć, w czym się specjalizować, a co odpuścić.

Najważniejszy jest rdzeń, czyli język programowania (Java / C# / JavaScript etc). Potem, na podobnym priorytecie dałbym główne frameworki które używasz (w Javie może to być np. Spring czy Hibernate). Potem kwestia infrastruktury - Jenkinsy, CI/CD, Cloudy itp. Potem takie pierdółki jak IDE, edytory tekstów, GITy, jak również wąskie specjalizacje takie jak optymalizacja JVM czy SQL.

Ba, do tego wszystkiego dochodzi jeszcze podnoszenie poziomu z j. angielskiego i umiejętności miękkich jak jakieś scrumy etc.

Co do Scruma to 2h teorii i 2 sprinty wystarczą, żeby się w nim odnajdywać. Podnoszenie j. angielskiego zawsze na propsie.

Podsumowując - Nie ma co się bać, będzie dobrze :D tylko najlepiej jakbyś sobie wyznaczył konkretnie np 3 cele do osiągnięcia w najbliższych kilku tygodniach / miesiącach. Mogę się podzielić jak ja to robię - do końca maja chcę zdać CKAD z Kubernetesa, a do końca roku egzamin z AWSa i GCP. Wmiędzyczasie mam 1,5h tygodniowo angielskiego, a do tego jeszcze dochodzi siłka 3x w tygodniu. Także powodzenia! :)

edytowany 2x, ostatnio: Pinek
Zobacz pozostały 1 komentarz
PI
Dokładnie ;p ale to też kwestia nawyków
somekind
Nie trzeba, kasza gryczana dostarcza wszystkich mikro i makroelementów.
Silv
Kaszę gryczaną z… z czym jeść?
PI
@somekind: akurat obecnie jem sporo kaszy gryczanej xd
PerlMonk
@NeutrinoSpinZero: dobry kebs nie jest zły ;) . Trochę mięsa i surówki nikomu nie zaszkodziło. Tylko w bułce niekoniecznie, bo to białe pieczywo.
WhiteLightning
  • Rejestracja:prawie 14 lat
  • Ostatnio:8 minut
  • Postów:3169
8

Zapisz sie na bootcamp to Cie w 3 miesiace naucza...

A na serio: jak zjesc slonia? Po kawalku. Rozpisz sobie drzewko technologii cos jak drzewko wynalazkow w grze Cywilizacja. I ucz sie po kolei krok po kroku, zrrozumienie przyjdzie z czasem. Albo nie. Zacznij od malych rzeczy i idz w strone wiekszych. I ucz sie, czytaj, probuj, eksperymentuj. NIE MA DROGI NA SKROTY.

somekind
A na serio: jak zjesc slonia? - nie jak zjeść, ale czym popić. ;)
BraVolt
  • Rejestracja:prawie 6 lat
  • Ostatnio:prawie 4 lata
  • Lokalizacja:Warszawa
  • Postów:2918
7
NeutrinoSpinZero napisał(a):

Podzielicie się może Waszym sposobem na zapanowanie nad tym?

Pracuje się dla pieniędzy a nie z pasji i dla pasji.
Jak pracujesz dla pieniędzy to się nie wypalasz bo pracować trzeba. A z pasją bywa różnie.

Wypalisz się, to cię wymienią jak przepalony obwód.


"Kiedy wiedzieć czy zacząć nauke Springa? bo w czystej Javie to nic ciekawego nie zrobie chyba"
Ein Volk, ein Reich, ein Kwa-Kwa ***** ***
edytowany 1x, ostatnio: BraVolt
Szalony Programista
Szalony Programista
Jeśli nie mamy swoich pomysłów to spełniamy cudze.
PI
@BraVolt: Tylko że w tym wątku nie ma słowa o pasji - chodzi o to, żeby znać technologie, a co za tym idzie -> mieć dobrze płatną pracę.
NS
@BraVolt: żadna tam pasja. Jakby mi nie płacili za programowanie, to bym programował może z 3h na tydzień dla przyjemności :)
BraVolt
Większa kasa bo większe wymagania. Co w tym dziwnego?
TB
  • Rejestracja:prawie 6 lat
  • Ostatnio:25 minut
  • Lokalizacja:Warasza
  • Postów:33
9

@NeutrinoSpinZero: bez urazy - ale mam wrażenie że się trochę odklejasz od rzeczywistości :)

Dokładnie w tym samym stylu można opisać każdy zawód nie będący najprostszą pracą.
Bo taki Miecio budowlaniec:

1 Naucz się murować
2 Naucz się tynkować
3 Naucz się obu robić dobrze
4 ucz się obsługi masy narzędzi: wiertarki, pilarki, gilotyny, kątówki etc.
5 Naucz się stawiać domy, kible i warsztaty
6 zrób to tak żeby się nie zawaliło po deszczu.
7 Ma być ładnie

Czy Miecio siedzi po nocach i marudzi że za dużo?
Nie, zrobi swoje i śpi nawalony w kanciapie :)

Płacą nam za pracę intelektualną, nie za to żeby wiedzieć wszystko.
Ułóż priorytety, ucz się czego potrzebujesz i jedź do przod.
Najważniejsze to pamiętać że ten burdel nie jest Twój, Ty tu tylko sprzątasz ;)

edytowany 1x, ostatnio: TheBirthus
vpiotr
Miecio jest od tynków, Stasio od elektryki a Zenek od podłóg. Tak to przynajmniej wygląda w północnej części Polski w roku 2021.
Damian Żurawski
Nie no jak można porównywać tak dwa różne zawody i czasochłonność nauczenia się pewnych rzeczy :) "ucz się obsługi masy narzędzi: wiertarki [...]" Serio? Ile czasu będziesz uczył się obsługi wiertarki? :)
Miang
różne wiertła są do różnych rzeczy?
TB
@damian Żurawski: Bardzo łatwo, mi to zajęło 10 minut ;) Tak na poważnie, jeśli myślisz że jest jakaś zasadnicza różnica pomiędzy wykwalifikowanym robotnikiem a programistą.... To mało widziałeś tabelek w korpo ;) Programista to taki robotnik z klawiaturą zamiast łopaty/wiertarki/kielni. A opanowanie wykończeniówki jest naprawdę trudne, tym bardziej że tam błędów nie naprawia się tak łatwo jak w kodzie.
WeiXiao
  • Rejestracja:około 9 lat
  • Ostatnio:około 13 godzin
  • Postów:5109
3

Ucz się masy narzędzi. Od tego może się coś w mózgu odkleić.. Jak to ogarnąć rozumiem to ja nie mam pojęcia. Muszę używać w pracy bazy danych, kolejek, konteneryzacja, CD/CI - Jenkins, AWS, Kubernetes, kontrola wersji, ogarniać infrastrukturę, żeby wiedzieć co i jak, analiza logów i debugowanie, znać w miarę OS, wiedza z zakresu sieci. Potem optymalizacja SQL, JVM, monitorowanie aplikacji, tutaj wchodzi ten ELK, Prometheus, Graphana. Żeby korzystać z tych narzędzi to trzeba znać inne narzędzia! Edytory tekstu, pluginy do edytorów różne etc.

A ile z nich faktycznie musisz bardzo dobrze ogarniać, a ile po łebkach, a jak coś nie idzie to do dokumentacji i stacka?

obscurity
  • Rejestracja:około 6 lat
  • Ostatnio:około 16 godzin
5

Przejdź do korpo - zakres obowiązków /5, płaca x2


"A car won't take your job, another horse driving a car will." - Horse influencer, 1910
Miang
scrum i inne x10
obscurity
no tak - czasu na pracę zostaje 2h dziennie, jeśli komuś zależy żeby jak najwięcej wypracować dla firmy to może być problem. Ja ogólnie polecam - porównując korpo z małymi i średnimi firmami to te drugie wypadają jak obóz pracy
BraVolt
  • Rejestracja:prawie 6 lat
  • Ostatnio:prawie 4 lata
  • Lokalizacja:Warszawa
  • Postów:2918
18

Jesteśmy - ja jestem - zwykłymi wyrobnikami którzy niczego nie wymyślili i nie wymyślą, nic nie stworzą, nie będzie po nas śladu w historii, dzieciom przekażemy tylko spłacone mieszkanie albo końcówkę kredytu hipotecznego.
Nie wymaga się od nas nic ponad wiedzę ze "szkół" i głowy na karku żeby poszukać gotowca na StackOverflow

Niewielki procent społeczeństw tworzy nowe rzeczy, naukę, rozwija biznesy.
Oni nie mogą skorzystać z możliwości wybrania najwyżej punktowanych odpowiedzi na StackOverflow.
Ta Elita rzeczywiście Tworzy.

Wyrobnicy tylko pracują. Każdy z nas, wyrobników, na takim stanowisku i poziomie na jakim da radę.

Nie daje rady? Wypalił się po 3 latach? Jego miejsce zastąpią inni wyrobnicy.


"Kiedy wiedzieć czy zacząć nauke Springa? bo w czystej Javie to nic ciekawego nie zrobie chyba"
Ein Volk, ein Reich, ein Kwa-Kwa ***** ***
MU
ale to jest piekne, smutne i prawdziwe
KamilAdam
Wypalił się po 3 latach? Jego miejsce zastąpią inni wyrobnicy. Ja się wypalam po roku i sam zwalniam po półtorej
BraVolt
Czas dojrzewania decyzji o zmianie pracy = pół roku
S9
  • Rejestracja:prawie 13 lat
  • Ostatnio:7 miesięcy
  • Postów:415
0

Demonizujesz.

PR
PR
  • Rejestracja:około 4 lata
  • Ostatnio:prawie 4 lata
  • Postów:204
4

Jednak za coś dostaje się naście czy dzieści a może i dziesiąt tysięcy. Nikt nie powiedział, że programowanie jest proste. No może poza ludźmi co sprzedają bootcampy. Jedno mnie martwi

kiedy w wolnych chwilach próbuję rozgryźć jak działa jakaś mikrousługa, w której muszę jutro robić task, a nawet nie wiem co ona dobrze robi i jak działa

Mam nadzieję, że to są wolne chwile w ramach godzin pracy, lub jest to Twój własny biznes przynoszący wymierne korzyści. Inaczej po prostu tak nie rób. Nigdy nie wychodzi to na dobre, nawet jak Tobie się tak wydaje.

Na zawsze nikt
  • Rejestracja:około 4 lata
  • Ostatnio:około 3 lata
  • Postów:50
11

Doleję trochę oliwy do ognia i dodam, że programowanie bywa naprawdę męczące. Konieczność ciągłego doszkalania się może w końcu zdołować.

Uczysz się, powili się rozwijasz, przerzucają Cię do innego projektu gdzie przychodzi sobie studenciak i naparza coś w technologii, o której nie masz zielonego pojęcia. I co teraz? Znów trzeba się uczyć czegoś nowego od zera i gonić tego studenciaka, który przychodzi ze świeżą głową, naładowaną pomysłami, z których jesteś oczywiście "niesamowicie wręcz zadowolony".

A Ty? Ty masz rodzinę, dzieci, mało czasu i coraz więcej rzeczy w nosie, a tu trzeba uczyć się kolejnych bzdur, by choć trochę dogonić tego studenciaka. A przecież kiedyś to była dla Ciebie pasja, hobby czy nawet w jakimś stopniu sens życia.

Ktoś napisze, że to normalny zawód, jak każdy inny, Moim zdaniem to nieprawda. Ilość czasu jaki trzeba poświęcić by się utrzymać dla wielu osób może być barierą nie do przebicia. A tu trzeba jeszcze zrozumieć biznes, który należy zaprogramować. Stolarz jest stolarzem, mechanik mechanikiem, hydraulik hydraulikiem, a programista? Programista wielokroć jest osobą, którą w ogóle nie ma ochoty być. Jest księgowym, kolejarzem, biurwą... Musi być kimś, komu należy w danym momencie zaimplementować jakąś funkcjonalność.

Ktoś mnie tutaj niedawno zapytał dlaczego nie nadaję się do tego zawodu. Odpowiem na to pytanie: wielokroć nie potrafiłem zrozumieć biznesu, który musiałem zaprogramować. Nie potrafiłem być finansistą czy właścicielem sklepu internetowego albo analitykiem w takiej czy owakiej dziedzinie. To jest podstawowa różnica w stosunku do zawodów, tak hucznie tutaj uważanych za "zwykłe".

Nie każdy może zostać programistą. Jeśli ktoś twierdzi inaczej to nie wie co mowi.

Zobacz pozostały 1 komentarz
Miang
piszesz w góglu nazwę technologii o której mówi studencik i cons i już wiesz czego o tej technologii nie mówił bo sam nie wie
PerlMonk
@Miang: 👍
ID
Spoko, tyle ze konceptualnie nowych technologii i narzedzi tworzy sie naprawde malo. Jak znasz kilka, to latwo ogarniesz kolejne. A studenciak mimo duzej ilosci czasu i szybkiego uczenia sie jest o wiele mniej ogarniety w komunikacji z ludzmi, biznesem, innymi zespolami, opornosci na stress, etc.
99xmarcin
A mi się wydawało że z tą odpornością na stres jest tak że im człowiek starszy tym gorzej....
Miang
@0xmarcin: to chodzi o odporności na współpracowników ;)
PK
PK
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 3 lata
  • Postów:245
6
  1. Nie musisz się uczyć się tego w domu. Nikt nie powinien wymagać tego od Ciebie.

  2. Jeśli pracodawca Cię zatrudnił i przydziela Ci zadania z różnych obszarów w których czujesz się słabo to klarownie mów, że nie wszystko jest Ci znane i że potrzebujesz więcej czasu. Nie rób z siebie na siłę bohatera ani męczęnnika tylko mów jasno i konkretnie o ograniczeniach. Natomiast jak masz jakiś techniczny problem, który stresuje to doczytuj, czas jaki jesteś w pracy bez obaw wykorzystuj na rozwój. W ten sposób nie okradasz pracodawcy, a rozwiązujesz w jego interesie konkretny problem.

  3. Doceń chociaż o 1% tą sytuację i rozłóż ją w czasie. Zobacz, jak będziesz bardzo dobry w programowaniu, testach i całej reszcie to znudzi Ci się klepanie w pracy, bo 80-90% będzie nudne i powtarzalne i często słabo zrobione, nie tak wiele wtedy trzeba, aby się wypalić.

w czym się specjalizować

  1. Pracując w firmie specjalizuj się rozwiązywaniu problemów, jedna technologia odejdzie, druga przyjdzie - to nie jest ważne. Lepiej jest się skupić na problemach jakie uderzają w zespół, produkt, firmę w ten sposób łatwiej zrozumiesz branżę, łatwiej dogadasz się z ludźmi i praktycznie wszystko co robisz w pracy nabierze większego sensu.
Silv
Podoba mi się "specjalizacja w rozwiązywaniu problemów". :)
PK
pan_krewetek
Jakkolwiek to brzmi nie chodziło mi tutaj o stawanie się złotą rączką od wszystkiego. Raczej o identyfikowanie rzeczy jakie mogą wnieść dużą wartość i które są możliwe w naszym zakresie.
Silv
No OK, mnie podobają się obie interpretacje; druga oczywiście jeśli chodzi o przypadek @NeutrinoSpinZero .
PR
PR
  • Rejestracja:około 4 lata
  • Ostatnio:prawie 4 lata
  • Postów:204
2

@Na zawsze nikt: Dlatego kluczowym jest, żeby uczyć się jak się szybko uczyć, oraz jak poruszać się w nieznanej technologii i z marszu rozwijać produkt, czy szukać błędów. Uczyć się rzeczy niezależnych od technologii. Technologii jakich używałem, lub używam jest kilkadziesiąt. Żadnej nie znam w 100%, i nie jestem otrzaskany w każdej implementacji i kruczku. Owszem, jak jest problem z wydajnością, wyciekami w aplikacji, błędami - wtedy zgłębia się pewien wycinek technologii i zdobywa się wiedze ekspercką - ale w wąskim wycinku. Z doświadczeniem, zdobywasz coraz więcej takich eksperckich wycinków w różnych technologiach. Nowych technologii uczę się tylko w dwóch przypadkach - potrzebuję jej do projektu - który akurat rozwijam, będę rozwijał lub chcę zacząć rozwijać, drugi przypadek - bo daje mi to rozrywkę. Nigdy nie uczę się czegoś na zapas, bo być może będę chciał w tym coś rozwinąć i wtedy wypadnę z obiegu bo nie będę potrafił. Moi współpracownicy już nie pytają, czy potrafię jakąś technologię, tylko rzucają problem i pytają kiedy możemy usiąść do rozwiązania, wycen lub spodziewać się realizacji. Nie chcę tutaj kreować się na jakiegoś Eugeniusza - większość specjalistów z dużym stażem ma takie podejście. Co do tego, że programowanie jest męczące - zgadzam się w 100%.

Zobacz pozostałe 6 komentarzy
Silv
OK, rozumiem. Może miał powód…
PR
pragmaticdev
@Miang: w życiu nie miałem żadnego papieru, który coś by mi dał. Dyplom inżyniera skończyłem, mając już sporo doświadczenia komercyjnego i nic mi nie dał nigdy. Poza nim, mam dwa certyfikaty z jakiś miękkich szkoleń, bo firma cała się szkoliła. Żaden dyplom, certyfikat czy kurs mi nic nie dał. Z kursów najlepsza była bibliografia i materiały, Niemniej posiadam szacunek do studiów, bo na niektórych kierunkach ciężko zdać i jest dobry poziom. Niemniej zawsze można się ślizgać.
PR
pragmaticdev
Co ciekawe, jedyne firmy, które chciały ode mnie papieru, same chciały mi go zasponsorować i od razu dawały lojalkę, że jak się zwolnię przed nn miesięcy to będę musiał oddać za papier. Ofc. chodziło o założenie obroży z łańcuchem. Nigdy nie przyjąłem takiej oferty.
Miang
@pragmaticdev: sam papier bez stojacej za nim wiedzy niewiele znaczy, brak papiera nie musi o niczym świadczyć ale upieranie się że czegoś nie wiesz bo ne masz tego czegoś potwierdzanego papierem to juz patologia (zwłaszcza że w sytuacji o której teraz myślę gościu miał wiele okazji przekonać się ze znam się na swojej robocie)
PR
pragmaticdev
Staram się z takimi ludźmi nie stykać. Świat jest pełen ludzi i nie musimy zostawać z tymi kilkoma, którzy czegoś dziwnego oczekują. Btw. być może ktoś miał osobisty cel tak działać.
superdurszlak
  • Rejestracja:prawie 7 lat
  • Ostatnio:około 16 godzin
  • Lokalizacja:Kraków
  • Postów:1999
4
NeutrinoSpinZero napisał(a):

Zakres wszystkich działek, w których musi się poruszać programista (backend developer w moim przypadku) to jest jakiś dramat. Mówię tu o małej firmie z własnym produktem, nie mówię z perspektywy korpo.

Jeśli chodzi o manie vs niemanie własnego produktu, korpo też mają swoje produkty, a mniejsze czasami nie mają żadnego, tylko "robią rzeczy" na zlecenie, outsourcing itp. Czasami jedno korpo ma nawet więcej, niż jeden produkt. To tak gwoli ścisłości :P

Kiedy się tego wszystkiego nauczyć? Jak Wy to robicie? Nie śpicie?

Uczę się w godzinach pracy, często kilka godzin czy dni żywcem siedzę, czytam dokumentację, przekopuję się przez kod źródłowy i robię notatki. Często na tym wręcz polega zadanie / spike, żeby wziąć, przeorać internety, dokumentacje, źródła, poczytać, pokombinować, zrobić PoC i wyciągnąć z tego wnioski dla zespołu do ponownego wykorzystania w następnych zadaniach. W sumie w zeszłym roku chyba większość czasu pracy spędziłem na czymś takim - doszkalaniu się w godzinach pracy (jak nie było za bardzo nic do roboty) i robieniu spajków (jak już było coś do roboty). Zostałem nawet okrzyknięty Confluence Developerem...

Cóż, nie jestem tytanem intelektu, ale podejrzewam, że w jakiejś średniej się mieszczę biorąc pod uwagę możliwości umysłowe programistów w Polsce.

Właśnie nie wprost napisałeś, że programiści w Polsce nie należą do tytanów intelektu - uważaj, wg. ankiet StackOverflow chyba ok. 70% programistów na świecie uważało się za ponadprzeciętnych ;)

  1. Naucz się programować

Chyba nie ma sensu uwzględniać tego w wyliczance ;)

  1. Naucz się myślenia, mam tu na myśli algorytmikę i całą otoczkę

Ile bym dał, żeby w pracy mieć do czynienia z algorytmiką a nie zwykłym klepaniem...

  1. Naucz się tworzyć kod w praktyce

Nauczysz się zawsze, pytanie JAK się nauczysz. W pierwszej firmie, w której pracowałem komentowało się kod na zapas mimo używania gita - tak ludzie byli nauczeni.

  1. Ucz się masy narzędzi. Od tego może się coś w mózgu odkleić.. Jak to ogarnąć rozumiem to ja nie mam pojęcia. Muszę używać w pracy bazy danych, kolejek, konteneryzacja, CD/CI - Jenkins, AWS, Kubernetes, kontrola wersji, ogarniać infrastrukturę, żeby wiedzieć co i jak, analiza logów i debugowanie, znać w miarę OS, wiedza z zakresu sieci. Potem optymalizacja SQL, JVM, monitorowanie aplikacji, tutaj wchodzi ten ELK, Prometheus, Graphana Grafana. Żeby korzystać z tych narzędzi to trzeba znać inne narzędzia! Edytory tekstu, pluginy do edytorów różne etc.

To przychodzi z czasem. Sporo z tych narzędzi tak naprawdę da się używać "na czuja" (choć znam takich, którzy nie klikną sami Run build żeby odpalić build dopóki im nie powiesz, że Run build uruchamia build...) i dopiero z czasem poznawać je lepiej. Choć oczywiście zaraz przyleci taki, wg. którego jak nie znasz na pamięć skrótów klawiszowych z jego ulubionego IDE, albo wolisz oglądać sobie zasoby przez dashboard k8s / Octant zamiast tłuc z pamięci CLI k8s to powinieneś dostać dyscyplinarkę.

  1. Żeby tego nie było za mało... naucz się kurcze domeny produktu, w którym pracujesz - i tu w moim wypadku kolejny hardkor - codziennie muszę się uczyć, zmagać, próbować zrozumieć ten pierdyliard integracji, pierdyliard endpointów i kolejek.

Jak produkt jest duży, domena złożona itd. to bardzo pomagają wstępne szkolenia z produktu i wdrażające w domenę. Niektóre firmy produktowe to robią.

Jak nie ma albo jak szkolenia nie wystarczą, to męcz o dokumentację i/lub notuj sobie.

  1. To nie wszystko. Testy. Ciągle jest zbyt mało testów i trzeba to wszystko odpalać i testować wykonując requesty.

Testów zawsze jest zbyt mało i są niewystarczająco dobre :(

  1. Dobre praktyki, wzorce projektowe etc...

Wszystko przychodzi z czasem, a niektórzy żyją i bez tego (patrz moja odpowiedź na p.3)

A te wszystkie umiejętności i tak trzeba ciągle podtrzymywać i szlifować...

Są rzeczy, których się nie zapomina, chyba że metodą uczenia jest kucie na blachę API biblioteki, serwisu etc. - ale wtedy problem nie leży w samym zapominaniu :P

Wiem, że szczegółów nie spamiętam, a jak spamiętam to zapomnę lub się zdezaktualizują. Jeśli je zapamiętuję i pamiętam nawet po latach, to czystym przypadkiem. Dopóki mniej-więcej pamiętam, do czego służyło X, lub jaki problem rozwiązywało Y to jest dobrze - będę wiedział, czego szukać w dokumentacji i będę miał aktualne szczegóły na wyciągnięcie ręki.

Ogólnie wpadłem w konsternację i nie mam pojęcia jak to ugryźć, w czym się specjalizować, a co odpuścić.

Podzielicie się może Waszym sposobem na zapanowanie nad tym? Dodam, że wpadłem na dodatek w błędne koło i chciałbym nauczyć się wszystkiego, a się nie da. Mam na półce ogrom kolorowych książek, pięknych i pachnących, ale jak mam się z nich uczyć, kiedy w wolnych chwilach próbuję rozgryźć jak działa jakaś mikrousługa, w której muszę jutro robić task, a nawet nie wiem co ona dobrze robi i jak działa.

Ba, do tego wszystkiego dochodzi jeszcze podnoszenie poziomu z j. angielskiego i umiejętności miękkich jak jakieś scrumy etc.

Zostanę zjedzony, że nie jestem tró programistą pasjonatem (ok, nie jestem - zasadniczo nie wiem, czym tu się pasjonować będąc code monkey) - sposób na zapanowanie nad tym jest taki, że praca jest w pracy, a po pracy nie ma pracy tylko czas wolny. W pracy jest czas na robienie zadań do pracy, doszkalanie się do pracy. Po pracy jest czas na wszystko inne, w tym naukę - ale tego, czego mam ochotę się uczyć. Jeśli ktoś ma mnie zwolnić za to, że po godzinach gram w gry albo wolę się bawić nie wiem, sieciami neuronowymi, niż doszkalać z Cassandry bo akurat architekt pryncypał ma pomysła - cóż...


edytowany 1x, ostatnio: superdurszlak
Silv
Wydaje mi się, że nie jest takie proste oddzielić pracę od czasu wolnego, jeśli lubisz to, co robisz. Nie w sensie: "lubię wykonywać polecenia", choć tak też można, ale raczej: "lubię pisać w C# niezależnie od tego, czy dla kogoś, czy dla siebie".
superdurszlak
No tak, to jest w ostatnim akapicie :P Po pracy jest czas na wszystko inne, w tym naukę - ale tego, czego mam ochotę się uczyć
Silv
No OK. Też kwestia samodyscypliny.
AL
Z tą algorytmiką to jest chyba lekki paragraf 22: żeby przy niej pracować, trzeba się na niej znać, a żeby się znać trzeba w tym siedzieć ;). Natomiast co do „domeny”: im dłużej pracuję tym bardziej odnoszę wrażenie, że to bywa przereklamowana przykrywka na dziadowski kod. Jasne, do pewnego stopnia ta wiedza się przydaje, ale jak słyszę, że „potrzeba to min. 3 miesięcy na wejście w projekt” to świadczy to bardziej o wielkiej kuli apapu aniżeli o domenie.
NamingException
  • Rejestracja:około 4 lata
  • Ostatnio:około 4 lata
  • Postów:110
2

A najgorsze jest to, że im więcej wiesz tym czujesz, że więcej nie wiesz.

BraVolt
  • Rejestracja:prawie 6 lat
  • Ostatnio:prawie 4 lata
  • Lokalizacja:Warszawa
  • Postów:2918
10

Programuję dla pieniędzy
Pracuję - w pracy programuję. Lubię tę robotę. Poprzedni projekt też lubiłem.
Kilka dni wolnego czasu? Poza komputerem oczywiście! Świat jest piękny, we dwoje jeszcze piękniejszy.

Programuję dla pasji
W pracy to szósty mój projekt i w każdym to samo guano, mam już dość! Myślę tylko o tym żeby w końcu cały wieczór przesiedzieć w domu przed komputerem i programować do późnej nocy to co sam chcę.
Kilka dni wolnego czasu? Z komputerem oczywiście! Będę pisać swój nowy prywatny projekt.


"Kiedy wiedzieć czy zacząć nauke Springa? bo w czystej Javie to nic ciekawego nie zrobie chyba"
Ein Volk, ein Reich, ein Kwa-Kwa ***** ***
edytowany 2x, ostatnio: BraVolt
Zobacz pozostały 1 komentarz
BraVolt
Gdzie? W realu czy na forum?
M1
Na forum pewnie większość pasjonatów oczywiście. Tak jakby programowanie dla pieniędzy to był jakiś wstyd.
PR
pragmaticdev
Ja pracuje dla pieniędzy. Tylko i wyłącznie.
M1
W takim razie dobrze wiedzieć, że nie jestem w tym sam :D
PR
pragmaticdev
Poza "napalonymi" młodziakami, nie znam nikogo, kto pracuje dla pasji. To takie lewicowa retoryka - pasja, powinność, etc. nawet korpo jest organizowane jak szkoły do których są przyzwyczajane dzieci. Ale nie o tym... Nie przeczę - dla rozrywki sobie programuje swoje projekty komercyjne, oraz hobbystyczne, ale w pracę w zew. firmach wykonuję tylko dla pieniędzy.
vpiotr
  • Rejestracja:ponad 13 lat
  • Ostatnio:prawie 3 lata
1

Trzeba odróżnić niektóre stanowiska, bo tu chyba niektórzy mylą pojęcia:

  1. programista - zajmuje się tworzeniem kodu (100% czasu między kawami i toaletą)
  2. software developer - rozwija produkt - tworzy oprogramowanie, zbiera wymagania, testuje, projektuje, dokumentuje
  3. software engineer - człowiek orkiestra, coś tam skrobnie, tu załata, tam przeklika tickety, puści upgrejd i zrobi backup

Do tego są jeszcze działki poboczne, które wielu Januszów Biznesu chciało by zintegrować z powyższymi:

  1. tester
  2. projektant UX
  3. administrator systemu
  4. administrator chmury systemów
  5. administrator bazy danych
  6. performance engineer
  7. meeting facilitator
  8. scrum master
  9. tech lead
  10. sales representative
  11. analityk wymagań
  12. grafik

I teraz pytanie: ile z tych stanowisk z drugiej sekcji potrafisz zastąpić? Na ile jesteś zajebisty? I kiedy nastąpi załamanie nerwowe?

edytowany 3x, ostatnio: vpiotr
Zobacz pozostałe 2 komentarze
NamingException
Bo nie umiem zrozumieć.
vpiotr
@NamingException: to raczej ciężko pracę Ci będzie znaleźć.
NamingException
Developer to projektant aplikacji? Engineer to inżynier aplikacji? Performance i... to inzynier wydajności? Scrum master to obibok? tech lead lider techniczny itd.
NS
Żadnego z tych wyżej stanowisk nie zastąpię, bo nie umiem niczego w pełni.
Na zawsze nikt
'meeting facilitator' - ja pierniczę, nawet nie umiem tego przeczytać. :-)
somekind
Moderator
  • Rejestracja:około 17 lat
  • Ostatnio:około 11 godzin
  • Lokalizacja:Wrocław
11

1, 2, 3 i 7 to jest jeden punkt.

Co do narzędzi, to nie ma sensu. Zawsze znajdzie się jakiś junior, który je umie i jeszcze jest szczęśliwy z tego powodu. Za 3 lata i tak będą inne, więc nieuczenie się czegoś, co przemija jest lepszą inwestycją. A te inne narzędzia mogą obsługiwać nowi juniorzy.

Domena - no czasem trzeba, czasem nie trzeba, generalnie chłonie się podczas pracy. A jeśli ktoś tego bardzo wymaga, to powinien zapewnić szkolenia.

edytowany 1x, ostatnio: somekind
Zobacz pozostałe 4 komentarze
Spearhead
No nie bardzo, według kolokacji korpusu języka polskiego z wyszukaniem hasła "wiedzę" dominują raczej słowa "poszerzać", "pogłębiać i "przyswajać", nie ma nigdzie "wchłaniać".
somekind
https://sjp.pwn.pl/sjp/chlonac;2448245.html - przyswajać coś zachłannie. Tym czymś może być wiedza.
Spearhead
No ale "chłonąć" i "wchłaniać" to dwa różne słowa. To pierwsze jest zresztą na liście zwracanej przez zalinkowany portal. O ile więc "chłonięcie wiedzy" można jak najbardziej uznać za powszechny zwrot, to "wchłanianie wiedzy" niespecjalnie.
Silv
Dla mnie "wchłaniać" to biologiczne. Ale może rzeczywiście określenie "metafora" jest na wyrost. Może po prostu ładny opis. :)
somekind
@Spearhead: no ok, wydaje mi się, że masz rację.
cmd
  • Rejestracja:około 10 lat
  • Ostatnio:5 dni
  • Lokalizacja:Warszawa
  • Postów:443
4

Wygląda jak typowy scope na backendzie :)

Zobacz pozostały 1 komentarz
cmd
@PanamaJoe: Backendowiec który w obecnych czasach nie potrafi sam konteneryzować swoich serwisów będzie miał poważne problemy na rekrutacjach. A devops to nie rola czy stanowisko ;)
PanamaJoe
Ale serio jest takie trudne? Nie robiłem tego, mogę się nie znać, ale po wpisaniu zapytania w wyszukiwarkę pojawiają się wyniki, które sugerują, że to kwestia kilku poleceń do ogarnięcia w czasie przerwy śniadaniowej, np. https://stackabuse.com/dockerizing-a-spring-boot-application/ albo https://www.wintellect.com/containerize-python-app-5-minutes/#:~:text=To%20build%20the%20image%2C%20run,the%20image%20as%20a%20container.
cmd
Nie jest trudne, dlatego mówię że powinno się umieć konteneryzować swoje usługi a nie zawracać głowy innym. To jest dość proste do nauczenia dla przeciętnego developera :)
lambdadziara
a co jezeli to Java EE?
PerlMonk
@lambdadziara: Wtedy dziarasz lambdy :)
Escanor16
  • Rejestracja:prawie 5 lat
  • Ostatnio:4 dni
  • Postów:366
2

Tak mnie zastanowila w sumie jedna rzecz, czego wy się potrzebujecie uczyc o scrum/agile? Ja nie widzę absolutnie żadnej potrzeby by się uczycyna ten temat a to jak funkcjonuja sprinty itp ogarnąłem po pierwszym 30min spotkaniu w pracy xd wgl uważam że Ci cali Scrum Masterzy to takie nie potrzebne piąte koło u wozu które jakby zniknęlo to nikt by tego nie zauważył


Nie chciałem być programistą jednak tego zechciał świat.
Zobacz pozostałe 3 komentarze
TS
Albo jesteś pasywem i robisz to co karze Ci gość, który o Agile'u przeczytał w 30 minut na klopie, albo potrafisz przejąć inicjatywę i poprawić proces, żeby cały zespół zarobił więcej kasy dla klienta.
TS
Nie mówię, że od teraz masz wszystkich pouczać, ale powinieneś umieć zareagować kiedy widzisz, że komunikacja w zespole jest słaba.
somekind
@twoj_stary_pijany: żeby poprawić proces trzeba byłoby zacząć argumentować i przekonywać ludzi. Najpierw wyjaśnić im, że robią coś źle (a ludzie często nie dają sobie tego uzmysłowić), potem udowodnić, że Twoje pomysły są lepsze (a to trudne). To wszystko zajmuje czas, energię i nerwy. Po co to robić?
UR
Jak gdzieś w zespole jest coś do d**y, to wystarczy o tym wspomnieć na jakimś podsumowaniu i reszta podejmie temat. Efekt zazwyczaj mimo tego, że wszyscy wiedzą co jest źle i co należy poprawić jest mizerny o ile nie zerowy. Jak zespół/PM/PO/prezes żyje w wyparciu, no to i tak to nie przyniesie żadnego skutku. No i do tego raczej żadne książki do AGILE nie są potrzebne żeby takie rzeczy zauważyć/usprawnić. A jak ktoś już pójdzie w te książki, no to są zazwyczaj idiotyczne przepychanki, w stylu wyceniamy bugfixy czy nie, przesuwamy na kolejny sprint i inne takie bzdety.
ZP
To kto by chmurki na retro rysował
Z2
Z2
  • Rejestracja:około 4 lata
  • Ostatnio:prawie 4 lata
  • Postów:10
1

Myślę że to zależy dużo od profesji jaką posiadasz, bo to co robi Java Developer w jednej firmie często nie jest 1:1 co robi w drugiej firmie. Chodzi tutaj o umiejętności, zasób wiedzy o technologiach. Jak ktoś wspomniał w jednej firmie możesz być wymiataczem bo znasz Springa a w innej będziesz dupa wołowa bo używają całkiem innego ekosystemu. To są właśnie te bolączki o których mówisz. Jeżeli chcesz by doświadczenie w jednej pracy często pokrywało się 1:1 z tym co będziesz robić w kolejnej firmie to musisz wejść w niszę, czyli zostać specjalista np. z Tibco, SAP, Dell Boomi czy specjalista AWS, GCP... jest tego pelno. Software Developer jak mi to mówił manager to słowo wytrych aby taki gość musiał robić wszystko, co w poprzednim przypadku już byłoby nadużyciem, gdyby kogoś zatrudnili jako specjalistę SAP a kazali mu pisać XML'e, czy jak to pisałeś konfigurować pipeline na Jenkins. Myślę że wiesz o co mi chodzi.

edytowany 8x, ostatnio: zibenek26
ZG
  • Rejestracja:ponad 10 lat
  • Ostatnio:około 2 lata
  • Postów:155
0

To wymaga pracy i czasu. Praca software developera nie jest latwa. Czesto zadania nie sa powtarzalne. Czasem sa bugi, ktore probujesz rozwiazac, ale nie da sie ich rozwiazac. Nie jest to praca, tak jak niektorzy tutaj pisza w umiejetnosciach - po kilku latach programowania, ze znaja jezyk np. na 3/3. Ostatnio spadlo na mnie zadanie goscia, ktory programuje 18 lat i go nie rozwiazal. Mysle, ze po 20 latach pracy mozna powiedziec, ze sie duzo umie. A ci co sie zniechecaja na poczatku, to niech nie mysla, ze umiejetnosci przychodza latwo do zostania dobrym developerem. Na poczatku, duzo czasu niestety trzeba poswiecac nawet poza praca na nauke.

UR
To że ma 18 lat doświadczenia, to nie znaczy że jedyne problemy, z którymi będzie miał problemy to te najtrudniejsze. Podczas swojej dosyć krótkiej kariery natrafiłem na wielu seniorów +10 lat expa, zielonych niczym gruszki, wykładających się na podstawach, na takim poziomie, że mając z nimi pair programming i widząc jakie mają problemy z podstawowymi problemami tylko zniechęcałem się do jakiejkolwiek pracy.
vpiotr
Gosc ktory programuje 18 lat to jakis mid przeciez.
Escanor16
@urke na jakich podstawach sie wykladali np.?
UR
Nie potrafili korzystać ze struktur, nie potrafili poprawnie napisać operatora przeciążającego porównanie. Nawet niektórzy mieli problemy z pamięci użyć async await, co jasno pokazywało, że to dla nich czarna magia i robią na pałę. Próby pisania null checków na strukturach, co świadczy, że nie mają pojęcia o ich działaniu w C#. Problemy ze zdefiniowaniem poprawnej ścieżki do zasobu, mając podobno 10 lat expa w REST. Niechęć do pisania testów, która jak potem zazwyczaj się okazywało była spowodowana brakiem umiejętności ich napisania.
QA
  • Rejestracja:około 4 lata
  • Ostatnio:9 miesięcy
  • Postów:19
4

To ogólny problem dotyczący programistów.
Ja projektuję elektronikę z uwzględnieniem EMC/EMI sprzęt w klasie "safety", projektuję PCB też z uwzględnieniem EMC/EMI, piszę do tego soft C,C++,asm
również z uwzględnieniem "safety" I mało która firma chce zapłacić odpowiednio a jeszcze prócz standardowych SVN/GIT/Mantis/Linuxa i paru pomniejszych duperel dodatkowo chcą znajomości Pythona, programowania Interfejsów graficznych i cholera wie czego jeszcze. Muszę znać od cholery i ciut różnych protokołów, RTOS-y, potrafić skomunikować mikrokontroler z softem na Linux-ie pobieranie/ładowanie danych do DB klecenie czegoś w HTML aby się urządzenie potrafiło zgłosić w przeglądarce, znać różne śmiecia związane z wykrywaniem uszkodzeń np silników etc. it. ....................... Na dzień dobry wołają perfect angielski w mowie i piśmie Jira i insze takie nalazki. W sumie to jak w dowcipie "członkini koła gospodyń wiejskich" i potrafią czasem napisać w ogłoszeniu 10k brutto (o tych niższych nie wspominam gdyż są po prostu niepoważne). Po prostu śmieszne. Dlatego zakładam swoją firmę.

Aha...

Zapominałęm. Ostatni pomysł to napisać apkę na Androida do sterowania tymi urządzeniami.
Więc dochodzi Java..........

edytowany 1x, ostatnio: qazpylades
Miang
śpiewa tańczy recytuje...
AO
prawda, w embedded do tego niskie płace w porównaniu do Web i mniejszy rynek
DU
  • Rejestracja:prawie 6 lat
  • Ostatnio:około 2 lata
  • Postów:126
1

Takie rzeczy jak piszesz przychodzą z doświadczeniem + wrodzoną cechą bycia w miarę ogarniętym. Oczywiscie jezeli na developerze wszystkie te aspekty spoczywaja o ktorych piszesz to jest cos nie tak, natomiast jesli jako zespół kilku osób to ogarniacie razem i sie tym dzielicie to moze byc to bardzo ciekawy projekt.

QA
  • Rejestracja:około 4 lata
  • Ostatnio:9 miesięcy
  • Postów:19
1

Są to ciekawe projekty ale głowa nie śmietnik. Ile można znać "na blachę". Jednak niezależnie od wiedzy nie idą za tym zarobki. Osobiście żałuję, iż więcej nie położyłem nacisku na angielski. Ci co znali go na blachę to przestała ich trzymać w Polsce "grawitacja" i wybyli a teraz pracują za pieniądze i nie robią za "człowieka orkiestrę" jak pracowałem w "Diehl control" to zajmowałem się tylko programowaniem a od hardware byli inni. w "Scheidt und Bachmann" również.... a teraz kierownikuję i jeszcze muszę wszystko znać i wszystko pisać. W GB bym rocznie zarabiał pewnie z 60..80k na takim stanowisku i z taką wiedzą.

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

Te podpunkty brzmią jakby pisała je osoba, którą boli.
Boli, ale to dobrze, bo znaczy, ze cos rośnie.

W programowaniu nie zmieniło się nic od lat 80.
Jak nauczysz się dobrze paradygmatów to już idzie z górki. Prawda jest taka, ze metodologii się pojawia bardzo mało, nowe narzędzie to nie jest nowa metodologia.

Frameworki to narzędzia. Nie można zachorować na chorobę frameworkowa, bo ma się poważne dolegliwości. Co więcej, jeżeli masz architekturę zależną od frameworka to źle. No chyba, ze to zwykły transacion script.

Duzo rzeczy, które napisałeś wynikają z podejścia do tworzenia systemów rozproszonych - tu jest faktycznie inna i nowa mechanika. Np. zwykła transakcja nie starcza, trzeba ratować się sagami, cały czas rozmawiać z biznesem by programowac poprawne workflow itd.. Mikroserwisy nadały nowy kierunek i często są powodem tych wszystkich nowych narzędzi.

W większych firmach od CI/CD jest devOps. Rzadko kiedy trzeba być specem w tym. Mniej więcej masz wiedzieć jak to działa mechanicznie. Stawiać dockery, ogarniać workflow git-jenkins itd.. Pracujesz w małej firmie i masz te rzeczy na sobie? Wykorzystaj je.

Co do ciągłej nauki. Babcia mojej dziewczyny ma 98 lat, jest profesorem, codziennie czegoś się uczy, rozmawia się z nią jakby była w podobnego pokolenia do twojego. Za to moja babcia 80 lat, nigdy nie skupiała sie na nauce, ciężko się z nią dogadać, obecnego świata nie rozumie, żyje swoim własnym.

Wiem, ze jak ktos ma dzieci, rodzine itd to ciezko go zachęcić do nauki, ale fakt jest taki, ze mózg dzięki nauce ciagle się rozwija. Stymulujesz go. Wiec jest to plus dla ciebie bo idziesz ze swiatem.


Z każdym dniem czuje się głupszym programista.
Zobacz pozostałe 2 komentarze
DKN
@vpiotr: Taki chwyt marketingowy do dalszego czytania.
DKN
@Silv: saga to taka herbata co pijesz przy tym jak chcesz rozwiązać problem izolacji, gdy nie stosujesz transakcji ACID dla zapisu do różnych baz danych.
Silv
Ach, herbata. ;)
DKN
Nie No to był zarcik, myslalem, ze wiesz. Saga to sposob komunikacji w mikroserwisach, by dobrze zapisać dane.
Silv
@DKN: OK, już rozumiem, że żart. ;) Generalnie nie zwracam wielkiej uwagi na żarty ani ich nie szukam (w internecie), więc z tego powodu, tak mi się wydaje, mniej ich znam.
AreQrm
  • Rejestracja:prawie 11 lat
  • Ostatnio:29 dni
  • Lokalizacja:Londyn
  • Postów:873
2

Odkryłeś ocean. Teraz płyń tam gdzie chcesz być.

Zastanów co cię interesuje najbardziej i tego się ucz. Ewentualnie jeśli widzisz duże braki w czymś co Ci przeszkadza na co dzień albo w znalezieniu nowej pracy - to poucz się tego. I wróć do nauki i skupiania się na tych rzeczach które Cię interesują.
Np ja zawsze byłem bardziej zainteresowany backendem niż frontem, i mimo, że stawia mnie to w sytuacji że o froncie mniej wiem, to nie próbuję na siłę się tego uczyć jeśli nie muszę. Wolałem się pouczyć o testach, architekturze takiej czy siakiej niż uczyć Vue czy Reacta. Jak trzeba by było do pracy albo do zmiany, to wziął bym się za to, ale jeśli nie to wolę się skupiać na innych rzeczach.


QA
  • Rejestracja:około 4 lata
  • Ostatnio:9 miesięcy
  • Postów:19
0

W mojej działce ciągle się coś nowego pojawia gdyż wynika z badań fizycznych. np wykrywanie zwarć zwojowych maszyn energetycznych w trakcie pracy. etc itp. samo kodowanie to mało. Przykładowo idiotoodporna klawiatura odbiciowa której nie oślepia światło słoneczne do zastosowań w przestrzeni publicznej(moje prywatne opracowanie). Ostatnio zrobiłem taki "dyskotekowy kolorofon z użyciem jednego mikrokontrolera i trzech tranzystorów. oczywiście DSP bo bez tego się już elektronika nie obchodzi. a działa na małym Atmelku. To nie jest w każdym razie tylko kodzenie. Trzeba badać jak się zachowuje fizyczny ukłąd w środowisu i dostosowywać odpowiednio oprogramowanie i modyfikować sprzęt. w klawiaturze odbiciowej zastosowałem techniki używane w radarach wojskowych.

Silv
klawiatura odbiciowa – ?
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)