Alternatywa dla C++? Początki programowania.

0

Zbliżam się do wyboru specjalizacji na studia i chciałbym jednak zająć się sztuką programowania ale niestety może nie mam do tego predyspozycji czy po prostu jestem za "głupi". Wiele razy próbowałem podchodzić do C++ ale coś sie szybko zniechęcam, mam problemy ze wskaźnikami itp... Mam pytanie czy nie lepiej zacząć od jakiegoś łatwiejszego języka java lub C# (jestem zielony wśród nich a słyszałem że są o wiele bardziej wybaczające błędy), a później zacząć rozpracowywać na czynniki pierwsze całe C++? Na studiach wykładowca mówi że C++ to idealny język do nauki programowania, może jednak nie w moim przypadku. Proszę was o radę, doświadczonych programistów.

0

Zmien wykladowce.

Aaa... zadales jakies pytanie...
Popatrz sobie jezyki takie jak: ruby, python, C#, java. A co do algorytmu wybierania jezyka, pisalem o tym w ostatnim tygodniu, poszukaj.

0

wykładowca był spoko... można było na luzie pogadać się spytać ale widać było że bardzo lubi C++ i go faworyzuje... Znalazłem parę postów twoich dotyczącej wyboru języka ale nie wiem czy o nie Ci chodziło. Jesteś dość aktywnym userem tego forum. C# to programowanie głównie aplikacje dla platformy Windows? Java daje większę pole? Sam do końca nie wiem w jakiej branży bym chciał siedzieć ale wiem że na pewno w programowaniu. A c++ na razie topornie mi szło i szukam czegoś łatwiejszego co da mi duże podwaliny na przesiadek na trudniejszy level.

3

No i co z tego, ze mozna z kims pogadac na 'luzaku'? Na razie efekt tego jest taki, ze wykladowca wpoil w ciebie jakas durna potrzebe znajomosci C++, i ty pod presja nie jestes w stanie sie go nauczyc...

Musisz sobie popatrzec czy ci sie podobaja te jezyki i wybrac ktorys. Moglbym to zrobic za ciebie, ale podejrzewam, ze by byl podobny efekt jak z C++, to jest meczarnia.

0

trochę poczytałem i reasumując jeśli chce pisać apki dla windows to c# a jeżeli dla linuxa to java... Java jest multiplatformowa ale zamula i jej kod nie jest tak zoptymalizowany jak c# pod windows. C# strasznie szybko się zmienia i trzeba ciągle się dokształcać. Java tak prędko się nie rozwija (poprawcie mie, jeżeli sie mylę)... Wybrałbym jave z jej multiplatformowości (chociaż i tak głównie będę pisał i bawił się na windows, ale na tym poziomie to chyba nie jest duża różnica wydajności?)... można pisać na niej apki dla androida? Cholera chyba będę rzucał monetą :/ ciężko się zdecydować ... Dla każdego z tych języków jakieś darmowe środowisko programistyczne?

0

Nie rozumiem dlaczego ludzie uważają, że C++ jest trudniejszy od C# i Javy - oczywiście jeśli chodzi o samą składnię. W mojej ocenie jest na odwrót. Wydaje mi się, że w C# i Javie jest więcej rzeczy do opanowania. Natomiast jak już się je opanuje to może i są te języki w pewnym sensie łatwiejsze.
Co do wskaźników to przecież to jest zwykła zmienna - przechowująca adres. Czego tu nie rozumieć?
No ale cóż, to tylko moje zdanie.

1

@lewozmywak

Dla każdego z tych języków jakieś darmowe środowisko programistyczne?

Tak.

Przykro mi, tylko to pytanie zrozumialem, reszta dla mnie to jakas abstrakcja.

@CFun

Nie rozumiem dlaczego ludzie uważają, że C++ jest trudniejszy od C# i Javy

Hmm... dobre pytanie. Powodem moze byc, ze w co drugim zdaniu w standardzie jest ID albo UB.

0
n0name_l napisał(a):

Powodem moze byc, ze w co drugim zdaniu w standardzie jest ID albo UB.

No tak, ale to raczej nie jest powód, że trudniej się tego języka nauczyć.

Poza tym jeśli standard czegoś nie definiuje to po prostu nie należy tego używać.
Sam język C++ jako taki wydaje mi się łatwiejszy do opanowania niż C#, który może nie ma wskaźników, ale ma masę innych mechanizmów (np. delegaty), które w cale nie wydają się łatwiejsze do opanowania.

0

Poza tym jeśli standard czegoś nie definiuje to po prostu nie należy tego używać.
Sam język C++ jako taki wydaje mi się łatwiejszy do opanowania niż C#, który może nie ma wskaźników, ale ma masę innych mechanizmów (np. delegaty), które w cale nie wydają się łatwiejsze do opanowania.

czyli wychodzi że ja jestem do d**y... a nie że to wina trudnego języka na początek :/ ... W takim razie sam już nie wiem czy to programowanie faktycznie dla mnie :/ ...

1

No tak, ale to raczej nie jest powód, że trudniej się tego języka nauczyć.

Nie no, to oczywiscie uatrakcyjnia nauke. Nigdy nie spotkalem takiej przyjemnosci jak taki sam kod dzialajacy roznie (badz nie dzialajacy) skompilowany roznymi kompilatorami :D

C#, który może nie ma wskaźników

C# ma wskazniki, tylko sie ich prawie nigdy nie uzywa. Zreszta w C++ tez sie je stosuje tylko tam gdzie trzeba.

delegaty), które w cale nie wydają się łatwiejsze do opanowania.

W porownaniu do odpowiednika C++owego rzeczywiscie trudna sztuka. :D

@CFun
Ze tak bezposrednio zapytam, co ty bierzesz?

@lewozmywak
Nauczenie sie programowanie jest trywialne, wystarczy lubic, szukac, chciec.

2
n0name_l napisał(a):

C#, który może nie ma wskaźników

C# ma wskazniki, tylko sie ich prawie nigdy nie uzywa. Zreszta w C++ tez sie je stosuje tylko tam gdzie trzeba.

Haha ... Piszę od paru lat zawodowo w C++ i codziennym chlebem jest * oraz ->. W praktyce odwołuje się w systemie który rozwijam do dwóch obiektów statycznych .... Tu nie ma co gadać. C++ jest trudniejszy, niż np. C, ale faktycznie nie tak skomplikowany jak C#. Pisząc w C++ nie musisz znać OPP, struktur etc. Ludziom problemy robi abstrakcyjne myślenie gdzie c# daje gotową otoczke. W C# nie musisz wiedzieć co to maszyna stanów, pamięć etc. Ale to nie problem. C# ma sponsorów a c++ mniej. Może dlatego CS oferuje jakieś 2500- 3000 zł za etat w c#, a c++. owiec z prawdziwego zdarzenia - jeżeli taki się znajdzie to dostanie z 6000 zł na łape ...takie moje doświadczenie. W necie NIE MA dobrych materiałów do nauki c++ - kto c++ zna to potwierdzi przeglądając w myślach skąd ma wiedzę ...

0

#I czyja to wina, ze rzezbisz w brazie?
#Tak, piszac w C# nie musisz wiedziec o niczym. Tylko sie pisze. Niedlugo dojdziemy do teorii, ze C# to rodzaj psychologii.
#Stawki, ktore podales sa komiczne.
#Jak nie mozesz znalezc materialow to zadaj pytanie na forum. Z pewnoscia cos ktos wymysli.
#Rozumiem, ze jest 3 nad ranem, ale twoj post jest tak chaotyczny, ze ledwo to sie da czytac.

1
lewozmywak napisał(a):

Na studiach wykładowca mówi że C++ to idealny język do nauki programowania

To go sprostuj, że do nauki są lepsze języki:

  1. Scheme - minimalistyczna implementacja Lispa, w której musisz samemu napisać całkiem sporo funkcjonalności (np. pętle)
  2. C - minimalistyczny funkcyjno/imperatywny język (podobnie jak Scheme), z mniejszym poziomem abstrakcji (pozwala na pracę ze sprzętem)
  3. Prolog - podobnie jak wyżej, ale jeszcze programowanie logiczne
  4. Haskell - funkcyjny, leniwie ewaluowany język programowania, który wymusza zupełnie inne podejście do przemyślenia programu
  5. Smalltalk - OOP w czystej postaci
  6. Io - OOP w postaci prototypowej

I nauka chyba nawet w takiej kolejności.

0

@serge ja raczej traktuje możliwość wyrażania pewnej abstrakcji w C++ i zasady OOP-u za pozytywy tego języka.

@lewozmywak każdy był kiedyś do d**y, kiedy zaczynał z programowaniem a nie miał ni grosz wiedzy. Ja kupiłem videokurs kiedy zaczynałem, ale nie wykluczam, że być może książka, albo jakiś darmowy kurs były by lepszym rozwiązaniem, albo to może problem ze środowiskiem nauczania. W internecie darmowe źródła oferują wiedzę taką sobie, ale gdy zacząłem eksperymentować to stwierdziłem, że solidną wiedzę można zaczerpnąć z książek. Tylko z nimi jest taki problem, że mogą zakładać, że wszystkie nazwy i techniki powierzchownie znasz.

Zwykło się mówić, że dany język (np c++) jest lepszy od jakiegoś innego języka. Ale to jest tak ogólne stwierdzenie, nie mówiące nic precyzyjnego, szczególnego.

W C++ korzysta się ze wskaźników - sam jak zaczynałem miałem z nimi problemy, ale teraz uważam że to bułka z masłem. Zaraz ktoś się przyczepi - jak to bułka z masłem? A addreessyyy, dereefeerencje, tyypy wskaźnikoowe... No tak, to wszystko tak groźnie brzmi. Pod każdą nazwą kryje się jakaś technika, która z poziomu wysokopoziomowego języka (jak np c++) jest prosta jak bułka z masłem. Problem polega na tym, byś był w stanie wyobrazić sobie jak to działa - przynajmniej powierzchownie - a następnie przełożył to na jakiś przykład.

0

pewnie c++ tak jak mówicie strasznie trudny w porównaniu z innymi nie jest, ale pewnie u mnie jest jakaś blokada psychiczna(złe wspomnienia, itp) i dlatego topornie mi idzie. Myślę że kupie jakaś porządną książke od podstaw do javy lub c# i zobacze jak pójdzie.
http://helion.pl/ksiazki/java-podstawy-wydanie-ix-cay-s-horstmann-gary-cornell,javpd9.htm
http://helion.pl/ksiazki/c-rusz-glowa-andrew-stellman-jennifer-greene,cshrug.htm

tylko teraz wybrać czy zacząć jave czy c# i .net

0

Ja osobiście polecam tą pierwszą książkę (drugiej nie znam) - dla początkujących idealna. Pisało w niej gdzieś, że to dla "zawodowych programistów", którzy chcą nauczyć się Javy, ale dla mnie Java jest pierwszym językiem i uczyłem się go właśnie z tej książki. No i nie było większych problemów ze zrozumieniem, po prostu niektóre podrozdziały trzeba było przeczytać 2 lub 3 razy.

0
CFun napisał(a):
n0name_l napisał(a):

Powodem moze byc, ze w co drugim zdaniu w standardzie jest ID albo UB.

No tak, ale to raczej nie jest powód, że trudniej się tego języka nauczyć.

Oczywiście, że jest, bo trzeba więcej czasu spędzić, żeby zrozumieć mechanizmy składniowe zamiast cieszyć się z efektów swojej nauki.

Sam język C++ jako taki wydaje mi się łatwiejszy do opanowania niż C#, który może nie ma wskaźników, ale ma masę innych mechanizmów (np. delegaty), które w cale nie wydają się łatwiejsze do opanowania.

W C# są wskaźniki.
A delegaty to tylko wskaźniki na metody, więc co w tym może być niezrozumiałego?

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