Jak to się stało, że zostałem klepaczem a nie programistą

0

Cholera! Kiedy i jak to się stało, że zostałem zwykłym, mizernym klepaczem kodu a nie porządnym programistą?
Historię zacznę jak badziewne opowiadanie erotyczne: jest piątkowy wieczór, siedzę przy kubku herbaty zaciągnięty po ostatnią szarą komórkę w kod projektu przy którym pracuje na co dzień. W ramach przerwy i rozrywki przeglądam snap i insta story znajomych - tych zwyczajnych, tych normalnych którzy w młodym wieku balują i piją hektolitry alkoholu. //Koniec taniego wstępu, który niewiele ma z prawdą bo po prostu siedzę przy laptopie, bez żadnego szału.

Wpadłem na świetny pomysł! Moje rodzeństwo ma małą działalność za granicą, sprzedają jakieś tam swoje produkty - mniejsza. Pomyślałem, że skoro jestem programistą i pracuje w zawodzie jakiś rok czasu to przecież stworzenie sklepu internetowego który będzie obsługiwał 100-200 klientów - i nie mówię tutaj o liczbie wejść w jednym czasie tylko o liczbie powracających na stronę użytkowników - to stworzenie takiego sklepu ze stroną główną, filtrowaniem produktów i jakimś koszykiem to będzie pikuś. Do ręki notes, w drugiej już włączony długopis - ciach UML'e - przecież umiem! ciach architektura bazy danych - przecież to nie jest trudne! na czterech kartkach rozrysowane widoki - żaden Picasso ale zarys jest!
Tylko... jak tutaj zacząć pisać kod? Codziennie rano przychodzę do pracy, task na twarz i pcham story pointy. Odnajduję się w gotowym projekcie którego nie muszę konfigurować. Przecież widzę jak to robią lepsi, przecież mogę ewentualnie o coś spytać. Ale cholera! jak wyznaczyć sobie architekturę projektu żeby było dobrze? jak zacząć pisać projekt? przecież tyle tego robiłem na studiach! nie wiem... wracam do super komercyjnego projektu, tam moje miejsce...

Koniec żali,
tak sobie tylko pogadałem.
Miłego piątkowego wieczoru wszystkim! :)

0

eeeeeee, czyli nigdy nie pisałeś od zera normalnego projektu? O.o

0

naah, pewnie że pisałem! nic specjalnie wielkiego jakieś pierdoły żeby się nauczyć podstaw. ale tak żeby wypchnąć coś samemu na produkcje, żeby sobie istniało w świecie poza moim localhost - nigdy!

0

Wynieś projekt z pracy i przebuduj :P

Albo po prostu pisz i zaakceptuj fakt, że refactor jest nieodłączną częścią programowania i że walnięcie się z estymacją 5cio krotnie to nic dziwnego :D

naah, pewnie że pisałem! nic specjalnie wielkiego jakieś pierdoły żeby się nauczyć podstaw. ale tak żeby wypchnąć coś samemu na produkcje, żeby sobie istniało w świecie poza moim localhost - nigdy!

Kupujesz serwer(linóx), domene, stawiasz jakieś tam security, bazę, backupy, serwer http, wrzucasz appkę i niech się dzieje

i już masz "poza localhostem 101 for beginners"

1
WeiXiao napisał(a):

Wynieś projekt z pracy i przebuduj :P

Albo po prostu pisz i zaakceptuj fakt, że refactor jest nieodłączną częścią programowania i że walnięcie się z estymacją 5cio krotnie to nic dziwnego :D

ładną to my mamy tylko stronę logowania!:D z przeogromnym logiem firmy, które w tej aranżacji naprawdę może się podobać :D tylko że jak już się zalogujesz to im głębiej tym gorzej :D i z UIem i z wydajnością :D
Nie chcę być refactor- i bug-manem, cholera!

Kupujesz serwer(linóx), domene, stawiasz jakieś tam security, bazę, backupy, serwer http, wrzucasz appkę i niech się dzieje

i już masz "poza localhostem 101 for beginners"

Pewnie, że tak zrobię. jakiś tam serwer kupię, jakieś tam security zrobię, może backapów nie do końca - a bo bez przesady, niech się sypie jak ma się sypać - jakąś apkę napiszę i niech się dzieje jak to napisałeś!:D
a co się tutaj wyżaliłem to moje! :D

1

@an0ny:

:D Nie chcę być refactor- i bug-manem, cholera! dlaczego?

według mnie te rzeczy najwięcej uczą. Jeżeli coś napisałeś tak, że trzeba to zrefactorować, to nauczyłeś się czegoś nowego, masz jakąś nową perspektywę i świadomość problemów wynikających z danego podejścia.

Tak samo jeżeli chodzi o naprawianie bugów - można lepiej zrozumieć swoje narzędzia (frameworki), internale, itd.

0

no tak, źle się wyraziłem. przepraszam. chodziło mi o to, że przeraża mnie wizja stagnacji przy tym naprawianiu błedów.

swoją drogą wychodzę teraz na zwyczajną marudę i zrzędę. lubię to co robię, mam przesympatyczny zespół, świetne wzorce programistów do naśladowania i w sumie to nie mógłbym sobie wymarzyć lepszej pracy (chociaż gdybym złowił złotą rybkę to może poprosiłbym o trochę lepszy stack technologiczny:D)
musiałem się podzielić tym, że jestem dupa i w tej całej otoczce przyjemności, zabaw i kodowania od rana do później nocy - zapomniałem, że właściwie to na nic mi to wszystko skoro nie potrafię dowieźć produktu od początku do końca. to tak jakbym kroił marchewkę do rosołu nie wiedząc jak zrobić wywar. aj!

można lepiej zrozumieć swoje narzędzia (frameworki), internale, itd.

a właśnie. jak już tak sobie rozmawiamy. od kiedy podjąłem pierwszą pracę czułem taki niesmak, że bardziej się uczę rozwiązań które zostały zaimplementowane w naszym projekcie aniżeli języka czy frameworków. pewnie wyciągam z tego informacje - świadomie bądź nie - w jaki sposób problemy rozwiązują Ci mądrzejsi, sprytniejsi i bardziej doświadczeni ale - to głupie pytanie - ześwirowałem i to jest naturalna kolej rzeczy czy faktycznie coś nie gra?

0

Jak nie chcesz refactorowac to poczekaj jeszcze z 15 lat az nauczysz sie pisac takie rzeczy z reki.

1
an0ny napisał(a):

musiałem się podzielić tym, że jestem dupa i w tej całej otoczce przyjemności, zabaw i kodowania od rana do później nocy - zapomniałem, że właściwie to na nic mi to wszystko skoro nie potrafię dowieźć produktu od początku do końca. to tak jakbym kroił marchewkę do rosołu nie wiedząc jak zrobić wywar. aj!

Popatrz na to w ten sposób: mógłbyś być nawiedzonym artystą, co napisał od zera własne silniki CMS, forum itp bez używania żadnych zewnętrznych bibliotek i wielkiej kasy na tym nie zarobił.

0

@Freja Draco: eee? ja pisałem swoje silniki od zera i kompletnie nie żałuje tego okresu. Dzięki tej wiedzy dziś potrafię patrzeć na takie systemu od drugiej strony i czasem wywalić bibliotekę zastępując ją prostą klasą dając przyspieszenie systemowi.

1
mr_jaro napisał(a):

eeeeeee, czyli nigdy nie pisałeś od zera normalnego projektu? O.o
*normalny projekt: projekt który ma działać produkcyjnie a nie być tylko czymś do nauki lub na studia

Przez 6 lat zawodowej pracy nigdy nie pisałem normalnego projektu "od zera" - w każdej firmie dołączałem do już istniejącego projektu i zajmowałem się jego dalszym rozwojem. Większość decyzji okołoarchitektonicznych była już dawno podjęta, a przebudowywać cały system w ramach refaktoru biznes się nie zgodzi.

Poza pracą klepię swoje rzeczy i owszem, tam mam możliwość pobawić się w projektowanie aplikacji, ale zawodowo - jeszcze nie było okazji.

0

@Sensacyjny Sebastian: a czy gdzieś ja zawężałem to do projektów tylko w pracy? Wyłączyłem tylko z tej definicji małe projekty/skrypty typu test konkretnej rzeczy oraz rzeczy typowo uczelniane gdzie pisze się tak by zdać a nie tak by było jak powinno być.

1

Zacznijmy od tego, że rzadko kiedy programista w swojej karierze będzie miał okazję tworzyć duży projekt od podstaw.
Po pierwsze: do napisania jakiegokolwiek większego projektu trzeba czasu. Niech będzie apka w stylu nxlog: kilka miesięcy na kodowanie, kolejne kilka na testy i wsparcie przy wdrożeniu. Tak z rok zleci spokojnie. Wtedy firma chce zatrzymać autora programu albo chociaż mieć dobrą dokumentację, co też wymaga czasu, choć nie takiego jak samo pisania.
Po drugie: w większym projekcie jest większa szansa, że będzie trzeba zastosować jakieś specyficzne dla technologii czy systemu konstrukcje. Do tego może być wymaganie, żeby projekt działał sprawnie i nie łapał zadyszek. A do tego trzeba być ogarniętym i naczytać się dokumentacji, for (nie pętli, chodzi o fora dyskusyjne) itp.
Po trzecie: komunikacja. Taki człek musi umieć porozumieć się z architektem czy tam innym misiem, który powie jak ma wyglądać apka. Ucieczka z firmy po roku nie jest tu dobrym sposobem na komunikację.
Wniosek? Zaczynanie projektów lepiej zostawić komuś doświadczonemu albo chociaż bardzo ogarniętemu. Nie widzę tu możliwości, żeby sobie taki junior zaczynał projekt większy, niż firmowy komunikator. Ale przynajmniej takiemu ludkowi jest za co zapłacić 15k.

3

Mi się wydaję, że każdy etap rozwoju coś wnosi. Przeszedłem wszystkie etapy od klepania potworków w domu przez niekomercyjne robienie aplikacji do rozwiązywania komercyjnych problemów a teraz pracuję już z całkiem dużym kodem w zespołach.

Czasami muszę wracać do rzeczy, które pisałem +5 lat temu i łapię się za głowę jak to było strasznie napisane, z drugiej strony rozwiązywałem całkiem złożone problemy i te aplikację po tylu latach ciągle DZIAŁAJĄ i się sprawdzają na tyle, że nikt ich nie wymienia na nowe... Dłubanie samodzielne dało mi też ogólny "przegląd pola walki", bo oprócz samego programowania musiałem też być devopsem, architektem, a do tego często musiałem wdepnąć w jakąś kupę, bo nikt mi nie powiedział, odpowiednio wcześnie że "tak się nie robi".

Programowanie "zawodowe" też mi dało bardzo dużo, bo mogłem spojrzeć wstecz na to co robiłem źle i wyciągnąć wnioski. Spotkałem się z problemami jakich w swoich pierdółkach nie miałem. Często też taki typ programowania zmusza do wyjścia ze strefy komfortu, bo część technologii dostajesz na klatę i nie ma, że użyję X bo lepiej znam niż Y.

Ostatnio miałem okazję pracować z osobą, która zaraz po studiach trafiła do większej firmy i tak została tam wiele lat - miała dokładnie ten sam problem co autor tematu. Kompletny brak podstaw i wizji całości systemu + delegowanie rzeczy na których się nie zna do innych (bo zawsze jest ktoś kto się na czymś zna lepiej). Moim zdaniem wynika to z tego, że większe firmy/zespoły pozwalają pozostawać w strefie komfortu jeśli się nie chce brać odpowiedzialności. Zawsze znajdzie się jakiś lider i można bezpiecznie robić swoje, a jak jest problem to on/ona go rozwiąże.

Jak przeszedłem na programowanie zawodowe to też miałem taki etap, że bałem się brać trudniejsze zadania, czy aktywie proponować jakieś zmiany bo podświadomie bałem się, że wyjdę na osobę niekompetentną. Czułem, że co prawda w wielu rzeczach robię postępy, ale jednocześnie w innych się uwsteczniam. Potem jednak się z tego marazmu obudziłem i aktywnie zacząłem przejmować te "trudniejsze" zadania, aktywniej uczestniczyć w wytyczaniu drogi dla projektu itp.

Ogólnie więc moja rada - rób hobbystycznie coś swojego po godzinach / bierz drobne zlecenia na nietypowe rzeczy, a w pracy zastanów się, czy nie chowasz się za plecami innych zamiast brać więcej odpowiedzialności na siebie.

PS sam nie czuję się seniorem czy coś takiego, więc oczywiście mam też swoje granice bo jednak co innego to wyjść ze strefy komfortu a co innego zgrywać eksperta w rzeczach o których nie ma się pojęcia. W tych drugich też staram się uczestniczyć w dyskusjach, ale raczej na zasadzie zadawania głupich pytań.

0

Ostatnio miałem okazję pracować z osobą, która zaraz po studiach trafiła do większej firmy i tak została tam wiele lat - miała dokładnie ten sam problem co autor tematu. Kompletny brak podstaw i wizji całości systemu + delegowanie rzeczy na których się nie zna do innych (bo zawsze jest ktoś kto się na czymś zna lepiej).

Gdyby autorem tego tematu był ktoś inny a ja bym go po prostu czytał, odniósłbym wrażenie, że praca programisty jest dla tej osoby męcząca a robi to tylko dla pieniędzy albo dlatego, że to jest teraz modne. A tak wcale nie jest! Lubię robić to co robię, sprawia mi przyjemność proces tworzenia, łączenia klocków i dbania o kod. Tylko tak jak wspomniałeś: brakuje mi tego spojrzenia na ogół. Zmiana w kodzie, deploy wersji na serwer i cieszę się z tego, że coś działa - nie zastanawiałem się nigdy gdzie jest korzeń, gdzie jest ta cała konfiguracja i od czego to się tak naprawdę zaczyna. Jak wrzucić taki springowy projekt na serwer, żeby świat mógł go zobaczyć.

Jak przeszedłem na programowanie zawodowe to też miałem taki etap, że bałem się brać trudniejsze zadania, czy aktywie proponować jakieś zmiany bo podświadomie bałem się, że >wyjdę na osobę niekompetentną.

Jestem dokładnie na tym etapie. Nawet kiedy ktoś ma problem i wydaje mi się, że wiem jak go rozwiązać to siedzę cicho - boję się dodatkowego pytania, boję się że właściwie ten mój pomysł może nic nie dać i ktoś weźmie mnie za osobę która tylko zawraca głowę. To chyba jest już problem psychologiczny, jakaś fobia?

w pracy zastanów się, czy nie chowasz się za plecami innych zamiast brać więcej odpowiedzialności na siebie.

Obawiam się, że jesteśmy w projekcie na takim etapie gdzie dzielą nas tygodnie od wydania finalnej wersji dla klienta. Nie ma czasu żebym brał ticket ponad umiejętności. wszystko ma być ASAP! bardzo bym chciał wziąć coś większego, gdzie zajęłoby mi to więcej czasu natomiast więcej bym się też nauczył - a nie tylko bugi. :(

1

Wierz mi, że nie odniosłem wrażenia, że jesteś osobą, która pominęła się z powołaniem... Wręcz przeciwnie, samo to, że zakładasz taki temat świadczy o tym, że nie jesteś programistą z przypadku. Zresztą sam nie jestem osobą, która ma jakąś tam wiedzę/doświadczenie czy cokolwiek innego aby mogła oceniać innych programistów. Mimo, że piszę to w formie rad, to tak na prawdę są to moje prywatne przemyślenia w temacie.

To co przechodzisz jest jak najbardziej naturalne - po prostu zapewne masz taką osobowość, że boisz się opinii innych i strach przed błędem paraliżuje Cię tak bardzo, że wstrzymuje Cię przed rozwojem. Pamiętaj jednak, że wszyscy popełniają błędy i czasami mówią coś głupiego. Druga ważna sprawa, że większość ludzi lepiej czuje się, gdy ktoś nimi kieruje, zdejmuje z nich odpowiedzialność, dlatego warto to robić na skalę swoich możliwości. Członek zespołu, który jest aktywny zawsze będzie bardziej ceniony od tego, który jest zachowawczy i nie pomaga zespołowi w rozwiązywaniu trudnych problemów. Jeśli nie pracujesz w jakimś patologicznym środowisku to ludzie będą godzić się z Twoimi błędami w zamian za to, że starasz się być siłą napędową zespołu.

Im wcześniej zdasz sobie sprawę z tego, że problemem jest Twoje podejście tym lepiej dla Ciebie. Oczywiście końcówka projektu to nie jest najlepszy pomysł na "nowego ja", ale postaraj się zacząć od małych zmian, a z kopyta ruszyć już przy nowym projekcie.

Taki projekt jak pisałeś - czyli sklep dla kogoś z rodziny to bardzo dobre pole do nauki. Pewnie niektórzy będą się z tego śmiać, ale edukacyjnie da Ci to wiele więcej niż trzaskanie kolejnych tasków w korpo. Taka szeroka wiedza z podstawowych umiejętności to jest coś co punktuje przez całe życie. Dodatkowo nabędziesz też bardzo rzadką umiejętność u programistów - zrozumienie potrzeb biznesu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1