Wiesz kim oni są. Są gwiazdami rocka programowania:
Kodują 10 razy szybciej.
Ich kod po prostu działa.
Nie tylko znają swój podstawowy język wewnątrz i na zewnątrz, ale także wiedzą, jak to działa pod maską.
Znają odpowiedź na większość pytań, zanim je zadacie.
Kilka z nich wymyśliło zasady programowania, których wszyscy używamy.
I są też nietypowo pokorni.
O co chodzi z tymi ludźmi? Czy jest coś w ich procesie myślowym, który zasadniczo różni się od ponadprzeciętnego programisty? A może są to po prostu bardzo utalentowani ludzie, którzy ciężko pracują?
Innymi słowy: jak mogę być taki jak oni? Wiem, co myślę, że muszę nauczyć się być tak dobrym, ale wydaje mi się, że nauczenie się tego zajmie mi następne dziesięć lat, a wtedy moja wiedza stanie się przestarzała.
źródło
try
.Odpowiedzi:
Humble: wyjątkowy programista nigdy nie twierdzi, że jego kod jest najlepszy, w rzeczywistości zawsze będzie szukał lepszego sposobu (za każdym razem, gdy go zdobędzie) .
Pacjent: wyjątkowy programista będzie miał nieograniczoną cierpliwość (nie oznacza to, że będą marnować dni na problem. Zobacz: Narzędzie do rozwiązywania problemów) .
Narzędzie do rozwiązywania problemów: wyjątkowy programista będzie w stanie rozwiązać problem w ciągu kilku minut, co może potrwać kilka dni dla przeciętnego programisty.
Ciekawe: wyjątkowy programista nie będzie w stanie oprzeć się próbie ustalenia, dlaczego coś się dzieje.
Inżynier: Wyjątkowy programista będzie raczej konstruował systemy, niż zbierał kombinacje ram (nie oznacza to, że nie będą używać ram) .
źródło
Uderzyłeś go dużo w swoim ostatnim punkcie kuli:
„I są też nietypowo pokorni”.
Myślę, że to połączenie pokory - nie tylko na zewnątrz, ale także w ich umysłach. Akceptują się w błędzie, popełniają błąd i bardzo szybko odwracają się od frustracji. Wielu programistów spróbuje czegoś, zawiedzie, a następnie bardzo szybko zostanie emocjonalnie doprowadzone do stanu, który jest przekleństwem pisania dobrego kodu. Musisz zaakceptować fakt, że nie jesteś idealny i że masz zamiar spieprzyć (często!) I że najlepszą rzeczą, jaką możesz zrobić, to nauczyć się, jak szybko dojść do siebie po tym, jak się popsułeś. To skromny zaufanie , jak „wiem, że jadę bałagan, ale wiem też, jeśli Próbuję, będę się tam dostać w końcu.”
W NLP jest powiedzenie: „Nie ma awarii, tylko informacje zwrotne”. Myślę, że aby zostać programistą gwiazd rocka, musisz się z tym pogodzić. Nie ma nic, czego nie można kodować. Na początku możesz być powolny, ale jeśli będziesz próbować i nie będziesz chciał przestać, gdy coś zawiedziesz lub coś spieprzysz, dostarczysz. I w tym procesie poznasz wszystkie mentalne sztuczki, których potrzebujesz, aby stać się jednym z najlepszych.
Porady są oczywiście tak dobre, jak ich źródło, więc ... wszystko tylko moja opinia.
źródło
Bardzo dbają o swój kod.
źródło
Osobiście najlepsi programiści, których znam / znałem, rozumieli podstawy i NIE byli ekspertami w żadnym języku. Po prostu mieli wystarczające doświadczenie we wszystkim. Kanoniczny „Jack of All Trades”.
To coś więcej niż nauka podstawowa, doświadczenie w rzeczywistych operacjach ma znaczną wartość. Przykłady, które rozumieją filozofię Unix, a tym samym mogłyby rozwiązać nieznane problemy za pomocą różnych narzędzi (IOW wiedzieli, gdzie szukać) znacznie przewyższają eksperta Java, który napisał rozwiązanie wątkowe i równoległe.
Wybitni programiści szanują także tych, którzy przyszli przed nimi. Nie nienawidzą relacyjnych modeli danych ani nie zbulwersują, gdy widzą SQL jako formalny interfejs API, ani nie krytykują FORTRAN w matematyce. Wiedzą, że OO to nie wszystko, a przede wszystkim rozumieją, że programowanie to SZTUKA, a nie nauka.
źródło
grep
,awk
,sort
, iuniq
może odpowiedzieć na wiele pytań. Jeśli maszperl
, jeszcze więcej!Kiedy zaczynałem, pracowałem z tym facetem, który moim zdaniem był absolutnie genialny we wszystkim, co robił w zakresie programowania. Prawdopodobnie nadal tak jest, ale teraz przeniósł się na stanowisko dyrektora firmy w SE Asia.
W każdym razie utrzymywał prostotę, a proste rzeczy działają. Nigdy nie chciał pisać więcej wierszy kodu niż to konieczne, wszystko, co właśnie zrobił, działało. Przez rok grałem w łapanie, żeby zbliżyć się do jego poziomu. Inną rzeczą jest czas. Robił rzeczy o wiele dłużej niż ja w tamtym czasie i miał okazję zadawać te dokładne pytania w kółko, dopóki nie poznał (pozornie) wszystkich odpowiedzi.
Nie bał się też zadawać pytań. Myślę, że to najważniejsze.
źródło
Matryca kompetencji programisty
Wiele tematów, które pomogą Ci określić swój poziom tematów programowania.
źródło
Odpowiedzi na to pytanie nauczyłem się w książce o pokerze Texas Hold'em, ale dotyczy to wszystkich frustrujących przedsięwzięć. Najlepsi koderzy nigdy nie przechodzą. Aktywacja Tilt to czas, w którym coś nie działa zgodnie z oczekiwaniami, a Ty reagujesz w sposób, który powoduje wykładnicze błędy w ogólnej aplikacji. W turniejowym pokerze powoduje to, że obstawiasz złe zakłady i znokautujesz.
Podczas programowania tilt powoduje wyciągnięcie włosów i napisanie niedorzecznych łatek kodu, które działają tylko w niektórych przypadkach twojej aplikacji. Tilt powoduje, że programiści ignorują potrzeby całego projektu, chwytając się natychmiastowej satysfakcji, aby rozwiązać natychmiastowy problem. Często problem rozwiązuje się dzisiaj, ale aplikacja cierpi jutro.
Najlepsi koderzy przyjmują koncepcję przechyłu i zarządzają nią w sposób, który pozwala im zawsze patrzeć na problemy z perspektywy zewnętrznej. Jeśli to się nie powiedzie, wypij trochę kofeiny.
źródło
Wyjątkowi programiści:
Dwie rzeczy o współczynniku „10x”:
źródło
większość z nich wygląda na zarezerwowanych i nic specjalnego ... niektóre z nich wyglądają na super inteligentne .. wolą sprawdzać / debugować rzeczy dwa razy ze wszystkich możliwych punktów widzenia, ich oprogramowanie jest bezbłędne na świecie: p IMO niektórzy programiści mogą działać wolniej, ale jakość jest lepsza, nawet zwykli ludzie mogą zrozumieć, jak działa ich oprogramowanie!
mam przyjaciela, który napisał swój pierwszy program ASM w wieku 10 lat, teraz ma 24 lata, nie ukończył uniwersytetu, ale to nie powstrzymało go przed założeniem własnej firmy, zarabianiem milionów :) ale z tego co widzę jest zręczny we wszystkim :)
wyjątkowi programiści najprawdopodobniej powiedzieliby, że ten kod można zakodować w inny - lepszy sposób, niż twierdzić, że jest całkowicie błędny i ma niższą reputację innych programistów :)
„O co chodzi z tymi ludźmi? Czy jest coś w ich procesie myślowym, który zasadniczo różni się od ponadprzeciętnego programisty? Czy są to po prostu bardzo utalentowani ludzie, którzy ciężko pracują?”
myślę, że urodzili się w ten sposób, jest w ich DNA: pi nie wie o swoim procesie myślowym, ale najlepszy programista, jakiego znałem, cierpiał na epilepsję
źródło
Niewiele rzeczy odróżnia wyjątkowość od typowego.
Wyjątkowy:
Bardzo pasjonuje się swoją pracą i stara się dostarczyć arcydzieło.
Wydajność i jakość są w ich oczach najważniejsze, jeszcze przed rozpoczęciem kodowania.
Myślą o ciągłej poprawie po każdym wydaniu.
Czuwają nad alternatywami i wcześnie przyjmują.
Ich tematem w życiu zawodowym jest: „Napisz mniej, przekaż więcej”.
Myślą o logicznych perspektywach, nawet gdy nie kodują.
Typowy
Czasami trochę namiętnie, ale staraj się dostarczać, ponieważ w końcu jest to praca. Jeśli nie jest to arcydzieło, jest OK. Przynajmniej dostarczone na czas.
Pomyślę o wydajności później, w każdym razie komputery są wystarczająco szybkie w dzisiejszych czasach.
Popraw tylko wtedy, gdy nie ma już opcji zapisania zlecenia.
Nie ma czasu na zagłębianie się w inne technologie. Trzymaj się tego, czego wymaga Twoja praca. Dowie się innych rzeczy, gdy zajdzie taka potrzeba.
Ich temat brzmi: „Rób to, o co cię prosi i dotrzyj do domu na czas”.
źródło
Wyjątkowi programiści stosują Spartańskie Zasady .
Obraz przyciągający uwagę:
Ten artykuł: http://willcode4beer.com/design.jsp?set=codeReduction
A ten cytat:
źródło
Autopromocja i mam na myśli to w najlepszy możliwy sposób. Posiadanie pracy takiej jak programowanie, szczególnie w zespole, oznacza, że nie jest od razu oczywiste, gdzie twój osobisty wkład pasuje do dużego obrazu lub kto był za co odpowiedzialny. Ludzie, o których słyszymy i o których dowiadujemy się jako „wielcy programiści”, to IMO, którzy opanowali sztukę ujawniania swojego wkładu bez wyrażania egoizmu i egocentryzmu. W wielu przypadkach dzieje się tak poprzez tworzenie narzędzi, bibliotek i oprogramowania, na których reszcie z nas polega zarabianie na chleb powszedni.
źródło
1. - Wiedzą, co uciąć, gdy staną w obliczu martwej linii.
źródło
Bardzo dobry powiązany artykuł: The Free Electron (from randsinrepose.com)
Przepraszam, że nie streszczam tutaj artykułu, ale te kwestie nie są łatwe do oddzielenia od prozy.
źródło
Programują wyłącznie intuicyjnie. Nie trzeba myśleć, że po prostu płynie .
źródło
Wyjątkowi koderzy mają wpływ na projekt wykraczający poza zakres własnego kodu i wykrywają problemy, zanim się pojawią, ze względu na swoje doświadczenie. Sprawiają, że wszyscy w zespole są lepsi i oszczędzają swoje projekty przed złym projektowaniem i zarządzaniem.
Stworzyli coś wyjątkowego.
źródło
To będzie. Udało ci się już ustalić, że ci faceci są 10 razy szybsi, dlatego uczą się tego w ciągu 1 roku i zajmuje ci 10. Jeśli chodzi o poważną część odpowiedzi, myślę, że są już bardzo mądrzy (mogą odnieść sukces w cokolwiek), uwielbiają kodować i z jakiegoś powodu mają (lub znajdują) mnóstwo wolnego czasu na ćwiczenie kodowania lub pracę nad osobistymi projektami.
Jeśli zadajesz to pytanie tutaj, prawdopodobnie nie masz tego, czego potrzeba (nie martw się, odpowiadam tutaj, więc prawdopodobnie też nie mam). Nie przejmuj się, choć nadal możesz być szalony, jeśli lubisz kodować.
źródło
Istnieje wiele postów o dobrych intencjach na temat pokory, inżynierii, pasji, pacjenta i narzędzia do rozwiązywania problemów. IMO to wszystko jest wymagane. Opisują jednak 30% najlepszych programistów.
Myślę, że pytasz o naprawdę wyjątkowych programistów, najwyższy 1%.
Jedną z rzeczy, których zazdroszczę sporadycznym, bardzo rzadkim talentom, z którymi pracuję, jest ich zdolność do trzymania w głowie bardzo dużej ilości szczegółów dotyczących złożonego systemu w jednym czasie i aby móc szybko go przywołać. Myślę, że mogę to zrobić czasami, może raz w miesiącu, kiedy naprawdę jestem w strefie. To uczucie jest cudowne. Deweloper, o którym myślę, wydaje się być w tej strefie przez większość czasu .
Ta jedna cecha, IMO, oprócz pokory, ciekawości, inżynierii, pasji, cierpliwości i umiejętności rozwiązywania problemów, czyni je naprawdę wyjątkowymi.
źródło
Ogromne jest posiadanie jakości motywacji i samostanowienia, a także chęć wkroczenia w otchłań nieznanego i czucia się komfortowo przy absolutnym zagubieniu w ramach tego procesu. Nie chodzi o początkowe spryty, jak mogłoby się wydawać, ponieważ mózg staje się znacznie lepszy w rzeczach, które zawsze robi i myśli. Przyszedłem z niczego na studiach, a potem po prostu z powodu wytrwałości stałem się bardzo zamożny, nigdy się nie poddając, będąc tym facetem, który miał problem, gdy wszyscy inni mieli już dość tego, żeby to rozgryźć. Po tego rodzaju uporczywości problemy stały się coraz łatwiejsze - od noobu na studiach po zawstydzanie większości z nich w tym momencie. Sam talent nie wystarcza i czasami może spocząć na laurach.
Ponadto, Robertowi Harveyowi, nie przestajesz robić moich postów, kiedy wspominam o moim systemie CMS, który napisałem od zera. Widzisz kilka innych list, które mogą, ale nie napisały, linki. Popychasz ludzi, którzy są zmotywowani, co jest ironiczne, że to opublikowałeś. Jesteś „człowiekiem” w tym małym wszechświecie i nie czytasz rzeczy na ich zasługach, a raczej grzebię i usuwasz według własnego kaprysu. Za bardzo kochasz Gwiezdne Wojny i prawdopodobnie machasz ręką w kierunku automatycznego otwierania drzwi w sklepie spożywczym, jakbyś miał moc.
źródło