Kiepski projekt w nowej pracy wbrew temu co mówili

Kiepski projekt w nowej pracy wbrew temu co mówili
SH
  • Rejestracja:około 5 lat
  • Ostatnio:ponad 4 lata
  • Postów:82
0

Witam was.
Udało mi się zakończyć nieciekawy kontrakt freelancerski i dostać na do nowej firmy. W trakcie rozmowy rekrutacyjnej zapewniano mnie, że stosuje się dobre praktyki programowania - nawet kazali mi zaimplementować i wyjaśnić wzorce projektowe. Nawet dali mi codility więc myślałem, że to porządna firma.
Mówili też, że u nich jest standard C++17 i starają się testować aplikację. Jedyne o czym mnie poinformowali wcześniej to, że jest tam "trochę kodu legacy".
Niestety kiedy zacząłem pracę okazało się, że to jest "C z klasami" napisane bardzo brzydko np. unsigned int i = -1;, brak namespace, makra zamiast normalnych funkcji, dziwne ograniczenia i sporo innych wad. Brak testów. Jest tam kod C++ czy C sprzed 20 lat gdzie return jest używany jako funkcja... Z C++17 to ma tyle wspólnego, że kompiluje się z flagą 17, pełno warningów. Dziwne, niestandardowe debuggowanie.

Pisałem wcześniej, że zdecydowałem się zmienić pracę z mojej fajnej firmy z powodu braku podwyżek. Kontraktornia, do której się dostałem straciła projekt więc wsadzili mnie w jakieś gów.. przez co szukałem pracy przez 2 msc.
Teraz trafiłem tutaj i nie wyobrażam sobie pracy dłużej niż 3 miesiące w takim czymś, ale potrzebuję pieniędzy . Już się próbuję gdzieś rekrutować ale rynek jest trochę trudniejszy niż mi się wydawało, nie mam też zbyt dużo czasu. Jestem tu już 5 tygodni, okres próbny na 3 miesiące. Najgorsze jest to, że wszyscy się zachowują jak by mnie nie próbowali oszukać / nic nie ukrywali w trakcie rekrutacji :D

Co byście zrobili na moim miejscu. Obawiam się też, że takie częste zmiany(2 firmy) będą źlę wyglądały na CV więc chcę wszystko wpisać jako freelancing.

WeiXiao
  • Rejestracja:około 9 lat
  • Ostatnio:około 19 godzin
  • Postów:5108
16

W trakcie rozmowy rekrutacyjnej zapewniano mnie, że stosuje się dobre praktyki programowania - nawet kazali mi zaimplementować i wyjaśnić wzorce projektowe. Nawet dali mi codility więc myślałem, że to porządna firma.

haha, aż się uśmiałem :D

edytowany 1x, ostatnio: WeiXiao
KA
  • Rejestracja:prawie 11 lat
  • Ostatnio:około 2 lata
  • Postów:594
8

na rekrutacjach zawsze rzygają tęczą.

MA
  • Rejestracja:prawie 17 lat
  • Ostatnio:4 dni
  • Postów:644
2

Większość projektów to kod legacy. Trzeba się nauczyć pracować z takim kodem, starać się go naprawiać, refaktoryzować, podbijać wersje, otestowywać itd. Jeżeli nie potrafisz pisać dobrze w legacy (czytaj zmniejszając dług technologiczny z czasem) to jaką mam pewność, że z dobrze ułożonego projektu z czasem sam nie zrobisz legacy? Nawet jeżeli dostaniesz ładny projekt to bez ochoty na ciągłe rozwijanie kodu (poprzez testy i refaktoryzacje) z czasem stanie się nie utrzymywalny i ktoś następny po Tobie przyjdzie i stwierdzi, że odchodzi bo to kod legacy (a przecież jeszcze te x lat temu był taki fajny).

Zobacz pozostałe 3 komentarze
SH
@PerlMonk: To dobrze, to oznacza, że ktoś ma wyższe standardy. Jeśli firmie/kolegom nie spodoba się mój kod, moja praca to mogą mnie nie zatrudniać.
PerlMonk
@shitlord: Coś mi wygląda na to, że masz krótki staż. Nie idź tą drogą, bo możesz się zdziwić.
KA
co by sie nie dzialo kod zawsze to kupa
S7
Co to znaczy kod legacy?
KA
taki co przed chwila zostal zacommitowany ;)
99xmarcin
  • Rejestracja:prawie 5 lat
  • Ostatnio:4 miesiące
  • Postów:2420
4

Welcome in the real world. Niestety tak to często bywa, sam byłem w podobnej sytuacji: miałem robić backend C# a dostałem jakiś JS'owy Ember crap czy coś podobnego. Było to z jakieś 5 lat temu, ja jeszcze ze studencką mentalnością i bez jakichkolwiek zobowiązań (rodzina, kredyt itp.) więc rzuciłem zaraz po tym jak mnie zatrudnili. Rynek był wtedy tak rozgrzany że 2 umowę miałem już podpisaną 3 dni po rozpoczęciu poszukiwań.
Durga robota okazała się tylko nieco lepsza niż pierwsza. Okazuje się że problem był taki że nie potrafiłem wtedy odróżnić dobrej firmy od złej, z dużego G trafiłem na mniejsze g ale też g. Teraz bardzo ostrożnie podchodzę do wyboru firmy, sprawdzam kto tam pracuje, dzwonie po dawno zapomnianych kolegach kolegów i pytam jak się im tam pracowało, patrze na profile ludzi którzy mnie rekrutowali i na profil team lead'a/menadżera/PO. Czytam opinie na sieci, preferuję miejsca pracy z polecenia (ale uwaga zdarzają się ludzie którzy chcą zgarnąć kasę z polecenia, więc warto pytać tylko osoby które mają dobrą opinię - którym zaufasz że nie wciągną Ciebie do bagna a sami zgarną kasę).

Generalnie polecam zagraniczne firmy, znacznie wyższa kultura pracy. Na C++ się nie znam i nigdy w nim nie pracowałem komercyjnie więc żadnej firmy nie mogę polecić ale może ktoś inny Ci tutaj pomoże?


Holy sh*t, with every month serenityos.org gets better & better...
KE
Jestem świeżakiem i merytorycznie podoba mi sie ten post.
stivens
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 2 godziny
4

Pytanie czego sie spodziewales po C++?


λλλ
SH
  • Rejestracja:około 5 lat
  • Ostatnio:ponad 4 lata
  • Postów:82
0
stivens napisał(a):

Pytanie czego sie spodziewales po C++?

Ty sobie żartujesz? Pracowałem już w 3 projektach poza tym i najstarszy był napisany w C++11 z elementami legacy w C++98. Była też domieszka C ale bez przesady, to jest kod w 80% C i w 20% starym C++.
Projekty pisane w C++11/14 wyglądają o niebo lepiej, nawet stare projekty w C++98 wyglądają dużo lepiej.

edytowany 2x, ostatnio: shitlord
Zobacz pozostałe 9 komentarzy
PerlMonk
@shitlord: Napisałem coś z mojej perspektywy. Mam inne zdanie. Jeśli tak samo odpowiadasz ludziom w pracy, to nie dziwię się, że masz problem ze znalezieniem projektu dla siebie. Napisałeś wątek na forum. Każdy może napisać odpowiedź, nawet taką, która ci nie odpowiada.
SH
@PerlMonk: Co to za pokrętna logika, że skoro nie podoba mi się kod to mam problem z ludźmi ? :D
stivens
Shizzer to inna osoba xD
stivens
Ej serio powiedz co to za projekty byly. To kwestia ciekawosci a nie zlosliwosci. Jak juz mowilem szczegoly mozesz zachowac dla siebie
stivens
@stivens: Ej serio: nie no typie odpowiadajac cos w rodzaju "pisalem modul do satelity", "pracowalem w fin-techu" raczej nie lamiesz NDA. Czego sie tak boisz? :D
PerlMonk
  • Rejestracja:około 6 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Warszawa 🐪
  • Postów:1719
4

Ja w chwilach zwątpienia staram się zaczynam od siebie. Nie jest to łatwe z różnych względów, ale daje pewien sygnał do rozwoju. Uważam, że mistrz- programista poradzi sobie nawet z łajnem. Naprawdę, takiego mózga, który uratuje niejeden projekt, uznam za mistrza. Takich jest mało i zarabiają... jak należy.
Dlatego najlepiej wyciągnąć z projektu tyle nauki ile się da, w stylu "czego nie robić". Wytykać błędy każdy umie. Nauczyć już nie.


Nie sztuka uciec gdy w dupie sztuciec. 🐪🐪🐪
Zobacz pozostałe 9 komentarzy
PerlMonk
@karsa: My nie siedzimy w twojej głowie. Nie wiemy co masz na myśli. Tu, na forum, był niejeden odważny. Dlatego takie reakcje są.
KA
@PerlMonk: nie rozumiem Twojego komentarza, tez nie siedze w Twojej glowie. Ja pisze swoją opinie i tyle. Nie rozumiem tylko po co sugestia, że niby czegos nie umialem.
SH
@karsa: Koleś robi wyrzuty sumienia i próbuje prowokować jak chcesz opuścić gówniany projekt. Zabawne, że wydaje mu się, że to nie jest oczywiste dla każdego.
Miang
może być że do projektu trafi mistrz marketingi i zwykły mistrz, ten drugi uratuje projekt a w tym czasie pierwszy przypisze sobie ten ratunek
PerlMonk
@Miang: Tyż prawda.
rgawron
  • Rejestracja:ponad 9 lat
  • Ostatnio:3 miesiące
  • Lokalizacja:Cannes
  • Postów:67
1

IMHO, C z klasami też może być fajny, ale ja jestem fanem zwykłego C.

Najnowszy standard C++ nie będzie już najnowszy za kilka lat, ważniejsze jest, jak napisano projekt, jaka panuje atmosfera w zespole, czy sposób pracy jest choć trochę nowoczesny (testy jednostkowe, CI, code review, etc), jaki jest management - jeśli na tym poziomie jest ok, to warto dać szanse, jeśli nie, szukaj nowej pracy :-)

Kontraktornia, do której się dostałem straciła projekt więc wsadzili mnie w jakieś gów..

Klasyka.


edytowany 2x, ostatnio: rgawron
SH
C++11 trzyma się bardzo dobrze mimo tego, że jest już "stary".
rgawron
IMHO, to C++ jest stary, ma swoje nisze wynikające z tego że są hektary programistów i narzędzi niemu przystosowanych, ale nowe standardy nie mają za bardzo sensu, bo tam, gdzie jest opcja na nowość (nowy standard), wybiera się inny język. Tam, gdzie nie ma, jest stary C++ i C.
DO
DO
  • Rejestracja:prawie 5 lat
  • Ostatnio:prawie 3 lata
  • Postów:18
1

Czytając ten wpis to myślałem, że dołączyłeś do zespołu, w którym aktualnie pracuję, bo prawie wszystko się zgadza poza C++17, u mnie jest 11. Jeżeli możesz coś usprawnić, typu dodać CI, jeżeli nie macie, popełniać jakieś code review (zakładając, że jest ktoś, kto to może przejrzeć, a nie approve i lecimy dalej), zaangażować resztę w pisanie testów czy dokonać refaktoru (np. u mnie nie można refaktorować kodu, który jest pisany przez część naszego zespołu zagranicznego :D) istniejącego kodu to bym jeszcze posiedział, w przeciwnym wypadku bym szukał czegoś innego. Wyciągnij z tego tyle ile się da i wiej.

edytowany 1x, ostatnio: DiabolicalOnion
SH
Jest bitbucket ;d
somekind
Moderator
  • Rejestracja:około 17 lat
  • Ostatnio:2 dni
  • Lokalizacja:Wrocław
5
shitlord napisał(a):

Teraz trafiłem tutaj i nie wyobrażam sobie pracy dłużej niż 3 miesiące w takim czymś, ale potrzebuję pieniędzy .

Dlatego właśnie należy mieć poduszkę bezpieczeństwa, a nie zerować konto na koniec miesiąca.

Najgorsze jest to, że wszyscy się zachowują jak by mnie nie próbowali oszukać / nic nie ukrywali w trakcie rekrutacji :D

Jest jakieś 5% szansy na to, że Cię oszukali i 95% na to, że oni naprawdę w wierzą w to, że to co robią, to właśnie są dobre praktyki. Generalnie niewielu programistów umie pisać dobry kod, i stosować wzorce projektowe czy jakąkolwiek architekturę w produkcyjnym kodzie.

Co byście zrobili na moim miejscu.

To chyba pytanie?
Jeśli tak, to następnym razem wybrałbym lepiej.

karsa napisał(a):

na rekrutacjach zawsze rzygają tęczą.

W polskich software housach i outsourcingach owszem, w zagranicznej firmie produktowej jak mają legacy do przepisania, to powiedzą od razu.

KA
> "W polskich software housach i outsourcingach owszem, w zagranicznej firmie produktowej jak mają legacy do przepisania, to powiedzą od razu." to prawda, zreszta ja zawsze na rekrutacjach pytam jaką kupę ukrywają przede mną, dobre pytanie sprawdzające.
somekind
No cóż, na pewnym etapie przestaje się wierzyć w pewne rzeczy, więc już nikt nie próbuje takiemu człowiekowi ściemniać. :)
AF
  • Rejestracja:prawie 18 lat
  • Ostatnio:13 dni
0
shitlord napisał(a):

Co byście zrobili na moim miejscu.

Nie znam się na C++, ale jeżeli trafiłeś na coś, co naprawdę jest kupą poniżej średniej rynkowej, to ja bym zmienił.

Obawiam się też, że takie częste zmiany(2 firmy) będą źlę wyglądały na CV więc chcę wszystko wpisać jako freelancing.

Moim zdaniem nie, w świecie frontu widziałem takie akcje u znajomych i nie było problemu.

Bonanzaa
  • Rejestracja:ponad 4 lata
  • Ostatnio:około 4 lata
  • Postów:168
3
  1. Pracuj i szukaj lepszej pracy.
  2. Popracuj kilka miesięcy aż uzbierasz oszczędności, rzuć, odreaguj przez 2 miesiące i szukaj nowej.
  3. Jak dużo płacą za klepanie CRUDów to ciesz się życiem i rozwijaj po pracy.
GH
  • Rejestracja:ponad 5 lat
  • Ostatnio:5 dni
  • Postów:27
0

Chyba dawno nie widzieliście legacy w PHP xD
Gdy planujesz przeskok na PHP7 a w 50-60% kodu to struktura i istnieją jeszcze funkcje które trzeba było dopisywać do PHP4 żeby uzyskiwać funkcjonalności PHP5.
Nie mówiąc o namespace'ach / composerze i innych pierdach.
PHP taki świetny <3

KamilAdam
Ja rozumiem że pracuje się dla pieniędzy, ale nie czujesz że praca w PHP to już za dużo?
PerlMonk
Że też ludzie chcą pracować z PHP :]
GH
@KamilAdam @PerlMonk gdyby ktoś nie jeździł śmieciarką to ludzie tonęli by w śmiechach - mam nadzieje że to najlepszy komentarz, hajs się zgadza, "projekt" po małych kroczkach idzie do przodu, kwestia podejścia dla jednego szklanka pół pusta, dla drugiego pół pełna. Uważam po prostu że narzekanie na starcie nie ma sensu.
PerlMonk
@GoHard: Gdyby ludzie nie śmiecili albo chociaż sami po sobie sprzątali, śmieciarki nie byłyby potrzebne ;) .
GH
@PerlMonk: tak gdyby każdy utrzymywał kod właściwym to było by bajecznie ale jest to podejście "bajeczne" :)
CZ
  • Rejestracja:ponad 8 lat
  • Ostatnio:około miesiąc
  • Postów:2284
0

Klasyk. Używają c++17 ale w miejscu gdzie nikt się nie zwalnia

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)