Nauka c++ czy java

Nauka c++ czy java
GE
  • Rejestracja:ponad 7 lat
  • Ostatnio:6 miesięcy
  • Postów:18
0

Witam. Jestem na informatyce inżynierskiej w Toruniu ( 1 rok). Uczą nas tu programowania w c++ przez 3 semestry i 1 semestr Javy. Jednak mi bardziej zależy na nauce Javy i teraz mam pytanie do bardziej doświadczonych programistów. Czy uczyć się C++ pełną gębą i Javę na koniec studiów ogarniać? Czy jednak C++ odpuścić i jechać na samych trójach i cisnąć Javę?

szarotka
Od razu widać, że to Toruń ...
grzesiek51114
grzesiek51114
  • Rejestracja:ponad 11 lat
  • Ostatnio:ponad 4 lata
  • Postów:2442
0

Ciśnij oba, poważnie. Oczywiście na tyle na ile to będzie możliwe. Nauka C/C++ bardzo dużo daje, a przynajmniej mnie dała.

edytowany 1x, ostatnio: grzesiek51114
TobiPL
  • Rejestracja:prawie 11 lat
  • Ostatnio:prawie 3 lata
  • Postów:66
1

Byłem sobie kiedyś nauczycielem i prywatnie nauczałem programowania...

i przyznam że [CIACH!] mnie każdy uczeń który w szkole uczył się najpierw JS lub Javy

najgorsze było wbicie im do głowy że nie możesz wszystkiego pomijać sobie jak tylko chcesz
var nie działa w C i nie możesz [CIACH!] tego jak śniegu w zimę i cieszyć ryjka

osobiście uważam że C++ jest najlepszym wyborem, najlepsze wysypisko wszystkich pomysłów programistów ostatnich lat

szczerze to zdecydowanie bardziej polecam C# jeśli już z C
przynajmniej w C# jest większy porządek

najlepszym programem mimo wszystko jet raczej ten C++ w powodu że jest właśnie wysypiskiem wszystkiego
dużo łatwiej powiedzieć komuś "TEGO TU NIE MUSISZ PISAĆ" niż " A TU PISZESZ TAK "

innymi słowy C++ lepiej przygotuje cie na wszystkie doświadczenia a i przyszłościowy jest jakbyś chciał pracować przy robieniu jakiś gier itp.

łatwo go też przekopiować sprytnymi skryptami / programami na inne języki i jest raczej jednym z 3 najsławniejszych moim zdaniem języków

osobiście zaczynałem z Javą i kiedy przeniosłem się na C++... UGH
to był jakby wyjść z włączonej pralki do której jakiś szaleniec powkładał noże...
i stanąć na podłodze z gwoździ... cóż... przynajmniej już tak nie kręci xDD

zacznij z C++ łatwiej ci będzie się potem przesiąść na inny wybrany jak już będziesz chciał
i dostaniesz solidne "podstawy" z prawie całego zakresu objętego pojęciem programowania

edytowany 1x, ostatnio: somekind
jarekr000000
Współczuje. Uczniom. I tak dobrze, że żadnego haskellowca nie miałeś, bo większość nie potrafi nawet napisać x = x + 1.
somekind
Mniej wulgaryzmów następnym razem.
AK
dostanie solidne podstawy ... albo skrzywienie na zawsze
lion137
  • Rejestracja:około 8 lat
  • Ostatnio:4 minuty
  • Postów:4891
1

@TobiPL: Nie, Java albo Python są, imo, najlepsze do nauki. Możesz je szybko przyswoić i skupić się na nauce inżynierii, algorytmów... a nie męczyć wskaźniki, ręczną alokację pamięci, itp.


TobiPL
  • Rejestracja:prawie 11 lat
  • Ostatnio:prawie 3 lata
  • Postów:66
0
lion137 napisał(a):

@TobiPL: Nie, Java albo Python są, imo, najlepsze do nauki. Możesz je szybko przyswoić i skupić się na nauce inżynierii, algorytmów... a nie męczyć wskaźniki, ręczną alokację pamięci, itp.

Wiesz ile się namęczyłem aby znaleźć przycisk by ci odpowiedzieć?

jeśli dobrze pamiętam to python to ten gdzie
if XX then

end

bardzo przydatne w czasach gdy ( nie liczyłem ) większość korzysta z { } ()
miałem też już jednego ucznia którego uczyłem C++ a przechodził z Pythona...
przez pierwszych kilka lekcji wyrywkowo pisał mi te durne end end end end

osobiście uważam pythona za strasznie nieczytelnego...
poza tym właśnie dlatego C++ jest odpowiedni do rozpoczęcia nauki przez jak to wymieniłeś Wskaźniki i dyn. pamięć
w wielu językach nie ma niektórych rozwiązań które są w C++

tak jak wspomniałem C++ to dobre wysypisko wszystkiego co wymyślili programiści przez ostatnie lata
lepiej pobawić się w piaskownicy śmieci aby potem nie było niespodzianek że pojawiają się jakieś nowe tematy których trza się dodatkowo nauczyć

ale ok... każdy ma swoje zdanie...
moje jest niezmienne i ja preferuję C++ jako pierwszy do nauki

lion137
  • Rejestracja:około 8 lat
  • Ostatnio:4 minuty
  • Postów:4891
1

Pamięć Cię zawodzi, begin i end to z Pascala.
"lepiej pobawić się w piaskownicy śmieci" - mnie Przekonałeś :-D, nie wiem jak z innymi:)


0

Python potem c++. Tak robią na stanfordzie i tak jest dobrze. Python nauczy myśleć, a rzeczy typu wskaźniki to tak na prawdę pierdoły i technikalia. Trzeba się tego nauczyć ale na pewno nie na początku

jarekr000000
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 10 godzin
  • Lokalizacja:U krasnoludów - pod górą
  • Postów:4707
3
gerczak napisał(a):

Witam. Jestem na informatyce inżynierskiej w Toruniu ( 1 rok). Uczą nas tu programowania w c++ przez 3 semestry i 1 semestr Javy. Jednak mi bardziej zależy na nauce Javy i teraz mam pytanie do bardziej doświadczonych programistów. Czy uczyć się C++ pełną gębą i Javę na koniec studiów ogarniać? Czy jednak C++ odpuścić i jechać na samych trójach i cisnąć Javę?

Witki mi opadają jak widzę taki przerost ambicji. Może jedź C++ na 3, a javę na warunku ? jak jeden semestr i nic od tego nie zależy, to spokojnie możesz kilka razy powtarzać...


jeden i pół terabajta powinno wystarczyć każdemu
edytowany 4x, ostatnio: jarekr000000
WeiXiao
Jarek ale Ty jesteś zazdrosny :/ było się uczyć i być ambitnym, to też byś teraz wymiatał w dżawie i dawał talki na konferencjach :)
0

Do pisania gier na pewno mi się Java przyda, nie interesują mnie bazy danych i korporacje z nudnym klepaniem formatek, chce być jak bracia Oliver Twins.

KR
Moderator
  • Rejestracja:prawie 21 lat
  • Ostatnio:dzień
  • Postów:2964
4

osobiście uważam że C++ jest najlepszym wyborem, najlepsze wysypisko wszystkich pomysłów programistów ostatnich lat

Czekaj, czekaj, czy C++ to nie przypadkiem ten język, który

  • wyrażenia lambda dostał jakieś 40 lat po LISPie,
  • w 2020 ma dostać w końcu system modułów, tj. jakieś 25 lat po tym jak miała je Java i pewnie ze 30 lat po tym jak miał je Pascal i inne języki,
  • generyczny system typów to nawet nie wiadomo czy kiedykolwiek będzie miał, a jeśli będzie, to będzie to prawdopodobnie najbardziej pokręcony i najdziwniejszy system typów generycznych jaki kiedykolwiek stworzono (https://en.cppreference.com/w/cpp/language/constraints)?

Tymczasem w innych językach mamy:

  • pauseless GC, aby pisać kod szybko, przyjemnie i bezpiecznie, ale aby też wykonywał się szybko i bez zadyszki (Java)
  • typy liniowe i memory-safety bez GC i bez dodatkowych kosztów, jeśli ktoś chce mniej przyjemnie, ale nadal bezpiecznie i bardzo, bardzo wydajnie (Rust)
  • porządny system typów generycznych, type-classes, typy wyższych rzędów (Haskell, Scala, PureScript), jeśli ktoś lubi programowanie mocno abstrakcyjne
  • po raz chyba pierwszy praktyczne formalne dowody poprawności (Idris), jeśli ktoś programuje coś co może wybuchnąć albo spaść z dużej wysokości i lepiej żeby tego nie robiło
  • system makr, w którym metajęzyk jest tym samym językiem co główny język przekształcany makrem (LISP, Scala), jeśli ktoś lubi magię programów, które piszą się same i np. łączą z bazą danych podczas kompilacji, aby ściągnąć schemat
  • obiektowość opartą o prototypy (EcmaScript) - jakby klasyczne OOP było zbyt mało elastyczne
  • elastyczne reguły składniowe, pozwalające tworzyć własne języki wbudowane (Groovy, może trochę Scala)

Wszystko pomysły, których nie ma w C++ ^^^

Mam wrażenie, że twórcy innych języków skupili się na rozwijaniu dziedziny (czasem mniej lub bardziej udanym), natomiast twórcy C++ ostatnio zajmują się głównie rozwiązywaniem problemów z samym C++, tj problemów, które nigdzie indziej nie występują. Dlatego wydaje mi się, że C++ nie jest dobrym językiem do nauki dla początkujących.

edytowany 4x, ostatnio: Krolik
Zobacz pozostałe 2 komentarze
AL
memory-safety bez GC i bez dodatkowych kosztów, jeśli ktoś chce mniej przyjemnie, ale nadal bezpiecznie i bardzo, bardzo wydajnie (Rust) to w C++ akurat już jest (na zasadzie opt-in). A czy się tego uczy - inna sprawa ;) Swoją drogą - może to kwestia gustu - ale mój entuzjazm wobec Rusta mocno spadł kiedy próbowałem napisać w nim jakieś podstawowe struktury danych (tak czysto w ramach ćwiczeń). Kod robi się ohydny. Tzn. co chcę powiedzieć - jako język aplikacyjny ma szanse się on sprawdzić. Ale jako systemowy C (i C++ częsciowo) nie ma raczej szans zdetronizować.
AL
teraz spojrzałem na datę... z jakiegoś powodu ten wątek pokazał mi się na głównej, złota łopata, sorry ;)
KR
Co jest w C++? Borrow checker, analiza czasu życia i zabezpieczenie przed data-races? Od kiedy? Poza tym jak w Rust kod struktur danych robi się ohydny - przecież możesz użyć unsafe i wtedy masz zasady właściwie takie same jak w C i C++ i taki sam poziom bezpieczeństwa - nie widzę za bardzo dlaczego kod miałby się zrobić ohydny, zwłaszcza że Rust oferuje parę bardzo fajnych mechanizmów których C++ nie ma - np. tagged unions albo pattern matching.
AL
W C++ jest parę rozwiązań na poziomie stdliba i tooli, największym bólem jest to, że nikt upartego developera C z klasami nie zmusi do ich używania. Co do Rusta - czy pchanie się w unsafe nie przeczy trochę idei użycia Rusta? (tu nie ma ironii, nie wiem, stąd pytanie. Ale na pierwszy rzut oka tak to wygląda).
KR
Ilość kodu, które musisz objąć unsafe jest zwykle znikoma. Napisałem już parę programów po kilka tysięcy linii i unsafe użyłem praktycznie tylko w miejscach gdzie musiałem sięgać bezpośrednio do jakichś API w C. Chyba lepiej ograniczyć miejsca występowania UB do 0.01% kodu niż mieć je wszędzie? Co do stdliba C++, to niestety można bardzo łatwo zrobić UB nawet korzystając z tych wysokopoziomowych rozwiązań. Nie trzeba używać wcale nagich wskaźników i new/delete.
0

A ja szukam jakiegoś nowoczesnego języka programowania, ale nie skryptowego, ma być kompilowany do własnych projektów. I chyba Swift oraz Crystal mi pozostaje z racji swojego wieku nie nadaje się już do pracy w korporacji.

0

Czy według was C jest prostszy od Javy? Wiadomo C++ najtrudniejszy potem Rust.

jarekr000000
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 10 godzin
  • Lokalizacja:U krasnoludów - pod górą
  • Postów:4707
0

Czy według was C jest prostszy od Javy? Wiadomo C++ najtrudniejszy potem Rust.

Jeśli szukasz najłatwiejszego języka, to najłatwiejszy jest rachunek lambda bez typów. Trzy regułki i wszystko możesz zrobić:

https://pl.wikipedia.org/wiki/Rachunek_lambda
https://en.wikipedia.org/wiki/Lambda_calculus

Polecam.


jeden i pół terabajta powinno wystarczyć każdemu
S9
@jarekr000000: mnie tez lambdy kręcą ale to co proponujesz to chyba za ciężkie dla kolegów może być :P
Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)