Czego powinienem oczekiwać od mojej pierwszej pracy programistycznej? [Zamknięte]

37

Właśnie zostałem zatrudniony do mojej pierwszej pracy programistycznej! Mam 25 lat i używam Javy naukowo od 6 lat.

Teraz, kiedy zostałem zatrudniony, denerwuję się, że moje umiejętności nie będą zgodne z oczekiwaniami pracodawcy. Obawiam się, że zostanę przydzielony do projektu i muszę zadać wiele pytań, które moi współpracownicy uznają za amatorów.

Czy to racjonalny strach? Jakie były twoje pierwsze doświadczenia związane z programowaniem? Czego powinienem się spodziewać? Jakiej rady mógłbyś mi udzielić?

Dzięki.

Ben B.
źródło
16
Nie martw się Większość pracodawców rozumie, że przejście ze środowiska akademickiego do przemysłu jest ogromną krzywą. Byłbym zmartwiony, gdybyś nie zadawał wielu pytań.
Pemdas
Moim zdaniem najlepsze, co możesz zrobić, to zapytać! W przypadku problemu szybkie pytanie jest bardziej wydajne niż marnowanie godzin podczas próby znalezienia rozwiązania. Na początku możesz zadać trochę więcej, ale po pewnym czasie z pewnością będziesz w stanie odpowiedzieć na pytania „bardziej doświadczonych” kolegów. Nikt nic nie wie i żaden pracodawca nie powinien tego oczekiwać. Zdrowa komunikacja jest ważna dla firmy.
johannes

Odpowiedzi:

57

Jest zbyt wiele rzeczy, których nie można się nauczyć na studiach . Istnieje również wiele rzeczy specyficznych dla firmy . W obu przypadkach masz wybór:

  • albo poprosisz kolegów o wyjaśnienia,
  • lub nie pytasz o nic nikogo i ryzykujesz popełnieniem błędu.

Jeśli zatrudnię kogoś, kto nie ma doświadczenia zawodowego, nie miałbym nic przeciwko, gdyby zadawała mnóstwo pytań przez pierwsze tygodnie lub miesiące. Z drugiej strony, jeśli boi się prosić o pomoc i marnuje godziny na rozwiązywanie problemu, który inny programista może rozwiązać w ciągu kilku sekund, lub popełnia głupie błędy, których łatwo mógłby uniknąć ktoś bardziej otwarty na komunikację z rówieśnikami, znacznie bardziej mnie to niepokoi.

Nie unikaj pytań. Jest to dobry sposób zarówno na naukę rzeczy, jak i kontakty towarzyskie z ludźmi, z którymi będziesz pracować. Ale:

  • Nie zadawaj pytań, aby je zadać.
  • Pamiętaj, że inni ludzie mają swoją pracę do wykonania i własne terminy. Mają inne rzeczy do roboty niż spędzanie czasu pomagając ci w każdym zadaniu.
  • Nie oczekuj, że inni wykonują twoją pracę (tak jak nigdy nie jest mile widziane, aby przepełnienie stosu wykonało twoją pracę).
  • Pamiętaj, że jeśli przeszkadzasz programistom, traci ona dziesięć lub więcej minut na ponowne skoncentrowanie się. Więc nie zadawaj pytań, jeśli w ciągu kilku sekund znajdziesz odpowiedź.

Przykład złych pytań:

  • „Hej, chcę utworzyć tablicę taką jak {1, 2, 3, ... n-1, n} w PHP. Czy możesz mi pomóc?” Tutaj po prostu pokazujesz, że nie tylko nie wiesz, jak korzystać z dokumentacji PHP, ale nawet nie zastanawiasz się przez chwilę nad wyszukiwaniem w Google lub myśleniem. Jest ok, jeśli nie wiesz o rangemetodzie w PHP. Nie jest ok, jeśli nie możesz sam go znaleźć.

  • „Próbuję wdrożyć wtyczki, ale nie wiem, jaki jest CAS w .NET Framework. Czy możesz mi wyjaśnić, co to jest?” Tak, łatwiej jest poprosić o wyjaśnienie, ale co najpierw szukać w Google „CAS .NET Framework 4.0”?

  • „Dlaczego zmuszasz mnie do korzystania z kontroli wersji? Zawsze pracowałem bez niej i nie rozumiem, dlaczego miałbym jej teraz potrzebować”. Cóż, twoi koledzy nie muszą wyjaśniać, dlaczego musisz go używać. Po pierwsze, jest to wytyczne Twojej firmy. Nie jesteś tu, aby dyktować, jak pracować. Po drugie, na stronach internetowych SE jest mnóstwo książek, artykułów na blogu i odpowiedzi wyjaśniających, dlaczego wszyscy muszą korzystać z kontroli wersji. Musisz tylko wyszukać.

Przykłady pytań, które są mile widziane:

  • „Chcę zatwierdzić zmiany w kontroli wersji, ale pojawia się dziwny komunikat o błędzie. Mówi: [...]. Może wiesz, co to jest?” Możliwe, że Twój kolega widział tę wiadomość już kilkadziesiąt razy, więc możesz o to zapytać.

  • „Czytam stronę 9 wymagań dla tego projektu, część 4.2.1, ale nie jestem pewien: czy to dla mnie, czy dla administratora bazy danych to zrobić?” Lepiej zapytać, niż spędzić trzy dni na pracy, którą już wykonał dba.

  • „Muszę wdrożyć wtyczki, ale po przeczytaniu tego i tego nadal nie rozumiem, co to jest piaskownica i jak to jest związane z bezpieczeństwem. Czy możesz mi to wyjaśnić później, kiedy będziesz wolny?” Szukałeś Podjąłeś wysiłek. Nie zrozumiałeś Można nie rozumieć wszystkiego i lepiej poprosić o wyjaśnienie, niż spędzić weekend na jego poszukiwaniu.

Arseni Mourzenko
źródło
18
Chciałbym zauważyć, że jeśli firma nie użyłaby kontroli wersji, 99,9% z nas poparłoby próbę „dyktowania sposobu pracy” i uzyskania kontroli źródła.
whatsisname
Dlaczego zmuszasz mnie do korzystania z kontroli wersji? Zawsze pracowałem bez niej i nie rozumiem, dlaczego miałbym jej teraz potrzebować ”. Odpowiedź: „Ok, masz rację. Pracuj bez niego przez kilka miesięcy, na naszej dużej, rozległej bazie kodów, podczas gdy wszyscy inni go używają, a potem o tym porozmawiamy”. Ten problem prawdopodobnie sam się rozwiąże.
joshin4colours
1
Nie zadawaj pytań, aby je zadać - uzgodnione. Ale zadawaj pytania, aby poszerzyć swoją wiedzę. Jeśli tego nie zrobisz, nie próbujesz się uczyć.
konfigurator
Są to naprawdę dobre kryteria, ale dodam również, że niektóre rzeczy, o które nie warto pytać w ciągu dnia roboczego, mogą być całkowicie akceptowalne w przypadku lunchu (jeśli kultura firmy jest taka, że ​​ludzie jedzą razem i nie mają nic przeciwko dyskutowaniu o pracy ). Zapobiega to dodatkowej zmianie kontekstu w odpowiedzi na pytanie.
autofag
22

„Jedynym głupim pytaniem jest to, które pozostaje niezadane”.

^ Poważnie. Zapamietaj to.

Jeśli jesteś naukowcem od 6 lat, zakładam (i mam nadzieję ), że dobrze znasz podstawowe koncepcje inżynieryjne. O ile nie znajdziesz się w złej sytuacji ze strasznym pracodawcą, powinni oni być świadomi, że będąc świeżo po szkole w swojej pierwszej pracy, będziesz mieć przed sobą krzywą uczenia się i oczekujesz, że popełnisz błędy po drodze .

Gdyby twoje umiejętności nie pasowały do ​​tego, czego szukał pracodawca, nie zatrudniłby cię. Jeśli cię zatrudnili, mimo że twoje umiejętności nie pasują do tego, czego szukają, najprawdopodobniej i tak nie chcesz tam pracować.

Im więcej pytań zadajesz, tym szybciej przyzwyczaisz się do nowego środowiska pracy. To powiedziawszy, ogólnie rzecz biorąc, inżynierowie nie lubią ciągłego podsłuchiwania, ponieważ zajmuje im to około 15 minut, zanim powrócą. Więc może pomyślałbym o tym, aby umieścić wszystkie istotne pytania w wiadomości e-mail i wysłać je komuś „znającemu” na koniec dnia.

Niektóre firmy łączą cię z mentorem, niektóre nie.

Demian Brecht
źródło
+1, martwiąc się, czy twój współpracownik uzna, że ​​pytanie jest głupie, czy nie kosztuje czasu, który można by poświęcić na zadanie pytania i wdrożenie.
Nicholas Smith
+1, ale jedna mała uwaga na temat części dopasowującej umiejętności. Czasami pracodawca zatrudni osobę na poziomie podstawowym bez istniejących umiejętności, która wykazuje duży potencjał do zdobycia tych umiejętności poprzez szkolenie. W obu przypadkach rozwiązaniem problemu jest zadawanie pytań.
Joel Etherton,
8

Przestań się tak martwić. Pierwszego dnia nikt nie jest światowej klasy.

Jaka jest nazwa?
źródło
8

Pierwszą pracą programistyczną było przejęcie strony internetowej napisanej w językach, których nawet nie znałem. Byłem jedynym programistą i nie miałem nikogo, kogo mógłbym poprosić o pomoc. Byłem bardzo przestraszony, że nie wytrzymam długo (gdyby nie fora, prawdopodobnie bym tego nie zrobił). Co więc zrobiłem? Zadałem mnóstwo pytań na forach. Mnóstwo. Czułem się, jakbym zadawał tak wiele „amatorskich” pytań, że uczyniłem z mojego awatara „Jestem głupi” (wciąż tam jest… gdzieś).

Chodzi mi o to, że strach jest naturalny, ale przejdziecie go i zadacie wiele amatorskich pytań. To najlepszy sposób na naukę. Przynajmniej w moim przypadku tak było i nadal jest.

Również, gdy uczestniczyłem w szkoleniu z zakresu IT w wojsku, krótko omawiali każdą koncepcję i stwierdzili, że „nauczysz się swojej pracy na pierwszym stanowisku dyżurnym… to po prostu dlatego, że znasz się na tym, co się dzieje”.

JD Isaacks
źródło
2

Jeśli zadajesz głupie pytania, ale zadajesz tylko raz, rówieśnicy cię nie nienawidzą. Ale jeśli nigdy się nie nauczysz, każą szefowi cię zwolnić.

Twoja sich jest poza twoją kontrolą. Albo będziecie z dobrymi ludźmi, którzy będą chcieli, abyście odnieśli sukces, albo będziecie ze złem, którzy będą chcieli, abyście upadli.

Staraj się nie denerwować i po prostu rób, co możesz. I włóż dużo dodatkowej pracy w naukę języka i aplikacji firmowych.

oregon111
źródło
1

Moje pierwsze zadanie programistyczne dotyczyło języka i frameworka / platformy, których nigdy wcześniej nie dotykałem (Visual C ++ / MFC, a ja uczyłem się języka C na Uniksie z odrobiną Java).

Morał anegdoty: gdy nie masz doświadczenia handlowego, pierwszy pracodawca, który cię zatrudnia, zwykle postrzega cię jako czystą kartę. Patrząc wstecz teraz, nawet gdybym został zatrudniony do roli C na Unixie, 95% + krzywej uczenia się na początku tej pierwszej pracy byłoby o wiele więcej o miękkich umiejętnościach, kontroli źródła, polityce biurowej / zarządzaniu i innych tego typu rzeczy, do których doświadczenie akademickie nie jest w stanie naprawdę cię przygotować. Jeśli chodzi o stronę techniczną, zwykle oczekują, że będziesz bardzo chwiejny na nogach przez pierwszy miesiąc lub dwa - szok systemu od samych nietechnicznych rzeczy wystarczy odciągnąć uwagę. Wiedzą o tym, więc prawdopodobnie nie oczekują wiele.

MainMa ma dobrą radę : po prostu staraj się nie zawracać głowy pytaniami, które są łatwe dla Google, i które powinny pochodzić z terytorium dla kogoś z 6-letnim doświadczeniem akademickim. Dobrą zasadą jest, że ogólna wiedza na temat programowania powinna być najpierw zbadana przed zapytaniem, podczas gdy wewnętrzna wiedza dotycząca konkretnej firmy / domeny jest o wiele bezpieczniejsza po minimalnym kopaniu.

Stoły Bobby'ego
źródło
1

Jestem również absolwentem college'u i od około roku profesjonalnie rozwijam oprogramowanie. Boisz się dokładnie tych samych rzeczy, których się obawiałem, więc nie jesteś sam. Czuję, że zapoznałem się z tym, co tu opisujesz. Najlepsza rada, jaką mogę ci dać, to:

  1. Otocz się ludźmi mądrzejszymi od ciebie i gotowymi na mentora. Bądź tak uprzejmy, jak to możliwe, czytaj ludziom i wymyślaj swoje sojusze. Nie wszyscy będą otwarci, aby ci pomóc, ale łatwo zorientujesz się, kim są „właściwi ludzie” i ci, z którymi będziesz chciał się zaprzyjaźnić.
  2. Zadawaj pytania tak często, jak to możliwe, jeśli uważasz, że Google nie może odpowiedzieć.
  3. Zdaj sobie sprawę, że jest wielu, którzy od dawna nie chodzili do szkoły, i prawdopodobnie postrzegają cię jako świeżego umysłu. Nie bój się wypuszczać pomysłów i nie bój się nie zgadzać z innymi.

To cienka linia, ale dowiesz się, gdzie ją przekroczyć, a gdzie nie. Najlepszą rzeczą, jaką możesz zrobić, to entuzjastycznie uczyć się i otaczać się ludźmi, którzy wiedzą więcej niż Ty o tworzeniu oprogramowania.

Jacek
źródło