Wątek przeniesiony 2017-03-08 22:42 z Newbie przez furious programming.

Czy warto wziąć prywatne nauki (korepetycje) od osoby pracującej jako programista ?

0

Witam, uczę się intensywnie programowania od kilku tygodni, na swojej uczelni mam programowanie już od ponad roku ale moje umiejętności są mocno ograniczone. Mam ogólne pojęcie o językach zorientowanych obiektowo i potrafię napisać proste programiki konsolowe w C++ . Czytałem że dobrym pomysłem było by poszukanie mentora pod którego opieką mógłbym się szybko i we właściwym kierunku :) . Niestety naukę programowania skończyłem w zeszłym semestrze i wątpię aby ktoś na uczelni podjął się mentoringu za darmo. Zastanawiam się więc nad prywatnym nauczaniem przez jakiegoś profesjonalnego programistę, niestety te lekcje są stosunkowo drogie 50zł+/h więc mógłbym sobie pozwolić na tylko na 4-6 lekcji w miesiącu ? Czy to było by dobrym pomysłem aby przyśpieszyć naukę programowania ?

2

Myślę, że na etapie, na którym jesteś teraz będzie to spory przerost formy nad treścią. Zainwestuj lepiej w jakieś lepsze książki i sprawdzone artykuły omawiajace dobre wzorce programowania. Sam będziesz dociekać i lepiej na tym wyjdziesz.

I kto wie czy nie taniej. A najlepiej zabierz się za jakiś poważniejszy projekt i katuj go do skutku.

3

Do osiągnięcia maksymalnego efektu nauki potrzeba kilku rzeczy :

  1. Nauki teori we własnym zakresie. Tutoriale, dokumentacja, książki im dalej w las tym bardziej potrzebne będą zaawansowane materiały i specjalistyczne tłumaczące konkretnie temat.

  2. Praktyka, przełożenie wiedzy teoretycznej na wykonanie czegoś samemu. Próbować i jeszcze raz próbować. Nie zrażać się niepowodzeniem.

  3. Kontakt z środowiskiem branżowym i dyskusja o rozwiązaniach napotkanych problemów. Np to forum.

  4. Kontakt i krytyczne uwagi od ekspertów czy bardziej doświadczonych osób. Np. Staż czy praca zawodowa.

  5. Analiza samodzielna wykonywanej pracy. Następnie poprawianie i omawianie błędów. W tym punkcie mógłby się przydać mentor. Musiałyby mieć spotkania charakter zorganizowany i konsultacyjny. Gdzie dwie strony się przygotowują do spotkania na dany temat. Ogarniętego człowieka może być bardzo trudno znaleźć.

2
  1. Wyszukujesz sobie projekt open source
  2. Coś tam sobie robisz i commitujesz
  3. Inni ludzie robią Ci code review i dostajesz info co jest źle itp.

Poza tym masz sporo dobrych książek, np. Clean Code. Jeśli powyższa opcja Cie nie satysfakcjonuje to masz jeszcze wiele innych stronek gdzie wrzucasz swój kod a inni robią Ci code review, pierwszy link z googla: http://codereview.stackexchange.com/

0

Moim zdaniem pomoc takiego "nauczyciela" jest przydatna na samym początku, kiedy trzeba zrozumieć konstrukcje i specyficzne, niespotykane poza programowaniem, elementy branży. Gdy już się złapie takie podstawy to nie ma większego znaczenia czy ma się korepetytora, pracę czy projekt opensource (praca oczywiście najlepiej, ale to ze względu na to, że poświęcasz programowaniu cały dzień).

1

"Myślę, że na etapie, na którym jesteś teraz będzie to spory przerost formy nad treścią. "

nie zgodzę się - jeśli chcesz się uczyć powoli (tzn. w swoim tempie) ucz się sam (i popełnij wszystkie błedy oraz wejdź we wszystkie ślepe uliczki)

jeśli natomiast chcesz cię uczyć szybko to doświadczona osoba powie ci w którą stronę pójść a gdzie nie wchodzić

1

Nauka to robienie własnoręcznie projektów.

Bez mentora będzie nowicjusz robić tak piramidalne bzdury, że kazde spaghetti code będzie niedoścignionym wzorcem czystego kodu.

Musi być akje - reakcja. Projekt - ocena, wyłapanie oczywistych błędów i wskazówki

Forum nie jest w żadnym przypadku dobrym miejscem dla szukania wsparcia w nauce. Ślepy nie poprowadzi kulawego. :)

0

Co prawda posty te zostały napisane już jakiś czas temu, ale myślę, że moja informacja może się też przydać innym użytkownikom również w obecnych czasach.
Choć moja wypowiedź może się wydawać stronnicza z racji wykonywanych usług, ale to co napiszę to słowa, które słyszę od moich podopiecznych.

Oczywiście można nauczyć się programowania samemu. Jednak, jeśli mamy Mentora (czy kogoś innego, kto nam pomaga) to ta nauka idzie dużo szybciej i od razu uczymy się dobrych nawyków. Zamiast poświęcać 2 lata na walkę z błędami i wypieranie złych nawyków to możemy to zrobić prawie 4 razy szybciej.

Oczywiście jest to związane z wydatkami finansowymi, ale one się zwracają po paru miesiącach. To pozwala wnioskować, że jesteśmy do przodu o jakieś 12 miesięcy...

Jeśli ktoś uważa inaczej, chętnie na ten temat podyskutuję :)

5

@devmentor.pl

Zamiast poświęcać 2 lata na walkę z błędami

Czyli de facto chcesz kogoś pozbawić najbardziej kluczowej umiejętności :) Problem w tym, że w pracy programisty umiejętność szukania rozwiązań, walka z błędami, debugowanie itd. jest absolutnie konieczna. Od ciebie wyjdą ludzie, którzy co prawda nauczyli się pisać hello world trochę wcześniej, ale jak dostaną jakiś dziwny błąd to rozłożą ręce bo nie ma już mentora który im pomoże...

1

@devmentor.pl:

devmentor.pl napisał(a):

Oczywiście można nauczyć się programowania samemu. Jednak, jeśli mamy Mentora (czy kogoś innego, kto nam pomaga) to ta nauka idzie dużo szybciej i od razu uczymy się dobrych nawyków. Zamiast poświęcać 2 lata na walkę z błędami i wypieranie złych nawyków to możemy to zrobić prawie 4 razy szybciej.

Oczywiście jest to związane z wydatkami finansowymi, ale one się zwracają po paru miesiącach. To pozwala wnioskować, że jesteśmy do przodu o jakieś 12 miesięcy...

Jeśli ktoś uważa inaczej, chętnie na ten temat podyskutuję :)

Uczenie się samego programowania nawet z mentorem, bez jednoczesnego implementowania własnego kodu/własnych projektów (realnych, a nie algorytmów ala-sortowanie i inny bullshit; Projektów, które zawsze powodują, że się z owymi "błędami" swoimi spotkasz, bo są nieuniknione) ma skuteczność na takim samym poziomie, jak uczenie się samego programowania bez mentora z kursu programowania czy książek/artykułów. (jeżeli się uczy samego programowania bez implementacji własnych projektów)

Postedit:

Zamiast poświęcać 2 lata na walkę z błędami i wypieranie złych nawyków to możemy to zrobić prawie 4 razy szybciej.

Jeżeli przez błąd (bo nie doprecyzowałeś co masz na myśli przez błąd) masz na myśli błąd kompilacji, czy logiczny w kodzie, to zmartwie Cie - one i tak są nieuniknione, mentor czy nie mentor - nic to nie zmieni.

4 razy szybciej? Wątpie.

Postedit 2:

Oczywiście jest to związane z wydatkami finansowymi, ale one się zwracają po paru miesiącach. To pozwala wnioskować, że jesteśmy do przodu o jakieś 12 miesięcy...

Ciekawe jak to obliczyłeś i jakie dane masz na ten temat.

Postedit 3:
Co do tego tematu, szybsze jest znalezienie towarzysza a nie mentora, i wspólne programowanie/innego-rodzaju-informatyczne-zaj ęcia. Wyjdzie za darmo i obaj skorzystacie. Ja tak zrobiłem kiedyś. (i nie jesteś ograniczony przez stawke godzinową/ograniczoną ilość czasu. Można np całą dobe gadać i działać, jeżeli obaj tego chcecie.)

3
devmentor.pl napisał(a):

Oczywiście można nauczyć się programowania samemu. Jednak, jeśli mamy Mentora (czy kogoś innego, kto nam pomaga) to ta nauka idzie dużo szybciej i od razu uczymy się dobrych nawyków.

No chyba, że mentor sam ma złe nawyki i przekazuje je swoim uczniom. Wtedy będzie znacznie gorzej, niżby uczyli się sami i zamiast 4 razy szybciej będzie 8 razy wolniej.

0

@Shalom

Czyli de facto chcesz kogoś pozbawić najbardziej kluczowej umiejętności :) Problem w tym, że w pracy programisty umiejętność szukania rozwiązań, walka z błędami, debugowanie itd. jest absolutnie konieczna. Od ciebie wyjdą ludzie, którzy co prawda nauczyli się pisać hello world trochę wcześniej, ale jak dostaną jakiś dziwny błąd to rozłożą ręce bo nie ma już mentora który im pomoże...

Drogi moderatorze, skąd u Ciebie takie negatywne podejście? Patrząc na Twój profil sądzę, że zaczynałeś naukę programowania w podobnym czasie jak ja. To oznacza, że możesz już nie pamiętać jak wyglądają początki. Ludzie mają problem ze zrozumieniem pętli for, funkcji czy koncepcji tablic wielowymiarowych. Ja jestem po to, aby im wytłumaczyć, wskazać odpowiednią ścieżkę. Nie rozwiązuje za nich problemów tylko nakierowuje. Ile razy spędziłeś godziny nad błędem/problemem który był trywialny? Straciłeś tylko czas, a nie wiele się nauczyłeś - ja jestem po to, aby zniwelować tego typu stratę czasu.

Od zawsze koncepcja Mentora (czyli specjalisty w danej dziedzinie) się sprawdzała np. Rycerz - Giermek czy rzemieślnicy, którzy przyuczali do zawodu. Moja rola jest podobna.

@Codedemens

Uczenie się samego programowania nawet z mentorem, bez jednoczesnego implementowania własnego kodu/własnych projektów (realnych, a nie algorytmów ala-sortowanie i inny bullshit; Projektów, które zawsze powodują, że się z owymi "błędami" swoimi spotkasz, bo są nieuniknione) ma skuteczność na takim samym poziomie, jak uczenie się samego programowania bez mentora z kursu programowania czy książek/artykułów. (jeżeli się uczy samego programowania bez implementacji własnych projektów).

Ciekawy jestem czy miałeś okazję uczyć się w takie formie, aby móc stwierdzić "wątpię". To są tylko domysły, które mogą wprowadzić w błąd inne osoby. Od 2016 roku prowadzę szkolenia, nauczyłem programować blisko 400 osób i ich opinie możesz przeczytać na moim LI. Nigdzie nie napisałem, że propaguję "niepisanie kodu", wręcz odwrotnie! Cały czas powtarzam, że samo oglądanie filmów na YT czy innych kursów nie wiele daje. Trzeba robić zadania, które w większości udostępniam na moim GH!

Ciekawe jak to obliczyłeś i jakie dane masz na ten temat.

Z mojego doświadczenia wynika, że należy poświęcić blisko 500h nauki (nie wliczam w to szukania materiałów czy błędnego przecinka). Jeśli masz opracowane zadania, materiały i pomoc osoby takiej jak ja to jesteś w stanie to zrobić w 6 miesięcy. Oczywiście czas i chęć osoby, która chce się nauczyć jest niezbędna. Jeśli robisz wszystko sam czas się wydłuża o rok lub dwa (nie pisząc już o zwątpienie, które Cię dopada po kolejnym problemie ze średnikiem i odpuszczasz programowanie na tydzień, dwa, miesiąc...). To są słowa osób, które za mną współpracowały. Nauka samemu nie daje takich możliwości rozwoju.

Co do tego tematu, szybsze jest znalezienie towarzysza a nie mentora, i wspólne programowanie/innego-rodzaju-informatyczne-zaj ęcia. Wyjdzie za darmo i obaj skorzystacie. Ja tak zrobiłem kiedyś. (i nie jesteś ograniczony przez stawke godzinową/ograniczoną ilość czasu. Można np całą dobe gadać i działać, jeżeli obaj tego chcecie.)

Nie każdy ma taką możliwość. Nie piszę, że mój sposób jest jedyny i najlepszy. Daje wybór i ktoś skorzysta albo nie. Zwróciłeś uwagę na b. ważną rzecz "obaj tego chcecie" - jeśli ktoś się decyduje na współpracę ze mną to wie, że ja nie odpuszczę. Natomiast chyba wszyscy wiemy jak to wygląda ze "znajomymi" z internetu lub siłowni - dziś nie mogę, dziś mi się nie chce, coś mi wypadło :)

@somekind

No chyba, że mentor sam ma złe nawyki i przekazuje je swoim uczniom. Wtedy będzie znacznie gorzej, niżby uczyli się sami i zamiast 4 razy szybciej będzie 8 razy wolniej.

To argument na poziomie "nie wychodź z domu, bo co 3 osoba umiera na drodze". Oczywiście zawsze znajdą się gorsi i lepsi. Robię wszystko co mogę, aby być w tej drugie połowie. Też popełniam błędy jak wszyscy. Nie uważam, że jestem najlepszy. Wiem jednak na pewno, że pomagam tym ludziom i tego się trzymam.

Podsumowując. Jestem mega zdziwiony, że tak negatywnie do tego podchodzicie. Pamiętam jak ja zaczynałem z programowaniem wspierając się książkę @Adam Boduch o Delphi. Jeśli miałbym możliwość skorzystać z pomocy Mentora to bym się nie zastanawiał - dużo szybciej wskoczyłbym na poziom, w którym mógłbym samodzielnie pracować. Dlatego robię to co robię bo uważam, że pomagam ludziom i to mi daje satysfakcję. Mam wrażenie, że źle postrzegacie koncepcje Mentora - zapraszam do Wikipedii.

Wielka prośba do Was. Postarajcie się spojrzeć na to neutralnie (nie mowie już, że pozytywnie), a nie negatywnie jak do tej pory...

3
devmentor.pl napisał(a):

Wielka prośba do Was. Postarajcie się spojrzeć na to neutralnie (nie mowie już, że pozytywnie), a nie negatywnie jak do tej pory...

Ja spojrzałem neutralnie wskazując obiektywne zagrożenie. Nie oceniam Ciebie, bo Cię nie znam, jesteś tu kompletnym anonimem, lecz to, że dowolny mentor może spodować trudne do odwrócenia szkody.

2
devmentor.pl napisał(a):

@Shalom

Czyli de facto chcesz kogoś pozbawić najbardziej kluczowej umiejętności :) Problem w tym, że w pracy programisty umiejętność szukania rozwiązań, walka z błędami, debugowanie itd. jest absolutnie konieczna. Od ciebie wyjdą ludzie, którzy co prawda nauczyli się pisać hello world trochę wcześniej, ale jak dostaną jakiś dziwny błąd to rozłożą ręce bo nie ma już mentora który im pomoże...

Drogi moderatorze, skąd u Ciebie takie negatywne podejście? Patrząc na Twój profil sądzę, że zaczynałeś naukę programowania w podobnym czasie jak ja. To oznacza, że możesz już nie pamiętać jak wyglądają początki. Ludzie mają problem ze zrozumieniem pętli for, funkcji czy koncepcji tablic wielowymiarowych. Ja jestem po to, aby im wytłumaczyć, wskazać odpowiednią ścieżkę. Nie rozwiązuje za nich problemów tylko nakierowuje. Ile razy spędziłeś godziny nad błędem/problemem który był trywialny? Straciłeś tylko czas, a nie wiele się nauczyłeś - ja jestem po to, aby zniwelować tego typu stratę czasu.

Nie rozumienie pętli for, funkcji czy koncepcji tablic wielowymiarowych oznacza, że osoba jest na poziomie początkujący-początkujący. Konstrukcje językowe (j. programowania) samo w sobie nie oznaczają jeszcze możliwości programowania, bo znajomość języka programowania - nawet całego to tylko 10% tego co trzeba realnie zrobić.

@Codedemens

Uczenie się samego programowania nawet z mentorem, bez jednoczesnego implementowania własnego kodu/własnych projektów (realnych, a nie algorytmów ala-sortowanie i inny bullshit; Projektów, które zawsze powodują, że się z owymi "błędami" swoimi spotkasz, bo są nieuniknione) ma skuteczność na takim samym poziomie, jak uczenie się samego programowania bez mentora z kursu programowania czy książek/artykułów. (jeżeli się uczy samego programowania bez implementacji własnych projektów).

Ciekawy jestem czy miałeś okazję uczyć się w takie formie, aby móc stwierdzić "wątpię". To są tylko domysły, które mogą wprowadzić w błąd inne osoby. Od 2016 roku prowadzę szkolenia, nauczyłem programować blisko 400 osób i ich opinie możesz przeczytać na moim LI. Nigdzie nie napisałem, że propaguję "niepisanie kodu", wręcz odwrotnie! Cały czas powtarzam, że samo oglądanie filmów na YT czy innych kursów nie wiele daje. Trzeba robić zadania, które w większości udostępniam na moim GH!

A ja kiedy miałem na myśli uczenie się programowania, nie miałem na myśli kursów youtubowych i przez uczenie się programowania mam na myśli, że nauka sama języka programowania w kwestii językow programowania czy nawet technologii (API) to zaledwie 10% - przynajmniej w moim przypadku (c++), u mnie dochodzą rzeczy, których nie da się załatwić (jak to określiłeś) w 500h. U mnie jest to C++ a nie JS czy HTML / CS. Bo tam są - Vim, Vimscript, Linux, Linux API, Windows API, Czytanie innych kodów open source, specyficzne-problemy niezwiązane z kwestiami abstrakcyjnymi języka programowania tylko z kodem/wynikiem tego języka, kompilacja na inne systemy niż linux, doxygen/uml/other doc-generating-soft-bullshits, wcześniej okazjonalnie reverse-engineering, a dzisiaj akurat robię sobie kopie zapasowe i instaluje sobie jeszcze inne dwa systemy operacyjne linuxa żeby mieć lepsze narzędzia do rzeczy niezwiązanych z wymienionymi. U mnie to jest C++ więc jest inna bajka. W 500 godzin to można się języka programowania nauczyć i jakichś dodatków. A nie programować. Programowanie i nauka (bo obie są nierozerwalne ze sobą, programując oprogramowanie czegoś się uczyć) bez znaczenia czy z mentorem czy z towarzyszem czy bez, to jest domena dziesiątek tysięcy godzin.

Nie znam się na JS, ale patrząc na githuba jak przeglądnałem połowe, to zazwyczaj połowa ma w tytule lub w znaczniku kodu to HTML, a część (nie wszystko chyba) z drugiej połowy to podstawy języka JS. Nie zrozum mnie źle, nie osądzam Ciebie jako osobe, ani nie neguję sumienności którą włożyłeś w to, tylko wydaje mi się że to trochę za mało na programowanie. Ja teraz robię kopie zapasową i instaluje linuxy, więc potem zerknę na to szczególniej.

Co do tego tematu, szybsze jest znalezienie towarzysza a nie mentora, i wspólne programowanie/innego-rodzaju-informatyczne-zaj ęcia. Wyjdzie za darmo i obaj skorzystacie. Ja tak zrobiłem kiedyś. (i nie jesteś ograniczony przez stawke godzinową/ograniczoną ilość czasu. Można np całą dobe gadać i działać, jeżeli obaj tego chcecie.)

Nie każdy ma taką możliwość. Nie piszę, że mój sposób jest jedyny i najlepszy. Daje wybór i ktoś skorzysta albo nie. Zwróciłeś uwagę na b. ważną rzecz "obaj tego chcecie" - jeśli ktoś się decyduje na współpracę ze mną to wie, że ja nie odpuszczę. Natomiast chyba wszyscy wiemy jak to wygląda ze "znajomymi" z internetu lub siłowni - dziś nie mogę, dziś mi się nie chce, coś mi wypadło :)

Każdy ma taką możliwość jeżeli się ma odpowiednie osoby. Ja reverse-engineerowałem & gadałem na temat programowania z gościem z polibudy Warszawskiej, z Filipowa - pół Polski dalej. Na skypie.

0

Pomyśl o kursie, na którym dadzą ci certyfikat, otworzą drogi do kariery i poznasz nowych ludzi. Podejć do siebie przedsiębiorczo jakbyś sam byś był firmą organizuj czas zarządzaj nim jak inwestycją, inwestuj w siebie.

Umnie na studia osobiście to z pomocy takich osób korzystali najgorzej się uczący i kończyli potem za rok studia, ale to może tylko umnie.
Zależy co to za gość i co ci chce dać. Jak myśli by sobie dorobić tylko rozwiązując za ciebie zadanka to cienko to przejdzie ;p.

Teraz czasy poszły tak do przód, że mi znajomi się chwalą, że ich dzieci gry robią w wieku 12 lat.

W CV wpiszesz korepetycje ??? (Tak średnio)
6 miesięczny kurs JAVA z wypracowanym portfolio na stronie webowej. TAK
Ma Pan strone mam. O mogę zobaczyć, o ja ile kody WoW chcĘ z Panem porozmawiać XD.

IM WCZEŚNIEJ ZACZNIESZ BUDOWAĆ PORTFOLIO I ZAŁOŻYSZ KONTO NA STACKOVERFLOW I GITHUB TYM LEPIEJ DLA CIEBIE !!!
WIEDZA MA WARTOŚĆ PIENIĘŻNĄ !!!

0
invisiblehat napisał(a):

IM WCZEŚNIEJ ZACZNIESZ BUDOWAĆ PORTFOLIO I ZAŁOŻYSZ KONTO NA STACKOVERFLOW I GITHUB TYM LEPIEJ DLA CIEBIE !!!
WIEDZA MA WARTOŚĆ PIENIĘŻNĄ !!!

Po co github & stackoverflow?, wystarczy lokalne repozytorium na kompie (nie trzeba prywatnego), klep kod do gry, a jak skończysz to wypuść. Jakbyś miał jakimś cudem domek gdzieś w lasach równikowych i tam internet i prąd, z kompem, to nawet na lokalnym gicie mógłbyś klepać kod.

Ilość punktów reputacji/publicznych commitów != realny progres. Wiedza != wartość pieniężna, tylko skonkretyzowany wynik wiedzy i sumienności == wartość pieniężna.

1

Hej,

Myślę, że mogę Ci pomóc w tym temacie. Pracuję w firmie informatycznej, ale nie stricte w programowaniu. Jakieś 6 miesięcy temu zapisałem się na mentoring z Javy. Poniżej spróbuję Ci przedstawić plusy i minusy, ale uważam, że jeśli ktoś nie miał w ogóle styczności z programowaniem to raczej na pierwsze 3/6 miesięcy (w zależności od tego jak szybko się uczysz, jak często się będziesz uczył) to jest dobra opcja.

Co się zmieniło w postrzeganiu programowania:

  • myślałem, że programowanie jest całkiem inne niż jest naprawdę, kod dzielony jest na klasy itd.
  • już wiem, dlaczego jest hejt na bootcampy, a jeśli Ty nie wiesz do zacznij się uczyć : D
  • małe zadanka, które rozwiązujesz są dobre na początek, najlepiej po 2 miesiącach zacząć tworzyć jakiś własny większy projekt.

Plusy i minusy będą zależeć od twojego mentora, uważam, że jeśli twój mentor jest inteligentny to raczej nie ma minusów.

Plusy:

  • początki bywają ciężkie i mając przy sobie mentora czujesz się trochę pewniej i jest większa szansa, że się nie poddasz. Ja ucząc się samemu na pewno podałbym się po miesiącu albo dwóch. Po około 5 miesiącach uważam, że załapałem solidne podstawy i strasznie się wkręciłem.

Minusy:

  • jeśli masz mentora, który zamiast podpowiadać będzie Ci dawał od razu odpowiedź to później jak już będziesz pracować samemu/robić jakiś projekt samemu to może być szok więc lepiej jak będziesz mieć takiego, który daje jakieś wskazówki niż podaje gotowe rozwiązania.

1 użytkowników online, w tym zalogowanych: 0, gości: 1