fbpx
devstyle.pl - Blog dla każdego programisty
devstyle.pl - Blog dla każdego programisty
7 minut

Zawód – programista. Doświadczenie.


27.01.2009

Ile razy widzieliście ofertę pracy “poszukiwany starszy programista wymagane X lat doświadczenia w technologii Y”? Mniej ważne co naprawdę reprezentujesz, mniej ważne co umiesz. Ważne ile lat pracowałeś na jakimś stanowisku, z jakąś technologią. JAK to robiłeś? A co tam, C# to C#, ASP.NET to ASP.NET.
Aha, pamiętaj – liczy się tylko doświadczenie PO SKOŃCZENIU STUDIÓW. Każdy przecież wie, że pracujący student nie zdobywa doświadczenia, tylko robi wszystko na odwal żeby mieć kasę na chlanie.

Ale ja nie o tym. Z każdym kolejnym odcinkiem serii skupiam się przede wszystkim na nas, programistach, a nie ludziach po drugiej stronie barykady.

Tak więc od początku…

Jak odpowiedziałbyś na pytanie “ile masz lat doświadczenia w tym co robisz?” ? Jeśli myślisz, że nie jest to tak proste jak odjęcie daty rozpoczęcia pierwszej pracy od daty aktualnej – dobrze myślisz. Jeśli myślisz odwrotnie – źle myślisz (). Czym tak naprawdę jest “doświadczenie zawodowe”? Moim zdaniem to trochę bardziej skomplikowana kwestia.

Spróbuję zarysować (zapewne przesadzając) dwie postawy. Który z tych programistów miałby większe szanse na zdobycie pracy ze wspomnianego ogłoszenia?

I – MEGA DOŚWIADCZONY; PRZECIEŻ ROBIĘ TO SAMO PRZEZ X LAT W TAKI SAM SPOSÓB I DZIAŁA. TO MOJA RUTYNA.

“Jestem programistą C#. To znaczy, że programuję w C#. Nie oczekuj ode mnie nie wiadomo czego. Skończyłem studia kilka lat temu. Coś tam umiałem. Załapałem się w firmie, nauczyłem się robić to czego ode mnie oczekiwali. Robiłem, robiłem, awansowałem. Przecież to nic trudnego – każdy kolejny projekt wygląda tak samo. W końcu po to w Windowsie zrobili ctrl+c/ctrl+v żeby nie musieć się zbytnio wysilać skoro gdzieś wcześniej już coś podobnego mam. Działa, więc kopiuję i wykorzystuję w kolejnym miejscu. Przecież tyle się mówi ‘code reuse’. Jeśli nie do końca działa – część wykomentuję (może przyda się kiedyś?) i pozmieniam tak żeby działało. Nie lubię wracać do raz napisanego kodu bo już następnego dnia nie bardzo go rozumiem. Ale czasami coś się psuje i trzeba wrócić. Wtedy komentuję i zmieniam dalej.
Czasami spotykam ludzi, którzy ciągle uczą się nowych rzeczy. Po co? Przecież umiem już to co mi potrzeba. Dlaczego mam robić inaczej to, co robię teraz, skoro działa?
A nowe narzędzia? Jakieś wyskakujące okienka, kolorki, dziesiątki skrótów klawiaturowych. Bez przesady, nie wiem co oni w tym widzą. Nie płacą mi za uczenie się jakichś dziwactw, tylko za programowanie. A to robię od lat i jestem w tym dobry. Gdyby było inaczej nadal byłbym juniorem, czyż nie?”

II – MNIEJ DOŚWIADCZONY; NIE ROBIĘ CIĄGLE WSZYSTKIEGO TAK SAMO. NIEUSTANNIE SZUKAM LEPSZEGO SPOSOBU.

“Jestem programistą. Zdaję sobie sprawę, jaką odpowiedzialność to na mnie nakłada. Tworzenie coraz lepszego oprogramowania wymaga, abym i ja był coraz lepszy. Aby mój kod był coraz lepszy. Raz napisany, działający w danych okolicznościach, kawałek kodu nie jest świętością i rozwiązaniem uniwersalnym. Na pewno można to zaimplementować lepiej – i zrobię to rozwiązując podobny problem następnym razem, wykorzystując zdobyte teraz doświadczenie.
Wiem, że setki ludzi pracują nad rozwiązaniami mającymi ułatwić mi pracę. Dlatego też inwestuję swój czas w zaznajomienie się z nimi, bo prawie na pewno zwróci mi się to. Choćby z szacunku do własnej pracy, do klienta, do pracodawcy, nawet jeśli z ich strony wygląda to na marnotrawstwo.
Nie zamykam się na rozwiązania inne niż moje własne – tyle jest różnych dróg, różnych uzasadnień, różnych podejść! Nie sposób opanować ich wszystkich, ale na pewno z każdego da się zaczerpnąć coś wartościowego.
Najważniejsze jednak, że zawsze krytycznie patrzę na to co zrobiłem. Zauważanie własnych potknięć, szukanie lepszych sposobów, znajdowanie luk we wcześniejszym własnym rozumowaniu… czyż nie stąd czerpie się najcenniejsze doświadczenie?”


Podejrzewam, że ogromna większość czytelników zalicza się do grupy “rozwojowej”. Jak jednak myślicie, ilu programistów W OGÓLE można do niej zaliczyć? Moim zdaniem niestety niewielu. Przez “niewielu” nie rozumiem 1%, ale każda liczba poniżej 100% to w tym przypadku “niewielu”.
Dlaczego tylu “z nas” uważa koniec studiów za koniec edukacji? Od lekarzy, nauczycieli czy mechaników wymagamy, by byli wciąż na bieżąco ze swoimi kompetencjami. Ale to jest także NASZ obowiązek! Bezmyślnie wykonując rzemieślniczą pracę, zamykając się na rozwój i ignorując nowe technologie, bierzemy na siebie odpowiedzialność za marną jakość wytwarzanego oprogramowania. Oczywiście, nikt nam za to nawet palcem nie pogrozi. Dzisiaj samo zrozumienie pojęcia “klasa” na drugim roku studiów wystarczy do znalezienia dobrze płatnej pracy. Ale czy to jest usprawiedliwienie dla zostania na tym poziomie?

Drogi leniu, wyobraź sobie prawnika, który reprezentując cię powołuje się na prawo sprzed 10 lat. Niemiło? Uświadom sobie, że jesteś takim właśnie prawnikiem.

Wydaje mi się, że w świecie .NET kluczowym “zwrotem” oddzielającym jednych od drugich była premiera C# 3.0. Ilu programistów rozumie jak działają wyrażenia lambda? Ba, ilu chociaż umie je wydajnie zastosować w odpowiedniej sytuacji? Ilu z entuzjazmem ogarnęło LINQ, aby ohydny kod złożonych pętli “foreach” zastąpić czytelnym, zwięzłym zapytaniem? Ech…
A od kiedy są one dostępne? Jeśli dobrze liczę, to od DWÓCH lat!
(w tym konkretnym przypadku dodatkowym warunkiem jest oczywiście “przyzwolenie” z góry na używanie VisualStudio 2008… betonu na stanowiskach kierowniczych i największy zapał nie rozkruszy)


Pozostaje pytanie: co zrobić, aby ten współczynnik wzrósł? Po czyjej stronie leży odpowiedzialność i wina za aktualny stan rzeczy?
Czy to uczelnie źle uczą? Czy to pracodawcy za mało wymagają? Czy to w końcu pełna samouwielbienia mentalność informatyka? “Jestem na tyle zajebisty że więcej umieć nie muszę. Przecież piszę i działa”.
A może jednak jest inaczej i to ja mam mylne pojęcie?


Na koniec megamądry cytat z Ayende Rahien:

“Yes, experience matters. No, one year repeated fifteen times does not count.”

Ciężko o bardziej trafne podsumowanie. Zatem… do roboty…


UPDATE: w odpowiedzi na część komentarzy zamieściłem drugi post o podobnej tematyce (w skrócie: nie chodzi mi głównie o nowe technologie); link.

Nie przegap kolejnych postów!

Dołącz do ponad 9000 programistów w devstyle newsletter!

Tym samym wyrażasz zgodę na otrzymanie informacji marketingowych z devstyle.pl (doh...). Powered by ConvertKit
Notify of
dario-g

“(w tym konkretnym przypadku dodatkowym warunkiem jest oczywiście “przyzwolenie” z góry na używanie VisualStudio 2008… betonu na stanowiskach kierowniczych i największy zapał nie rozkruszy)”
hmm… ;)

Gutek

Procent :) Fajny tekst jednak trzeba zwrocic uwage iz podanie LINQ nie jest dobrym przykladem ;) poczulem sie nim urazony ;) Ale serio, nie mozna sledzic wszystkiego. Dobrze jest miec pojecie co jest nowego nie koniecznie trzeba byc w tym super dobry. Patrzac aktualnie na to co sie dzieje na rynku IT taki biedny student moze sie zalamac, zas pracownik firmy w ktorej ma projekt strzelic w leb. Nadazyc jest super ciezko i coraz czesciej ludzie patrza co to za technologia i do czego ona moze sie przydac. I jezeli znajduja zapotrzebowanie na wykorzystanie tej technologii to ja wykorzystaja. Jezeli… Read more »

Kola
Kola

Świetny post. Skąd ja to znam ;)
Chciałem od razu powiedzieć że motyw ze studentami jest powszechny ale są też wyjątki ;)
Niestety tak jak piszesz nie wszyscy czują potrzebę rozwijania się itp. Ale wydaje mi się że to się niedługo skończy. Klienci są coraz bardziej wymagający, żądają coraz częściej żeby aplikacja nie tylko działała ale też wyglądała. To zmusi tych programistów którzy zakończyli edukacje na .NET 2.0 to szybkiej nauki .NET 3,5, a może wtedy już będziemy rozmawiać o .NET 4.0

Procent

@Gutek: Wiem, że nie tak łatwo cię urazić:). A LINQ… jakiś przykład podać musiałem, a rozszerzenia C# 3.0 najbardziej mi tu pasują. Zgadzam się ze wszystkim co napisałeś: poznanie WSZYSTKIEGO nie tylko jest niemożlwe, ale nie ma też sensu. Sam bardzo chętnie nauczyłbym się na przykład WPF, ale aktualnie absolutnie nie mam takiej potrzeby i nie mam na to czasu. O wymaganiach zleceniodacwy/firmy i innych uwarunkowaniach też pisałem: że w tym przypadku musi być MOŻLIWOŚĆ wykorzystania tychże nowszych technologii, inaczej w ogóle nie ma o czym gadać. A HR i doświadczenie przez nich wymagane… tutaj byłeś moją bezpośrednią inspiracją, programisto… Read more »

Procent

@Kola:
O studentach – to było ironicznie, ja doskonale sobie zdaję sprawę jak to jest naprawdę;).
A wygląd aplikacji… w WinFormsach też można zrobić niesamowite rzeczy, w końcu przed WPFem też mieliśy do czynienia z ładnymi aplikacjami.
Ale zgadzam się, że większe wymagania ze strony pracodawców mogłyby opisany przeze mnie stan rzeczy zmienić. Tylko że nie bardzo wierzę w ów wzrost wymagań, w końcu zapotrzebowanie na programistów jest cały czas ogromne.

JJ
JJ

heh… przykładowych dwóch programistów to wybrałeś niezłych :) Totalnie z dwóch przeciwległych końców (wręcz tendencyjnie :D).
Rozwój niestety jest bardzo związany z tym co się robi w pracy. Szczerze nie wierzę, że miałoby się coś zmienić w kwestii wymuszania na programistach stałego rozwoju. Wręcz myślę, że będzie on postępował jeszcze wolniej. W końcu technologie są coraz bardziej stabilne, elastyczne, pełne. No ale zobaczymy. Tak czy siak dobry tekst.

ziembor

1. rozwój  zawodowy programisty to nie tylko rozwój w zakresie stosowanych technologii ale też wzrost wiedzy dziedzinowej (i stopniowo przechodzenie z pozycji kodera do architekta, analityka, mentora młodych). 2. jakoś wśród nowinkarzy obserwuję paniczną wręcz niechęć – zrozumiałą – do konserwacji starego kodu. takiego pisanego jeszcze w C++, i rozwijanego od fafnastu lat (ale ja pisze z punktu widzenia utrzymaniowca/ wdrożeniowca/ administratora  w firmie ze sporym działem Custom Development Software).  I dlatego doceniam tych (większość w sumie) którzy są gotowi być pośrodku tych skrajności o których piszesz: III nie robiących wszystkiego tak samo, ale potrafiących wykorzystać tę samą technologię przez… Read more »

Procent

@JJ, ziembor: W całym tym tekście nie chodzi mi o szaleńczą pogoń za najnowszymi technologiami, bo wszyscy wiemy że to jest niemożliwe. Jednak praca ze starą technologią nie powinna powstrzymywać nas przed spoglądaniem na dane rozwiązania pod nowymi kątami, na szukanie możliwości ulepszenia istniejącego kodu i naszego sposobu jego pisania. Tak jak wspomniałem, programowanie nie powinno odbywać się przez kopiuj/wklej. Nie powinno się uważać “ok, tyle z mojego rozwoju, jestem najlepszy, szluss”. Praca nad własnymi umiejętnościami, a nie konkretnymi technologiami – tego moim zdaniem brakuje w szczególności. —- Co do LINQ zaś to chodziło mi o czystą technologię jako taką,… Read more »

nuwanda

To ja też dorzucę swoje trzy grosze. Ja bym na to spojrzał w oderwaniu od technologii a bardziej skupił się na dobrych praktykach. Jak dużo właśnie w Sieci mówi się o najnowszych frameworkach, bibliotekach itd. a jak mało o podstawach, które się za tym wszystkim kryją. Bardziej od poznania danej technologii ciekawi mnie jak to pod spodem działa i jakie problemy rozwiązuje. Wracając do dobrych praktyk chciałbym wspomnieć o ruchu ‘Agile’. Parafrazując to co napisałeś o pierwszej grupie programistów można powiedzieć: “Nauczyłem się wyklikiwać eventy i całą moją logikę implementuję w nich, nawet jeżeli składa się na nią >1000 lini… Read more »

asdf
asdf

% – wniosek – programista po x latach pracy powinien przechodzić jako wsparcie do działu HR :)
nuwanda – wzorców jest bardzo dużo. Trudno się w tym wszystkim od razu zacząć płynnie poruszać – tym bardziej, że prawdopodobnie spora część młodych programistów trafia do bardzo małych firm gdzie często nie ma z kogo brać wzorca ; )
Może Twój komentarz zaowocuje jakimś wsparciem w tym obszarze na blogach ?

johnny
johnny

Myśle że bardzo ciekawy temat wybrałeś na dyskusje! Zgadzam się z Tobą, że trzeba podnosić własne kwalifikacje i szukać nowych rozwiązań, ale jeżeli masz własny biznes i musisz płacić pracownikom oraz wywiązywać się z kontraktów to nie zawsze szukanie lepszego rozwiązania jest opłacalne. Tym bardziej, że klienta nie interesuje czy uzyjesz linq czy foreach. Pozatym każde nowe rozwiązanie musi zostać sprawdzone, a nie zawsze da się przewidzieć wszystkie przypadki, w których mogą pojawić sie problemy. Więc jeżeli masz kod, który działa i możesz go sprzedać to dlaczego tego nie zrobić? W biznesie liczy się efekt! Uważam, że trzeba być innowacyjnym,… Read more »

johnny
johnny

Jeszcze coś chciałem dopisac w temacie :p Co do kwestii rozwoju to wiele zalezy od podejścia. Są ludzie, którzy za żadne skarby nie chcą szukać nowych rozwiązań, są tez tacy, którzy najchętniej poznawali by tylko nowe technologie zamiast implementaować je w konkretnych zastosowaniach. Są tez oczywiście ludzie znajdujący się po środku, którzy nie boja się nowych wyzwań, ale też potrafią zrealizować dany cel w wyznaczonym terminie. Kolejna kwestia to czasami nie da się stosować nowych rozwiązań. Kiedys pracowałem w firmie, w której mieli duży soft napisany w VB6 :p i był wdrożony u kilkuset klientów. WIęc jak tu użyc np.:… Read more »

Procent

Dzięki za komentarze, faktycznie można na ten temat pisać i pisać. Dlatego też postaram się niedługo wrzucić drugi tekst traktujący o tym samym, w którym odniosę się do komentarzy i naprostuję niektóre kwestie.
A tekst o wynagrodzeniach/docenianiu – jest na liście pomyslow na odcinek “Zawód – programista”, ale z róznych względów raczej nieprędko się pojawi.

Gutek

To tak apropo “doswiadzczenia”
http://microsoftjobsblog.com/blog/how-much-experience-makes-me-an-experienced-candidate/
:)
tak by przytoczyc zdanie:
An experienced candidate is anyone with one or more years of experience and is not currently enrolled in a full-time university program.
Milego czytania :)
Gutek

Eniac
Eniac

Myślę, że większość programistów chciałaby uczyć się i pracować w nowych technologiach. Dodatkowo ludziom biznesu też nie bardzo to przeszkadza (zresztą zazwyczaj pojęcia nie mają o co chodzi). Zasady są dwie… program ma działać  i ma działać lepiej lub tak samo jak konkurencji. Przetłumacz panu X z warsztatu Y, że jego Windows 98 to już jest za stary na twój program napisany pod .NET 3.0+. Człowiek mało się zastanawiając nad sensownością twojej wypowiedzi zakupi/dostanie program konkurencji który działa w miarę przyzwoicie na Win98 (przynajmniej teoretycznie). Problemem jaki spowalnia rozwój programistów jest docelowy masowy odbiorca, szczególnie biznesowy który często nie chce… Read more »

Kostrzak
Kostrzak

Wielkie dzieki za kolejny post z mojej ulubionej blogowej serii. Zeby jednak nie ograniczac sie do jednego zdania ,to dopisze czego oczekuje :) Twój wpis zaczyna się od zdania: “Ile razy widzieliście ofertę pracy “poszukiwany starszy programista wymagane X lat doświadczenia w technologii Y”?” Ja wlasnie jestem taki szarym studentem (2 rok) i programuje dopiero rok w .NET-cie (dosc intensywnie) i mimo ,ze nie szukam za bardzo pracy ,to obawiam sie ze masa takich ogloszen tylko ostudzi moj zapal. Wiadomo ze pierwsza drogą do zdobycia pracy jest dobre, trafne i rowniez prawdziwe CV. Licze ze masz w planach rowniez o… Read more »

Procent

@Eniac:
O moim stosunku do nowych technologii w tym kontekście napisałem w kolejnym poście. Tutaj jak widzę faktycznie przedstawiłem nie do końca taki obraz, jak zamierzałem.
@Kostrzak:
Dzięki, miło;).
CV, szukanie pracy itd też jest w planach, dobrze widzieć jak sugestie czytelników pokrywają się z moimi zamierzeniami.
Jesli jestes zainteresowany to na mojej stronie jest dostępne moje cv, zgodne z moimi ‘przemysleniami’ na ten temat.

arturstan
arturstan

Trudno wskazać zawód w którym, tak wiele trzeba się uczyć. Warto sobie uświadomić, że nadal pracują (i to jako koderzy) ludzie, którzy zaczynali od dziurkowania kart i policzyć ile technologi ‘łyknęli’ w czasie sowjego życia. Kolejna sprawa, to cały czas są potrzebni ludzie do utrzymywania ‘starych’ technologi. Dzisiaj trudno znaleźć wymiataczy VB6 nie mówiąc o COBOL-u. W zawodzie lekarza chyba nie potrzeba specjalistów od medycyny, które ‘obowiązywała’ kilka wieków temu. Zgadzam się z Johnym, że klienta, ale i sprzedawcę, naszych poracodawców itd., mało interesuje linq. Produkt ma spełniać specyfikację. Zresztą niektórzy koderzy mają problem z ukończeniem funkcjonalności, bo od strony… Read more »

Kostrzak
Kostrzak

@arturstan – nie wiem czy temat Rozmów Kwalifikacyjnych nie jest nawet ważniejszy od CV. Z drugiej strony nie ma tutaj co czarować ,albo ktoś coś umie albo za mało. Jeśli chodzi o projekty to też nie wiem czy dołączać je do CV ,do ilu sie ograniczyc, czy poswiecic wiecej czasu na 1 wiekszy ,który moglby być kartą przetargową? Jeszcze tak z ciekawosci spytam czy to ,że długo szukaliscie było spowodawne odrzuceniem większości CV czy odrzuceniu kandydatów po rozmowach kwalifikacyjnych. Może już o konkretne pytania nie będe pytał ,ale czy to prawda ze na takie rozmowy przychodzi dosc sporo calkowicie zielonych… Read more »

arturstan
arturstan

@Kostrzak – niektórzy wysyłają cv hurtem (znam jave i  administruję siecią, to wysyłam na c#), niektórzy są wszystkowiedzący (znam bardzo dobrze: i tu 10 języków programowania + wymienienie każdego skrótu 2,3,4 literowego, jaki kiedykolwiek pojawił się w szerokich obszarach IT). No i są tacy, co piszą cv pod ofertę pracy i mają coś do zaoferowania. Tacy mają szanse na rozmowę. Drudno powiedzieć, że 1 i drugą grupę się odrzuca, sami odpadają. Nie chcę zdradzać tajników rozmów kwalifikacyjnych od kuchni, bo każda firma ma swoje podejście i swoje sztuczki. Ale sporo jest cv lepszych od kandytata :) Doradzałbym opis kilku projektów,… Read more »

Michał
Michał

W kwestii rozmów kwalifikacyjnych: kiedy zaczynałem szukać pracy po studiach umieściłem swoje ważniejsze projekty w internecie. Każdy projekt miał opis, kilka zdjęć ekranu. Wyszła z tego prosta stronka (dziś można wykorzystać nawet jakiś darmowy blog do tego). Był to wtedy duży atut, ponieważ pracodawca mógł zobaczyć w jakim kierunku mogę się mniej więcej rozwijać, czy mam talent do pisania softu itp. Polecam ten sposób zamiast rozpisywania się w CV na temat swoich projektów.

Simon says...

Większość z Was pewnie wie doskonale co oznaczają trzy słowa w tytule. Pozostałych odsyłam tutaj . Prawie

Paweł Ryznar

“Aha, pamiętaj – liczy się tylko doświadczenie PO SKOŃCZENIU STUDIÓW. Każdy przecież wie, że pracujący student nie zdobywa doświadczenia, tylko robi wszystko na odwal żeby mieć kasę na chlanie.”
a to ciekawa teoria. hmm, chyba rzucę moją pracę, szkoda oczu i karku jeśli jedynym celem tego co robię zdobycie kasy na chlanie ;]

Szkolenie z testów

Facebook

Książka

Zobacz również