Czas potrzebny na rozpoczęcie kodowania w nowej firmie [zamknięte]

12

Jestem inżynierem oprogramowania od 4 lat i właśnie zmieniłem swoją firmę po raz pierwszy.

Firma pracuje z programowaniem par, a minęły 3 dni, nie mogłem nawet napisać ani jednej linii kodu. Jest to dla mnie bardzo frustrujące, ponieważ byłem bardzo produktywny w mojej poprzedniej firmie.

Baza kodów jest duża, używają 5-6 języków / narzędzi, których nie znam, takich jak rspec, haml, jaśmin i inne. Ale nadal czuję się okropnie.

W ten weekend stworzyłem UML, aby lepiej zrozumieć aplikację, ale wciąż sądzę, że nie będę w stanie napisać porządnej ilości kodu w tym tygodniu.

Czy to normalne?

Jakie masz wrażenia po zmianie pracy i zanurzeniu się w dużej bazie kodu napisanej z nieznanymi językami / bibliotekami.

Oczywiście nie pytam o dokładny wymagany czas, ale wcześniejsze doświadczenia lub rzeczy, aby proces ten był świetny.

Przy okazji, przeczytałem już poniższe pytania i odpowiedzi: Jak nurkujesz w dużych bazach kodu?

/programming/215076/whats-the-best-way-to-become-familiar-with-a-large-codebase

/programming/214605/the-best-way-to-familiarize-yourself-with-an-inherited-codebase

AKTUALIZACJA

Wszystkie świetne sugestie! Właśnie wróciłem z pracy, dużo pracowałem!

Informacje o programowaniu par:

Generalnie piszą kod, a ja staram się nie przegapić ani sekundy! Jeśli spróbuję napisać kod, wiem, że zajmie to wieczność, ponieważ nawet nie wiem, które pliki powinienem edytować, ale poza tym, jak powiedziałem, używają 6-7 języków / ram, których nie jestem zapoznanie się z tymi składniami i nauczenie się ich na raz nie jest łatwe.

Jak dobrze firma przygotowała się dla inżynierów:

Nie mogę powiedzieć, że są dobrze zorganizowani, oczekują ode mnie, że od razu zacznę pisać kod.

Robienie notatek, proaktywność:

Zawsze robię notatki, kiedy piszą nowe polecenie / lub cokolwiek na temat modeli danych. Moi rówieśnicy są bardzo inteligentnymi i życzliwymi ludźmi i staram się zadawać wiele pytań, a czasem nawet wiele głupich pytań .

Czy to jest powszechne ?:

@Telastyn, dzięki za odpowiedzi, poczułem się trochę lepiej. Wygląda na to, że mój problem nie jest tak rzadki, ale byłem naprawdę produktywny przed tą pracą, a teraz czuję się bezużyteczny i nie jestem mądry.

Mam nadzieję, że wkrótce zacznę rozwiązywać problemy / problemy z implementacją.

Informacje o frameworkach / językach, których używają:

Byłem naprawdę szczery, nie powiedziałem, że wiem coś, czego tak naprawdę nie wiem. Ale nie spodziewałem się tak wielu różnych rzeczy, a ponieważ zacząłem pracować w dniu, w którym przyjąłem ofertę, nie miałem czasu się przygotować.

Zając @Southpaw, dziękuję za podzielenie się swoimi doświadczeniami. Masz absolutną rację. Nie ma gwarancji, że nauczę się tych wszystkich rzeczy, ale staram się. Na koniec ciężko jest nauczyć się całej składni na raz i myślę, że to też jest główny problem. Ponieważ mogę dobrze poruszać się w kodzie Ruby, ponieważ znam ten język i nawiguję w kodzie js dzięki inspektorom przeglądarki, ale problemem jest pisanie rzeczywistych kodów za pomocą frameworków / języków, których nie znam.

Robert Johnson
źródło
Od kiedy wspomniałeś Jak nurkujesz w dużych bazach kodu? , jakie są tam odpowiedzi, które nie obejmują twojej sprawy?
komar
3
Ponieważ programujesz w parach, nie musisz pisać kodu, aby być produktywnym. Możesz być bardzo przydatny, obserwując, jak ktoś pisze kod. Wkrótce będziesz wiedział wystarczająco dużo, aby samemu zacząć pisać kod.
Kevin Cline,
@kevincline, jeśli paruje jako nowy programista, powinien być tym, który będzie przy klawiaturze, w przeciwnym razie byłby to dość zły zestaw par ...
Jimmy Hoffa
Jeśli tak właśnie robi firma, naprawdę nie masz wyboru. Upewnij się, że wiesz, czego oczekują od ciebie, kiedy nadejdzie czas. Zadawać pytania. Otrzymać odpowiedź. Możesz nie marnować dużo czasu, jeśli nie jesteś ostrożny.
JeffO
@JimmyHoffa, wiem, że to byłoby dla mnie lepsze, ale w takim przypadku bardzo spowolniłbym mojego rówieśnika. Ponieważ będę musiał zapytać o każdą składnię, rzeczywisty plik, który muszę edytować, model danych lub coś innego, to spowolni mojego peera.
Robert Johnson

Odpowiedzi:

10

Zależy to od złożoności systemu i tego, jak dobrze organizacja jest przygotowana na wprowadzenie nowych programistów. Może to zająć od 30 minut do wielu tygodni. Nie zawsze robisz coś źle i nie powinieneś się z tego powodu źle czuć.

Powinieneś jednak proaktywnie naprawiać to dla siebie i innych. Poinformuj swojego przełożonego o swoich frustracjach i pracuj razem, aby je przezwyciężyć i usprawnić proces rekrutacji nowych pracowników.

Napisz notatki o rzeczach, z którymi się zmagasz, opracuj burzę mózgów, aby je naprawić lub obejść, i udokumentuj swój proces. Informuj inne osoby, które mogą Ci pomóc, o postępach i zasięgaj pomocy. Prośba o pomoc nie ma nic wstydliwego.

Rein Henrichs
źródło
1
Wiele miesięcy nie jest rzadkością w przypadku złożonych, dużych (1 milion + SLOC), szczególnie jeśli domena jest również niszowa i / lub złożona.
mattnz
1
+1: Niektóre firmy mają mentorów przydzielonych do nowych pracowników bez względu na to, ile mają doświadczenia z tych właśnie powodów. Zawsze przyssam się do osoby siedzącej najbliżej mnie, która jest gotowa pomóc i zadaję TONIE pytań - a następnie otwarcie pomagam im, gdy pomagają, swojemu przełożonemu.
Steven Evers
@mattnz Yep. Wiele miesięcy to po prostu wiele wielu tygodni. ;)
Rein Henrichs
5

Czy to normalne?

Tak jest w przypadku większości baz kodowych. Do diabła, w mojej firmie spotykasz się z HR przez 2 dni, zanim możesz dotknąć komputera. To odstaje, ale zastanów się, ile czasu zajmuje przygotowanie środowiska programistycznego, niejasne zapoznanie się z domeną, strukturą kodu, normami zespołu ...

Jako lider zespołu oczekuję, że nie zrobisz nic efektywnego przez 1 (dwa tygodnie) sprint i będziesz pracował na poziomie ~ 50% przez następne 1-2 sprinty.

Telastyn
źródło
2

przechodzę na drugą skrajność. Pracowałem w firmie, która miała tylko 2-3 języki, ale zajęło to większą część roku, zanim programiści zostali wypuszczeni z bazy kodu, prawdopodobnie 1 lub 2 miesiące przed wydaniem pierwszego wiersza kod.

Nie bój się, jeśli byłeś szczery w wywiadzie na temat braku wiedzy na temat tych platform, wiedzieli, w co się pakują. Potrzeba czasu, a czasu nie można rozszerzyć, skrócić ani skompresować, po prostu upewnij się, że w pełni go wykorzystujesz.

Newtopian
źródło
1

To naprawdę zależy od wykonywanej pracy i roli, w której się znajdujesz.

Jeśli wykonujesz pracę na podstawie umowy, musisz dosłownie rzucić się na ziemię, wykorzystując wszystkie umiejętności, które masz do dyspozycji, aby wykonać pracę. Praca kontraktowa jest ogólnie dobrze zdefiniowana i (zazwyczaj) jesteś w stanie to zrobić, przynajmniej z mojego doświadczenia.

Z drugiej strony zacząłem od jednego miejsca, które miało ogromną bazę kodu starszego typu i ogromną krzywą uczenia się. Nie spodziewaliśmy się, że będziemy pisać kod produkcyjny przez pierwsze sześć miesięcy, kiedy tam byliśmy.

Bądź cierpliwy, przyswajaj jak najwięcej i wykorzystaj go, gdy zaczniesz kodować. Jeśli jesteś hospitalizowany lub śpiesz się, istnieje duża szansa, że ​​w tak dużym systemie możesz coś zepsuć, szczególnie jeśli ich zasięg testu nie jest genialny.

Sam
źródło
0

Trochę czasu jest absolutnie normalne, aby przyzwyczaić się do czegoś tak zupełnie nieznanego - nie obwiniałbym siebie ani nie czułbym się źle. Ważne jest jednak, aby zaakceptować możliwość, że ta praca może nie znajdować się w Twoim zestawie umiejętności. Niekoniecznie tak jest, warto po prostu zostawić tę możliwość otwartą w głowie.

Problemem może nie być rozmiar bazy kodu, ale fakt, że nie znasz języków. Z własnego doświadczenia miałem pracę w jednej firmie, w której nie znałem żadnego z języków używanych w dość obszernej bazie kodu. Niestety, nigdy nie byłem w stanie nauczyć się tego wystarczająco po około 5 miesiącach i zamiast tego poszedłem do innej firmy. Tam byłem biegły w podstawowym języku i pomimo porównywalnej wielkości bazy kodu, całkiem nieźle sobie poradziłem.

Jeśli chodzi o naukę nowych języków, ludzie zwykle myślą, że jest to łatwiejsze niż w rzeczywistości, i trzymają się wysokich standardów szybkiego ich uczenia się. Prawdopodobnie zajmie ci to więcej czasu, niż myślisz, że tak będzie, więc pamiętaj o tym bez względu na to, co zdecydujesz.

Zając Southpaw
źródło
2
Niektórzy uważają, że jest trudniej niż w rzeczywistości. Dość często sprowadza się do zaufania, a nie talentu.
ChaosPandion