Wpis z mikrobloga

Mam ogromne wyrzuty w stosunku do systemu edukacji w Polsce, tutaj uczniowie są dla nauczycieli, a nie nauczyciele dla uczniów. Szkoła już od gimnazjum zraziła mnie do nauki matematyki, nienawidziłem tego przedmiotu przez jego nauczycieli (w gimnazjum nauczycielka była też naszą wychowawczynią i miała kompletnie wyrąbane na naszą naukę, często też spała na lekcjach, albo przychodziła na kacu), pisanie na tablicy zbyt bardzo mnie stresowało, by się czegokolwiek podczas tego nauczyć, a teraz nie umiem z matmy praktycznie niczego. Czasem jednak w życiu zdarzają się takie momenty, takie przełomy w życiu, które pozwalają nam zrozumieć siebie samego i dzięki którym - być może - dowiemy się, co chcemy robić w przyszłości i co robiliśmy źle w przeszłości. Dopiero niedawno (a od tygodnia mam 21lvl) zdałem sobie sprawę z tego kim tak naprawdę chcę być i co chcę w życiu robić. Chcę zostać programistą (nie tylko dla kasy, bardziej ze względu na moje cechy charakteru, po prostu uwielbiam sobie spokojnie w czymś dłubać, coś udoskonalać, dopóki nie będzie perfekcyjne), już miesiąc uczę się #cpp z książki C++ Primer Plus w wersji angielskiej, idzie wolno, ale wszystko rozumiem. Podczas tej nauki zauważyłem, że bardzo podobne myślenie występuje podczas rozwiązywania równań matematycznych i zdałem sobie sprawę z tego, że nie będę nigdy dobrym programistą, bez znajomości matematyki. Postanowiłem sobie, że daję sobie rok na naukę C++, matematyki i bardziej zaawansowanego angielskiego, by zdać maturę, dostać się na studia informatyczne i jak najwięcej ogarnąć w programowaniu. Na studiach zamierzam się już uczyć na bieżąco, a najlepiej wyprzedzać materiał, a w międzyczasie zdawać egzaminy z np. C++, Javy, C# dla certyfikatów. Ale wracając - co do zrozumienia siebie - zrozumiałem, że choćbym się bardzo starał, nie umiem się uczyć od kogoś, za cholerę nie potrafię zapamiętać czyichś tłumaczeń w formie mowy, co praktycznie dyskwalifikuje moją naukę w szkole i sprawia, że muszę się uczyć samodzielnie, a do szkoły chodzić tylko dla świadectw/dyplomów, zrozumiałem też, że samodzielnie uczę się wręcz niesamowicie, potrafiłem w trzy dni nauczyć się większości z wszystkich definicji zawartych w książce od geografii. Mam marzenia, np. wracając zza granicy (będąc już programistą), kupić niewierzącym teraz we mnie rodzicom samochód, albo jakoś inaczej wynagrodzić im stres. Wróćmy jednak na ziemię, trzeba do tego jakoś dojść, w związku z tym mam następujące pytanie, a mianowicie, czy znacie jakieś książki, najlepiej po angielsku, które pomogłyby mi ogarnąć matematykę? Ważna jest dla mnie duża ilość przykładów i obszernych, zrozumiałych wyjaśnień. Nie mam zielonego pojęcia, od której strony w ogóle zacząć, czy jeśli jestem inteligentny, ale mam małą wiedzę matematyki z gimnazjum, to czy dałbym sobie radę zaczynając od zakresu ze szkoły średniej? Jaka wiedza z matematyki jest mi najbardziej potrzebna, by być dobrym programistą, a nie tylko klepaczem kodu? Czy istnieje jakaś książka, która zawierałaby wszystko z zakresu gimnazjum-studia (lubię kiedy wszystko znajduje się w jednym miejscu)? Mam nadzieję, że jeszcze nie jest na to zbyt późno, jeśli dziennie 2 godziny będę poświęcał na programowanie, 2 godziny na matematykę i godzinę na angielski. ( ͡° ʖ̯ ͡°)

#gorzkiezale #przegryw #matematyka #programowanie
  • 24
  • Odpowiedz
@Semietiev: z polskiego też miałeś kiepskich nauczycieli ( )

Powodzenia, 5h dziennie na nauke wygląda bardzo ambitnie i obyś wytrzymał
  • Odpowiedz
@Semietiev: Absolutnie nie jest za późno cumplu ( ͡° ͜ʖ ͡°).

Przede wszystkim - nie do końca jest tak, że matma jest konieczna i niezbędna w sposób "wprost". Zwłaszcza, by coś podłubać. Musisz ją umieć - i jest Ci potrzebna, ale majca to narzędzie, a nie cel sam z siebie. Z książek mogę polecić książki do IB Mathematics Higher Level wydawnictwa Cambridge. Są dla licealistów, więc są dość lekkostrawne, a zawierają te rzeczy, które są potrzebne na studia - różniczki, całki i wiele innych zagadnień.

Napiszę tutaj pewnie coś za co wiele ludzi wyśle mnie na #czarnolisto ( ͡° ʖ̯ ͡°). C++ nadaje się do nauki jak słoń do baletu. Zalecałbym języki, które mają większą moc ekspresji, jak Python, Ruby czy nawet C#/Java. W C++ będziesz klepał konstruktory, wskaźniki i ręcznie zarządzał pamięcią, zaś w Pythonie będziesz czuł mocniej progres. Do Pythona polecam Learn Python Hard Way - dla Ciebie będzie to IMO dobry materiał, bo pozwoli zastanowić się nad kodami, które piszesz i zmusi do klepania. (W tym miejscu mała dygresja: do nauki tego
  • Odpowiedz
po prostu uwielbiam sobie spokojnie w czymś dłubać, coś udoskonalać, dopóki nie będzie perfekcyjne


@krolikbartek: Zmartwię Cię. Jeśli chcesz pracować jako programista to nikt Ci nie da czasu na doprowadzanie kodu do perfekcji. Zresztą i tak jak spojrzysz na swój kod po roku od jego napisania to stwierdzisz, że mogłeś zrobić to lepiej.

A teraz do rzeczy. Na początek musisz zadać sobie pytanie, czy chcesz być programistą, czy skończyć studia. W dużej ilości przypadków nie idzie to w parze i wiedza ze studiów nie będzie Ci niezbędna w pracy. Możesz spytać np. @Sudokuu, który sam
  • Odpowiedz
@legolass:

Zmartwię Cię. Jeśli chcesz pracować jako programista to nikt Ci nie da czasu na doprowadzanie kodu do perfekcji. Zresztą i tak jak spojrzysz na swój kod po roku od jego napisania to stwierdzisz, że mogłeś zrobić to lepiej.

Zdaję sobie z tego sprawę, ale myślę, że dzięki takiemu nastawieniu uzyskam z czasem "wyższą kulturę kodu" nawet podczas pisania na czas, a pracodawcy i zespół sobie to (podobno) cenią. Na dłuższe "dłubanie" nastawiam własne programy.

Chcesz studiować dziennie i wtedy mieć mniej czasu na pracę (da się łączyć pracę i studia ale to jest trudne), czy studiować zaocznie i pracować na cały etat (myślę, że do października spokojnie nauczysz się programować na tyle, żeby znaleźć jakiś
  • Odpowiedz
@Semietiev: Cóż, I can understand that. Po prostu zauważyłem w sporej ilości przypadków, że formalizmy i debilizmy za Cpp utrudniają zrozumienie idei.

Z lektur, które mógłbym polecić to jeszcze książki Uncle Boba, czyli Robert Martin i jego Pragmatic Programmer i Clean Code powinny nieco pomóc w dobrej kulturze kodu.
  • Odpowiedz
@Semietiev: Jeśli mogę Ci coś doradzić, to spróbuj w miarę szybko zaangażować się w jakieś projekty OpenSource. W ten sposób będziesz miał możlwiość pracy z realnym kodem, a przy okazji będziesz mógł pochwalić się na rozmowie o pracę.

@pawele125: Jak zaczynałem studia to na jednych z zajęć padło pytanie kto zna indukcję matematyczną. Około 3/4 studentów nie znało, więc profesor kazał im się nauczyć, bo on nie ma
  • Odpowiedz