potrzebuję niektórych z was, aby pamiętać o czasach, w których mogłeś być zły w programowaniu ...
Byłem w mojej nowej pracy (jako programista) od kilku miesięcy, przeszedłem okres próbny. Mam bardzo małe doświadczenie w programowaniu (tylko C ++) i obecnie pracuję z asp.net MVC i silverlight. Jest więc strona internetowa, nad którą firma pracuje, i łączę się, aby ją ulepszyć, naprawić błędy itp.
Problemem jest - poznanie systemu / strony internetowej, która została już wykonana, za pośrednictwem visual studio. ZAWSZE czuję się OGROMNIE przytłoczony, nigdy nie wiedząc, która część tej linii powinienem podnieść wzrok, i ogólnie mam problemy z uzyskaniem dużego obrazu. Samo studio graficzne jest czymś, z czym trudno mi się zmierzyć, nie mówiąc już o frameworku asp.net.
Mam wrażenie, że ponieważ moi współpracownicy mają więcej doświadczenia niż ja, dostają wszystkie dobre prace, a ja mam bzdury do zrobienia - rzeczy, które nawet nie są niejasne. To znaczy, że uczą się / tworzą więcej, a ja uczę się / tworzę prawie nic. Jestem zdemoralizowany i zbyt przestraszony, by cokolwiek powiedzieć.
Nie jestem głupi, czytałem i ćwiczyłem wiele podstawowych pojęć programistycznych ... Po prostu cholernie boję się tego cholernego frameworka. Patrzę na to i czuję się sparaliżowany.
Rezultat jest taki, że ciągle zadaję starszemu weteranowi pytania, a on się denerwuje i wolałby dać mi proste / bezmyślne / nieprogramowania, aby uniknąć marnowania czasu na pomoc. Potem, gdy czegoś nie rozumiem, waham się, czy powinienem go jeszcze zapytać, i próbuję zdecydować, czy to strata czasu.
Jestem osobą, która podnosi sprawy powoli, ale z dużą dbałością o szczegóły. Ten pierwszy, jak sądzę, sprawia, że wyglądam na niekompetentnego.
Ktokolwiek dotrze do miejsca, z którego pochodzę, powiedz coś pomocnego ... Boję się utraty pracy za kilka miesięcy, czy coś ...
źródło
Odpowiedzi:
Proces, który ludzie powinni wykonywać w pracy jako nowy pracownik
Pośpiech ekologicznego programisty bez doświadczenia domeny zbyt szybko, spowoduje zbyt wiele problemów. Dostaniesz rzeczy nowego faceta, ponieważ musisz zdobyć rzeczy nowego faceta.
Powieś tam
źródło
Najpierw najważniejsze. Jesteś nowicjuszem. Dostaniesz bzdury. Nie można tego obejść. Musisz zrozumieć, że nie jest to złośliwe. Jak sam powiedziałeś, ci faceci mają więcej doświadczenia i są bardziej wykwalifikowani. Prawdopodobnie są również na wyższym poziomie płac. Co oznacza, że z punktu widzenia projektu ich czas jest cenny i cenniejszy niż twój. Dzięki temu mogą wykonywać bardziej nowatorskie (i zabawne) zadania, pozostawiając ci bardziej przyziemną (ale nadal ważną) pracę.
Ważne jest, aby nie utknąć w koleinach na zawsze. Poświęć każdą chwilę, aby zapoznać się z projektem i dostępnymi narzędziami. Możesz zagrać w Saper, gdy nie żyjesz. Wiem, że uczenie się nowej platformy, a także przyzwyczajanie się do istniejącego projektu to bardzo przytłaczająca perspektywa. Sztuką jest pocięcie go na mniejsze kawałki i rozwiązywanie ich jeden po drugim. W twoich butach zrobiłbym coś takiego:
Jeśli to wygląda na dużo pracy, to dlatego, że tak jest. Ale dywidendy, które ostatecznie zbierzesz, to więcej niż wystarczająca rekompensata.
źródło
Jak jesteś tego pewien? Pytam jak ktoś, że generalnie, kiedy zaczynasz coś nowego, odbywa się wszelkiego rodzaju nauka, której możesz nie zrozumieć. Jak dobrze przyzwyczaiłeś się do Visual Studio? Pamiętam, że nauka IDE od podstaw była dość przerażająca, kiedy zacząłem pracować w 1998 roku, ale pod pewnymi względami był to interesujący czas. Jak dobrze znasz oprogramowanie do śledzenia błędów? Jak dobrze znasz wszystkie osoby w zespole? Prawdopodobnie uczysz się więcej niż kilku rzeczy, ale możesz nie postrzegać ich jako wielkich rzeczy do nauczenia się.
Radzę rozważyć rozmowę z niektórymi współpracownikami lub szefem na temat tego, jak dobrze sobie radzisz. Mogą powiedzieć: „Tak, dobrze sobie radzisz” lub „Jesteś niesamowity!” co możesz zaakceptować, chociaż niektórzy mogą to po prostu powiedzieć, ponieważ boją się mówić prawdę. Jednocześnie zdaj sobie sprawę, że tutaj właśnie dowiadujesz się, gdzie stoisz, a następnie zrób coś z tym. Będąc tam przez kilka miesięcy, powinieneś wiedzieć kilka rzeczy i dzięki temu być w stanie robić lepiej niż w pierwszym tygodniu.
Naprawdę słyszałem i mówiłem o tym rodzaju linii kilkadziesiąt razy. Jest kilka różnych uwag na temat takiej linii:
Może to być szacunek, więc osoba mogła zapomnieć o dziwnym przypadku, który sprawia, że poprawka jest garstką linii. Wiem, że miałem czasy, w których myślałem: „Należy to jakoś zrobić w jednym wierszu kodu”, aby później odkryć, co przegapiłem.
Niektóre wiersze kodu mogą być absurdalnie skomplikowane. Widziałeś kiedyś, czy jest tam kilkadziesiąt nawiasów, aby wymusić logikę, gdy zajęło to kilka razy, aby poprawnie odczytać warunek? Wiem że mam.
Zastanów się, jaki masz teraz obraz aplikacji i jak widzisz różne elementy pasujące do siebie, jakie konwencje ogólnie stosuje kod, jakie metody metodologii programowania są używane i jakie narzędzia są używane do różnych procesów, np. Czy istnieje serwer ciągłej integracji, czy jest plansza itp.
źródło
To wymaga czasu. Kilka miesięcy to krótki czas. Jeśli nie widzisz przyszłości w twojej obecnej firmie, dałbym jej więcej czasu.
Praca nad istniejącymi produktami jest powszechna. W rzeczywistości robisz to częściej niż nowe systemy. Ulepszenie istniejących systemów, które są już w produkcji, wymaga wielu umiejętności. To niekoniecznie zła rzecz.
Powodzenia w nowej pracy.
źródło
Zadawaj pytania, ale też wykazuj się inicjatywą ; zrób jak najwięcej, zanim poprosisz. To trochę jak zadawanie pytań tutaj na Stack Exchange.
źródło
Weź dobrą książkę na asp.net i prawdopodobnie również w .NET i przeczytaj je dokładnie poza godzinami pracy. Po przeczytaniu poczujesz się pewnie w pracy. Niesamowite jest także praktyczne wykorzystanie tego, czego się uczysz. Kod będzie miał dla ciebie sens podczas czytania, dlatego czytanie będzie również przyjemniejsze. Powinieneś jak najlepiej wykorzystać swój obecny czas, nie rzuca się na ciebie zbyt wiele zadań, więc wykorzystaj ten czas mądrze.
źródło
Myślę, że mogę mówić za wielu z nas, mówiąc, że przez chwilę zastanawiałem się, czy moje poprzednie ja przeszło do przyszłości, aby zadać moje obecne ja temu pytaniu na programmers.se. To jest prawie to, co powiedziałbym mojej przeszłości, gdybym był z nim twarzą w twarz, gdy był w twoich butach:
Nie zniechęcaj się - będzie ciężko, a czasami będziesz nienawidzić tego, co robisz i żałujesz, że nie możesz zostać ogrodnikiem lub czymś równie nieprogramowalnym. Podnieś się z ziemi, odkurz i idź dalej, ponieważ poprawisz się, a praca, którą wykonasz, poprawi się.
Używaj StackOverflow i Google - nie bądź „programistą do kopiowania i wklejania”, ale zdaj sobie sprawę, że w SO i reszcie sieci jest mnóstwo inteligentnych ludzi, którzy chętnie, gotowi i chętnie oferują pomoc. Poza tym odpowiedź SO lub post na blogu nie będą narzekać na ciebie ani nie będą wyglądać źle, jeśli będziesz je ponownie czytać, aby upewnić się, że ją otrzymałeś.
Zadawaj kolejne pytania - dopóki robisz wszystko, co w twojej mocy, nie ma nic złego w proszeniu o pomoc kogoś z większą wiedzą i doświadczeniem. Jeśli twój współpracownik chce być w tym palantu, znajdź innego współpracownika, który chętniej ci pomoże, lub, jak powiedzieli inni, przynieś to ze sobą i zobacz, co mówią. Trochę komunikacji w takich sytuacjach może być bardzo daleka.
Próbuj dalej - nie poddawaj się. Programowanie jest trudne, ale to część nagrody. Nauczenie się nowego narzędzia, frameworku, języka, paradygmatu itp. Zajmuje dużo czasu ... ale warto, ponieważ za każdym razem stajesz się lepszy, a przeforsowanie tego doświadczenia edukacyjnego lepiej przygotowuje cię do następnym razem, gdy się z tym zmierzysz. Pracuję w znacznie większej bazie kodu niż w mojej pierwszej pracy, ale byłem w stanie znacznie szybciej go zdobyć ze względu na naukę, którą miałem po drodze.
Daj sobie trochę uznania - udało Ci się zmienić doświadczenie C ++ w pracę z ASP.NET MVC i Silverlight. Jesteś na programistach.stackexchange i szukasz pomocy. Pracujesz, próbujesz i robisz, co możesz, aby być lepszym. Robisz właściwe rzeczy i już jesteś na dobrej drodze dzięki temu, że udało ci się zdobyć pracę programistyczną. Trzymaj się tego, a będzie łatwiej.
Znajdź coś do zrobienia na boku - programowanie, które jest zbyt trudne lub zbyt przyziemne, lub cokolwiek, co może szybko zmęczyć twoją przyjemność z rzemiosła. Znajdź projekt, nad którym możesz popracować niezależnie od pracy, który nie jest zbyt trudny, ale utrzyma twoje zainteresowanie i zapewni ekscytację programowaniem. Nie tylko pozwoli Ci to uniknąć nienawiści do kodowania, ale każdy napisany fragment pomaga doskonalić swoje umiejętności, a projekty osobiste wyglądają dobrze na CV, jeśli zdecydujesz, że ta praca nie jest dla Ciebie odpowiednia.
Przepraszam, jeśli to brzmi jak zbyt duża rozmowa. Właśnie byłem w twoich butach i wiem, jak to jest. Mam nadzieję, że ta i inne porady od ludzi tutaj pomogą ci. Aha, i jeszcze jedno - pytanie zaczęło się od tego wiersza:
Wciąż jestem! Wszyscy jesteśmy! Po prostu nad tym pracujemy i staramy się ssać mniej każdego roku .
źródło
Zdarza się każdemu w programowaniu. Nawet programiści z wieloletnim doświadczeniem będą mieli dużą krzywą uczenia się w obliczu złożonego systemu, który istnieje od wielu lat. Rzadko wchodzi się do pracy z prawie całą potrzebną wiedzą. Możesz poczuć się przytłoczony przez chwilę, chyba że pracujesz nad 100% nowym rozwojem w stosunkowo nowej firmie / oddziale lub w bardzo prostych systemach.
źródło
Myślę, że twoja sprawa jest naprawdę ważna. Ale nie powinieneś się zbytnio martwić .
Jako nowy pracownik oczywiście dostaniesz zadania, których nikt nie chce wykonywać. Podobnie jak zadanie do wykonania, zadanie bardziej mechaniczne i nieprzyjemne.
Naprawdę czuję twój ból, ponieważ wszyscy tutaj, tak jak ja, już tam byli. To, czego potrzebujesz, to robić rzeczy szybko, a najlepiej jak potrafisz .
W ten sposób: ludzie zobaczą, że możesz robić coraz trudniejsze rzeczy, które naprawdę dajesz z siebie wszystko i naprawdę poprawisz, co pozwoli ci osiągać jeszcze lepsze wyniki i pozostawiać dobre wrażenie (we właściwy sposób).
A także bądź cierpliwy . To zajmuje trochę czasu, ale warto.
źródło
Cierpliwość. 20 lat temu, kiedy byłem nowym facetem, wysyłali mnie z powrotem do serwerowni, aby zrestartować routery, które cały czas ulegały awariom. Szybka wskazówka: aby nauczyć się nowego frameworka, gdy masz już kod, spróbuj dodać kolejne pole do istniejącego formularza, a następnie przenieść jego wpływ przez całą drogę do miejsca, w którym trafiłby on do bazy danych. Śledząc wartość innego pola już w tym formularzu. Nauczysz się tony.
źródło
Wśród opcji: znajdź pracę, w której nie oczekuje się, że rzucisz się na ziemię. Nie każda firma jest dobrym miejscem do pracy na poziomie podstawowym. Duża korporacja konsultingowa (np. Dell lub Accenture) może być porywającym piekłem, na którym pozostanie jako zwykły programista, ale powinna mieć solidne programy szkoleniowe i zasoby, aby poradzić sobie z narzutami pracowników w twoim stylu uczenia się.
Następstwem jest to, że jest całkowicie możliwe, że jesteś nieodpowiednim pracownikiem dla obecnego pracodawcy i odwrotnie. Chociaż utrata pracy jest przerażającą propozycją, najlepiej może zmniejszyć straty.
Oczywiście nie mówię, że powinieneś się poddać. Jest duża szansa, że potrzebujesz trochę więcej czasu, aby pokonać najgorszą część krzywej trudności i dojść do momentu, w którym wszystko „kliknie”.
Inne losowe obserwacje:
Głównym powodem, dla którego trafienie na ziemię z nowymi projektami staje się łatwiejsze z doświadczeniem, jest to, że pracowałeś z większością tego, co składa się na wspomniane systemy, więc nie są tak naprawdę „nowe”. Nie ma „ogólnego doświadczenia”, wystarczy zaznajomić się z wieloma koncepcjami, strukturami i narzędziami, a także wykorzystać problem związany z rzeczami, które znasz. To, że programista na poziomie podstawowym zostanie przytłoczony niebanalnym systemem, jest całkowicie normalne. (Tak jak w przypadku doświadczonego programisty, jeśli pracuje on na systemie z wystarczającą ilością rzeczy, które są dla niego nowe. Programowanie jest złożoną bestią, a większość programistów ma „strefę komfortu”).
źródło
Programowanie to niekończący się proces uczenia się. Nie wchodzę w to, co sprawi, że będziesz lepszy, ale poradzę sobie z tym uczuciem przytłoczonym, będąc tam i czasami czując się tak nadal. Aby wskoczyć do dużego projektu, ucząc się IDE i używanej technologii, jest mnóstwo do obsługi. Jestem w pracy, w której po raz pierwszy używam VS 2010, C #, WPF, SQL Server i MVVM. Więc nic nie przychodzi łatwo bez ton Googling.
Zastanów się kilka rzeczy - minął okres próbny, więc podoba im się to, co robisz. Wierzą w ciebie jako pracownika. Wiedzą również, że jesteś nowy i nie oczekują, że zaabsorbujesz 10 lat doświadczenia, otwierając VS kilka razy. Pozwolą ci rosnąć. Jesteś inwestycją i atutem - nie chcą, abyś poniósł porażkę, a jeśli wykażesz postęp i pragnienie, utrzymają cię w miejscu, aby odnieść sukces.
Jeśli chodzi o „zirytowanego” starszego faceta - jest w 100% w błędzie. Jeśli wykażesz zamiłowanie do wysiłku i badań, zanim zapytasz, nie ma powodu, aby się denerwować. Bycie liderem prowadzi po części - ktoś powiedziałby, że to duża część. =) Jeśli prowadzi przez taki przykład, wybrali niewłaściwego mężczyznę (lub kobietę). Przeprowadź z nim temat i daj mu znać, że doceniasz pomoc. Twórcy mogą być nieprzyjemnymi typami i często mogą być trochę sami. Jeśli jest problemem, porozmawiaj o tym ze swoim menedżerem. Ponownie, jesteś atutem i zmuszasz kogoś do zahamowania twojego wzrostu, nie pomagając, bo powinien skrzywdzić drużynę.
Co najważniejsze - nie przejmuj się. Jeśli dołożysz wszelkich starań i podoba ci się to, co robisz, jest to gwarancja, że poczujesz się lepiej i pewnego dnia staniesz w czołówce tego zespołu. Jeśli są mądrzy, dadzą ci gryzie, które możesz przeżuć.
Wreszcie - mam 6 lat i wciąż się uczę. Czasami, kiedy nie „natychmiast rozumiem”, trochę się załamuję. Ja, podobnie jak ty, muszę sobie tylko powiedzieć: „Uspokój się, świat się nie kończy. To .Net, na miłość boską.
źródło
Po pierwsze, zaakceptuj fakt, że nie jesteś dobry w programowaniu. Jeśli nie chcesz tego zaakceptować, to będzie problem. Jesteś noobem. Być praktycznym. I bądź prawdomówny wobec siebie. Kropka. Przyjęty? Następnie czytaj dalej.
Po drugie, udowodnij sobie (i nikomu innemu. Powtarzam, nikt inny oprócz ciebie), że nie jesteś już noobem i że możesz łamać, tworzyć, debugować najbrudniejszy i najokropniej napisany kod. Możesz znaleźć się na szczycie list przebojów, oczekiwać wyższego poziomu płac od swojego dobrego szefa, wszystko przez udowodnienie sobie, że nie jesteś już noobem .
Tak więc teraz, dochodząc do właściwej odpowiedzi: jak do cholery powinieneś to zrobić między ciasnymi godzinami pracy, rodziną, czasem wolnym? Tak. wiem, że to nie jest łatwe. Sposób w jaki to robię. I zdecydowanie uważam, że jest to najbardziej skuteczny:
Zdobądź podstawy w skrócie: pigułki OOP powinny być zintegrowane w twoim mózgu.
Kody konstrukcyjne (w miejscu zamków) w powietrzu Wiem, że to szaleństwo, ale oglądanie kół samochodów jako funkcji pomaga ludzkiemu mózgowi przyzwyczaić się do kodującego świata!
Najpierw ćwicz na papierze! Mój profesor powiedział mi tę sztuczkę. Najpierw poćwicz na papierze. Dry Uruchom swoje programy na samym papierze. Pomoże ci wejść w przepływ kompilatora + otworzy te bramki logiczne w twoim mózgu.
Zaprojektuj własny projekt tak. może to być kalkulator oparty na CLI. zaprojektuj swój własny kod. Spraw, by był wyjątkowy. Dlaczego Twój własny unikalny program? Ponieważ zmusi cię to do myślenia „Jak mam to zrobić?” i nie zmuszać cię do frustracji. A jeśli masz wątpliwości, zapytaj Herberta Schildta (wybacz mi, jeśli pisownia jest niepoprawna) lub Google lub zostaw pytanie tutaj. To najlepszy sposób na samokształcenie i improwizację swoich umiejętności.
Kiedy zapoznałem się z językiem C, również miałem zły czas. Zwłaszcza w przypadku Structures n Pointers n Blahs n blahs. Nauczyłem się tych rzeczy w godzinach nadliczbowych ... ciężko, jeśli możesz to nazwać. A potem, kiedy zostałem złamany, nie straciłem nadziei. Kupiłem książkę informacyjną i zacząłem tworzyć program, który zawsze chciałem. Po 3 miesiącach (tak, możesz się śmiać!) W końcu stworzyłem wersję CLI programu, który weźmie twoje imię jako dane wejściowe i pokaże twoją osobowość jako wynik. Akrofonologia.
Tak. Przechwalam się, ponieważ jestem z tego dumny! Ponieważ widziałem twarze moich seniorów, którzy ze mnie drwili. Wszystko determinacja mój przyjacielu! Programowanie to nie nauka rakietowa! Gdyby tak było, nie przeszedłbyś okresu próbnego! To łatwe!
Moje osobiste przekonanie: jeśli masz logikę w swoim umyśle i rozumiesz, co to jest zdrowy rozsądek, możesz być dobrym programistą.
Dobra wiadomość jest taka, że macie jedno i drugie! Ponieważ gdybyś go nie miał, nie zrobiłbyś właściwego kroku, dzieląc się z nami swoim problemem!
Jeśli czujesz się teraz dobrze, jestem szczęśliwy. I tak, możesz teraz zignorować pierwszą linijkę tej odpowiedzi ... było wtedy konieczne ... Nie jest teraz konieczne! Twoje zdrowie!
źródło
Oświadczenie: Uważam, że Twój problem, choć specyficzny dla programistów, napotyka nowych specjalistów / praktyków we wszystkich dziedzinach. Mam na myśli, że nikt nic nie wie przez pierwsze kilka miesięcy, a nowi faceci zawsze mają najgorsze zadania (może z wyjątkiem sytuacji, gdy zadania te są zbyt krytyczne).
Nadal jestem w tym zły. Bez zastanowienia.
Ponownie pamiętaj, że każdy gracz był kiedyś piłkarzem. Aby dobrze popracować, musisz najpierw udowodnić swoją wartość w rzeczach, których nie lubisz, i jest to powszechne we wszystkich dziedzinach, nie tylko w programowaniu.
Co sprawia, że czujesz się sparaliżowany? Czy boisz się wrócić do frameworka jeszcze raz , czy po prostu nienawidzisz patrzeć na to w ogóle?
Zawsze staraj się podzielić swoje problemy na jeden lub więcej prostych kroków. Następnie przejdź do każdego z nich osobno. Nie ma tutaj magicznej kuli, z wyjątkiem ciągłego trzymania się i to jest ważne.
Jako nowego faceta, to będzie stawić czoła problemom w poznanie narzędzi możesz pracować z (VB, ASP itd) i rzeczy, z którymi pracujesz na (w ramach ). To jest naturalne. Wszyscy się z tym mierzymy. Twoim głównym priorytetem powinna być kontynuacja.
Ucz się języków, zadawaj pytania, zaglądaj w ramy i powtarzaj!
źródło