Jak mogę być bardziej pewny swoich umiejętności programistycznych? [Zamknięte]

37

Programowanie nie jest mi obce. Najpierw zacząłem robić znaczniki (HTML, teraz proszę się ze mnie nie śmiać), kiedy miałem 12 lat, i trochę BASIC, kiedy miałem 13 lat (w tym momencie wiele wiedziałem o schematach blokowych, pseudokodach), ale potem zostałem upomniany Biologia w liceum, a zatem przeoczyła „prawdziwą” znajomość programowania języków takich jak C, Java itp. Podjąłem CS dla mojego UG BE (podobny do BS, ale o wiele bardziej teoretyczny). Nauczyłem się C & C ++ (w mniejszym stopniu) na własną rękę (mój profesor był totalnym bólem, a klasa była przepełniona bzdurami (którzy już nauczyli się tego w szkole, a zatem nie zwracali uwagi na klasę i nie pozwól mniejszym śmiertelnikom takim jak ja zwracać uwagę na klasę) i może stworzyć niesamowity program do dodawania lub mnożenia (taki, który teraz nawet życzliwsi ogrodnicy ”

Moim głównym problemem jest to, że zawsze czułem się niewystarczający i zduszony przez moje ograniczone umiejętności programistyczne i umniejszony przez kibiców (uwierz mi, natknąłem się na tę stronę wieki temu, ale teraz mogłem teraz zdobyć odwagę, by publikować posty pytanie), a czasami nawet przygnębiony z powodu wspomnianej niemożności. Większość ludzi twierdzi, że programowanie niekoniecznie musi dotyczyć języka, ale stanu umysłu danej osoby i technik, które stosuje w celu rozwiązania problemów / problemów. Zgadzam się z takimi sentymentami, ale czy kiedykolwiek mogę uzyskać taki „stan umysłu”, a jeśli tak, to jak powinienem podejść do „Programowania / Kodowania”, a jeśli istnieją jakieś ustalone sposoby i kroki, które należy wykonać, aby osiągnąć „Zen” kodowania ”. Jak mam to zrobić? Nie zaszkodzi też, jeśli jakiś Święty chce mentorować ten zdeptany kawałek $ #! ^.

PS Będę na zawsze wdzięczny każdej osobie, która uważa mnie za wartą czasu, i jako bonus wymienia moje pierwsze oprogramowanie, które wysyłam po nich. (Jeśli kiedykolwiek uda mi się wysłać jeden, tj.)

TL; DR: Nigdy tak naprawdę nie nauczyłem się „programowania / kodowania”, nie mogę rozwiązać problemów, nawet jeśli spróbuję. Pomóż mi!

Ameen
źródło
22
Nie denerwuj się tak bardzo. Nikt nie wyszedł z programowania macicy. Im więcej kodujesz, tym więcej będziesz myśleć w kodzie. Baw się dobrze.
Steven Evers,
9
Jeśli myślisz „Hm, błąd jest prawdopodobnie w moim kodzie, a nie w kompilatorze”, myślisz jak programista (cóż, jak większość programistów).
gablin
5
@SnOrfus: Nikt oprócz Jona Skeeta;)
back2dos
4
od jednego nooba do drugiego: Ćwiczenie jest kluczem!
Chani,
1
@Snorfus Założę się, że kilka osób to zrobiło! : P
Mark C

Odpowiedzi:

26

Twierdzę, że najlepszym sposobem jest poświęcenie na to więcej czasu (poszukiwanie reguły 10000 godzin). Znajdź coś, co chcesz zrobić, i przygotuj się, aby to zrobić. Wybierz coś, co wykracza poza twoją obecną zdolność, ale nie tak daleko, że nie będziesz w stanie ukończyć go w rozsądnym czasie. Jeśli naprawdę ci się to podoba, przekonasz się, że będziesz w tym naprawdę dobry. Jeśli ci się to nie podoba, być może nie jest to dla ciebie właściwe. Spróbuj się jednak zmierzyć, prawdopodobnie spodoba ci się.

WhiteFang34
źródło
Sugestia dotycząca reguły 10000 godzin wydaje się słuszna. Naprawdę intrygujące, ale który język powinienem wybrać, który byłby nadal odpowiedni i oferuje taką samą elastyczność nowych języków (na przykład: Gdybym nauczył się języka Java w pełni ze wszystkimi koncepcjami, byłbym w stanie przeprowadzić migrację do Scala, Processing, Clojure, itp. dość łatwo).
Ameen
11
Ameen: Nie martw się o inne języki. Naucz się jednego. Kontynuuj później, po 10 000 godzin pracy w Javie. Życie jest długie, jest wiele języków, nie nauczysz się ich wszystkich. Cały czas wymyślane są nowe. Naucz się teraz jednej rzeczy. Martw się potem o przyszłość.
S.Lott,
2
„niejasne spędzanie czasu” nie jest skuteczne.
Rein Henrichs,
1
Dobrą strategią jest również nauka języka programowania obiektowego i nauka funkcjonalnego języka programowania. Naucz się języka pisanego statycznie i języka pisanego dynamicznie. Będziesz dobrze zapracowanym programistą.
Chiron,
1
@BSeven Musisz zapoznać się z esejem Petera Norviga na temat „Naucz się programować za 10 lat” jest podobny do tego i rzuca mnóstwo światła na kilka głównych problemów, z którymi mają do czynienia początkujący użytkownicy programowania.
Ameen
16

Wysyłaj rzeczy . To jedyna droga. Zrób rzeczy. W pracy, twoje własne projekty, projekty open source. Zacznij wysyłać rzeczy. Mogą to być bardzo małe rzeczy, takie jak naprawa błędów lub minimalna funkcja rynkowa. Po prostu zacznij wysyłać rzeczy . Nic nie jest bardziej satysfakcjonujące lub budujące zaufanie niż sukces.

Edycja: powinieneś przeczytać Ship It . Wspaniale.

Edytuj ponownie: Doświadczenie w robieniu czegoś innego niż wysyłka to po prostu porażka. Widziałem wielu „starszych” programistów, których głównym doświadczeniem nie było wysyłanie rzeczy (i znajdowanie wymówek dla ich nie wysyłania). Wysyłamy prawdziwych artystów .

Rein Henrichs
źródło
12

„problem”, „nieadekwatny”, „uduszony”, „ograniczone umiejętności X”, „umniejszone”, „przygnębiony”, „niezdolność” w jednym zdaniu, wszystko skierowane do siebie sugeruje mi jakieś niezagojone rany z przeszłości wciąż bolesne ty. Jeśli znajdziesz sposoby na przezwyciężenie tych problemów, programowanie lub jakiekolwiek takie rzemiosło byłoby bardzo łatwe do opanowania. Być może pomogłoby tu czytanie o odporności innych ludzi. Każdy przeżywa bolesne chwile w swoim życiu. Gdyby te rany / rany nie zostały uleczone, ich sukcesy by nie przyszły. Najpierw ulecz swoje rany. Programowanie może poczekać na później.

Jeśli chodzi o umiejętności programowania, to jak uczę się nowego języka i zaczynam myśleć tak, jak inni, którzy już programują w tym języku, najpierw czytam wszystko, co mogę położyć na ręce, co jest związane z tym językiem. Następnie, gdy przeczytam wystarczająco dużo, zacznij pisać małe programy.

vpit3833
źródło
2
W tym samym duchu, jeśli chcesz zobaczyć kogoś, kto miał ten sam problem i społeczność gromadzi się wokół niego i jego problemów, koniecznie przeczytaj ten wątek Hacker News .
Wes Baker,
3
+1 za sugestię przeczytania dokumentacji i samouczków. Jeśli chodzi o pierwszą część, zgadzam się, że wiele ran nie zostało wyleczonych. (Co robi psycholog na tej stronie?) Ale niestety niektórych ran nie można wyleczyć tak łatwo, jak innych. Ale pogodziłem się z nimi i, szczerze mówiąc, wcale nie są tak uciążliwe, jak kiedyś. A bezczynność popycha mnie tylko do takich negatywnych myśli, a jedynym sposobem na to jest zajęcie się Kodowaniem itp. Bardzo dziękuję za sugestie, a ty, mój przyjacielu, zaskoczyłeś mnie swoimi umiejętnościami parapsychicznymi.
Ameen
@Wes Baker: Dziękuję bardzo za ten wątek Hacker News. Z pewnością mogę odnieść się do myśli OP (chociaż nie miałem tego tak źle). Ja (myślę) mam dość przyzwoitą wiedzę na temat systemów operacyjnych, architektury komputera, algorytmów, struktur danych, sieci komputerowych, kryptografii, hurtowni danych itp. (Chociaż muszę je wyostrzyć). Jak powiedziałem, znam wszystkie te przedmioty z teoretycznego POV i nie zrobiłem na tym praktycznych rzeczy. Z pewnością przejrzy ten wątek, a także wiele wspaniałych porad. Tyvm!
Ameen
@Ameen Przez „wszystko” nie ograniczam się do dokumentów i samouczków. Kod, który napisali inni, używane przez nich idiomy, błędy, wyjątki, itp., Napotykane przez innych oraz ich rozwiązania itp. W żadnym wypadku nie jestem medium ani psychologiem.
vpit3833
9

Kilka rzeczy, których naprawdę potrzebujesz, aby zacząć:

Wytrwałość: Zostanie dobrym programistą wymaga czasu. Musisz napisać dużo złego kodu, zanim napiszesz dobry kod - dużo złego kodu. Na szczęście masz zasoby, takie jak ta strona, które mogą Ci pomóc. Tak długo, jak poświęcisz się nauce programowania, będziesz w stanie szybko połączyć proste gry i narzędzia!

Cele: wyznacz sobie cele. Powiedz, jak nauczyć się używać STL w C ++ za dwa tygodnie. Zobacz, jak sobie radzisz. Jeśli zajmie to więcej czasu, śledź, o ile dłużej, pomoże ci to lepiej w przyszłości. Nauczyłem się tej sztuczki od współpracownika; potrafił oszacować, ile czasu zajmie mu prawie każde zadanie. Pomogło mi to śledzić, jak długo spędzam na osobistych projektach i pomaga mi utrzymać kontrolę nad balonami (nazywają to zarządzanie zakresem).

Ciekawość: musisz być zainteresowany i zaangażowany. Jeśli nie jesteś typem osoby, która nie podchodzi do problemów z chęcią znalezienia rozwiązania, początkowe programowanie będzie początkowo trudne, a debugowanie może być koszmarne. Ale tak wcale nie musi być. Jeśli masz problem, zapytaj w witrynach takich jak ten, zgłoś błąd w Google. Jeśli nie wiesz, jak coś zaimplementować, zapytaj! Zawsze są ludzie, którzy są gotowi pomóc!

Pewność siebie: bądź pewny siebie co do tego, co chcesz zrobić, i wystarczająco pewny siebie, aby zadawać pytania. Jeśli ktoś pokaże ci inny sposób zrobienia czegoś, nie bądź defensywny, ani nie narzucaj się sobie, że zrobiłeś źle; pomyśl o tym, gdy uczysz się innego podejścia do rozwiązania twojego problemu!

Przede wszystkim zachowuj pozytywne nastawienie, czytaj wiele samouczków i zadawaj wiele pytań, a będziesz szczęśliwym programistą! Kolejna rada, którą muszę udzielić, to wybrać język, trzymaj się tego, dopóki nie będziesz bardziej pewny siebie. Masz dużo czasu na naukę różnych języków, ale kiedy zaczynasz, po prostu pracuj z jednym.

Powodzenia! I pamiętaj, to ma być zabawne! = D.

bryanegr
źródło
Dziękujemy za wnikliwy wkład. Jednym z moich problemów zawsze był fakt, że (często) celowałem zbyt wysoko i padłem twarzą w twarz. Moja Podświadomość mogła przyjąć podejście „Spalony raz, dwa razy nieśmiały” i może blokuje moje próby naprawienia tego. Zawsze byłem ciekawy, ale brak mentora doprowadził mnie do zignorowania mojej ciekawości. I poważnie, SE z czasem wygląda na znacznie bardziej niesamowite, z pewnością przejrzę ten niesamowity zasób i osiągnę cel stania się prawdziwym programistą. Wielkie dzięki, poważnie nie mogę powiedzieć, ile dla mnie znaczy twój post.
Ameen
Chętnie pomogę! = D
bryanegr
Najlepszy cel: kod wysyłki!
7

W rozwoju wydaje się, że paradoks „im więcej wiesz, tym więcej wiesz, że nie wiesz” jest prawdą.

Jeśli jesteś miłą, uczciwą osobą, musisz zaakceptować ten fakt i nauczyć się sobie z tym radzić.

Zaufanie, w sensie sugerowanym przez pytanie, jest bardzo osobistą rzeczą, która naprawdę nie ma nic wspólnego z konkretnym zestawem umiejętności lub metodologią.

W bardziej płytkim tonie, sentyment opisany w http://www.kalzumeus.com/2011/10/28/dont-call-yourself-a-programmer/ (sekcja: radykalnie przeceniasz przeciętne umiejętności zawodów z powodu tłum, z którym się kręcisz) zawsze mi pomagał.

Sugerowałbym, abyś nauczył się być bardziej pewny swojej pracy, niż budować zaufanie do swoich umiejętności jako całości. Najlepszym sposobem na to jest napisanie powtarzalnych testów dla całego kodu. Działa cuda na twojej psychice.

smp7d
źródło
4

WhiteFang34 ma całkowitą rację. Jako biolog odkryłem, że jedynym sposobem, aby nauczyć się programowania, jest po prostu zacząć to robić. Przeczytaj kilka książek, miej zawsze pod ręką Google i SO i „po prostu zrób to”. Twoje programy będą na początku bardzo proste, źle zakodowane i zawierają błędy, a wraz z upływem czasu będziesz coraz lepszy. Nie mam czasu na lekcje programowania, ale spędzam dużo czasu na kodowaniu (bo fajnie to robić).

Wybierz język, który pozwoli ci więcej myśleć o tym, co chcesz zrobić, a mniej o tym, jak to zrobić. c nie jest tego bardzo dobrym przykładem. Wypróbuj języki wyższego poziomu, takie jak java lub c #, ponieważ pozwolą ci robić więcej, dzięki czemu zyskasz odwagę próbowania coraz więcej.

(To oczywiście zakładając, że nie zajmujesz się karierą jako profesjonalny programista, w takim przypadku powiedziałbym tylko, że wróć do szkoły ...)

Powodzenia i życzę szczęśliwego kodowania

PS: Och, a będziesz potrzebować dużo lenistwa, niecierpliwości i pychy

http://c2.com/cgi/wiki?LazinessImpatienceHubris

Aleadam
źródło
4

Zabawne jest to:

w umyśle programisty nie chodzi o komputer, język programowania,
wzorce projektowe czy algorytmy

Chodzi o zrozumienie subtelności prawdziwego świata, interakcję między rzeczami. Umiejętność myślenia abstrakcyjnego . Umiejętność zauważania i zapamiętywania rzeczy . To nieuchronnie prowadzi do dobrego rozwiązywania problemów.

Wdrożenie, sam kod przychodzi dopiero potem - po pomyślnym
rozwiązaniu danego problemu w twoim umyśle.

Arnis Lapsa
źródło
4

Zaufanie nie jest czymś, co powinieneś spróbować poczuć na temat swoich umiejętności. Zaufanie jest słabo (prawdopodobnie nawet negatywnie) skorelowane z faktycznymi umiejętnościami. Powinieneś pracować nad doskonaleniem swojego zestawu umiejętności zawodowych (lub cenionego hobby) bez względu na to, co myślisz o swoim obecnym poziomie umiejętności.

Zaufanie to coś, co inni ludzie, ci, których uważasz za kompetentnych, powinni poczuć swoje umiejętności po pracy z tobą lub po obejrzeniu pracy.

hotpaw2
źródło
3

To bardzo proste: zainteresuj się tym ! Wydaje się, że już jesteś, więc znajdź coś, co według ciebie byłoby fajne, a następnie zrób to, zadając wszelkie pytania, które potrzebujesz, po drodze, używając wszelkich dostępnych środków, aby ułożyć projekt tak, jak chcesz chcieć tego. Opłucz i powtórz, a okaże się, że jesteś świetnym programistą, nawet bez większego wysiłku, ponieważ po drodze było to interesujące / zabawne.

Ponadto zachowaj równowagę między rozwiązywaniem problemów a zadawaniem wielu pytań. Szczególnie na początku ogromną pomocą jest, aby inni mówili ci, gdzie się mylicie, aby w pewien sposób pobudzić Cię w pierwszej części krzywej uczenia się. Stamtąd postaraj się rozwiązać wszystko samodzielnie, a jeśli utkniesz po chwili, zadaj pytanie na ten temat. To, co często robię, to zamieszczam pytanie na SO, a następnie szukam odpowiedzi, od czasu do czasu sprawdzając SO. Czasami znajduję odpowiedź jako pierwsza, a czasem przede mną.

Nie martw się tak bardzo o to, która technologia, choć tworzenie grafiki za pomocą HTML5 + JavaScript + tag canvas może być naprawdę fajne, ponieważ konfiguracja jest łatwa, nagrody są natychmiastowe i możesz je udostępnić.

Claudiu
źródło
Dziękuję Ci bardzo. Jestem bardzo zainteresowany programowaniem (rozwiązuję problemy w głowie - i oczywiście algorytmy, schematy blokowe itp.) Wydaje mi się, że brakuje mi przywiązania do projektu i kontynuuję go i proszę o pomoc, kiedy utknąłem w ślepy zaułek. (wszystko to jednak musi się teraz skończyć :) Dzięki SE) Byłem również bardzo zainteresowany materiałami HTML5 + JavaScript (częściowe ładowanie strony - Mashable implementuje to w niesamowity sposób, ładowanie odpowiedzi na SE itp.). Naprawdę nie znam przyzwoitych zasobów, z których mogliby się uczyć (szkoły W3C podobno są szarlatanami; W3Fools tak mówi!)
Ameen
3

Podejdź do programowania z bardziej pozytywnym nastawieniem uczniów. Nikt nie wie wszystkiego. Po drugie, dowiedz się, dlaczego jesteś zainteresowany programowaniem, tak jak lubisz:

  • rozwiązywanie problemów
  • uczyć się nowych rzeczy
  • sprawiając, że komputer zgina się do woli
  • coś innego...

Kiedy wiesz, co lubisz w programowaniu, możesz skoncentrować swoje wysiłki edukacyjne w tym kierunku. Jestem majsterkowiczem / rozwiązuję problemy. To czyni mnie niezwykle pragmatycznym. Algorytmy i struktury danych, ogólnie teoria informatyki uśpiły mnie.

Moje pochodzenie jest podobne do twojego. Zacząłem budować komputery w wieku 10 lat. Czy trochę HTML / C ++ u moich nastolatków ... znudziło się nim ... przestałem na kilka lat. Jednak nigdy nie przestałem bawić się komputerem.

Teraz uwielbiam programować. Co się zmieniło? Znalazłem moją motywację. Zacząłem pracować tam, gdzie dostaję mnóstwo problemów do rozwiązania. Znalezienie sprytnych, prostych rozwiązań złożonych problemów naprawdę rozpala mój ogień.

Wreszcie, nie martw się o to, jak kodują inni, czy jest to „właściwe”, czy nie. Ma rację, jeśli robi to, co chcesz. Po rozpoczęciu pracy w zespole standardy stają się ważne. Wynika to w dużej mierze z faktu, że inne osoby będą musiały być w stanie interpretować i modyfikować twoją pracę. Standardy projektowania nie są czymś, o co powinien dbać nowy programista.

P.Brian.Mackey
źródło
3

Podczas uczenia się nowych rzeczy zawsze trzeba przezwyciężyć bezwładność. Ciekawi programiści, których znałem, mają trudności ze znalezieniem motywacji do dalszego uczenia się nowych języków i paradygmatów. Powiedzą: „Potrzebuję projektu, aby wypróbować X”. aby nauczyć się X. Kilku faktycznie znajdzie / wymyśli ten projekt.

Pamiętaj, że kariera programistyczna będzie procesem frustracji, nauki, eksperymentów i przechylania się przeciwko wiatrakom przez całe życie. Dopóki AI nie przejmie wszystkiego.

Jeśli nadal zajmujesz się prawdziwą nauką, powinieneś być w stanie wyobrazić sobie jakiś projekt / potrzebę. Na przykład łączenie danych z wielu źródeł w Internecie lub poza nim. To może zainspirować do nauki javascript lub R, a nawet Excel / VBA. Jeśli potrafisz połączyć kilka kropek dla innych w swojej dziedzinie, zostaniesz rozpoznany, i voila, będziesz programistą.

Używaj, ale uważaj na mentorów. Pytanie organ.

A tak przy okazji, „kodowanie zen” to oksymoron.

stevej
źródło
3

Nigdy nie będziesz pewny swoich umiejętności programistycznych.

Sposób, w jaki opisujesz swoje umiejętności, wskazuje na sposób myślenia, w którym nigdy nie będziesz zadowolony ze swoich umiejętności. Opanowałeś C ++? Poczekaj, jest Java! Opanowałeś Javę? Poczekaj na programowanie równoległe. Opanowałeś programowanie równoległe w C ++ i Javie? Poczekaj, jest SOA! Jest OOD! I MVC! SOLIDNY! Programowanie funkcjonalne! Programowanie sieciowe! Programowanie w chmurze! Programowanie mobilne!

Chodzi o to, aby nie czuć się przygnębionym z tego powodu. Musisz nacisnąć kilka przycisków w głowie: Twoje wątpliwości co do umiejętności są czystym paliwem. Prawdopodobnie nigdy nie osiągniesz satysfakcjonującego poziomu umiejętności programowania. Dopóki tak się stanie, będziesz iść do przodu. Trudność polega na uświadomieniu sobie tego i zrobieniu czegoś przeciwko niemu, chociaż nigdy nie będzie celu. Im dłużej wytrzymasz, tym wyższy będzie Twój poziom umiejętności.

Theo Lenndorff
źródło
Wow, to zupełnie nowy sposób patrzenia na to. Uwielbiam sposób, w jaki to ujmujesz, zawsze będzie coś, co będziesz chciał zrobić. Naprawdę powinienem zacząć przekształcać swoje negatywy w pozytywne. Wielkie dzięki. Doceniam to!
Ameen
3

Kiedyś czułem to samo i to właśnie strony Stack Exchange pomogły mi w uzyskaniu pewności siebie.

Zacząłem używać StackOverflow do znajdowania odpowiedzi na moje pytania i pewnego dnia zobaczyłem odpowiedź, na którą znałem. Zamieściłem odpowiedź, otrzymałem trochę głosów i komentarz, że była to dobra odpowiedź, i to zachęciło mnie do rozejrzenia się za innymi pytaniami, na które mógłbym odpowiedzieć.

Wkrótce stał się dla mnie uzależnieniem, znajdując pytania bez odpowiedzi, które mogłem rozwiązać, a wraz z upływem czasu zacząłem zdobywać zaufanie do swoich odpowiedzi. Nie musiałem już mówić „myślę, że to dlatego, że…” lub „To powinno powodować ...”, ale mogłem powiedzieć z pewnym przekonaniem, że „To dlatego, że ...” lub „To powoduje ...”

Lubię łamigłówki, a dla mnie SO pytania były jak mini-programowanie, z dodatkową korzyścią uzyskania pozytywnej opinii, jeśli otrzymam właściwą odpowiedź. Jeśli otrzymałem błędną odpowiedź, po prostu ją usunąłem i wyciągnąłem wnioski z rozwiązań innych osób dotyczących tego samego problemu.

Więc moim zaleceniem byłoby pójść na SO i przejrzeć pytania w dowolnym interesującym tagu i poszukać takich, na które według ciebie można znaleźć odpowiedzi. Nie ma nic lepszego niż ludzie, którzy powiedzą ci, że twoje odpowiedzi programistyczne są pomocne / dobre, aby dać ci pewność co do umiejętności programowania :)

Rachel
źródło
Jasne, muszę to zrobić. Ale moje ego włącza się i mówi: „Nie jesteś wystarczająco dobry, aby inni mogli coś robić, do cholery, nie jesteś nawet wystarczająco dobry, aby tu być”. Wiem, że to brzmi głupio i jak niektórzy tutaj o tym wspominali, może po prostu boję się stresować mój mózg, ale zrobię to. Bardzo dziękuję za sugestię i postaram się trzymać mojego nowego nawyku przeszukiwania SE w poszukiwaniu ciekawych pytań każdego dnia do rozwiązania. Dziękuję, że poświęciłeś mi czas i odpowiedziałeś na moje głupie pytanie. Bardzo to doceniam!
Ameen
3

Twój mózg nie lubi zbyt ciężkiej pracy. Biorąc pod uwagę wybór, woli wyjść na prostą. Dlatego łatwo jest zrezygnować z rzeczy, gdy próbujesz zmierzyć się z czymś zbyt ambitnym - zbyt wiele do nauczenia się, zbyt wiele drobiazgowych szczegółów, aby dojść do siebie, zbyt dużo golenia jaków.

Jest kilka rzeczy, które możesz zrobić, aby z tym walczyć. Po pierwsze energia. Staraj się ćwiczyć, kiedy jesteś wypoczęty i dobrze karmiony, albo twój mózg dosłownie nie będzie miał wystarczającej ilości paliwa do skomplikowanej abstrakcyjnej myśli. Druga sztuczka to zainteresowanie lub ważność. Jeśli potrafisz przekonać swój mózg, że wiedza o raju jest niezbędna do ucieczki przed goniącym cię tygrysem, nauczysz się i zatrzymasz więcej niż wtedy, gdy twój mózg myśli, że jest to bezsensowne zadanie poboczne na drodze do tego, czego naprawdę chcesz. Trzecim ważnym czynnikiem jest rozciąganie bez przesadzania. Trochę wysiłku da ci gwar od osiągnięć i pomoże ukształtować nowe ścieżki mentalne, nie będąc nieosiągalnym.

Jest też coś do powiedzenia na temat powtarzanej praktyki. Chcesz, aby wystarczająca różnorodność była nowatorska, ale wystarczająco dużo podobieństwa, abyś mógł wykonywać te same działania i je zakorzenić.

Kolejną kwestią jest to, że powinieneś spróbować zakasać rękawy i zabrudzić ręce. Łatwo jest poświęcić dużo czasu na myślenie o alternatywnych podejściach lub idealnym rozwiązaniu, o ile nigdy nie zaczniesz. To jest przykład twojego mózgu próbującego znaleźć łatwiejsze wyjście. Spróbuj rozpoznać, kiedy tak się dzieje, i unikaj tego, próbując zacząć. Nawet test lub eksperyment jest dobry. Ma to również dodatkową zaletę polegającą na tym, że twój mózg chce zakończenia wykonywania zadania lub znalezienia lepszego rozwiązania.

CPhelps
źródło
Wow, właśnie przybiłeś największego winowajcę, jakiego kiedykolwiek podejrzewałem. Mój mózg zawsze miał problem z przeziębieniem i przez większość czasu sabotowałem się. Zawsze wymyślam jakieś usprawiedliwienie, aby uniknąć robienia tego, co ważne. Muszę zostać hakerem i przestać się martwić monumentalnym niepowodzeniem z powodu przeszłych niepowodzeń. Muszę zhakować swoje życie, aby stać się kwintesencją „Tak, człowieku”. Dziękuję za wskazanie niektórych wad, które naprawdę musiałem zmienić, i mam nadzieję, że zrobię to jak najszybciej. Dzięki tona i nigdy nie mogę ci wystarczająco podziękować! Twoje zdrowie.
Ameen
2

Trzy rzeczy do rozważenia: (Lub nie, oczywiście).

  1. Ćwiczyć. Co jeśli porażka nie oznaczała nic więcej niż wskazanie, które ćwiczysz? Jeśli zrezygnowałeś z nauki chodzenia przy pierwszym upadku, nadal będziesz się czołgał.
  2. Graj z tym, co robisz. Gra polega po prostu na wypróbowaniu czegoś i zauważeniu, co się stanie. Porzuć ocenianie dobrych / złych wyników, po prostu graj i zobacz, co się stanie. Zrezygnuj z przywiązania do konkretnego wyniku, po prostu spróbuj czegoś i zobacz, co się stanie.
  3. Co jeśli nie jesteś jedynym programistą na świecie, który kiedykolwiek tak się czuł?
David Pointer
źródło
2

Jest tu wiele dobrych komentarzy na temat ćwiczeń, to naprawdę robi różnicę.

Powinieneś mniej martwić się o „blokady kodu” i posłuchać ich rad lub komentarzy dotyczących tego, czym są. Jeśli trudno sobie z nimi poradzić w wątku, prawdopodobnie trudno im też poradzić sobie w prawdziwym życiu; i naprawdę, kto ma czas martwić się o swoją społeczną nieudolność?

Rezultat końcowy jest taki, że istnieją tysiące sposobów podejścia do zadań programistycznych. Wiele rzeczy sprowadza się do osobistych preferencji. Nienawidzę na przykład czytać kodu z operatorami tenary. Inni je kochają. Czy myślę, że mają rację, czy nie? To osobiste preferencje, choć na ten temat odbędzie się wiele gorących debat.

Jeśli ktoś skrytuje twój kod, ponieważ wziąłeś 25 wierszy zamiast 20, zwykle zignoruję go, chyba że znajdzie rzeczywistą wadę logiki. Czasami w prawdziwym świecie musimy po prostu załatwić sprawę (a kto naprawdę chce usłyszeć, jak ktoś puchnie w klatce piersiowej na temat tego, jak skomplikowane ... eee, eleganckie, udało im się stworzyć kawałek kodu, który powinien był zostać wykonany w 10 minut) . Czy potrafisz nauczyć się czegoś z niekończących się debat filozoficznych na temat tego, jak daleko do rzeczy abstrakcyjnych? Jasne ... ale dochodzi do przygniatających zwrotów w ciągłym w 100% elegancji. To nie jest realistyczne przez cały czas, o ile chcielibyśmy udawać, że tak jest. Niektóre z moich najmniej eleganckich kodów, którymi chciałbym się z wstydzić dzielić z kimkolwiek (które napisałem na początku mojej kariery) oszczędzały ludziom tygodni na tygodnie,

Jest świetny post na blogu autorstwa Joela Spolsky'ego zatytułowany Duct Tape Programmer. To świetna lektura, a IMO przedstawia niektóre z twoich obaw w perspektywie.

http://www.joelonsoftware.com/items/2009/09/23.html

Nie mówię, żeby pisać bzdury i ignorować najlepsze praktyki, ale weźcie prymitywnych programistów z odrobiną soli.

b.pell
źródło
1

Zadaj sobie pytanie, dlaczego tak naprawdę czujesz brak pewności siebie. Myślę, że dzieje się tak dlatego, że zależy ci na tym, co myślą Twoi rówieśnicy, i to jest całkowicie zrozumiałe. Ale aby być naprawdę zen na ten temat, musisz oczyścić takie myśli i porównać się z czasem tylko do siebie. Kieruj się swoimi zainteresowaniami, ucz się i ciężko pracuj, a staniesz się dobrym programistą bez psychicznego BS.

Nie potrzebujesz tak naprawdę pewności siebie, ale mniej hałasu na drodze do postępu.

Kevin Hsu
źródło