Kiedy możesz nazywać siebie dobrym językiem X?

30

To wraca do rozmowy z moją dziewczyną. Próbowałem jej powiedzieć, że po prostu nie czuję się wystarczająco dobrze w moim języku programowania (C ++), aby nazwać siebie dobrym. Potem zapytała mnie: „Kiedy uważasz, że jesteś wystarczająco dobry?”

To interesujące pytanie. Nie wiedziałam, co jej powiedzieć. Więc pytam cię.

W jakimkolwiek języku programowania, frameworku itp., Kiedy osiągniesz punkt, w którym usiądziesz, spójrz na to, co zrobiłeś i powiedz: „Hej, naprawdę jestem w tym całkiem dobry”. Jak definiujesz „dobry”, aby móc szczerze powiedzieć innym: „Tak, jestem dobry w X”.

Ponadto, czy wyciągasz te wnioski, porównując, co mogą zrobić inni?

Dodatkowe informacje

Przeczytałem artykuł kanoniczny o tym, jak zajmuje dziesięć tysięcy godzin, zanim staniesz się ekspertem w tej dziedzinie. (Rekwizyty dla każdego, kto wie, jak nazywa się ten papier ponownie)

Czytałem także różne artykuły z Coding Horror o przeprowadzaniu wywiadów z ludźmi. Mówiono niektórym osobom: „Nie można funkcjonować poza ramami”. Mogą więc być „dobre” dla tego frameworka, ale nie inaczej w języku. Czy to prawda?

SoulBeaver
źródło
2
O ile mi wiadomo, cała zasada 10 000 godzin pochodzi z książki „Outliers”?
Jaco Pretorius
7
Reguła 10 000 godzin była badana / wspierana głównie w pracy K. Andersa Ericssona, pioniera stosunkowo nowej dyscypliny psychologii „badań nad wydajnością człowieka”. W szczególności jego praca z 1993 r. „Rola celowej praktyki w zdobywaniu wyników ekspertów” jest przełomowym odniesieniem w tej dziedzinie. Zobacz wpis Google Scholar tutaj: scholar.google.com/…
limist

Odpowiedzi:

41

W X nie możesz nazywać siebie dobrym. Tylko inni ludzie mogą.

P Shved
źródło
17
Chociaż tylko dlatego, że inni mówią, że jesteś dobry w X, nie gwarantuje, że jesteś dobry - tylko to, że jesteś lepszy od nich. (Chyba że ci inni ludzie udowodnili wiarygodność X.)
Peter Boughton,
Nie zgadzam się, więc i -1. Tylko dlatego, że się nie zgadzam i uważam, że głosowanie jest za wysokie.
3
Obawiam się, że tak naprawdę nie rozwiązuje to problemu: dokładna samoocena jest niezbędna dla naszej dziedziny i nie oferuje w tym zakresie pomocy.
cwallenpoole,
@cwallenpoole: Nie zapomnij efektu Dunninga-Krugera . Co więcej, czy nie jesteś pod większym wrażeniem, gdy wiele osób mówi, że „X jest naprawdę dobry w Y”, niż gdy X twierdzi, że jest kompetentny?
Jonathan Merlet
38

Jest już kilka dobrych odpowiedzi na to pytanie, więc po prostu przyczynię się do tego:

alternatywny tekst

Fishtoaster
źródło
15
Nie jestem pewien, czy rzeczywiście można bezpiecznie zastąpić swoje poprzednie ja, prawda? ... może powinienem zapytać na timetravel.stackexchange.com
John MacIntyre
9
@John MacIntyre - Ten link sprawia, że ​​standardowy komunikat o błędzie „Nie znaleziono” wydaje się proroczy: „Strona pytań i odpowiedzi timravel.stackexchange.com jeszcze nie istnieje…”.
Nicole
3
Czy zabicie przeszłości z przeszłości nie sprawi, że znikniesz, skoro jesteś z przyszłości?
Terence Ponce,
3
Zastąpienie swojego starszego ja nowym ja spowodowałoby niezdefiniowane zachowanie . ;-)
P Shved
2
Po prostu zatrzymałbym się przed dniem 14611, wypiłam miksturę odwracającą wiek i nie musiałem męczyć się cofaniem w czasie i ryzykować zniknięciem.
chiurox
10

Jeden jest w czymś dobry tylko wtedy, gdy może śmiało i poprawnie powiedzieć, że może to zrobić.

Na przykład, jeśli chcesz powiedzieć, że jesteś dobry w C ++, powinieneś być w stanie powiedzieć z pewnością i uzasadnieniem, że biorąc pod uwagę ogólny problem z C ++, możesz go rozwiązać.

To odróżnia cię od zarozumiałości , co oznacza, że ​​możesz śmiało powiedzieć, że możesz coś zrobić bez wystarczającego uzasadnienia; i doświadczony , co oznacza, że ​​możesz coś zrobić, ponieważ robiłeś to w przeszłości.

użytkownik 8
źródło
6

Mówiąc pokrewnie, chociaż myślę, że ruch Software Craftsmanship to doskonały pomysł, aby pomóc w poprawie standardów w naszej dyscyplinie, widziałem wielu ludzi określających się jako rzemieślnicy oprogramowania, co w większości przypadków wydaje mi się trochę aroganckie.

Twoi rówieśnicy decydują, czy jesteś w czymś dobry (lub rzemieślnikiem); Jestem pewien, że Einstein i Feynman nie włóczyli się wcześnie po karierze, mówiąc: „spójrz na mnie, jestem geniuszem!” Podobnie od twoich rówieśników zależy, czy jesteś dobry, czy nie.

Stackoverflow to przydatne narzędzie do decydowania, czy jesteś kompetentny. Wybierz pytania w swojej dziedzinie rzekomej wiedzy specjalistycznej. Odpowiedz na nie (lub jeśli już na nie odpowiedzieli, odpowiedz im w głowie, nie zerkając na opublikowane odpowiedzi). Myślałeś o najlepszej odpowiedzi? Tęskniłeś za czymś? Czy po prostu się myliłeś?

Paddyslacker
źródło
Moim zdaniem rzemieślnicy oprogramowania piszą asemblery, kompilatory, konsolidatory i programy ładujące.
Chris
3

Ponieważ nie ma znormalizowanego testu programistycznego, który można wykonać, który pozwoli wszystkim zgodzić się na to, że jesteś dobrym programistą, od ciebie zależy, czy tak się nazywasz, czy nie.

Uważam, że ma to związek z twoim poziomem zaufania. Jeśli czujesz, że jesteś w czymś dobry, powinieneś być w stanie to powiedzieć. W pewnym momencie ukończysz projekt, który cię popchnął, a to uczucie zmieni się z „jeszcze nie” na „Jestem”.

Walter
źródło
2

Wiem, że to dość trudne pytanie. Zrobiłem dwa przedmioty, w których głównie programowałem w C ++ i uzyskałem wysokie wyróżnienia w obu. Nie uważałbym się za dobrego w C ++. W rzeczywistości, gdybym ubiegał się o pracę, odrzuciłbym go z mojego CV i zamiast tego napisałem C. Cały język po prostu nie jest moją rzeczą.

Casebash
źródło
2

Myślę, że możesz nazywać się dobrym w czymś, kiedy rozwiniesz wymaganą wiedzę, aby móc spojrzeć na siebie z perspektywy innej osoby, a następnie ustalić, czy jesteś dobry. Innymi słowy, powinieneś mieć silne umiejętności „meta”.

Na przykład jestem pisarzem hobbystycznym, a patrząc na własne teksty mogę powiedzieć:

  • jakie aspekty są dobre i dlaczego
  • jakie aspekty są złe i dlaczego
  • co muszę zrobić, aby poprawić złe, i dlaczego
  • które złe aspekty są specyficzne dla tekstu pisanego i które są symptomem moich umiejętności
  • jakie są elementy, które inni mogą krytykować i dlaczego
  • które krytyki nie dotyczą mojego konkretnego utworu, nawet jeśli inni mogą je wypowiedzieć i dlaczego

itd. itp. Z tego powodu uważam, że mam kwalifikacje do decydowania, czy jestem dobry w pisaniu, czy nie. To samo dotyczy X.

EpsilonVector
źródło
1

Ponieważ dobro jest bardzo subiektywne, powiedziałbym, że jesteś dobry dokładnie wtedy, gdy masz pewność, że jesteś świetny.

Brian R. Bondy
źródło
1

Możesz twierdzić, że jesteś „dobry” w czymś, skoro robisz to wystarczająco długo, że już dawno zapomniałeś, jak zrobić cokolwiek innego.

Dan Molding
źródło
1

Jedyny raz, kiedy możesz być pewien, że jesteś w czymś dobry, to kiedy jesteś pewien, że jesteś w tym zły.

John Cleese mówił o tym: O 9:00 http://www.youtube.com/watch?v=zGt3-fxOvug

Jethro Larson
źródło
1

Za każdym razem, gdy myślałem, że jestem dobry w programowaniu w konkretnym języku, sześć miesięcy później byłem przekonany, że w tym czasie byłem do niczego, a teraz byłem w tym dobry. Myślę, że to termin względny. Może lepiej byłoby nazwać siebie „wystarczająco dobrym, aby zrobić Y”, gdzie Y jest konkretnym projektem w tym języku.

RationalGeek
źródło
1

Kiedy możesz spojrzeć na kod źródłowy czegoś takiego jak boost (w c ++. Lub odpowiednik boost w innym języku) i NIE Bój się tego.

użytkownik2528
źródło
1

Kiedy zaczniesz wyobrażać sobie, jak oprogramowanie, którego szukasz, zostało napisane w tym języku.

aredkid
źródło
1

Wiesz, że jesteś w tym dobry , kiedy lubisz to, co robisz (i nie jest to tylko trywialne zadanie) .

Wiesz, że jesteś zły (jeszcze), kiedy ciągle przeklinasz podczas pisania kodu.

Camilo Martin
źródło
2
Kusi mnie -1 do tego. Pracowałem z systemami, które były tak źle połączone, że prawie można je uznać za niedeterministyczne. Czy kiedykolwiek próbowałeś zbudować interfejs użytkownika w języku niedeterministycznym? Inspiruje przekleństwa.
cwallenpoole
@Christopher dobrze spędzam większość czasu przeklinając nowe rzeczy, ale stopniowo przyzwyczajam się do tego lub koduję coś, co mi pomoże. Jeśli nienawidzisz tego, co robisz, może uda ci się wyjść z domu i poczuć najmądrzejszego faceta w budynku, co? :)
Camilo Martin
0

Często nie mówię, że jestem dobry w X, ale raczej, że jestem szybkim uczniem i mam potencjał, by być dobrym w X.

Mosze
źródło
0

Nie jestem pewien co do „dobrego”, ale mówię, że „znam” język, kiedy to nie moja znajomość języka, ale raczej moje rozumienie problemu (lub domeny problemu), co uniemożliwia mi wdrożenie oprogramowania, aby rozwiązać ten problem problem.

mipadi
źródło
0

Myślę, że artykuł, którego szukałeś, to „Naucz się programowania w ciągu 10 lat” autorstwa Petera Norviga, który mówi o tym, że potrzeba około 10 000 godzin, aby stać się dobrym w czymś. Ponadto widziałem, jak pojawia się w innych miejscach, takich jak „The Element” Kena Robinsona i na blogu lifehackera, mówiącym o zmniejszeniu liczby hobby.

Jeremy
źródło
0

Mam zamiar wziąć udział w tym pytaniu i zadać pytanie „jakie są kryteria oceny moich kompetencji w języku programowania”

Uważam, że ta matryca jest bardzo przydatna pod tym względem. Większość przedmiotów dotyczy w zasadzie bycia kompetentnym programistą, ale kiedy przejdziesz do nagłówków Programowanie, Doświadczenie lub Wiedza, zobaczysz niektóre, które zależą od używanego języka.

Oczywiście, jak w przypadku dowolnych, nieco arbitralnych podziałów na kategorie, nie jest idealny. Myślę jednak, że jest to całkiem przydatne. Może dać ci przynajmniej pojęcie o tym, gdzie jesteś i dokąd powinieneś się udać.

Nick Knowlson
źródło