Swoją karierę jako programista .NET rozpocząłem 3 miesiące temu i po długim planie szkoleniowym na temat różnych technologii, wzorców i koncepcji programiści, którzy mnie nadzorowali, zdecydowali, że jestem gotów dołączyć do jednego z wielu projektów obsługiwanych przez firmę.
Jestem bardzo podekscytowany, że w końcu mogę zacząć kodować. Zespół, do którego dołączyłem, jest na razie raczej niewielki, ponieważ zaczynał od nowego projektu, co jest świetne, ponieważ biorę udział w całym cyklu życia projektu. Jest to internetowy projekt SPA z kopią zapasową, który wykorzystuje ASP.NET MVC / ASP.NET Web API, a także frameworkiem Durandal i powiązane biblioteki.
Mój problem polega na tym, że po spotkaniu z kolegami i ustaleniu zadań i szacunków na następny miesiąc znalazłem się w sytuacji, której nie wiem, czy jestem w stanie podjąć się któregokolwiek z zadań.
Nigdy nie wykonałem żadnego z utworzonych zadań i nie wiem, jak mam postępować.
Na przykład jednym z utworzonych zadań jest utworzenie ogólnego mechanizmu obsługi błędów dla całej aplikacji.
Jak zwykle postępuje się w obliczu zadań, których nigdy nie wykonywał?
Odpowiedzi:
Jest kilka rzeczy, które możesz i powinieneś zrobić, aby przygotować się do zadania:
Nie wiedząc, jak coś zrobić, nigdy tak naprawdę się nie skończy. Każdego dnia napotykam problemy, z którymi nigdy wcześniej się nie uporałem. Umiejętność znalezienia sposobu rozwiązania nowych problemów jest niezwykle ważna. Nawet stare problemy nigdy nie są całkowicie stare - w programowaniu prawie zawsze pojawia się nowy zwrot lub prośba, aby twoje rozwiązanie działało w nowy lub inny sposób.
Właśnie dlatego jestem inżynierem; Uwielbiam wymyślać nowe rzeczy.
Nigdy nie przestawaj uczyć się nowych rzeczy. Uczenie się czyni cię lepszym.
źródło
Nie ma idealnego rozwiązania, ale niektóre rzeczy, które mogą pomóc:
Rozbij zadania na możliwie najmniejsze jednostki - dziel je na części, dopóki nie będziesz mieć rzeczy do zrobienia.
Przypisz natychmiastowe zadanie lub problem, aby upewnić się, że naprawdę je rozumiesz. Następnie wykonaj analizę i powtórz.
Najpierw wybierz najprostsze zadanie, nawet jeśli wydaje się zbyt proste, aby nadać mu rozpęd . Niektórzy ludzie wolą najtrudniejsze zadanie, więc „ciężka praca” jest na uboczu. Przekonałem się, że „najprostsze zadanie” na ogół działa lepiej, ponieważ po prostu chcesz nabrać tempa i widziałem, że „najtrudniejsze najpierw” prowadzą do wstrzymania projektów, zanim zaczną działać.
Poproś o pomoc w wyborze właściwego zadania i podejdź do niego.
Poszukaj mentora, który może udzielać ci stałej (najlepiej codziennie) informacji zwrotnej przez tydzień lub dwa.
Zadawaj wiele pytań, ale skup się na uprzejmości wobec członków swojej drużyny. Zawsze pytaj, czy mają czas i zwracaj uwagę na zwykłe werbalne i niewerbalne znaki, że nie mają wtedy czasu.
Zachowaj bieżącą listę napotkanych problemów, a następnie albo codziennie, albo w zwykłym wybranym czasie, przejrzyj je z innymi.
Nie bój się zadawać najbardziej podstawowych pytań. Założenia innych mogą być trudne do zakwestionowania, ale jeśli nie możesz kontynuować tego, co ci dano, musisz ponownie zadać pytanie.
Jeśli znasz cel, rób tyle, ile możesz, aż utkniesz, a następnie opublikuj postęp i pytanie dotyczące przepełnienia stosu.
źródło
Oczywiście nie masz pojęcia, jak napisać „ogólny mechanizm błędu”. Nikt nie wie, jak napisać „ogólny mechanizm błędu”, dopóki nie zostaną określone pewne wymagania. Wygląda na to, że wszystko, co masz, to czyjaś opinia, że „ogólny mechanizm błędu” jest w jakiś sposób wymagany do rozpoczęcia tego projektu.
Osobiście odrzuciłbym to pojęcie. Pisanie „ogólnych” czegokolwiek przed wdrożeniem rzeczywistych wymagań użytkownika jest prawie zawsze stratą czasu. A ponieważ jest ogólny , z definicji nie jest specyficzny dla Twojej firmy lub aplikacji, więc prawdopodobnie jest już coś, co zaspokoi około 95% twoich potrzeb.
Ale ponieważ jesteś młodszym członkiem, odpychanie może nie być świetnym pomysłem. Musisz więc porozmawiać z ludźmi, którzy uważają, że potrzebują „ogólnego mechanizmu błędu” i dowiedzieć się, jakich usług oczekują od tego mechanizmu. Następnie przeszukaj sieć, aby sprawdzić, czy coś już wystarczy. Jeśli coś znajdziesz, zaproponuj po prostu użycie tego. Prawdopodobnie nie zgodzą się, ponieważ każdy, kto prosi o „ogólny mechanizm błędu”, prawdopodobnie cierpi na zły przypadek, który nie został wymyślony tutaj.
Jeśli to się nie powiedzie, następnym krokiem jest zdefiniowanie interfejsu dla mechanizmu błędu i zatwierdzenie go przez interesariuszy. Po tym implementacja będzie prawdopodobnie trywialna.
=================
PS Niektórzy programiści uważają, że sposobem na rozpoczęcie każdego projektu jest napisanie „platformy” zapewniającej wszystkie typowe usługi, które będą potrzebne modułom aplikacji. Zwykle przekłada się to na miesiące trywialnej pracy, która wymyśla rzeczy już dostępne za darmo. Dopóki nie osiągniesz limitów wydajności dostępnych rozwiązań, nie ma powodu, aby pisać usługi „platformy”. Nie ma też żadnego powodu, aby pisać opakowania wokół istniejących interfejsów API. Jeśli dokonasz refaktoryzacji w sposób ciągły, magicznie pojawi się dokładnie opakowanie wymagane dla twojej aplikacji.
źródło
Myślę, że cierpisz bardziej z powodu lęku niż deficytu umiejętności. W pewnym momencie nie było wszystko nowe? Czy kiedykolwiek otrzymałeś zadanie i nie byłeś w stanie go rozwiązać do pewnego stopnia? Zarabiasz na rozwiązywaniu problemów.
Wykorzystaj swój zespół - jeśli masz dobry zespół, powinieneś poprosić o pomoc. Są rzeczy, o których wiesz, że nawet najbardziej zaawansowani nie będą wiedzieć. Proszenie o pomoc nie jest oznaką słabości (niczym więcej niż bieganiem do jakiejś strony z pytaniami).
Wyszukiwanie - wyszukiwarka internetowa dotycząca ogólnej obsługi błędów nie przyniosła nic? Możesz nie znaleźć całego rozwiązania. Będziesz musiał nad tym popracować i dostosować go do swojej aplikacji.
Prototyp - zmień swoje spojrzenie na zadanie z produkcji na prototyp. Po prostu stwórz coś do pracy i buduj stamtąd. Gdy dojdziesz do tego stopnia, że możesz go użyć, zacznij myśleć o nim jak o produkcji. Teraz nie zobaczysz zadania jako czegoś, czego nawet nie wiesz od czego zacząć.
Przezwycięż to - tylko robienie rzeczy, które wiesz jak robić, będzie nudne. Prowadzi cię również do pułapki brutalnego wymuszania pewnych rozwiązań przez powtarzanie tych samych rzeczy w kółko (jeśli lubisz powtarzać, idź pracować na linii montażowej). Przygotuj się na błędy. Ci, którzy mówią ci, że wiedzą wszystko, nigdy nie proszą o pomoc ani nie szukają, po prostu kłamią.
To stary żart o lekarzach wciąż „praktykujących” medycynę; nie mają też wszystkich odpowiedzi.
źródło
Raduj się, że nie robisz czegoś, co zrobiłeś sto razy wcześniej. Odkryłeś radość z tworzenia oprogramowania (w każdym razie dla mnie, YMMV) - uczysz się, jak prowadzić, gdy pędzisz autostradą z niezwykłą prędkością. Jest to coś, dla czego żyje świetny programista i w którym się wyróżnia.
Mój osobisty proces wygląda mniej więcej tak:
I na koniec, nie przejmuj się zbytnio wyglądem. Jako kierownik zespołu programistów wolę kogoś, kto może udowodnić, że może nauczyć się wszystkiego, czego potrzebuje, tak jak tego potrzebują, niż kogoś, kto może udowodnić, że już wie, co jest jedną rzeczą, którą próbujemy teraz zrobić. Ten pierwszy będzie bardziej przydatny do wszystkiego, co skończymy jutro, w przyszłym miesiącu lub w przyszłym roku.
źródło