Jak znaleźć mentora programowania? [Zamknięte]


46

Postanowiłem nauczyć się programowania. Czytam SO od kilku dni i myślę, że zacznę od C ++, ponieważ czytam kilka artykułów. Zdaję sobie sprawę z pętli, tablic, logiki programu i obiektów i potrzebuję kogoś, kto by mnie przejrzał i pomógł mi z małymi pytaniami, które otrzymuję przy pierwszych projektach.

Oto pytanie - gdzie znajdę takiego faceta? Nie mam żadnych przyjaciół, którzy by programowali.

EDYCJA: 2 lata później wciąż szukam mentora. Nie kodowałem aktywnie dopiero od 3 miesięcy. Pracuję nad programowaniem Objective-C i iOS oraz programowaniem gier za pomocą Cocos2d. Jeśli chcesz zostać moim mentorem, napisz lub skomentuj.


1
kup też dobrą książkę dla początkujących w wybranym języku
Demian Kasier

2
Po prostu spotykaj się z tymi użytkownikami . Zaoferuj im piwo lub dwa. Przeczytaj ich posty. Zadawaj im pytania.
WernerCD,

1
Oto lista nazwisk (i map), które podpisały Manifest Software Craftsman: manifesto.softwarecraftsmanship.org
gąbka

1
Moja odpowiedź była trochę głupia, ale zalecam naukę JavaScript lub Pythona, gdy uczysz się bardziej ścisłego języka. Oba paradygmaty mają zalety, w zależności od tego, co robisz, ale w „luźniejszych” językach możesz wypróbować różne rzeczy bezpośrednio w konsoli, aw przypadku JS - rozkręcić układ strony internetowej i zachowanie interfejsu użytkownika od razu narzędzi programistycznych Chrome. Ponadto funkcje, które można przekazać w params; ludzie, którzy kupa kupa, nawet nie wiedzą i nigdy nie będą (dziękuję, jeebusie, ponieważ pracowałem z tymi facetami); są nieprzyzwoicie potężne.
Erik Reppen

1
Dwa lata później wszystko, czego potrzebujesz, to dyskoteka. Czy jesteś na to gotowy?
ott--

Odpowiedzi:


31

Dołączenie do projektu typu open source jest z pewnością jednym ze sposobów na rozpoczęcie pracy. Jednak od lat używam oprogramowania typu open source i szczerze mówiąc, jakość prawie wszystkich takich projektów jest zazwyczaj w toalecie. Jeśli nauczysz się całkowicie swoich umiejętności programowania i projektowania, prawdopodobnie wybierzesz bardzo słabe i dobre, bez możliwości odróżnienia ich.

Czego chcesz nauczyć się programowania ? Odpowiedź na to pytanie określi, czego należy szukać i gdzie. Oto kilka typowych odpowiedzi i moja profesjonalna opinia na temat tego, jak je realizować (pamiętaj, że to tylko opinia, choć IMHO, dokładna):

Wystarczy powiedzieć, że wiesz, jak to zrobić.

Zatem tak naprawdę nie potrzebujesz mentora, a C ++ jest kiepskim miejscem do rozpoczęcia. Uwielbiam C ++, to mój pierwszy wybór do programowania ogólnego, ale zamiast tego gram w innym języku. Sugerowałbym Python; ma znacznie łagodniejszą krzywą uczenia się niż C ++, i w przeciwieństwie do niektórych języków (nie wymieniono żadnych nazw, nie nosiłem dziś mojej bielizny z azbestu), nadal nauczysz się kilku przydatnych umiejętności, na wypadek, gdybyś chciał później się do niej dostać. Wiele pojęć można przetłumaczyć bezpośrednio na C ++, jeśli zdecydujesz się kontynuować tę trasę.

Wystarczy wypróbować i sprawdzić, czy ci się spodoba.

Projekt open source może być do tego wystarczający. Wybierz program, który Ci się podoba, ale z którym masz problemy lub podrażnienia, i zaoferuj swoją pomoc każdemu, kto go uruchamia. Większość projektów typu open source jest otwarta na wkład, dlatego generalnie są one przede wszystkim typu open source.

Jednak w takim przypadku nie wypróbuj C ++ jako pierwszego języka programowania. Opanowanie podstaw nie jest trudne, ale C ++ jest na tyle niskim poziomie, że możesz uzyskać poważne i bardzo trudne do znalezienia błędy w swoich programach. Jeśli nie wiesz, że lubisz programować, jesteś uparty jak przysłowiowy wół lub nie znalazłeś mentora, który może skierować cię w dobrym kierunku, co zabije wszelkie zainteresowanie, jakie możesz mieć w tej dziedzinie. Zobacz powyższą odpowiedź na temat Pythona, lepiej się do tego nadaje.

Ponieważ masz pomysł na konkretny program, który chcesz napisać.

(Nie sądzę, że OP należy do tej kategorii, umieszczam go dla późniejszych czytelników.)

Czy masz pojęcie o czasie potrzebnym do opanowania projektowania i wdrażania programu? Podpowiedź jest mierzona w latach. Być może będziesz w stanie wymyślić pół przyzwoity projekt po zaledwie kilku miesiącach studiów, jeśli jesteś zarówno mądry, jak i wyjątkowo szczęśliwy, ale każdy z małym doświadczeniem, który musi nad nim popracować (w tym ty, później), będzie żałuję, że nigdy się nie urodziłeś - mówię z doświadczenia. :-) Jeśli ten pomysł nie jest tak bardzo tajny, że nikt inny nie może się o nim dowiedzieć, dopóki nie zostanie zrealizowany, nie przejmuj się. Zatrudnij doświadczonego programistę, który zrobi to za Ciebie, lub jeśli nie możesz sobie na to pozwolić, ale nadal chcesz wystarczająco mocno programu, zaoferuj partnerstwo z jednym - zajmujesz się stroną biznesową i pozwalasz mu zająć się częścią programistyczną. Większość dobrych programistów wolałaby programować, więc taka oferta może być dla nich tego warta.

Ponieważ już wiesz, że fascynuje Cię programowanie i chcesz dowiedzieć się więcej.

Zatem jesteś na właściwej drodze. :-) Niezależnie od tego, czy jest to hobby, czy może coś, co później możesz zmienić w karierę, jeśli masz osobowość, która jest dla niego nieskończenie fascynująca, najlepszą rzeczą, jaką możesz zrobić, to zanurzyć się w nią. W takim przypadku C ++ jest tak dobrym językiem, jak każdy, a mentor na pewno pomoże (i nie tylko rozwija umiejętności; może stać się samotny bez przyjaciół, którzy podzielają twoją pasję).


4
Pytanie brzmiało, jak znaleźć mentora, a nie czy powinien / powinien go szukać.
marktani

4
Odpowiedź pierwotnie zawierała ofertę mentora dla każdego, kto był naprawdę zainteresowany C ++. Po pozyskaniu ośmiu osób, które twierdziły, że są naprawdę zainteresowane, ale których nie przeszkadzało kontynuowanie rozmowy, usunąłem tę ofertę.
Head Geek

23

Aby znaleźć mentora, nie szukaj mentora. Spróbuj poprawić się na konkretne sposoby. Jeśli wystarczająco ciężko pracujesz, aby się poprawić, oboje zauważysz, że masz kontakt z podobnie myślącymi ludźmi i odkryjesz, że masz coś wspólnego z tymi ludźmi.

Grupy użytkowników są prawdopodobnie miejscem znalezienia mentora, ale nikt nie chce pomóc komuś, kto tam jest, myśląc „Szukam mentora”. Ale jeśli zastanawiasz się: „Chciałbym, żeby ktoś pomógł mi nauczyć się pisać dobre testy jednostkowe JavaScript” lub „Chciałbym sparować się z kimś i przetestować kata w Clojure”, wcześniej czy później znajdziesz kogoś, kto podziela twoje zainteresowania i jest nieco dalej.


14

Ludzie, którzy tworzą naprawdę dobrych mentorów, zwykle mają kilkunastu juniorów, którzy w danym momencie narzekają na swój czas. Tak więc „znalezienie” odpowiedniego mentora to dopiero początek, musisz uczynić mentoring bardziej atrakcyjnym / satysfakcjonującym niż mentoring kogoś innego.

Pierwszym krokiem jest dołączenie do społeczności, w których prawdopodobnie spotkasz dobrych mentorów.

Krok drugi to zostać wartościowym podopiecznym. Niektóre rzeczy, których osobiście szukam u podopiecznego to:

  • Inteligencja bliska, równa lub większa niż moja.
  • Zainteresowanie rzeczami, które mam do zaoferowania, i lubię uczyć.
  • Kompatybilność osobowości (tzn. Dobrze się dogadujemy, lubimy ze sobą rozmawiać).
  • Chęć bycia wartościowym dla projektu / społeczności, w której mu mentuję, poprzez:

    • Pisanie kodu
    • Pisanie dokumentacji
    • Wykonywanie scut działa jak segregowanie w kolejce, usuwanie komentarzy itp.
    • Pomaganie mniej doświadczonym współpracownikom
  • Zgodność z moim zwykłym obiegiem pracy.
  • Umiejętność uczenia mnie rzeczy. Bycie bardziej doświadczonym niż ktoś nie wyklucza uczenia się od nich. Najlepszy podopieczny ma talent do zadawania właściwych pytań, świeżego punktu widzenia lub doświadczenia poza moimi obszarami wiedzy, z których mogę się uczyć.

12

Dołącz do projektu open source. Niekoniecznie musisz też dla nich programować. Większość projektów chętnie poprosiłaby kogoś o pomoc w dokumentacji. Możesz spojrzeć na kod i zadawać pytania. Kiedy poczujesz się komfortowo, możesz zacząć pisać dla nich kod.


1
Ok, może zabrzmi głupio, ale jak dołączyć do projektów typu open source? Jaka jest najlepsza strona internetowa do odwiedzenia?
Pan Ant

1
gnu.org/help lub niektóre repozytoria kodu open source (kod Google, github ...). Poszukaj interesującego projektu, w którym brakuje ludzi do przekazania dokumentacji i wysłania wiadomości e-mail.
cbrandolino,

2
Jestem głęboko przekonany, że nie ma głupich pytań. Chociaż istnieje wiele witryn z projektami typu open source, sourceForge jest nadal jednym z najpopularniejszych.
Jim C

1
@Ant: najlepszym projektem typu open source do pracy jest program, którego zwykle używasz lub którego spodziewasz się użyć.
Larry Coleman

7
-1: Dołączenie do projektu systemu operacyjnego jest dobrą odpowiedzią, ale zdecydowanie nie na tym etapie nauki (tj. Dzień 1). To nurkowanie w głębokim końcu, zanim jeszcze zmoknie. Ustrukturyzowane uczenie się za pomocą książek lub zajęć jest znacznie lepszym pomysłem.
Steven Evers,

6

Czego oczekujesz od mentora? Sugestie dotyczące projektu typu open source lub lokalnej grupy użytkowników mają na celu bardziej skupić się na tworzeniu sieci kontaktów i znalezieniu kogoś, kto jest kilka kroków dalej od tego, czym chcesz być, aby pomóc ci w pewnym zakresie. Pomyśl o tym jako o próbie uczenia się gotowania od Jamiego Olivera lub Gordona Ramsaya, może być całkiem zabawna i przydatna pod koniec dnia.

W zależności od twoich oczekiwań znalezienie mentora może być łatwe lub niezwykle trudne. Jeśli oczekujesz, że ktoś umie czytać w twoich myślach i da ci krok po kroku sekrety bycia niesamowitym za rok lub krócej, może to nie być realistyczne. Jednocześnie, jeśli chcesz znaleźć kogoś, kto może zrobić coś lepszego od ciebie, może to nie być takie trudne. Najpierw dowiedz się, jakie są twoje oczekiwania.

Po drugie, skoro już wiesz, czego chcesz, musisz to znaleźć. Może to być dość trudne, ponieważ nie jest tak, że wiele miejsc poświęconych jest prezentowaniu programistów wykorzystujących ich umiejętności, tak jak mamy sztukę w Kanadzie i Stanach Zjednoczonych, dlatego właśnie taką sugestię można sobie wyobrazić. MentorNetbyłby przykładem programu, który może zadziałać, chociaż go nie wypróbowałem, jakiś czas temu badałem go i nie sądziłem, że jest dla mnie i czego chciałem. Inną myślą tutaj jest to, jak dobrze twoi przyjaciele i rodzina wiedzą, czego tu chcesz? Mogą znać kogoś lub miejsce, które może ci pomóc, jeśli o to poprosisz. Chociaż nie jest to wyczerpująca odpowiedź, to, co pytasz, jest niejasne i dlatego mam nadzieję, że możesz dodać do tego więcej, a ja skontaktuję się, gdy podasz więcej szczegółów na temat tego, czego chcesz i jak chcesz tego w ten sposób nie jest Burger King, ale moglibyśmy spróbować tak to zrobić.


Eksperci od strony serwera C ++ mogą być raczej trudni do znalezienia. Czy są jakieś pobliskie szkoły policealne? Mogą mieć kogoś, kto ma te umiejętności, które mogą zmienić się w coś innego jako możliwy pomysł. Powodzenia w znalezieniu tego mentora.


+1 z mojej strony. Wygląda na to, że praca z kimś jest drogą do przodu.
Fanatic23,

4

Projekty open source świetnie nadają się do uzyskiwania informacji zwrotnych na temat dodanego kodu i potencjalnie nowych sposobów robienia rzeczy, ale jak się zorientowaliście, prawdopodobnie nie będzie to równoznaczne z relacją mentora.

Sugerowałbym to, o czym już wspomniałeś, a mianowicie grupy użytkowników. Grupy użytkowników zwykle gromadzą się dość często, dzięki czemu możesz uzyskać rzeczywisty czas na kontakt z potencjalnymi mentorami. Ten czas twarzy może pozwolić na szybszy i łatwiejszy przepływ komunikacji. Czy zagwarantuje, że wszyscy są w tej samej domenie? Nie, ale musisz gdzieś zacząć. Jeśli znajdziesz kogoś, kto ma duże doświadczenie, może nadal być w stanie pomóc Ci w Twojej domenie, tylko na podstawie innych doświadczeń.


3

Możesz sprawdzić swoją lokalną grupę użytkowników Linuksa ( tutaj znajdziesz listę), zwykle większość uczestników to programiści - a przynajmniej hakerzy Perla. Dodatkowo, jeśli powiesz im, że jesteś tam, aby znaleźć mentora programowania, pokochają cię.

Post na liście craigslistów może być wart spróbowania, ale nie postawiłbym na to.

Ponadto, jeśli mieszkasz w Niemczech, jest kilka miejsc, które mogę szczególnie polecić.


co z CA, Bay Area?
greatwolf

@Victor, tak naprawdę nie wiem, ale wydaje się, że jest kilka: google.de/…
cbrandolino

3

Biorąc pod uwagę, że jesteś zarejestrowany na Stack Exchange, masz już do dyspozycji wielu nieformalnych mentorów. Możesz łatwo zadawać pytania lub sprawdzać kod przez wiele osób, które są zmotywowane do pomocy.

Bardziej lokalnie, jeśli chcesz mentoringu lub nauczania twarzą w twarz, świetne opcje obejmują:

  • Grupy użytkowników - Plusy: bezpłatne lub tanie, otwarte dla wszystkich. Minusy: rzadkie, nie systematyczne, mogą nie być dostępne w Twojej społeczności.
  • Spółdzielnie - Plusy: otwarte, bezpłatne / tanie. Wady: mniej powszechne, ad-hoc, bardziej prawdopodobne dla sieci niż C ++.
  • Dyplom uniwersytecki / uniwersytecki - Zalety: systematyczny, wysokiej jakości, szanowany, otwiera drzwi, ogólnie zapewnia dostęp do co najmniej niektórych wydziałów wysokiej jakości. Wady: konkurencyjne przyjęcie, duże zaangażowanie, kosztowne, wysokie stawki wymywania, więc jest to drogi sposób, aby dowiedzieć się, czy chcesz uczynić oprogramowanie swoim zawodem, program studiów może być elastyczny, ale może wymagać tematów, które nie lubią lub nie będą znaleźć trudne.
  • Community college lub programy studiów. Plusy: Niedrogie, dobrej jakości, bardziej indywidualne podejście ze strony instruktorów, łatwe do przyjęcia. Minusy: mniej prestiżu niż uniwersytetu, ale dobry student to dobry student, dokądkolwiek się udają.
  • Profesjonalne organizacje - Plusy: mogą być dobrym nawiązywaniem kontaktów i kształceniem ustawicznym. Minusy: możesz potrzebować dyplomu lub pracy w terenie, aby zakwalifikować się do członkostwa. Comiesięczne spotkania mogą być tematami ad hoc na temat innowacji, a nie systematycznym omówieniem tematów umożliwiających rozwój kariery.
  • W pracy od rówieśników, kadry kierowniczej lub menedżerów - Plusy: częste, ukierunkowane, uznanie / entuzjazm / kontynuacja zbudują twoją karierę, jak nic innego. Wady: może się nie udać, jeśli twój mentor pracy przejdzie w tryb osądu i pozwolisz, aby wszystko się spotykało, ten rodzaj mentora może być niedostępny, dopóki nie znajdziesz pracy, która może oznaczać po zdobyciu dyplomu z powodu globalnej konkurencji.
  • Coworking - Plusy: mili ludzie, wspaniali ludzie, zazwyczaj skrzyżowanie gminy i wielu przyszłych prezesów. Wady: może nie być dostępny w miejscu zamieszkania, może obejmować zobowiązanie pieniężne, aby pomóc w opłaceniu czynszu za wspólną przestrzeń, wiele osób w tej przestrzeni będzie samozatrudnionych, więc musisz szanować ich czas i znaleźć kreatywne sposoby na uzyskanie wzajemnych korzyści.

2

myślę, że fora byłyby najlepszym sposobem na znalezienie osób z doświadczeniem w tej dziedzinie. Uważam, że powinieneś zacząć od tego.

Zapoznaj się z niektórymi stronami c ++ w google lub może naszym drogim przyjacielem, na którym jest mnóstwo ninja c ++ gotowego odpowiedzieć na twoje pytania!


1

Nauka programowania jest ambitna i (myślę, że wszyscy na tej stronie się zgodzą) szlachetną sprawę. Jednak trudno jest zacząć od zera i uczyć się, nawet z mentorem. Myślę, że przekonasz się, że najlepszym sposobem będzie wzięcie przynajmniej niektórych zajęć wprowadzających, aby dać ci bazę.

Mentor to świetny pomysł i nie byłoby mnie tu ponad 15 lat jako programista bez faceta, który zniosłby moje pytania w mojej pierwszej „prawdziwej” pracy, ale w rzeczywistości jedna osoba nie byłaby w stanie aby dać ci czas i wskazówki, których potrzebujesz, aby odnieść sukces jako programista. Prawdopodobnie sam będzie miał pełnoetatową pracę (lub obciążenie kursowe). Nie oznacza to, że nie powinieneś znaleźć mentora (lub mentorów), tylko że potrzebujesz czegoś innego.

Takie strony, samouczki online i książki, a wszystko inne to elementy układanki. Edukacja tworzy granice.

Nie ma to cię zniechęcać; wręcz przeciwnie, uważam, że ustalenie realistycznych oczekiwań da większą szansę na sukces.


1

Jeśli pracujesz w firmie, możesz poszukać tam mentora.

Jeśli chodzi o projekt open source, wątpię, czy znajdziesz mentora dla projektu, który tworzysz, ale możesz go znaleźć w projekcie, który stworzyli.

Nie zapominaj, że ich mentor także musi coś zyskać z tego układu. Cenny czas poświęcają na pomoc. Przygotuj się do wykonania dla nich pracy w zamian.


0

„Jak znaleźć programistę? To wszystko, czego chcę. Chcę po prostu zbudować potężną armię robotów, aby przejąć kontrolę nad światem. Jestem sprytny i napisałem sztuczną inteligencję. Mam pieniądze, wpływ, udogodnienia. Po prostu nie mogę sobie poradzić z tą odrażającą głupotą .NET lub JVM ... Hmm ... Jak ... Jak !? Cholera! "

Zwykle nie tłumaczyłbym tego, ale jesteśmy na Stackie. Niektórzy ludzie lubią to dosłownie. Znajdziesz jednego (mentora), będąc przydatnym. Możesz być przydatny, rozwiązując problemy, których dzieci z doświadczeniem (lub - być może - mózgi - lub (he) pieniądze) nie chcą rozwiązać.

Rozwiązuj te problemy konik polny.

Albo nie. To wiek informacji. DIY mój przyjacielu. Spójrz na społeczności takie jak Stack, aby powiedzieć ci, kiedy jesteś głupi lub mądry na temat czegoś związanego z kodem lub czegoś, czego nie rozumiemy tak łatwo, jak machinacji tego inwestora, który jest gotów cię przelecieć, a potem trochę.

I podziel się tym, co wiesz. Weź udział w kolektywu, gdy znajdziesz swój groove. To nie jest kowalstwo w XVIII wieku. Twoi rodzice nie musieli nikogo znać (choć na pewno wszyscy docenią to, że nie gromadzisz wiedzy rzemieślniczej i nie dzielisz się z gildią).

Po prostu zdecydujesz, że jesteś zainteresowany i idź. Dość cholernie mocny, kiedy się wnika. To zajmuje trochę czasu (wiem), ale zaufaj mi (chociaż tylko w tej jednej pozornie absurdalnej kwestii - zajęło mi ponad dziesięć lat, aby uświadomić sobie, że tak, jestem dziwnym programistą), wszystko to naprawdę ważne jest to, że masz podstawowy poziom talentów i że jesteś naprawdę zainteresowany. Jeśli nie, uprzejmie! @ # $ Zniżki i znajdź coś, co Cię interesuje.

Ponieważ w przeciwnym razie programowanie / skryptowanie / kodowanie jest okropnym wyborem. Ale nie chcę pozostawić tego w negatywnym, paskudnym punkcie. Jeśli jesteś zainteresowany, nie martw się o to, jak dobry jesteś. Zadawać pytania. Żądaj odpowiedzi. Radzę sobie z tak długo zwiniętymi workami z gazem / biczami, jak ja. Dostaniesz się tam, jeśli chcesz.

Czy lubisz puzzle? Czy lubisz rozwiązywać przypadkowe problemy? Czy lubisz filmy o gladiatorach? Jednoznacznie w pierwszych dwóch punktach, tak? Nie szukaj mentora. Naucz się jednego języka naprawdę dobrze, naucz się jednego lub dwóch innych, które nie są zbyt podobne do twojego pierwszego języka do poziomu umiejętności początkowych, czytaj książki i miej opinie. Ciesz się wyzwaniami i zmieniaj je od czasu do czasu, choćby po to, aby sprawdzić, czy nie popełniłeś błędu. Możesz być zaskoczony, jak często twoje instynkty wcale nie były takie złe. Poproś ludzi, aby wyszli i uderzyli cię w twarz za zadanie niewłaściwego pytania, a może się okazać, że wiesz lepiej niż większość osób, które podchodzą do tej okazji. Ale przede wszystkim jest to problem do rozwiązania. Rozwiązać.


Aha, i podziel się rozwiązaniem, oczywiście, abyśmy wszyscy mogli kupować kupy, które nam się nie podobały.
Erik Reppen

-2

Dla mentora przejdź do freenode (irc). Przysięgam, z tego miejsca można uzyskać większość stopnia CS, przydatne na każdym poziomie umiejętności. Tam wiele się nauczyłem. Nie powinno mieć znaczenia, czy dana osoba jest na tym kanale raz, czy 24/7, czas rzeczywisty i to się liczy.

I jak większość innych powiedziało, nie rób C ++. Zamiast tego zacznij od statycznie wpisanego języka zbierającego elementy bezużyteczne i nie przechodź do ręcznego zarządzania pamięcią, dopóki nie dowiesz się wystarczająco dużo, aby faktycznie pokonać moduł odśmiecający. Jeśli spróbujesz, możesz napisać cholernie szybki Haskell lub OCaml.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.