Wśród programistów obserwuję ciągłą morderczą rywalizację: o to kto napisze lepsze narzędzie, o to kto napisze nowsze narzędzie (bo społeczność starego, często lepszego, jest już obsadzona i nie można tam zostać gwiazdą), o to kto opracuje (w sensie poznania, albo stworzenia) nową, lepszą technologię.
Z zawodowego punktu widzenia to jałowa intelektualna rozrywka. Nie osiągnie się w ten sposób awansu pionowego w strukturze firmy, nie zostanie się udziałowcem czy nawet managerem. Osiągnąć można „awans poziomy” coraz węższa specjalizacja, umiarkowanie coraz większe pieniądze, coraz większa odpowiedzialność i obciążenie. Dopóki jedna iteracja technologii nie zostanie zastąpiona przez następną, wówczas taki człowiek stanie się opiekunem wymierających systemów, dopóki one będą.
Nie kupi się tą drogą willi w Konstancinie, Ferrari, czy małego, cichego pensjonatu w Prowansji.
Jak to, zakrzyknie ktoś, przecież celem życia programisty jest programowanie!
Dla pracodawcy nie jest to prawda. Dla pracodawcy celem pracownika jest dostarczenie produktu, który przyniesie dochód. Jak to będzie wykonane to szczegóły nie wychodzące poza dział technologii.
Jeśli jest to prawda dla człowieka, to bardzo szybko się wypali.
A biznesowo, systemy pisze się w tym albo w tamtym, i nie ma wielkiego znaczenia co jest bardziej eleganckie, czy do pewnego stopnia, wydajne. Liczy się to, co ma niższy próg wejścia. Wtedy na rynku jest więcej programistów danej platformy, można dostać więcej umiejętności za mniejsze pieniądze. Dowód? Dwa najważniejsze w Polsce projekty Social Web są napisane w szeroko pogardzanym PHP.
Obserwuję na blipie, najczęściej nastolatków, dla których nauczenie się programowania jest celem samym w sobie. Trochę to przerażające, ciśnie się na usta palahniukowskie „nie jesteś swoim językiem programowania”.
Największą szkodę Pythonowi wyrządził Paul Graham.
Wydaje mi sie przede wszystkim, ze doszlismy juz do stanu „Starszego kodera Maliniaka”, czyli sytuacji, gdy programista stanowi doskonale wymienny element.
Mijaja czasy heroiczne, gdy programista sam sobie byl sterem, zeglarzem i okretem, a na jego barkach spoczywal los stworzenia calej aplikacji.
Placi sie takiemu grosze, bo coraz czesciej jedynym jego zadaniem jest przelozenie na klasy/moduly tego, co mu analityk z architektem wymyslili.
Artyzm tez jest tepiony, bo znacznie bardziej istotna jest umiejetnosc wspoldzialania z innymi i prostota kodu, ktory ktos bedzie musial rozwijac i utrzymywac (wg zaslyszanej anegdotki programiste, ktory zna kolejnosc operatorow w danym jezyku nalezy zwolnic, a zatrudnic takiego, co wszedzie wsadza nawiasy).
Znajomosc jakiegos archaicznego jezyka czy sytemu ma swoje zalety — pozwala czesto bytowac w charakterze swietej krowy, ktora jako jedyna zna meandry i mroki prehistorii i potrafi cos naprawic.
Programiści w sensie tych co ryją kod? Tak, zgoda. Programiści w sensie tych co projektują złożony system, a potem go razem z espołem przekuwają na $$$ dla firmy? Nie znikaj ich, fajnie się z nimi pracuje :)
Ale rozumiem że jestem anomalią w przestrzeni firm rzeczywistych.
@yacoob
To co nazywasz progeamistą to w „normalnej firmie” to jest architekt, koduje, projektuje, pozostali (kilka — kilkanaście osób na jednego architekta) to po prostu wykonawcy jego wizji.
Ale nawet „architekt” nie przekłada się na pozycję w firmie czy w świecie.
Ja się od 10 lat zastanawiam, czemu w końcu ludzie w IT nie zaczną zakładać związków zawodowych.
@alex:
Sam miałem styczność z 2 podejściami do „bycia programistą” w firmie.
Jedno było takie jak opisujesz(długo-istniejąca firma z własnymi dziwnościami IT) — zakładam sweterek, wybieram swój kącik, włączam 15calowy crt i siedzę zaraz obok lodowni (serwerowni) 8 godzin. Za normalną stawkę wklepuję kod jaki żywnie mi się podoba w coraz to nowych wariacjach (och, przecież select ma tyle możliwości użycia WHERE, JOINY, a to PHP:). Nie potrafiąc się znudzić, wyklepałem trochę systemów które jedyne co robiły to mutowały zwracane stringi z htmlem. Z perspektywy czasu może wydawać się to śmieszne że ludzie mają ubaw z takimi rzeczami. Duża część (strzelałem kiedyś że 95%) projektów webowych opiera się na schematach w bazach danych i losowym języku do wybierania danych (php+sql, python+sql itd). Udawało się odnaleźć w tym „fun” — taki dla samego siebie (przyspieszenie aplikacji itd). Dla pracodawcy te malutkie zwycięstwa nie miały znaczenia — dopóki nie pogarszały stanu aplikacji :)
Potem spróbowałem trochę innego podejścia do tego samego problemu — programisty w małym startupie(grafik, koder html, szef i ja). Był to dla mnie spory szok — nagle ta sama praca zaczęła smakować „zupełnie inaczej”. Z jednej strony w zakresie obowiązków nadal miałem klepanie kodu/utrzymywanie systemu. Ale spadło na mnie trochę innych obowiązków — utrzymywanie kontaktów z klientami, pilnowanie samego siebie i jednocześnie całego zespołu, samodzielne wybieranie technologii (paradoksalnie — stałem się bardziej ostrożny w nowinkach). Chyba nie muszę mówić jak to odmienia programistę introwertyka :) Zmieniła się perspektywa którą patrzę na projekt. Z własnego, małego poletka musiałem spojrzeć na projekt bardziej kompleksowo obejmując o wiele więcej aspektów (które kiedyś nie miały dla mnie znaczenia). To taka hybryda architekta/project-managera/. Człowiek z tekstu „celem życia jest programowanie” przechodzi w „celem życia jest rozwiązywanie problemów” a programowanie jest tylko jednym z narzędzi. Od tego momentu zaczynasz myśleć o biznesie i milionie przed trzydziestką ;)
Wydaje mi się że nie ma co dramatyzować z tą młodzieżą — wielu moich rówieśników zaczynało od programowania dla programowania a kończyło na PMowaniu ;) Z tego się wyrasta.
Tak, zgoda, architekt. Na pozycję w świecie się nie przekłada, w firmie już tak. Zakładając że mówimy o firmach eng, a nie o takim, ja wiem? IBMie który utrzymuje Exchange dla innych. Myślę że fakt że pozycji „w świecie” nie osiągniesz jest dosyć dobrze znany i ludzie są tego świadomi (a jeżeli nie są — śmierć frajerom).
Co do sławy w środowisku — to jest różnie. Nie oczekuj fanboizmu i zachowań rodem z fandomu Lady Gagi wśród informatyków. Nie muszę pamiętać jak nazywa się autor silnika regexpowego w Perlu by wyrażać podziw. Jeżeli teraz dobry programista wpakuje energię *tylko* w projekt opensource to… cóż. To będzie miał to, co sobie nawarzy. Czyli niewiele.
A związki? Pewnie zaczną. IMO „IT” jakie masz na myśli jest jeszcze po prostu za młode, płace za wysokie a warunki pracy zbyt dobre. Więc po co się wysilać…?
@yaco
Co to znaczy „tylko” w projekt open source?
Na warszawskim CONFidence był Mike Kershaw, autor dość podstawowego narzędzia w jednej dziedzinie (kismet). Pomiędzy prelekcjami snuł się samotnie. Nikt nie podszedł zamienić słowa, postawić piwa, czy powiedzieć proste „dziękuję”. Ja też nie.
O tym jest ten post który linkowałem.
A w zasadzie czemu nie podszedłeś?
@Valvit
Bezpośrednio, bo nie moja działka, nie siedzę w wirelessach i ostatni raz Kismeta używałem ładnych kilka lat temu. Po prostu zarejestrowałem „o, Kershaw od Kismeta, nice”, i poszedłem dalej.
A szerzej, to tak jak Zed napisał: mam ten kawałek kolesia, który jest użyteczny, kontakt z człowiekiem mi niepotrzebny.
„kontakt z człowiekiem mi niepotrzebny”
socjopata
@tatamaxa http://quiston.tpsa.com/blog/index.php/archives/464
@Alex
auć
@alex, mam na myśli że:
1/ szukanie „chwały i uznania” za pomocą działania w IT to ogólnie kiepski pomysł;
2/ poświęcenie całej swojej energii na projekt opensource, to gwarantowana „chwała” w bardzo zamkniętym środowisku;
3/ owe środowisko, to (nie bójmy się tego słowa) nerdy, które nie podejdą i po pleckach nie poklepią.
Wpakowanie energii w projekt komercyjny może zaowocować punktami uznania „na zewnątrz” — o ile projekt się uda a inwestujący będzie w odpowiednim miejscu. Analogicznie, publikacja odnośnie nowej metody kompresji też pewnie przyniesie trochę sławy na zewnątrz.
Z ciekawości: uważasz że ta „sława” wygląda lepiej w przypadku innych profesji technicznych? Słynni budowniczowie mostów, projektanci łodzi podwodnych, czy chociażby biolodzy?
„Z ciekawości: uważasz że ta “sława wygląda lepiej w przypadku innych profesji technicznych? Słynni budowniczowie mostów, projektanci łodzi podwodnych, czy chociażby biolodzy?„
te wszystkie inne profesje są o wiele bardziej zespołowe. Masz małą szansę będąc skrajnym introwertykiem zyskać szerszą sławę. Bo ona jest dla szefów zespołów które coś robią
[…] Alex, 8. czerwca roku pańskiego 2023 ← […]
@ziembor
Nauka jest owszem, zespołowa, ale każda publikacja ma znanych autorów i publicznie wiadomo, że pan Doe współautorzył artykuly o X i Y i książkę o Z, więc zna się conajmniej na X i Z. I to juź jest coś.
I jak szukasz kontraktu na postdoca to nikt ci nie każe za każdym razem rozwiązywać równania Schroedingera rozwinięciem na funkcje kuliste Greena (fizyków proszę o niekrzyczenie). Nie ma odpowiednika tego co Zed Shaw opisuje, że facet co napisal Mongrela musi za każdym razem udowodnić, że umie programować.
W dodatku umiejętności w IT dewaluują się przeraźliwie szybko.
@yacoob
@1 zgadzam się
@2 zawsze jakaś chwała, ale prawnicy od kontraktów korporacyjnych czy kardiochirurdzy to też są małe środowiska
@3 z własnego doświadczenia powiem tylko że na ubernerdowskich przecież konferencjach fizyków jest dużo bardziej „społecznie” niż na takim CONFidence
Nie każą rozwiązywać równania Schroedingera bo to rozwiązanie nieszczególnie się zmienia pewnie.
A jak się przesłuchuje programistę, to nie wiadomo od razu jak gościu policzy dajmy na to ciąg Fibonacciego (na przykład na pałę ze wzoru), albo jak będzie sortował (weź ten vector…), a przebijanie się przez kod jest jak koszenie trawy wiadomo czym. Po tym, jak na rozmowie gościu dostaje krótkie zadanko widać co i jak i czy może być tym którego chce się zatrudnić.
@jakub
Tak, w przypadku koderów z ulicy ale:
* w cytowanym poście autorem nie jest koleś z ulicy tylko facet, który napisał coś dużego (tu: Mongrela), facet który napisał Mongrela raczej (&sarkazm) umie programować;
* znajomość metody na sumowanie ciągu Fibonacciego ma się nijak do dostarczania na termin, umiejętności współpracy z zespołem czy pisania kodu, który łatwo przejmie ktoś inny;
* metoda na optymalne sumowanie ciągu Fibonacciego to się jakoś mocno zmienia? Nie zauważyłem.
Spotkałem się kilka razy (z obu końców lufy niestety), z podejściem że część rozmowy kwalifikacyjnej służy raczej do ustalania nie co się umie, tylko who is the butch, and who is the bitch.
Jak dla mnie sedno tkwi w tej anegdotce z operatorami i nawiasami, tylko trochę z innej perspektywy. Tzn. jest płaczliwa historyjka kolesia, któremu się wydaje, że go zwolnili za to, że znał priorytety operatorów, a chodzi o to, że zwolnili go za to, że mu się wydawało, że znajomość tego zwalnia go z wstawiania nawiasów.
To, że ten cały Zed napisał jakiś opensourcowy programik nie oznacza, że nie jest typem programisty, który nie wstawia nawiasów. I to między innymi może sprawdzać zadanie na napisanie kodu liczącego ciąg Fibonacciego.
Co zaś do Mongrela, z bloga przeczytałem, że kolesiowi się wydaje, że jest sławny. Ja nigdy dotąd (aż nie przeczytałem wpisu z odnośnika) nie słyszałem ani o nim, ani o Mongrelu. Nie jest to, owszem, dokładnie moja działka, ale jednak zajmuję się zawodowo tworzeniem oprogramowania od kilku lat i znam nazwę więcej niż jednego serwera http. Najwyraźniej Zedowi, i tobie, Alex, wydaje się, że Mongrel jest słynnym programem i że fakt napisania go świadczy o tym, że Zed jest świetnym programistą, ale np. mnie, a co za tym idzie zapewne równiez wielu potencjalnym ludziom przeprowadzającym z nim rozmowy o pracę, mówi to tylko tyle, że napisał jakiś program, który działa.
Co do „normalnej firmy” w której jest jeden architekt na kilkunastu doskonale wymienialnych programistów, to osobiście się z taką „normalną firmą” nie spotkałem. Zawsze wyglądało to tak, że wymiana programisty jest bolesna. I wcale nie dlatego, że jest geniuszem, co rozwiąże problemy, których nikt inny nie rozwiąże, ale po prostu zna kod, który napisał i utrzymuje i jest w stanie w dwie minuty udzielić odpowiedzi, której uzyskanie z reverse engineering zajęłoby godziny lub nawet dni. I w tym mam dosyć świeżą praktykę na trzech frontach, tzn. z jednej strony udzielam takich odpowiedzi, z drugiej strony chodzę z takimi pytaniami, a z trzeciej pracowałem nie tak dawno nad przerabianiem kodu, którego autor „już tu nie pracuje”.
I owszem, być może, a nawet prawie na pewno istnieją firmy, w których jest to mniejszy problem, bo istnieje obszerna i szczegółowa dokumentacja wszystkiego, bo wiedza jest porządnie rozproszona po zespole, bo wszystko jest starannie peer reviewowane itd. Ale nie jestem przekonany, że jest to sytuacja „normalna”.
Ale też nie spotkałem się z sytuacją, żeby firma, w której pracuję, zwolniła programistę.
I właśnie sobie też pomyślałem, że taka odmienność perspektywy mojej od wielu piszących tutaj wynika w dużej mierze z tego, że nigdy nie pracowałem w dotcomie.
http://www.wulffmorgenthaler.com/strip.aspx?id=602d649c-2b07-4679-8c9b-a70d663e6548
Tak trafiłem i mi się skojarzyło.