Jaki język programowania wybrać?


(Gokoko) #1

Witam chciałbym się zacząć uczyć jakiegoś języka programowania w końcu odpowiedni wiek (17 lat).Jaki język mi polecacie i jest najbardziej przyszłościowy??Kolega mówi ze Java jest najlepsza i najbardziej przyszłościowa i ze c++ to przestarzały język i jest powoli wycofywany wiec nie warto się go uczyć??Co radzicie ja jestem jednak za tym c++ chociaż Java może faktycznie jak mówi nie jest zła a może jakiś inny język.Liczę na wasze opinie i zdanie


(kamil_w) #2

C i C++ to starsze wersje C#. Tak w uproszczeniu można powiedzieć. W C# tworzy się coraz więcej oprogramowania dla systemów Windows i Windows Phone, jednak chcąc programować pod Linuksa/Androida itp warto znać C++. Java sama w sobie nie jest do szczęścia potrzeba programiście. Sam nigdy się nie uczyłem programować w Javie, a jakoś sobie radzę. Z tym, że obecnie skupiam się na tworzeniu witryn internetowych w ASP.NET i jQuery.


(mucha090) #3

@kamil_w ojojoj, a czemu wg ciebie C# jest tylko na Windowsa? Słyszałeś może o czymś takim jak mono? właśnie dzięki mono możesz programować w C# na każdy praktycznie system.

@gokoko możesz zacząć od C++ używając np. tego kursu http://cpp0x.pl/kursy/. Fajnie napisane i powiem tobie że szybko załapiesz podstawy C++ :slight_smile:


(Pablo_Wawa) #4

Całkiem inny wybór jest dla początkującego programisty, a całkiem inny dla zaawansowanego. Nie polecałbym Javy osobie bez doświadczenia. Jeśli już coś przyszłościowego (i nowoczesnego) to ew. C/C++/C#. Ale można też inaczej - HTML + PHP + JavaScript - przydane i przyszłościowe. :slight_smile:


(kamil_w) #5

@mucha090

ojojoj. Nie da się grzeczniej? Choćby np. tak:

Znam Mono. Korzystałem z IDE MonoDevelopment. Pisanie w nim pod Linuksa nie jest tak przyjemne jak tworzenie aplikacji/serwisów internetowych w Visual Studio. Drugą sprawą jest to, że dużo rozwiązań, które powinny z założenia w Mono działać po prostu nie działa. Mono jest tylko portem i w dodatku niedoskonałym. Na chwilę obecną tworzenie czegokolwiek w Silverlight'cie z użyciem Mono to droga przez męki.

Ponadto napisałem, że programując dla systemów uniksowych WARTO znać C++, a nie że trzeba. Na dobrą sprawę można nauczyć się tylko i wyłącznie C# + MS SQL. Znam sporo osób, które swoją edukację programowania zawęzili tylko do tego zakresu i całkiem nieźle na dziś dzień zarabiają.


(somekind) #6

To są trzy zupełnie różne języki, o zupełnie różnych zastosowaniach, które mają jedynie kilka podobnych słów kluczowych i konstrukcji. C# ma więcej wspólnego z Delphi i Javą niż z C czy C++.

C i C++ nadal będzie długo używany tam, gdzie Java czy C# się nie nadają.

gokoko , przeszukaj ten dział, było tutaj kilkadziesiąt podobnych tematów.


(Frankfurterium) #7

Nie sądzę. Scala jest fajnym językiem, ale ciągle brakuje dobrych kursów i książek dla zupełnie zielonych. W podręczniku autora języka (naprawdę dobrym) co chwila

pojawiają się analogie do Javy i przełożenie na JVM. Nie to, żeby taka nauka była niemożliwa czy niemożebnie trudna, ale ktoś, kto ma choćby podstawową znajomość innego języka, przeczyta, że while jest taki sam jak w Javie i prawie wszędzie indziej, tyle że do tego zwraca wartość. Potem popatrzy na kod i wie wszystko. Ktoś zielony może się nieco zaplątać.

Ja sam poleciłbym C#, Javę albo Pythona. Na początek każdy wybór będzie dobry. Sporo materiałów, bibliotek itd. Kiedy będziesz już potrafił co nieco napisać, pewnie wybierzesz inny język. Tym razem świadomy wad, zalet i przeznaczenia.

Odradzałbym C i C++. To w dalszym ciągu dobre i funkcjonalne języki, ale pełne składników, z których następne generacje zrezygnowały i, co by nie mówić, nieco podstarzałe i w efekcie nieposiadające pewnych przydatnych ficzerów.


(Razi) #8

O ile można mówić o tym że C++ jest rozszerzeniem C, to C# nie ma z tym nic wspólnego, te C w nazwie to jest chyba tylko zabieg marketingowy. Już więcej z C ma wspólnego język D, który "honoruje" biblioteki C wprowadzając obiektowość, Garbage Collectora (na standardzie, nie jako biblioteka jak w C/C++) i wiele innych ficzerów (jak np. wątki jako standard, nie biblioteka zależna od OSa).

IMO warto znać kilka języków, a najbardziej C++ i Javę. C++ uczy dbać o wszystko, a w Javie po prostu się pisze.


(Frankfurterium) #9

Zwłaszcza o to, co w prawie wszystkich nowszych popularnych językach wykastrowano. IMO jeżeli najważniejszym kryterium pisanych programów desktopowych nie jest szybkość działania, to nie ma co się pchać w C++. 'Trzeba dbać o wszystko' to taki synonim 'Trudny język i pisanie wymaga wysiłku'. Jak dla mnie to kiepska rekomendacja na pierwsze narzecze. 'Dobre praktyki' można wyrobić na każdym języku, a kiedy nie jest to C/C++, owo wyrabianie bywa znacznie mniej stresujące. No i wyrabia się wtedy praktyki nietyczące się funkcjonalności wymarłych.


(kamil_w) #10

Zasada numer jeden - na początku swojej edukacji programistycznej należy ustalić jakieś reguły, których będziemy przestrzegać w późniejszym czasie. Bez reguł i konsekwencji w ich stosowaniu programista szybko może się pogubić w kodzie, który już napisał. I tak np. ja stosuję nomenklaturę, którą wyniosłem z zajęć programowania na studiach. Poszczególnym elementom nadaję nazwy z odpowiednim prefiksem. Przykłady:

Obiekt - przykładowa nazwa

  • Przycisk - btnZatwierdz (od button)

Tak mnie nauczono i już przekonałem się na własnej skórze, że takie nazewnictwo ma sens i ułatwia życie programisty.


(Gokoko) #11

A czy mógł by mi ktoś polecić jakiś kurs online c# najlepiej po polsku??


(kamil_w) #12

Ja nic Ci nie mogę polecić, bo sam C# uczyłem się na zajęciach na studiach. Tak na szybko przejrzałem pierwsze wyniki z Google'a i muszę stwierdzić, że te kursy są lipne. Przykład: http://si-szarp.pl/

Na tej stronie pokazany jest przykładowy program, druga lekcja to zmienne, a trzecia - instrukcja warunkowa if. A gdzie przedstawienie i opisanie klas, metod itp itd? Polecam zaopatrzyć się w jakąś książkę, w której wszystko jest opisane dokładnie, a nie po łebkach.


(A8o2ge) #13

Ja bym na Twoim miejscu spojrzał na to od drugiej strony, czyli od końcowego rezultatu, ważne jest co byś chciał kiedyś tworzyć, czy to będzie kierunek gier, a może strony internetowe, a może aplikacje internetowe, a może ... no właśnie. Nie każdy język nadaje się do tworzenia wszystkiego. Ja osobiście przeszedłem drogę, hm... HTML, Pascal, Delphi, JS, C, C++, Asembler, PHP, Python, na polibudzie głównie ASP, ASP.NET, C#, Java, VHDL, a obecnie skupiłem się na tworzeniu aplikacji internetowych z użyciem różnych frameworków i powiem szczerze, że ciężko doradzić komuś od czego ma zacząć, chyba trzeba samemu do tego dojść, każdy język inaczej z nami rozmawia.

Polecam stronę http://moskit.weii.tu.koszalin.pl/~swalover/ - mojego ulubionego wykładowcy z politechniki, jest tam kurs C, Java taki od podstaw, a przed bardzo ważne zagadnienia: zarządzanie projektami informatycznymi, podstawy inżynierii oprogramowania, modelowanie i analiza systemów informatycznych.

Ps. Kiedyś, nie wiem kto, ale też miałem, tego typu pytanie, dostałem odpowiedź: język angielski :slight_smile:


(soanvig) #14

Jedno jest pewne, że poza multiplatformowością Java nie oferuje kompletnie nic atrakcyjnego. To jest przestarzały język, a nie C++. Jasne, że są nowsze odpowiedniki C++ ale to on nadal jest jednym z tych najpowszechniej używanych języków (przede wszystkim do gier, potem do programów)


(Frankfurterium) #15

Faktycznie, Java nie jest nowa i ostatnio rozwija się nieco niemrawo. Mimo wszystko gdzie się nie obejrzeć, tam szukają programistów Javy właśnie, a w każdym roku powstaje kilka frameworków/projektów wspomagających programowanie w tym narzeczu. Java + jakiś framework i Hibernate to obecnie chyba najpewniejszy sposób na znalezienie pracy w komercyjnym klepaniu kodu. Z C# + ASP.NET (i/lub MVC) sprawa wygląda podobnie. Ogłoszeń dla C++ jakoś widzę w internecie mniej, a i one zazwyczaj szukają ludzi z wieloletnią praktyką.


(somekind) #16

No tak, do gier, programów...

Problem w tym, że biznes działa w skrócie na zasadzie: otwórz przeglądarkę, zapisz dane o kliencie do bazy, zapisz dane o jego zakupach do bazy, wygeneruj raport dla zarządu. A tego się już w C++ nie robi, bo się nie da, albo nie opłaca.

Szukają doświadczonych programistów do utrzymywania starych systemów, albo do pisania specyficznych rzeczy (gry, sterowniki, algorytmy numeryczne). Osobie, która zacznie się teraz uczyć C++ trudno będzie się przebić na tym rynku.


(Picu) #17

W wyborze jezyka programowania moze byc pomocna taka oto strona: http://www.jobtrends.pl

Ranking dla jezykow programowania: http://jobtrends.pl/trends/polska/?cat=1 - jak widac najwiecej pracy jest w Javie...


(Rxprojekt) #18

Ja ci polecę Ruby'ego, łatwy i dość stabilny. Nie musisz się przejmować średnikami i deklaracją typów.


(soanvig) #19

Jeśli tylko dlatego Ruby jest "fajny", to powodzenia :smiley:

Tu jest trochę więcej zalet i ciekawostek

http://www.ruby-lang.org/pl/about/

http://www.ruby-lang.org/pl/dokumentacj ... ramowania/


(Frankfurterium) #20

Ostatnio doszedłem do wniosku, że Scala jest zbyt wielka. Dosłownie i w przenośni.

Początki są nieco dziwne, bo trzeba przyzwyczaić się do składni i podstawowych założeń. Potem następuje moment, gdzie w krótkim czasie przyswaja się sporo pomocnych rozwiązań i z radością pisze się proste aplikacyjki. Ale po przejściu do zagadnień nieco bardziej skomplikowanych Scala przytłacza. Nie skomplikowaniem, ale liczbą potencjalnych rozwiązań. Dochodzi do tego, że na takim StackOverflow pisze się niemal javowy blok kodu, a potem użytkownicy stopniowo przekształcają rozwiązanie na "Scala way". Efekt zazwyczaj jest dużo krótszy i na dobrą sprawę czytelny, ale nie wiem, kim trzeba być i jaką mieć praktykę, żeby coś takiego napisać od razu, z marszu...

Podsumowując: Scala to kapitalny język, ale trzeba w naukę włożyć naprawdę sporo wysiłku, żeby kod nie był "inaczej zapisaną Javą z elementami funkcyjnymi".

Btw. gdyby ktoś chciał uczyć się Clojure, polecam starą lispową zabawę w nowej odsłonie:

http://www.4clojure.com