Techniki zwiększania logiki przy programowaniu [zamknięte]

21

Zajmuję się programowaniem od ostatnich 3 lat. Ale wydaje mi się, że się w tym zagubiłem. Nie jestem w stanie sobie z tym poradzić, mimo że codziennie koduję.

załóżmy, że rozwiążę jeden problem, będę wędrować od rozwiązania do rozwiązania i wdrożyć inne rozwiązanie. Nie mogę się zbytnio skupić. Dostaję wiele usterek w kodzie, który piszę. Boję się kodu, nie wiem dlaczego, jeśli nie ukończę go na czas, mój szef mnie zwolni itp. Lubię kodowanie, ale nie przez cały czas. Jak zwiększyć cierpliwość?

Zawsze zastanawiam się, jak stać się najlepszym programistą, jak wielu wyjątkowych programistów. Wiem, że to brzmi subiektywnie, ale myślę, że pomoże to społeczności programistów w osiągnięciu tego, szczególnie dla przeciętnych, takich jak ja lub dla początkujących programistów.

Umesh Kacha
źródło
8
Często się tak czuje. Nie każdy z nas napisze kompilatory lub będzie hardcorowym programistą. Nie mam formalnego szkolenia w zakresie programowania, ale rozwiązywanie problemów jest kluczowe. Ponieważ technologia zmienia się bardzo szybko, bardzo trudno jest pozostać nad wodą. Dążę do ciągłej poprawy. To mój cel. Zrozum, że ten zawód jest zupełnie inny, staraj się jak najlepiej i kontynuuj. Każdego tygodnia poświęcam trochę czasu na naukę lub zrozumienie czegoś nowego. Tak długo, jak utrzymasz taką postawę, będziesz się poprawiał.
Jon Raynor
„Boję się kodu ... jeśli nie skończę go na czas, mój szef mnie zwolni itp.” - To nie jest świetne środowisko, w którym można cieszyć się programowaniem, a zatem być lepszym.
Paul D. Waite,
@ PaulD.Waite To prawda, że ​​nie jest świetne, ale jest bardzo powszechne.
Pramesh Bajracharya

Odpowiedzi:

12

Osobiście sugerowałbym zacząć od mniejszych przeszkód; spróbuj zająć się kodowaniem w mniejszych kawałkach i uzyskać więcej do pośrednich zwycięstw. Wygląda na to, że jesteś przytłoczony lub znudzony, jeśli coś trwa zbyt długo lub nie pokazuje postępu. Mogę definitywnie powiedzieć, że byłem na tej samej łodzi.

Pomyśl o tym jak o zmaganiu się z kanapką: nie zjadasz całej rzeczy w jednym kęsie, tylko ją rozkładasz. Zrób to samo ze swoimi projektami, zadaniami itp. W zależności od poziomu, na jakim jesteś, możesz poprosić swojego przełożonego / kierownika o podział. Jeśli jesteś odpowiedzialny za własne obciążenie pracą, ustaw dla siebie małe linie mety, które są osiągalne (nie ustalaj celu, którego nigdy nie osiągniesz, to tylko bardziej Cię zniechęca i stawia Cię w niepożądanej pozycji). tzn. „Do południa chcę zdefiniować tę klasę”, „Do 2 chcę zaimplementować ten interfejs” itp.

Moja firma jest znana z tego, że zaczynała i rozwijała projekt, pozwalając mi dotrzeć do 90%, a następnie wysunąć spod mnie dywanik, aby przejść do „następnej wielkiej rzeczy”. Zaczynam się zniechęcać, że nigdy nic nie robię, i wprawia mnie w „funk” (jeśli wolisz). W końcu odepchnąłem się i powiedziałem, że nie ruszam się, dopóki nie skończę tego, co prawie skończyłem. Zrobiło to cuda dla mojego szacunku, moralności i energii (choć nie mogę powiedzieć tego samego o moich pracodawcach: wzruszenie ramionami :)

Brad Christie
źródło
7

Moją sugestią byłoby zdobycie mentora.

Kiedy otrzymasz nowy projekt, zdecyduj, którą ścieżką pójdziesz: jak wygląda ogólny projekt; jakich algorytmów zamierzasz użyć; jak planujesz go rozwinąć, abyś mógł testować wcześnie i często; i tak dalej.

Przekaż te plany swojemu mentorowi i przedyskutuj z nim / nią. Jeśli zauważą, że jesteś na niewłaściwej ścieżce lub przegapiłeś coś ważnego, zweryfikuj swoje plany i spróbuj ponownie.

Teraz, gdy masz już zatwierdzony plan, trzymaj się go. Nie zmieniaj swoich planów, chyba że wydarzy się coś katastrofalnego, a następnie wróć do weryfikacji planów, uzyskania akceptacji i ponownego uruchomienia. W przeciwnym razie trzymaj się swojego planu i wykonaj dokładnie to, co postanowiłeś. Regularnie kontaktuj się ze swoim mentorem, aby sprawdzić poprawność wdrożenia, i upewnij się, że po drodze piszesz i używasz testów.

Jeśli wszystkie powyższe czynności zostały wykonane pomyślnie, projekt zostanie dostarczony na czas i przy poprawnych wynikach. Jeśli chcesz wrócić i zrefaktoryzować część projektu, masz wszystkie zbudowane testy, a także roboczą kopię programu, z którego chcesz zbudować.

Wydaje mi się, że jesteś trochę zbyt rozproszony i brakuje ci koncentracji. Być może, jeśli uda Ci się naprawić te obszary i pracować z kimś, kogo szanujesz, wkrótce zaczniesz działać.

Powodzenia.

niepythonic
źródło
6

Wierzę, że jestem dokładnie w tej samej pozycji co ty i nie jest miło być tam. Czasami może być demoralizujący i szczerze mówiąc dość przygnębiający. Jednak, podobnie jak w przypadku wszystkich innych elementów, uważam, że istnieją pewne rzeczy, które możesz zrobić, aby to złagodzić, a tym samym przejść do zdrowszej i szczęśliwszej kariery zawodowej.

  1. Musisz się zmienić i polepszyć. Jeśli tak się czujesz, ale nie jesteś przygotowany do postawienia się na twardym podwórku, aby poprawić swoje umiejętności, to niewiele osób może zrobić dla Ciebie.

  2. Niektórzy ludzie są z natury błyskotliwi. Niektórzy ciężko pracują, aby być błyskotliwym. Większość ludzi po prostu ciężko pracuje, aby starać się być genialnym. Jeśli nie jesteś naturalnie utalentowany (programowanie lub w inny sposób), ciężka praca może cię tam doprowadzić. Poziom ciężkiej pracy będzie się różnić. Nic nie jest niemożliwe.

  3. Zaakceptuj swoje braki i postaraj się poprawić. Jedną z największych przeszkód, jakie widzę, są ludzie, którzy boją się zaakceptować, że ich droga nie jest dobra, dlatego nigdy nie szukaj porady ani nie omawiaj innych sposobów działania. Dlatego nigdy nie uczą się lepszych praktyk i dlatego wciąż popełniają te same błędy.

  4. Poproś o radę tych, których uważasz za dobrych programistów. Nigdy nie bój się rozmawiać i prosić o radę kolegów. Zawsze jednak korzystaj z ich porad za dobrą cenę i sam decyduj, czy się z tym zgadzasz, czy nie. Bez względu na to, jak ktoś jest genialny, zawsze istnieje wiele sposobów programowania pętli.

  5. Czytaj czytaj czytaj. Czytaj grupy dyskusyjne. Publikuj pytania na takich stronach (dobra robota). Kup książki, które słyszałeś, są dobre lub poproś o rekomendacje w inny sposób.

  6. Explicity stosuje zasady projektowania małymi krokami, a następnie może być dumny z tego, co zrobiłeś. Jeśli jesteś dumny z tego, co kodujesz, wtedy jest mniej miejsca na błędy i błędy.

  7. Otwarty na sugestie i pomoc. Zamknięty na myślenie jednowymiarowe. Bądź otwarty na wiele możliwości i metod. Uważaj na tych, którzy myślą, że istnieje jeden sposób na wszystko. Trochę jak 4.

  8. Bycie genialnym programistą to nie to samo, co bycie genialnym pracownikiem. Jeśli chcesz być genialnym programistą, to szczerze mówiąc, nigdy nie dotrzesz tam. Jednak każdy ma zdolność, którą uważam za genialnego pracownika i osobę. Pracuj nad rzeczami, które mogą Ci pomóc.

dreza
źródło
Świetna odpowiedź. Wygląda na to, że te punkty pochodzą od wielkiego mentora. Zauważ mnie senpai !! _ / _
Pramesh Bajracharya
4

Jeśli po 3 latach codziennego kodowania zmagasz się z podstawami, musisz poważnie rozważyć możliwość, że nie jest to odpowiedni zawód dla Ciebie.

to nie jest zła rzecz. Programowanie nie jest dla wszystkich, znajdź to, w czym jesteś dobry i zrób to, zamiast narzucać sobie coś, co po prostu nie jest naturalne.

Jeśli to, co mówisz, jest prawdą ... nigdy nie będziesz „wyjątkowym programistą”. W porządku, po prostu to zaakceptuj.

Kretynowie
źródło
Komentatorzy: komentarze mają na celu poszukiwanie wyjaśnień, a nie dłuższą dyskusję. Jeśli masz własne rozwiązanie, zostaw odpowiedź. Jeśli uważasz, że ta odpowiedź jest dobra, głosuj w górę. Jeśli uważasz, że to nie jest dobre, głosuj w dół. Jeśli chcesz omówić to pytanie z innymi, skorzystaj z czatu . Aby uzyskać więcej informacji, zobacz często zadawane pytania .
Daj spokój, nikt nie stanie się „wyjątkowy” za trzy lata.
JacquesB
3

Postaraj się wejść w stan umysłu Flow . To najważniejszy czynnik, jaki widziałem jako dobry programista. Aby to zrobić, musisz podjąć wyzwania, o których wiesz, że potrafisz, ale są trudne. Musisz znaleźć odpowiedni poziom wyzwania, aby się w to zaangażować; możesz stopniowo go zwiększać w miarę poprawy. Posiadanie zadań, które są albo zbyt łatwe, albo zbyt trudne, będzie szkodliwe.

konfigurator
źródło
3

Podziel go na małe kawałki.
Pokażę, jak zrobić kanapkę PB&J.

Zrozum ogólny proces podstawowy.

1 - Get Ingredients
2 - Combine Ingredients
3 - Cut Sandwich
4 - Serve Sandwich

Następnie połam każdy z nich

**Get Ingredients**
1 - Validate/Create PB
1.1 - Validate/Create Jelly
1.2 - Validate/Create Bread
2 - Move PB To assembly area
...

powtarzaj proces rozkładu, aż w pełni zrozumiesz logikę.

Ułatwi to zrozumienie. I łatwiej zidentyfikować typowe procesy. Zanim zaczniesz kodować, upewnij się, że masz już logikę. Popełnianie błędów jest nie tylko ok, należy się tego spodziewać. Znalezienie ich przed ich wdrożeniem jest znacznie łatwiejsze do poprawienia.

Często logika jest najtrudniejszą częścią programowania. Dlatego nie wszyscy chcą to robić. Jeśli nie podoba ci się logika, ale uwielbiasz projektowanie interfejsu użytkownika, istnieją role, które specjalizują się w tym, gdzie możesz znaleźć więcej przyjemności. Nie ma w tym nic złego. Osobiście wolę logikę od interfejsu użytkownika. Istnieją również inne role, jeśli logika nie jest tam, gdzie chcesz się dowiedzieć, gdzie chcesz być.

SoylentGray
źródło
2

Miałem taki problem wcześniej ... Stało się to tuż przed wypaleniem się i przez prawie rok później nie mogłem programować na produktywnym poziomie (a miałem wtedy 19 lat).

W każdym razie, patrząc wstecz, moim problemem był brak kierunku i zarządzania. Pracowałbym nad wdrożeniem czegoś przez miesiąc lub dwa, a potem, kiedy już się prawie skończyło, nagle trzeba to zrobić w zupełnie inny sposób. Był to ogromny cios w moją samoocenę, ponieważ jestem dość dumny z każdej linii kodu, którą piszę. Również kierownictwo składało się głównie z kilkugodzinnej dyskusji na temat tego, jak coś powinno działać, a następnie kilku dni bez dyskusji. Część z tego była oczywiście moją winą. Sytuację dodatkowo potęgował fakt, że w pewnym momencie praca stała się wyjątkowo nużąca i czułem się, jakbym po prostu pisał kod i wcale nie był kreatywny.

Ogólne wytyczne:

  1. Jeśli czujesz, że brakuje kierunku, podnieś go. Poproś przełożonego o więcej informacji na temat tego, dokąd zmierzają
  2. Jeśli musisz cały czas usuwać kod (a nie w tak dobry sposób, jak refaktoryzacja), poważnie zapytaj, dlaczego nie ma bardziej kompletnego planu przed wdrożeniem
  3. Jeśli dopiero zaczynasz i funkcjonujesz jako „główny” programista, kiedy wyraźnie nie masz na to doświadczenia, połknij swoją dumę i powiedz swojemu menedżerowi, że tak naprawdę jesteś młodszym programistą.
  4. Tedium jest zwykle spowodowane brakiem pracy. Podejmuj zadania w mniejszych kęsach i śledź swoje postępy. Pomoże ci to poczuć, że coś robisz
  5. Jeśli wszystko inne zawiedzie, możesz zacząć składać podanie w innym miejscu, szczególnie jeśli wydaje się, że twój menedżer nie przejmuje się tym, że możesz się spodziewać wypalenia zawodowego
Earlz
źródło
-1

Znajdź indukcyjną grę logiczną, taką jak Zendo, i graj w nią w wolnym czasie. Poważnie. Logika indukcyjna jest sercem debugowania.

Malachiasz
źródło