Zastrzeżenie: Wyrażone opinie są wyłącznie moje i nie wyrażają poglądów ani opinii mojego pracodawcy.
Pracuję dla małej firmy, w której niewiele osób jest programistami, inni QA / Test, a 1 to Menedżer. Dołączyłem do tej firmy 1,5 roku temu. 3 starszych programistów ma ponad 8 lat doświadczenia.
Są to spostrzeżenia, które poczyniłem na temat prowadzenia zespołu. (uważanie mnie za świeższego z mniejszym doświadczeniem w porównaniu do nich we wszystkich aspektach)
- Nigdy nie dyskutują 1: 1 lub nigdy nie biorą pod uwagę sugestii młodszych (zgadzam się, że to zależy od nich, czy je przyjmą, czy nie, przynajmniej powinni rozważyć opinię).
- Jako starszy lider zespołu mogą próbować przebudować bazę kodów przy użyciu nowych technologii (w tym czynnik wdrażania nowych technologii jest możliwy, a także inny programista i infrastruktura również gotowi), ale liderzy zespołów czują się mniej pewnie pracując z nowymi technologiami, ponieważ nie są aktualne. (powód, który mówię, nie wiedzą, jaki jest obecny trend programistyczny, * (takie jak popularne projekty open source, takie jak modernizr, bootstrap i wiele innych).
- W naszej bazie kodu powtarza się ponad 10000 linii, więc im powiedziałem
DRY: Don't Repeat yourself
. Odpowiedzieli: „To fascynujący artykuł, ale nigdy nie działa w praktyce”. Właśnie powiedziałem im, że jeśli nie zrobimy tego w 100% SUCHYM, możemy przynajmniej użyć interfejsów, ale również tego nie wziąłem pod uwagę. * (interfejsy można dodać dla nowych funkcji, nie dotykając poprzedniej bazy kodu, jeśli nie są gotowe do refaktoryzacji) - Wszyscy starsi programiści wykonują konserwację i naprawy poprawek na gorąco. Resztę czasu spędzają na witrynach rozrywkowych. Chętnie kończą zadanie.
- Wprowadzenie nowej technologii jest złe? * (w tym współczynnik wykonalności można zrobić).
- Menedżer najmniej martwi się także o rzeczy, o których mówię.
- Junior oczekuje, że mogą nauczyć się wielu rzeczy od kierownictwa zespołu. * (nie prosząc o pomoc lub starszego kodowania dla nich).
Moje pytania to:
- Czy jestem zbyt agresywny w stosunku do proponowanych przeze mnie zmian?
- Czego mogę się spodziewać od starszych deweloperów, którzy mają ponad 8 lat doświadczenia?
- Czy mam rację, oczekując nauki i zdobywania doświadczenia w firmie?
Aktualizacja :
Dlaczego uważają, że DRY jest niepraktyczne: ponieważ nie chcą angażować się w koncepcje OOP. Są zadowoleni z powtarzania zadań.
Nowe technologie, które proponuję:
- Zastosowanie minimalizacji obrazów CSS, JS, SPrite
- Wykorzystanie interfejsów i .NET Framework 4, generics i wielu innych.
- Biblioteki po stronie klienta, takie jak modernizr, knockout js, bootstrap dla responsive,
self-improvement
teamwork
junior-programmer
team-leader
Ravi Gadag
źródło
źródło
Odpowiedzi:
Bez konkretów (jakie nowe technologie proponujesz, dlaczego je odrzucają, gdzie uważają, że DRY jest niepraktyczny i dlaczego itp.), Trudno jest ocenić wartość merytoryczną twoich propozycji i jest to ważne dla twojej agresywności. Jeśli chcesz, aby korzystali z nowego frameworka, ponieważ uważasz, że jest on nowy i fajny, to naciskanie bardziej niż lekko jest zbyt agresywne. Jeśli naprawdę wbijają tysiące linii kopiuj / wklej do bazy kodu (tj. Piszą bzdury), powiedziałbym, że większa agresywność jest uzasadniona.
Ale to zależy również od dynamiki interpersonalnej między tobą a nimi. Radzę zadać sobie pytanie „czy mogę wykazać, że moje sugestie przyniosą korzyść firmie?” Jeśli odpowiedź brzmi „tak”, to powiedziałbym, że masz licencję do wypchnięcia.
To uruchomi gamut. Czasami spotkasz naprawdę ostrych ludzi, od których możesz się wiele nauczyć, zarówno pod względem nawigacji w biurze, jak i względów technicznych. Niestety, dostajesz również dużo tego . Nie brakuje osób, których ponad 8-letnie doświadczenie w zasadzie sprowadza się do zrobienia absolutnego minimum, aby się nie zwolnić. Jeśli znajdziesz mentora lub kogoś, kto jest naprawdę bystry, trzymaj się tego, jak możesz, ponieważ jest to mniej powszechne niż powinno być.
Ludzie, z których można się uczyć, są tam i są w niektórych firmach. Wydaje się, że masz do czynienia z powszechnym dylematem, a parafrazując facetów z .NET Rocks, warto rozważyć: „Zmień swoją firmę ... lub zmień swoją firmę”.
Oznacza to, że jeśli wierzysz w niektóre podstawowe podejścia i zasady i konsekwentnie nie jesteś w stanie ich sprzedawać oraz zyskać swobodę robienia i uczenia się rzeczy, które chcesz robić i się uczyć, warto rozważyć poszukiwanie firmy, która byłaby lepsza pasuje do ciebie.
źródło
Napiszę to z mojej perspektywy jako Starszy programista (lub wstawię inny fantazyjny tytuł, który ci się tu podoba), który często współpracuje z programistami Junior.
Prawdopodobnie jest to niedobór zarówno z przodu, jak i frontu Senior Developers.
Jedną rzeczą, której wielu programistów Junior nie rozumie, jest to, że (jako junior) naciskasz na stosowanie nowych technologii, nowych sposobów robienia rzeczy, informując zespół, że robią to źle itp. - Seniorzy w zespół zgłasza się do kierownictwa przy dostawie i jest nakłaniany przez kierownictwo do dostarczania nowych rzeczy tak szybko, jak to możliwe, aby firma mogła zarobić jak najwięcej pieniędzy (lub zapewnić najlepsze wyniki dla klienta / klienta).
Czasami wypróbowane i sprawdzone sposoby dostarczania po prostu przewyższają ryzyko wdrożenia [wstaw tutaj fajną technologię] . Napięte terminy, zbyt dużo pracy i obciążenie ciężarówką do uruchomienia oznacza, że sposób, w jaki robiliśmy to od ponad 8 lat, jest tym, co robimy tym razem.
Musisz być w stanie wykazać zespołowi, że to, co proponujesz, na pewno przyniesie im korzyść na dłuższą metę. W przeciwnym razie nie otrzymasz wpisu od współpracowników i nie będą oni w stanie sprzedać go zespołowi zarządzającemu, aby uzyskać zgodę na jego uruchomienie.
Być może nie znając wszystkich okoliczności. Samo powiedzenie ludziom, że A jest lepsze niż B, więc powinniśmy używać A, nie ma większego znaczenia. Musisz iść i zrobić coś, aby pokazać, dlaczego tak jest lepiej. Nie musi to być duży, nawet mały komponent lub aplikacja, która pokazuje, że sugerowany sposób działania powinien być więcej niż wystarczający. Następnie musisz go przedstawić i być gotowym na przeciwstawienie się krytyce ze strony zespołu.
Nawet jako starszy programista muszę to zrobić, zanim będę w stanie przekonać moich kolegów, że nowy sposób robienia rzeczy jest lepszy.
Jak powiedzieli inni, ponad 8 lat doświadczenia niekoniecznie oznacza, że jesteś fantastyczny. Ale ogólnie rzecz biorąc, powinieneś być w stanie wiele się nauczyć od kogoś, kto był w pobliżu pułapek; możesz też być w stanie ich czegoś nauczyć.
Ludzie to ludzie i każdy ma ego (niektóre większe od innych) i nie ma nic gorszego niż nowy facet, który przychodzi i mówi ci, że źle wykonywałeś swoją pracę przez ostatnie 8 lat. Jednocześnie starszy programista (dobry) powinien być w stanie podjąć konstruktywną krytykę i wyartykułować powody swoich decyzji.
Nieużywanie najnowszych i najlepszych technologii i funkcji nie oznacza, że nie uczysz się i nie zdobywasz doświadczenia w swojej firmie. Doświadczenie jest doświadczeniem, czasem znajomość starego sposobu robienia czegoś może dać ci lepsze zrozumienie, dlaczego nowy sposób jest lepszy. Pomaga to również pokazać, dlaczego nowy sposób jest lepszy, ponieważ rozumiesz oba i możesz wypowiedzieć bardziej przekonujący argument, gdy próbujesz go sprzedać. Osobiście nie używam najnowszych i najlepszych rzeczy, w których obecnie pracuję - ale wciąż uczę się nowych rzeczy każdego dnia i nadal wygląda dobrze na moim CV.
Powiedziawszy to wszystko - jeśli firma naprawdę nie jest dobrze dopasowana, a wszystko inne zawiedzie, możesz poszukać nowego miejsca do pracy.
źródło
Potraktuj to jako ogromną szansę.
Promocje często nie pochodzą (i nie powinny) od liczby lat spędzonych w firmie. Masz naprawdę dobre pomysły, a Twoi przełożeni / koledzy nie chcą słuchać.
Oto strategia:
I nie chcę
profit
być jakimś niejasnym krokiem „wygrywam”. Krok 4 polega na uzyskaniu jednego lub wszystkich następujących elementów:Albo ze swoją firmą, albo nową, która może docenić twoje talenty i niesamowite wskaźniki, które masz w swoim CV.
Nazywam to „byciem niesamowitym” - i działa .
Anegdota: Nie jestem konsekwentnie wspaniały, ale staram się być i wykonałem kroki podane 5 razy (2 promocje, 3 nowe prace; wszystkie ze znacznym wzrostem wynagrodzeń).
Mając to na uwadze, prawdopodobnie powinienem bezpośrednio odpowiedzieć na twoje pytania:
Czy zrobiłeś już coś niesamowitego z danymi i przykładami tego, jak to jest niesamowite? Jest takie stare powiedzenie (może tandetne) ...
Ideas are like assholes; everyone's got one, and they all stink
Zrób coś.
Poważnie? Nie powinieneś oczekiwać niczego. Ale spróbuj nauczyć się wszystkiego, co wiedzą. Zadawaj pytania, prywatnie przeglądaj ich prace, słuchaj, kiedy rozmawiają i krytycznie myśl o tym, co mówią. Są doświadczeniem w pudełku ... Eee ... Ciało. Spróbuj je otworzyć i uczyć się. Mój najlepszy przyjaciel jest genialnym programistą i aktywnie mówię mu, że zawsze staram się od niego uczyć jak najwięcej.
Absolutnie nie. To nie znaczy, że nie możesz się uczyć, czego nie robić. Ludzie popełniają błędy, uczą się na błędach Twojej i Twojej firmy.
źródło
Myślę, że musisz być kreatywny. Zacznij pytać o jakieś prośby o dodatkowe projekty, które twoi seniorzy odkładają. Pracując nad czymś niezależnie (lub jeszcze lepiej, poproś o to kolejnego młodszego programistę) i od samego początku możesz zastosować wiele nowych rzeczy. Nie zdziw się, jeśli się dowiesz, że to nie wszystko na lepsze.
Innym podejściem byłoby utworzenie własnej gałęzi kodu i przejście przez proces refaktoryzacji. Może nigdy nie wejdę do produkcji na podstawie tego, co powiedziałeś, ale przynajmniej poprawisz swój zestaw umiejętności.
Kto wie, może zobaczyć, w jaki sposób możesz ułatwić wszystkim pracę, i wykorzystają prawdziwe lenistwo w programowaniu.
Jeśli wszystko inne zawiedzie, umieść nowy zestaw umiejętności w swoim CV i zacznij szukać innej pracy.
źródło
Jeśli ktoś pracuje jako programista przez ponad 8 lat, to nie znaczy, że jest dobrym programistą. Co, moim zdaniem, sprawia, że dobry programista jest programistą? Chodzi o dzielenie się nie tylko doświadczeniami, ale także o uczenie się nowych myśli, technik, technologii itp. Będzie się ciągle poprawiać i ulepszać. Wielu tak zwanych „starszych” programistów jest ułożonych w stare wzorce programowania funkcyjnego z dawno minionych języków. Coś w rodzaju nowych koncepcji i pomysłów nie jest po prostu dla nich, ponieważ ich nie potrzebują. Dostali swoje „doświadczenie”.
Wola doskonalenia się i uczenia się jest o wiele ważniejsza niż lata doświadczeń. Młodszy programista, który chce się uczyć, jest znacznie lepszy dla każdej firmy niż stary „starszy” programista, który już „wszystko wie”.
źródło
Czy pracujesz w mojej firmie?
Ale poważnie, wydaje się, że jest to dość powszechny wątek w wielu dużych firmach. Zmiana jest trudna i DROGA. Czasami tak naprawdę nie wiesz ile, dopóki nie będziesz w środku i nie będzie za późno, aby wrócić.
Na przykład moja firma wciąż migruje z ekranów komputerów mainframe opartych na kobolu do java. Trudno jest sprzedać kogoś na Spring lub JSF, kiedy nadal starają się dostosować jego technologię do standardów sprzed dziesięciu lat. Więc powiem wam, co zrobiłem, co odniosło pewien ograniczony sukces (ja też jestem jr dev). Bądź przykładem. Nie wystarczy, że znasz się na swojej najnowocześniejszej technologii, musisz to udowodnić. Kiedy wszyscy wygłupią się, przynieś książkę do przeczytania, jeśli masz przestoje. I spraw, aby jedna z tych technologii była zainteresowana wdrożeniem. Jeśli widzą, że czytasz to podczas oglądania youtube (szczerze zdziwiłeś, że twoja jednostka operacyjna tego nie łapie i ludzie zostają zwolnieni), będą bardziej skłonni nie tylko uwierzyć, że wiesz, o czym mówisz, ale może nawet zapytać, o co mówisz czytanie.
Jako przykład opowiem o moim doświadczeniu z moim starszym architektem. Sprytny facet, ale generalnie nie zainteresowany nowymi technologiami. Poszedłem i zapytałem go, jak zrobić coś w CVS (nasza kontrola wersji) i wspomniałem: „Och, przyzwyczaiłem się do korzystania z subversion, a robią to w ten sposób. Dzięki za pomoc”. Doprowadziło to do kilku rozmów na temat CVS i Anta vs. SVN i Mavena, co doprowadziło do tego, że pożyczył kilka książek z mojej biblioteki, aby to sprawdzić. Wynik końcowy: w tym roku przeprowadzimy się do nowych systemów. Kluczem do sukcesu jest bycie otwartym i pomocnym bez informowania, że robią to źle. Bo przecież może istnieć wiele lepszych sposobów, ale jeśli działa poprawnie, to nie robią tego w niewłaściwy sposób. Każdy rodzaj braku szacunku w większości przypadków wyląduje w gorącej wodzie, więc uważaj na to.
Jeśli po prostu nie są otwarci, pamiętaj, że jesteś na wielkim polu, na które jest duże zapotrzebowanie. Jeśli twój dociekliwy i szybki uczeń ZNAJDZIESZ inną pracę, prawdopodobnie taką, która spodoba ci się o wiele więcej. Co jest dla mnie tak samo ważne jak pieniądze. Pamiętaj, aby wspomnieć w każdym wywiadzie: „Och, używacie technologii xxx? To niesamowite, zawsze chciałem z niej korzystać i próbowałem w mojej starej firmie”. Ludzie kochają, kiedy masz entuzjazm do tego, co robią.
źródło
Myślę, że masz rację w swojej agresywności. To wielka przyjemność pracować z ludźmi z pasją i wielka kara za pracę z umarłymi umysłowo. 8 lat doświadczenia nic nie znaczy. Oczywiście możesz nie mieć racji. Często nowe technologie są ściśle związane z marketingiem i nie zawsze są lepsze. Ale jeśli nie masz racji, seniorzy powinni wyjaśnić ci, gdzie się mylicie. W przeciwnym razie nie uzyskasz żadnych korzyści z pracy. Może jesteś młody i gorący. Jeśli tak, to twoja zaleta. Nie marnuj czasu na pracę, w której nie możesz się rozwijać. Troska o znalezienie nowej pracy, w której możesz omówić swoje rozwiązania i uzyskać opinie od innych.
źródło