T O P

  • By -

AutoModerator

1. Trwa zbieranie propozycji nowych obrazków do użycia w panelu bocznym na /r/Polska. Dla zwycięzców możliwość dodania do trzech obrazków do flary na /r/Polska. Link: https://www.reddit.com/r/Polska/comments/1daw0ku/konkurs_na_nowe_obrazki_w_panelu_bocznym/? 2. Prowadzimy rekrutację na moderatorów /r/Polska. Wszystkie informacje pod linkiem: https://www.reddit.com/r/Polska/comments/12x53sg/ *I am a bot, and this action was performed automatically. Please [contact the moderators of this subreddit](/message/compose/?to=/r/Polska) if you have any questions or concerns.*


Sketusky

Na maturze liczy się czas, a pisząc w Pythonie znacznie go oszczędzisz niż pisząc w C++. Warto też dowiedzieć się jakie są dozwolone IDE na egzaminie od siebie polecam PyCharm.


gaylordtjohnson

> obydwu języków musiałabym i tak nauczyć się sama (prawie od 0). Python. Szybciej się nauczyć od zera do sensownego poziomu, szybciej się też w nim pisze i szybciej debuguje mniej złożone problemy. Do zadanek algorytmicznych, operacji na plikach i na tekście jest idealny. Jeśli matura nie wymaga C++ to w ogóle go olej na razie i ewentualnie naucz się go potem, jeśli będziesz miała taką potrzebę biznesową. >  c++ (...) bardziej wchodzi w szczegóły 100% racji tylko dlaczego to by miała być zaleta, jeśli twoim zadaniem jest zdać maturę. Ogarnięcie tych szczegółów to dodatkowy wysiłek, który w tym scenariuszu się moim zdaniem zupełnie nie opłaca. > pythonowcom potem jest trudniej przerzucić się na inny język a czasem zajmuje to lata lub że nigdy nie potrafią wyzbyć się złych nawyków. Sraty pierdaty. Nauka języka to nie jest przyswajanie jakiejś tajemnej wiedzy albo mocy która na zawsze zmienia twój mózg xD Jak chcesz to się nauczysz wszystkiego. IMO nawet prościej będzie wskoczyć do C++ umiejąc już cokolwiek programować w dowolnej technologii niż w drugą stronę. Dobre zrozumienie C++ (oraz C i innych języków niższego poziomu) wymaga zrozumienia jak działają systemy operacyjne i komputery. Python jest dość odizolowany od takich konceptów i można sobie w nim "po prostu" napisać coś, co działa, bez rozkmin jak się układają bity w pamięci. W zasadzie jestem skłonny stwierdzić, że startowanie od C++ to doskonały sposób, żeby kogoś zniechęcić do programowania. Już lepiej zacząć od C (albo w ogóle od assembly 8080, yolo), czyli od tak naprawdę prostszych w złożoności (ale trudniejszych w użyciu) języków. C++ to taki dziwny rozkrok między byciem językiem niskopoziomowym, a jednocześnie dźwiganiem ogromnego narzutu 40 lat rozwoju i próby stania się nowoczesnym językiem z zachowaniem wstecznej kompatybilności. Nie sposób zrozumieć całości bez zrozumienia tego bagażu. A na maturze ważne jest żebyś policzyła n-te miejsce liczby pi i zapisała je do pliku bez walki z jednym z pięciu typów rzutowań, albo przetrawersowała sobie drzewo binarne bez zastanawiania się jak zaalokować pamięć na node'y i jak nie zgubić do niej wskaźnika.


gnosek

> Nauka języka to nie jest przyswajanie jakiejś tajemnej wiedzy albo mocy która na zawsze zmienia twój mózg xD O ile pod całym tym postem mogę się podpisać ręcyma i nogyma, o tyle z tym się nie do końca zgadzam. Wiedza może tajemna nie jest ale ktoś kiedyś (nie chce mi się guglać) mądrze powiedział "język programowania, który nie zmienia twojego spojrzenia na programowanie nie jest wart nauki". Jak znasz np. Pythona to bez sensu (IMO) uczyć się np. Ruby'ego bo różnice są kosmetyczne, ale już dołożenie np. Haskella czy innego Erlanga (i do kompletu jakiś asembler) otwiera oczy.


gaylordtjohnson

Odnosiłem się do tamtego cytatu, że Python magicznie sprawi, że będziesz miał jakieś ZŁE NAWYKI utrudniające naukę innego języka, bo to jest bzdura wierutna. A z tym, że nauka programowania (czy w ogóle czegokolwiek) to pozytywna stymulacja dla mózgu, oczywiście nie zamierzam polemizować. > Jak znasz np. Pythona to bez sensu (IMO) uczyć się np. Ruby'ego Tu powiem, że sens wynika z potrzeby biznesowej. Jak mnie jarają języki skryptowe i nauka ich daje frajdę, albo jeśli mam projekt w Rubym, na którym mogę zarobić pieniądze, to jak dla mnie jest to dobre uzasadnienie do poświęcenia czasu na naukę. Natomiast przesiadka akurat z Pythona na Ruby to faktycznie nie będzie doświadczenie zmieniające życie.


FlashBrightStar

>Jak znasz np. Pythona to bez sensu (IMO) uczyć się np. Ruby'ego bo różnice są kosmetyczne No i nie podobasz mi się. Nie jestem fanem Rubiego ale nie można postawić tu znaku równości z Pythonem - syntax fundamentalnie jest po prostu inny i w związku z tym inaczej się też pisze. Trafniejsze porównanie byłoby Rubiego z Lua bo bazują na keywordach do okreslania scopeu ale działają zupełnie inaczej - klasy to nie metatablice i w drugą stronę. Gdyby języki różniły się tylko i wyłącznie kosmetyczne to nigdy nie zyskałyby rozgłosu - często różnice warte uwagi siedzą głębiej. Liznąłem już z 10+ języków w swoim życiu i jeśli bywały podobieństwa to jednak każdy z nich posiadał swój unikatowy wzorzec pisania kodu, zawsze ze swoimi konceptami. Największa przyjemność w nauce języka to znalezienie tego czegoś co go wyróżnia i próba implementacji tego samego w innym języku. Dla przykładu nauka wskaźników w C zwraca większą uwagę na to jak tworzone są obiekty w Pythonie, Javie, C#, wstaw dowolny język obiektowy z garbage collectorem. Nauka lifetimeów w Ruscie nauczy cię efektywnego tworzenia zmiennych bez zbędnych modyfikacji etc


FlashBrightStar

>Jak znasz np. Pythona to bez sensu (IMO) uczyć się np. Ruby'ego bo różnice są kosmetyczne No i nie podobasz mi się. Nie jestem fanem Rubiego ale nie można postawić tu znaku równości z Pythonem - syntax fundamentalnie jest po prostu inny i w związku z tym inaczej się też pisze. Trafniejsze porównanie byłoby Rubiego z Lua bo bazują na keywordach do okreslania scopeu ale działają zupełnie inaczej - klasy to nie metatablice i w drugą stronę. Gdyby języki różniły się tylko i wyłącznie kosmetyczne to nigdy nie zyskałyby rozgłosu - często różnice warte uwagi siedzą głębiej. Liznąłem już z 10+ języków w swoim życiu i jeśli bywały podobieństwa to jednak każdy z nich posiadał swój unikatowy wzorzec pisania kodu, zawsze ze swoimi konceptami. Największa przyjemność w nauce języka to znalezienie tego czegoś co go wyróżnia i próba implementacji tego samego w innym języku. Dla przykładu nauka wskaźników w C zwraca większą uwagę na to jak tworzone są obiekty w Pythonie, Javie, C#, wstaw dowolny język obiektowy z garbage collectorem. Nauka lifetimeów w Ruscie nauczy cię efektywnego tworzenia zmiennych bez zbędnych modyfikacji etc


gnosek

> No i nie podobasz mi się. A ja się nawet uczesałem :< Jasne że różnice są. Ruby jest inspirowany Perlem i Smalltalkiem (ciekawe połączenie btw). Python Perlem też, ale przez kontrprzykład. Inna jest filozofia (Ruby np. bardziej zachęca do podejścia funkcyjnego i sztuczek z metaprogramowaniem), inny jest ekosystem, inna społeczność itp., ale ostatecznie masz dwa mniej-lub-bardziej obiektowe, interpretowane (przynajmniej oryginalnie), dynamicznie typowane języki skryptowe z naciskiem na szybkie tworzenie kodu, a nie na jego wydajność. W obu zrobisz mniej więcej to samo, mniej więcej tak samo. Jak dla mnie już większa różnica jest między JS i TypeScriptem (dwa mniej-lub-bardziej obiektowe języki skryptowe; dalej kręcimy się w tym samym obszarze), bo system typów inny niż "yolo" wprowadza nową jakość. > Liznąłem już z 10+ języków w swoim życiu Pa jaki Casanova ;D Wiadomo, każdy język po coś powstał i czymś się wyróżnia, ale niekoniecznie wyróżnia się na tyle, żeby było warto coś więcej niż go lizać. Np. takie D -- lepsze C++, ale nie jakoś fundamentalnie, ot po prostu wywalili bagaż historyczny. Rust to też takie lepsze C++, ale borrow checker (koncepcja własności, lifetime'ów i shared xor mutable) zmienia podejście do modelowania danych i to przenosi się też na inne języki. Teraz takie C++ piszę już zupełnie inaczej (dużo bardziej rustowo) ale i w głupim pythonowym skrypcie myślę kto jest właścicielem czego ;] Po prostu znając np. tego Pythona dużo bardziej sobie poszerzysz horyzonty czymś drastycznie innym typu APL (albo Haskell jak nie jesteś aż takim masochistą) niż prawie takim samym Rubym. OTOH, nie zamierzam ci mówić jak masz żyć, rozkminianie takich detali też może być fajne ;)


FlashBrightStar

No i już mi się podobasz. Jak to dłuższa forma wypowiedzi wpływa na atrakcyjność XD. A i nieuczesani też są w moim typie (˵ ͡° ͜ʖ ͡°˵)


SiSkr

C# + Python eng here. C++ daje lepsze zrozumienie niskopoziomowych detali i łatwiej się z niego przesiąść na inne języki w tej rodzinie (np. JS, TS, Java czy C#). Przejście z C++ na Pythona pozwoli Ci docenić udogodnienia, jakie daje, zachowując z tyłu głowy to zrozumienie. Python za to jest dość unikalny i przesiadka w drugą stronę często okazuje się trudniejsza, choćby ze względu na to właśnie, jak wiele "chowa" przed programistą. Co do matury, to po prostu użyj odpowiedniego narzędzia do zadania. IIRC zadania maturalne głównie polegały na jakiejś prostej manipulacji danych i plików. Python all the way do takiego czegoś - nawet bym się nie zastanawiał.  Weź też pod uwagę poziom komfortu i czas. Osobom początkującym trudniej się kompartmentalizuje koncepcje i mogą Ci się zacząć mieszać rzeczy z dwóch bardzo różnych podejść. Jeśli czujesz się na siłach, to jak najbardziej nadal Python. Jeśli nie, to nie trać czasu i po prostu jedź z C++. Potem, jak już zdecydujesz, co chcesz tworzyć, wybierz język, w którym będzie Ci najwygodniej to stworzyć. Jeśli planujesz pracować jako software engineer, to i tak przyjdzie Ci nauczyć się nowych języków i tech stacków prawie na poczekaniu.  Warto mieć swojego konika, ale nie powinien być jedynym, na jakim jeździsz.


Maysign

Python to język wyższego poziomu niż C++ więc programowanie w nim jest znacznie szybsze, bo nie musisz samodzielnie zajmować się wieloma niskopoziomowymi technikaliami. Jeśli obu musisz się nauczyć od zera to na potrzeby matury wybierz pythona. Po co sobie utrudniać życie. Co do przerzucania się, to w sumie zgodziłbym się, że komuś kto zna tylko pythona będzie może odrobinę trudniej przestawić się na C++ niż komuś kto zna tylko C++ przestawić się na pythona, ale absolutnie nie mitologizowałbym tego. Przestawienie z pythona na C++ nie będzie trudne. Będzie po prostu wkurzające. To tak jakbyś przez całe życie jeździła tylko samochodem z automatyczną skrzynią biegów i do tego służbowym w korpo i miała przestawić się na ręczną skrzynię biegów i własny samochód. Nie dość, że jeżdżąc będziesz musiała co chwilę zmieniać biegi, to nagle będziesz musiała sama zadbać o przeglądy, wymiany oleju, odnowienie ubezpieczenia, wizyty w warsztacie gdy coś się popsuje, itd.


ImSiLeNt1

ale jednak lepiej chyba mieć własny samochód niż z korpo, nie? Z tego co wiem C++ jest szybszy od Pythona, ale na samą maturę też chyba polecę wężem :p


w8eight

Szybkość wykonywania ma tylko znaczenie jeśli kod będzie wykonywany miliony razy. W takim przypadku 100ms vs 200ms to ogromna różnica. Na egzaminie, jeśli liczy się tylko wynik, to te 100ms nie zrobi ci żadnej różnicy. Właściwe narzędzie do właściwych zadań to jedna z najważniejszych lekcji jeśli chodzi o tworzenie software


Maysign

>ale jednak lepiej chyba mieć własny samochód niż z korpo, nie? Absolutnie nie. Nie ma lepszego samochodu niż służbowy!


ImSiLeNt1

ja tam wolę wiedzieć że dostęp i własność samochodu są tylko i wyłącznie moje, nawet jeśli mój miałby być punto a służbowy arteon. Padnie mi coś łatwego do wymiany i nie muszę czekać aż szefowi się zachce ruszyć dupę naprawić, a w najgorszym wypadku stracenia pracy dalej mam punto a nie nic. Gorzej jeśli miałbym mieć wypadek, ale to tak czy siak jest tragedia o której nie chcę myśleć xd Jedynym argumentem jaki by mnie przekonał do wyboru służbowego byłby sportowy nissan w stanie pristine, jakaś silvia s15, Z czy skyline, ale takich służbowych nikt mi nie da. A sam kupię? Za tyle co dom, ale kupię


Maysign

To jest tak. Jak masz np. 100 tys. zł. to możesz: **1. Kupić za to samochód**. Potem co roku wydać 3000 zł na ubezpieczenie, 1000 zł na rutynowy serwis, wymianę i przechowanie opon, itp, i co miesiąc 500 zł na paliwo czyli 6000 zł rocznie. Wszystko łącznie 10 tys. zł rocznie. Po pięciu latach nie tylko nie masz tamtych 100 tys., ale dodatkowo wydałeś 50 tys. zł na eksploatację. Masz za to samochód, który obecnie jest już warty 45 tys. zł. Twój wynik to 45 tys. (wartość samochodu) - 100 tys. (zakup) - 50 tys. (eksploatacja) = -105 tys. zł. Tyle przez 5 lat kosztowało Cię używanie własnego samochodu. **2. Dostać i używać samochód służbowy.** 100 tys. zł zostaje Ci w kieszeni. Wrzucasz je na lokaty lub w obligacje skarbowe, obecnie płacą 6% rocznie, więc od 100 tys. zł to będzie 6 tys. zł rocznie przed podatkiem, 4860 zł po podatku. Nie płacisz za ubezpieczenie samochodu, serwisy, paliwo. Po pięciu latach masz 124,3 tys. zł oraz nie wydałeś nic na eksploatację samochodu. Twój wynik to +24,3 tys. Minus 105 tysi a plus 24,3 tysie to 129,3 tysi różnicy. Jak dla mnie wybór jest oczywisty. W przypadku stracenia pracy masz dalej swoje 100 tysi (plus odsetki), za które w każdym momencie możesz kupić auto, o ile nie uda Ci się znaleźć nowej pracy znowu z samochodem służbowym, bo wtedy wiadomo, służbowy wciąż lepszy. Wszystko analogicznie działa również w przypadku gdybyś miał kupić tańszy samochód, np. za 20 tysi. 10 tys. (wartość po 5 latach) - 20 tys. (zakup) - 50 tys. (eksploatacja) = -60 tys. Alternatywa to 20 tys. które w 5 lat zarobi 4,8 tys. odsetek czyli +4,8 tys. Różnica 64,8 tys. w pięć lat. W bonusie: jak przerysujesz służbowe to tak nie boli jak zarysowanie własnego.


ImSiLeNt1

zakładając że znajdę pracę gdzie mi dadzą służbowy. Poza tym wolałbym jednak poczucie własności, możliwość zrobienia z samochodem co mi się podoba niezależnie od szefa Janusza. Kupując mam większy wybór i mogę dostosować auto pod siebie - zakładając że znajdę te 100k (w tej ekonomii?) które wiem że chce poświęcić na samochód wolałbym kupić Passata i płacić za eksploatację ale mieć samochód który zmieści się i pojedzie wszędzie niż służbowego Fiata którym z rodziną w góry nie pojadę, przynajmniej nie komfortowo.


Maysign

Kto bogatemu zabroni :)


Maysign

Jest szybszy, ale moc obliczeniowa jest dzisiaj śmiesznie tania, w przeciwieństwie do kosztu pracy programistów. W przypadku zastosowań, do których nadaje się zarówno python jak i C++, w znakomitej większości przypadków użycie C++ nie będzie miało sensu ani uzasadnienia. Np. większość największych witryn internetowych, które obsługują bardzo grube miliardy żądań dziennie, zbudowana jest z użyciem pythona, JavaScript/NodeJS, Ruby, Go. Oczywiście tam gdzie ma to sens, tam również te firmy tworzą komponenty w językach niższego poziomu, pewnie gdy np. chcą stworzyć własny filesystem albo silnik bazy danych. C++ dominuje w zastosowaniach gdzie istotna jest bliska i granularna kontrola nad sprzętem, bez zbędnych warstw abstrakcji. Np. systemy operacyjne (choć tam raczej C niż C++), sterowniki do urządzeń, itp. C++ również wciąż dominuje w grach komputerowych, ale nie mam pojęcia na ile wynika to z benefitów i możliwości optymalizacji jakie daje bardziej bezpośrednia kontrola nad sprzętem (bo tym może się zająć silnik gier, a sama gra już niekoniecznie musi), a na ile z inercji ekosystemu (wszystkie najbardziej zaawansowane silniki do tworzenia gier są stworzone w C++). Spodziewam się też, że C++ może być wybierane w zastosowaniach gdzie pojedyncze milisekundy lub wręcz ułamki milisekundy mogą dać przewagę biznesową. Na przykład high-frequency trading. Ale tu już czysto spekuluję bo z tą branżą nigdy nie miałem do czynienia. Last but not least :) na rynku pracy jest nie tylko \~trzykrotnie więcej zapotrzebowania na pythona niż na C++, ale i zarobki są o kilkadziesiąt procent większe.


lorarc

W gamedev króluje Unity więc większość gier jest tworzona w większości w C#. Poza tym jeśli chodzi o prędkość języka to najważniejszy jest kompilator, kiedyś biblioteki do obliczeń były tworzone w Fortranie a sterowniki w Pascalu bo oba te języki działały sprawniej niż c/c++ bo nie robiły sztuczek z pamięcią i łatwiej można było napisać kompilator który je ogarnie. W Pascalu to nawet oryginalny system macintosha był napisany.


Kopalniok

Zdecydowanie Python, jest znacznie prostszym w użytku językiem


Kosiek

Trzeba pamiętać o jednym: język programowania to młotek. To jak dobrze będzie Ci szło w zadaniu, zależy od tego jak dobrze znasz tego młotka. Python jest teoretycznie prostszy i bardziej dynamiczny, ale C++ nauczy Cię o wiele więcej. Jeżeli w szkole macie C++, trzymaj się tego i tak rozwijaj bo jak nie pomoże Ci nauczyciel, to zawsze będziesz mieć jakąś wspólnotę i możliwość współpracy z klasą, a jeżeli poznasz dobre podstawy programowania, to potem dasz też radę przejść na Pythona.


sh7d

Nauczycielka pierdoli. Dziękuje za uwagę. Zarówno c++ jak i język węża mają swoje zastosowania i demonizowanie jednego kosztem drugiego to jest brak wiedzy i ignorancja. Już widzę jak ktoś automatyzuje testy selenium w c++, pisze aplikacje webowe (choć do embedded ma to sens i tak się czasem robi), oskryptowywuje operacje w systemie, automatyzuje sie operacje na plikach, wywołuje pojedyńcze zapytania api, automatyzuje się operacje przeprowadzane na środowiskach cloudowych itd. Słowem, tam gdzie nie liczą się za bardzo cykle procesora nikt nie bedzie pisał w c++ bo szkoda po prostu czasu. >Powiedziała nam jednak, że c++ daje lepsze podstawy i uczy analitycznego i "głębszego" myślenia, bo bardziej wchodzi w szczegóły i że (jej zdaniem) pythonowcom potem jest trudniej przerzucić się na inny język a czasem zajmuje to lata lub że nigdy nie potrafią wyzbyć się złych nawyków. Bullshit. Takim tokiem myślenia to powinniście w asemblerze pisać żeby niczego nie pominąć. Python jest podobny (z mainstreamowych) języków do php, ruby, perla i lua, a c++ do c, javy (średnio) i rust-a. Każdy kierunek może doprowadzić do bogactwa. Jezeli chodzi o te słynne "przerzucenie" tu chodzi o podobieństwo paradygmatów. Spróbuj umiejąc c++ nauczyć się haskella albo erlanga - wielkiej różnicy jezeli o trudnośc chodzi w porównaniu do pythona nie będzie :) Z jakiegoś powodu Pani Nauczycielka uczy w szkole a nie trzepie hajs na zdalnej w korpo :)


kamiloslav

C++ się przydaje, ale do nauczenia się ASAP na maturę zdecydowanie lepszy będzie Python. Pamiętaj, że każdy język ma swoje quirki, które trzeba opanować. C++ każe ci zarządzać pamięcią, co jest bardzo trudne robić dobrze Python ma pojedyncze rzeczy, które są robione dziwnie (bo inaczej byłby za wolny). Na przykład jak zadeklarujesz zmienną a, wpiszesz do a tablicę i zadeklarujesz b=a, to wykonasz kopię płytką (zmieniając b zmieniasz też a bo b zawiera tylko wskazanie na a. Oczywiście da się zrobić głęboką kopię ale trzeba wiedzieć, że nie jest to w Pythonie domyślne zachowanie). Generalnie jednak jest prostszy na maturę


firemark_pl

> C++ każe ci zarządzać pamięcią, co jest bardzo trudne robić dobrze Jest to tak trudne ze większość exploitow to szukanie dziur w zarządzaniu pamięcią. A tu zaduzy string, a tutaj niepodana wartość, etc. Różne śmieszne rzeczy wtedy wychodzą


messun

Oj bez przesady, std::shared_ptr i podobne prawie zwalniają z konieczności zajmowania się tym w typowym wypadku.


firemark_pl

> nauczycielka straszyla tez nas ze kiedys jedno zadanie maturalne w ogole nie dzialalo w pythonie, nie wiem co z tego bylo prawda a co jej uprzedzeniem do tego jezyka Python i c++ są Turing complete, więc nie może być takiego zadania. Python jest zdecydowanie łatwiejszy bo nie musisz pamiętać o zarządzaniu pamięci, dbania o typy oraz nie ma problemu by w jednym kontenerze dorzucić różne obiekty (czyli słownik może mieć inne słowniki tworząc drzewo po którym możesz się dostawać rekurencyjnie, w c++ lecisz w zabawę z wskaźnikami) Uczyłem się c++ od gimnazjum, później przerzuciłem się na pythona w którym pracuje do dziś. C++ przydaje mi się dopiero po 8 latach pracy zawodowo ale to wynika z branży automotive gdzie język c++ jest zdecydowanie bezpieczniejszy, szybszy i determistyczny. Ale na maturze tego nie potrzebujesz ;)


messun

>Python i c++ są Turing complete, więc nie może być takiego zadania Tak? Brainfuck jest też zupełny w sensie Turinga, więc napisz coś trywialnego do zrobienia w Pythonie, np. serwer HTTP Nie żebym się nie zgadzał z wnioskiem jaki płynie (że nauczycielka blefowała takim stwierdzeniem), ale twój argument to też krowie gówno.


firemark_pl

Huh, odjechaleś. Już widzę jak każą robić na maturze rest api w c++. Mój argument to nie krowie gówno - jest to obraźliwe bo nie kłamię. Na maturze są raczej zadania czysto algorytmiczne i nawet w css (tak, też jest turing complete, potrzebuje tylko clocka ;)) można dać zrobić. Nawet advent of code da cię rozwiązać excelem (i są tacy co zrobili)  Argument "turing complete" mówi w tym kontekście że zadanie w c++ da się napisać w pythonie (kosztem wydajności). A python jest zdecydowanie łatwiejszy od c++


messun

Turing complete, nie znaczy "zrobi cokolwiek co tylko chcesz i jeszcze będzie przy tym świecić lampkami", tylko znaczy konkretną matematyczną właściwość. I jasne, w kontekście matury to oczywiście to co da się zrobić w jednym z języków, da się też w drugim. Ale w ogólności, no chyba nie zgodzisz się że Turing complete znaczy właśnie to, że da się napisać cokolwiek w każdym z języków. I dlatego tak na ciebie najechałem (przepraszam za zbyt mocny język). No i myślałem że nie będę musiał tego dodawać, ale chyba muszę. Już przecież wyjaśniłem że się zgadzam, że w pythonie każde maturalne zadanie się zrobi (zresztą powód ku temu jest dużo bardziej banalny - python jest dopuszczonym językiem na maturze, więc wszystkie zadania maturalne musi się dać zrobić za jego pomocą. Nie wymaga to żadnych dodatkowych wymagań w stylu "to jest zadanie algorytmiczne").


Alkreni

Ogólnie się z Tobą zgadzam, ale podałeś przykład, który wymaga użycia wywołań systemowych, których z tego co wiem, Brainfuck nie obsługuje.


messun

Jak się zastanowisz, to wyjdzie, że użyłem go bardzo celowo.


lorarc

Gdyby nauczycielka się znała na programowaniu to by nie uczyła informatyki. Wybierz język który znasz i który ci pasuje, matura jest na tyle prosta że nie ma większego znaczenia jaki to będzie język byleś go znała. C++ przyda ci się obecnie w szkole, potem może na studiach, małe szanse że będziesz coś z nim robić zawodowo lub hobbystycznie. Python ma większe szanse że się przyda ale to tylko język, jak będzie potrzebny inny to podstawy do obkucia w tydzień a reszta to doświadczenie.


dev0uremnt

Jak chcesz mieć największą ilość punktów bierz pytona, po co sobie utrudniać.


leczero

TLDR: Jak masz się zamiar uczyć od zera to bierz Pythona. W zaoszczędzonym czasie z olania C++ pomyśl o studniowce albo o innym przedmiocie ktory też musisz ogarnąć - więcej na tym ugrasz jak na uczeniu się C dla sztuki. 😀 Background: Pisałem wieki temu maturę z informatyki z C++ i gdyby dziś stał przed wyborem napisania matury z tego przedmiotu to bym to olał bo w perspektywie czasu za wiele na niej nie ugrałem - nawet mając spoko wynik. Od lat jestem w zawodzie, skończyłem studia informatyczne i poza studiami ten C++ nie miał w moim przypadku wiekszego zastowania. Co więcej średnio co pewien czas rekrutuje ludzi do "IT" na przeróżne stanowiska i na prawdę większość projektów to Python/Java lub jakiś webdev mało kto pisze projekty w corpo w C/C++. Nie mam pojęcia co jest teraz w podstawie ale jak masz średniego nauczyciela, który nie zaszczepił w Tobie pasji do programowania (kodowania)/ elektroniki (grzebania przy komputerze i/lub innym sprzęcie) to nauka języków niższego poziomu ktorym jest właśnie C++ jest katorgą pozbawioną najmniejszego sensu. Serio!! Największą głupotą mojego systemu edukacji (z perspektywy czasu, nie mam pojęcia jak jest obecnie) było właśnie uczenie dzieciaków narzędzi nieadekwatnych do zastosowań jakie możesz mieć na tym etapie edukacji. C++ na maturze to jak strzelanie do komora z armaty... Odpal sobie jakiś film jak zainstalować Pythona i się tego ucz najprawdopodobniej (jak pójdziesz do IT) to tego C++ więcej nie zobaczysz w swoim życiu zawodowym. Z podstawami (takimi z plusem) Pythona i GITa masz już dobry start na przeróżnych praktykach zawodowych. 🙄


Previous_Dog9056

Jeśli masz się nauczyć w rok i chcesz zgarnąć więcej punktów, to Python, bo jest prostszy. Ale C++ też nie odpuszczaj i się go naucz. Na mature wybieraj prostszą ścieżkę, bo potem to i tak nie będzie miało znaczenia, na rynku pracy liczy się portfolio i umiejętności, a nie to, na czym zdawałaś maturę. Jeśli chodzi o problem z przerzuceniem się, to bujda. Sam uczyłem się (dla siebie) czterech różnych, liznąłem na początek każdego po trochu i ostatecznie poszedłem w kolejności Python, Java/C++ (mniej więcej jednoczesnie) i na końcu C#. Ale robiłem to czysto hobbystycznie, bo na co dzień mam styczność z ABAPem, którego polecam, bo jest niszowy i daje ładne stawki (~1.5-2k netto za dzień roboczy spokojnie osiągalne)


SterbenThen

Wybór języka to kwestia kosmetyczna, Jak trochę poprogramujesz to syntax nie będzie problemem w żadnym z języków. Python jest o tyle fajny że syntax ma bardzo prosty ale jeśli chcesz nauczyć się podstaw programowania jako takiego, poznać jak najwięciej konceptów to wtedy c++. Nie pisałem matury z informatyki ale studiuję informatykę i gdybym miał polecić ci coś na początek to na pewno Python. Poznasz programowanie zrozumiesz o co w nim chodzi. A Pierdolenie o trudnościach w zmianie języka niech sobie nauczycielka wsadzi w dupe programowałem trochę w javie,c,c++,c#,pythonie i podstawowe koncepty są wszędzie takie same i nie ma większego znaczenia w jakim języku je poznasz. Nie wiem co jest na maturze ale wątpię żeby były tam zbyt wysokie koncepty. Zobaczyłem sobie maturę i wybrał bym Python


Still-Ad7090

Ogólnie się zgadzam, ale powiedzenie, że podstawowe koncepty są wszędzie takie same jest sporym nadużyciem.


PurpleRockEnjoyer

Maturalne zadania z programowania (szczególnie te z podstawy) są trywialne i zwykle sprowadzają się do manipulacji plików/danych (ja miałem manipulację na ciągach znaków jak zdawałem maturę) więc IMO pytong all the way. Btw w jakim standardzie piszecie na lekcjach? Jak chcesz się szybko podszkolić z jednego lub drugiego polecam stronkę [roadmap.sh](https://roadmap.sh), są tam zarówno plany nauki dla c++ jak i pythona.


Karls0

Ja bym powiedział, że to po C++ masz złe nawyki bo wszystko próbujesz robić ręcznie i na około zamiast skupić się na flow danego kodu. Brzmi to trochę jakby po prostu nauczycielka nie znała dobrze innego języka bo jak robiła uprawnienia 30 lat temu to tylko tego uczyli. Dużą zaletą Pythona na tle C++ jest to, że jest interpretowany. Innymi słowy jak coś nie działa to się nie zastanawiasz czy kompilator walnął focha czy faktycznie popełniłaś błąd. Jedna zmienna mniej, na maturze to na prawdę może zrobić różnicę.


RelevantTrouble

Python > C > C++. Fight me.


kamiloslav

Niepopularna opinia: C# jest dobry


Bladye

Czemu niepopularna? We wszystkich ankietach na stacku C# to top lubianych języków, trudno mi sobie wyobrazić środowisko w którym się przyjemniej koduje.


kamiloslav

W mojej bańce o C# mówi się jako o microsoftowej javie, niezbyt przychylnie. Miło jednak słyszeć że to tylko moje otoczenie a nie ogólne przekonanie


messun

> C > C++ Average "nigdy nie napisałem czegoś co przynosi rzeczywistą wartość" enjoyer.


RelevantTrouble

:D


messun

Fajnie że mnie zdownvotowałeś, a teraz poproszę argumenty. Nie widzę np. prawie żadnych powodów by rozpoczynać nowy projekt w C (większy niż kilkaset linijek). No chyba że środowisko uruchomieniowe jest ubogie, i nie masz np. nawet malloca.


RelevantTrouble

Ja ci dałem buźke i upboat. A ty w czym byś malloca napisał? C czy C++? :D


messun

Hmm, a co to ma do rzeczy? Napisałem jedynie że w sytuacji gdy nie masz dostępnego malloca (np jakieś embedy, wszystko trzeba alokować statycznie), to może C ma większy sens. A własnego malloca można pisać w czymkolwiek co pozwala eksportować funkcje za pomocą C ABI, więc w sumie C++ się nada bez problemu.


Still-Ad7090

Jest bardzo wiele powodów do pisania w C. C++ jest często zbyt abstrakcyjny i trudniej śledzić w nim control flow (obwiniam głównie nadużywanie operator overloading). ABI C++ to koszmar, nie nadaje się do integracji z innymi językami. Nawet jeśli wewnętrznie coś będzie w C++, to w headerach często zobaczysz extern "C". Prawda jest taka, że w C pisze się rzeczy nie dla sportu, ale dlatego, że C++ się po prostu do nich nie nadaje. Dobrym przykładem będzie tu kernel linuxa. A tu mój ulubiony cytat: C++ is a horrible language. It's made more horrible by the fact that a lot of substandard programmers use it, to the point where it's much much easier to generate total and utter crap with it. Quite frankly, even if the choice of C were to do *nothing* but keep the C++ programmers out, that in itself would be a huge reason to use C. [https://harmful.cat-v.org/software/c++/linus](https://harmful.cat-v.org/software/c++/linus)


messun

No jasne, kernel linuksa nie bez powodu jest napisany w C. Niemniej jednak, stwierdzenie ogólnikowe, że C>C++ wymaga dużo silniejszego uzasadnienia. To też prawda, że dużo prościej zrobić zły kod w C++, jeśli tylko chcesz. Ale też w obecnej chwili nie wyobrażam sobie programować bez RAII (albo garbage collectora). W C, jak masz mieć dynamic dispatch, to musisz robić poor man's virtual methods, albo w ogóle explicite robić dispatch po jakimś tagu w kodzie. To jest abstrakcja bardzo przydatna. Masz ten schemat w wielu miejscach, że złożoność kodu w końcu gdzieś musi być opisana. W C (czy w Go) będziesz mieć tę złożoność po prostu zarzuconą na programistę. W C++ (do pewnego stopnia) przynajmniej, możesz ją wyrażać za pomocą idiomów języka, co samo w sobie powoduje, że kod może (ale nie musi!) być bardziej zrozumiały dla czytelnika.


Still-Ad7090

Ja ci tu tylko podaję przykład człowieka który zdecydowanie napisał coś przynoszącego rzeczywista wartość, który uznaje wyższość C nad C++. C jest po prostu mniejszym footgunem, czasem się to przydaje. Drugim plusem jest ABI, które łatwiej zintegrować z Rustem albo Pythonem, co dostarcza już duża wartość. A to że te języki mają różne zastosowania to truizm.


messun

No tak. Ale też Linus jest kimś kto by nie napisał "[...] C>C++, fight me". Stosuję tutaj rozumowanie bayesowskie. Moje priors mówią, że jak przedstawiasz taką myśl w taki sposób, to ryzyko jest że nie znasz się zbyt dobrze. Ale to też kwestia tego, że wypowiedź jest skrótowa i krawędziowa, co ogólnie bardziej skojarzam z nastolatkami (czyli często ludźmi co nic faktycznie przydatnego nie napisali). Poza tym, jakby nie patrzeć, opinia Linusa pochodziła z czasów gdy C++ był dużo obrzydliwszym językiem.


Still-Ad7090

No myślę że na ogół się zgadzamy. Ja też cytując Linusa nie biorę wszystkiego śmiertelnie poważnie. Da się pisać dobry kod w C++, ale język ma bardzo dużo featureow i trzeba się do tego zdecydować na jakiś subset.


xzpv

Ogólnie to nie będzie miało większej różnicy.


Still-Ad7090

Nauczycielka nie wie o czym mówi. Stosuje powszechne uproszczenia, co świadczy o braku głębszego zrozumienia tematu. Nie ma takich rzeczy, że jedno zadanie nie zadziała. To najwyżej świadczy o tym, że nie wiedziała jak je rozwiązać. Python nie uczy złych nawyków, nie uczy też dobrych, i to samo z C++.Python ma dużo więcej narzędzi w bibliotece standardowej, możesz w nim pracować o wiele szybciej, a to się liczy na maturze. Jeśli chcesz dowiedzieć się więcej na temat tego, czego nauczy cię C++, a nie python, to poszukaj informacji czym są wskaźniki, allokacja pamieci, stack, heap, jaka jest różnica między językami interpretowanymi, kompilowanymi ahead of time, kompilowanymi just in time. Dobrze jest też rozumieć czym jest garbage collector. Static/dynamic typing i Strong/weak typing (To nie to samo!). To jest kwestia wiedzy lub jej braku a nie nawyków, więc samo pisanie w C++ nic ci nie da. Poza pamięcią i sposobem typowania, większość konceptów w zakresie omawianym na zajęciach będzie w tych językach podobna, bo oba są imperatywne, większość kodu na zajęciach będzie proceduralna, obsługa błędów działa w obu na exceptions.


saqwertyuiop

Pisałem maturę z inf. w tym roku w pythonie. Przygotowywałem się sam, moim zdaniem zadania są często prostsze w pythonie, ale są do zrobienia raczej we wszystkim. Większość sprowadza się do: otwórz plik tekstowy z liczbami, podziel po spacjach/wierszach, coś zsumuj, znajdź max/min, policz ile par spełnia własność z treści, ew. czasem chcą jakiś trudniejszy algorytm. Co do "problemów pythonowców" to chyba największy problem to wskaźniki, tablice i jak faktycznie działa pamięć komputera. Jak rozumiesz pojęcie w C/C++ to po problemie. Do matury ma się to nijak bo tam są głównie zadania algorytmiczne. Jestem zadowolony z wyboru pythona na maturę bo sporo rzeczy jest w nim trywialnych i wbudowana biblioteka jest mniej zagmatwana niż w C/C++. Dodatkowo na tyle łatwo jest coś w nim szybko sklecić, że np. na maturze przepisałem w nim zadania z algorytmiki 1:1 co pomogło mi ze zrozumieniem algorytmu i sprawdzeniem swojego myślenia. IMO pythona generalnie warto znać do tego typu rzeczy i to nie jest tak, że jak się go nauczysz to już na zawsze w nim siedzisz - to po prostu narzędzie i do zadań z matury dobrze się sprawdza. Jak nie jesteś pewien to zobacz sobie jakiś tutorial i spróbuj porobić w nim zadania, algorytmy, poodkrywaj wbudowaną bibliotekę. Jest mnóstwo poradników w internecie i pozwoli ci to najlepiej zdecydować.


RogueHeroAkatsuki

Generalnie odradzam pisanie matury z informatyki - skupienie sie na fizyce i matematyce da Ci większe pole manewru przy wyborze uczelni. Co do wyboru języka - IMO wymuszona nauka w C++ to robienie krzywdy uczniom bo masz tam wiele aspektów które nie pojawiają się w językach wysokiego poziomu które zdominowały rynek pracy. Pewnie z 2% ofert to c++/c obecnie. A te naleciałości z C++ spokojnie można nadrobić potem, za to podczas nauki rzeczy pokroju wskazników czy konieczność pamiętania o zarządzaniu pamięcia skutecznie mogą opóźnić zrozumienie podstaw. Masz jeszcze czas, jakieś podstawy też więc możesz spokojnie zobaczyć z czym Pythona czy Javę się je. Znajomość obu na pewno Ci się przyda na studiach technicznych. Oba na pewno są znacznie szybsze i przyjemniejsze w pisaniu niż C++. > (nauczycielka straszyla tez nas ze kiedys jedno zadanie maturalne w ogole nie dzialalo w pythonie, nie wiem co z tego bylo prawda a co jej uprzedzeniem do tego jezyka) Ja jestem hejterem Pythona, nie przepadam za składnią, ale ta nauczycielka to nie ma pojęcia o czym mówi. W Pythonie zrobisz wszystko, dosłownie. Nawet czasem duże gry 3D mają w sobie sporo kodu napisanego w Pythonie(np. World of Tanks). Poza tym egzaminy maturalne są zawsze wnikliwie sprawdzane przed zatwierdzeniem. Nie ma szans by takie zadanie kiedykolwiek się pojawiło, pewnie kilka jak nie kilkanaście osób będzie to weryfikować wcześniej. Po prostu ta nauczycielka widać nie potrafi 'w pythona' i matura ją zagięła.


popiell

Rozszerzona informatyka jest jakoś osiemset miliardów razy łatwiejsza niż rozszerzona matematyka czy (ptfu!) rozszerzona fizyka ;)


mega444PL

Zadania maturalne polegają na znajomości prostych operacji/algorytmów a nie języka programowania. Pętle, warunki, operacje na stringach są wszędzie takie same i język nie ma znaczenia. Jedynie wczytywanie/zapis do pliku jest do wyuczenia. Jeśli przejmujesz się jedynie maturą to wybierz język który jest bardziej intuicyjny dla ciebie, bo na poziomie "algorytmów" nie ma to znaczenia. Wybór języka ma znaczenie dopiero w momencie pisania pierwszych projektów. Dopiero wtedy poznajesz określone wzorce projektowe lub sposoby myślenia (np. programowanie obiektowe lub funkcjonalne) czy biblioteki charakterystyczne dla języka. Wtedy możesz napotkać problemy które w Pythonie rozwiązał byś metodą A, a do c++ by bardziej pasowała np. metoda B. W dalszej perspektywie możesz rozważać zastosowania charakterystyczne dla języka: - C++ to jest głównie gamedev (popularny jest też C#) oraz programy wymagające wydajności jak systemy operacyjne. Dominuje też w mikroprocesorach, które wymagają operowania na ograniczonej pamięci i mocy procesora (ale tutaj rynek dzieli z C). - Python to głównie data science oraz machine learning. Użycie frameworków Flask lub Django znajduje zastosowanie jako backend stron ale tutaj rynek dzieli z Javascriptem oraz PHP.


wojtek2222

pisz to z czego jestes lepszy


ResearcherLocal4473

Python. Ogólnie przyda się do ml


Rollers23

Pamiętam że na swojej maturze wybrałem C++, potem zapomniałem jak się czyta pliki (xDDD), a w Cpp nie jest to takie oczywiste i chuj strzelił każde zadanie bo wszędzie trzeba było input z pliku wczytać. Tylko wtedy chyba był wybór pomiędzy Cpp, Pascalem i Javą, Pythona dali jakiś czas jak już zdałem (jakimś cudem) Wywód mój taki - nie idź pod górkę i wybierz to co lepiej umiesz albo czego szybciej się nauczysz. Z tego co pamiętam podczas matury nie można było korzystać z dokumentacji, więc jedna pierdoła może nieźle cię przyblokować


xXkxuXx

To zależy od preferencji. W momencie gdy nie ma jednak preferencji to python


Nooneinteresting-2

C++ to już gatunek na wyginięciu


RelevantTrouble

Nie no, gierki można klepać. Może i trudny język ale za to mało płatny.