Jaki język programowania na początek?

Witam.

Java, Lua, Python, Ruby. Kolejność alfabetyczna, nie sugeruj się nią.

Jaki język programowania wybrać? - początkujący

Nie można było skorzystać z forumowej wyszukiwarki albo Google? Nie odpowiadaj, to pytanie retoryczne.

Java lub Python. Ogólnie miałem ostatnimi czasy nieco dość języków webowych i sięgnąłem po Javę. Nawet miły język, szybko można narysować GUI, multiplatformowy - przyjemnie się zaskoczyłem. Pracy i płacy dla dobrych pracowników Javy też nie brakuje (tak myśląc przyszłościowo).

 

Ogólnie - moim zdaniem, programowanie stacjonarne dostarcza więcej zabawy i jest…mniej ssące. Jak piszę program, to piszę go w Javie, a nie jak web - jednocześnie z użyciem HTML, CSS, JavaScriptu (najgorszy etap), PHP i tony frameworków, a w każdej z technologii pisze się inaczej i trzeba doskonalić każdą z nich :wink:

Twój drugi akapit wprowadza w błąd i pokazuje nieznajomość tematu. Java to tylko język, a aplikacje za jego pomocą również można pisać za pomocą masy bibliotek i frameworków. Co więcej, ich przeznaczenie jest mocno zróżnicowane. Co innego Java w Androidzie, co innego Java po stronie serwera, co innego aplety, itd.

Oczywiście, że można, jednak to temat o wystartowaniu z konkretnym językiem, a nie na rozwodzenie się co może, a czego nie może, bo od tego można się na starcie pogubić :slight_smile: Można również korzystać przy pisaniu stacjonarnym z frameworków i bibliotek, ale nie zmienia to faktu, że nie musisz rozdrabniać się tak, jak przy pisaniu stricte webowym (mówiąc o pisaniu aplikacji). Dlatego myślę, że Java jest warta rozważenia, bo można ten język wykorzystać od aplikacji stacjonarnych do pisania pod web, natomiast już naginanie języków webowych pod pisanie aplikacji stacjonarnych takie fajne nie jest (choć możliwe) :wink:

 

Mnie akurat pisanie w Javie przynosi znacznie więcej zabawy niż staranie się wykodzić coś konkretnego dla web. Może to kwestia uprzedzeń, może odbicia z impetem od JavaScriptu, ale w Javie piszesz i po chwili jest już nawet GUI w Swingu, za to dla web rzeźbisz szkielet w HTML, rysujesz w CSS, potem skryptowanie JavaScriptem, a na końcu automatyzacja PHP i bazą danych. Masakra. Nie mówię, że znam Javę, bo w sumie wziąłem się za nią parę tygodni temu mając trochę dość webu, ale fajne efekty przyszły znacznie szybciej niż webowe, mniejszym nakładem nauki, choć jeszcze niedawno nie wiedzałem nawet jak napisać w Javie zwykłe Hello World. Przymierzam się teraz do paru aplikacji z GUI i niezmiernie cieszy mnie, że napiszę je w Javie, a nie rozmieniając się na parę języków jak z webem.

 

Jest to tylko moja opinia, nie mam tym samym monopolu na rację i nie zamierzam nikogo do mego zdania przekonywać. Jednak moim zdaniem - pisanie aplikacji jest szybsze i bardziej efektywne w językach stacjonarnych niż webowych, mniejszym kosztem rozmieniając się na drobne. Po co bowiem uczyć się całego tandemu języków webowych + frameworki, kiedy lokalnie wystarczy jeden stacjonarny i jakieś fajne frameworki czy biblioteki do tego. Niemniej pisanie webowe jest teraz na topie, ale zabierze chyba więcej nauki od zera niż konkretny język programowania, a aplikacje webowe wcale nie wyprą stacjonarnych (najwyżej zmarginalizują znaczenie), bo stacjonarne aplikacje mogą być bardziej zaawansowane i schodzić mocniej do sprzętu. Dobrym połączeniem jednego i drugiego jest dziś w sumie Python + Django, to też dobry duet od appek stacjonarnych po webowe.

Problem jest taki, że Java desktopowa jest sztucznie podtrzymywana przy życiu. Rozwój Swinga wstrzymano, JavaFX jakoś się nie przyjmuje. Klasyczna JavaSE to teraz trampolina do EE albo Androida. Rocznie powstaje gazylion frameworków i innych narzędzi wspomagających, a ja przy lekturze paru popularnych źródeł nowinek o światku JDK nie mogę się dopatrzeć newsów o narzędziach pod desktopa.

 

A sam żyję m.in. z utrzymywania swingowego legacy kodu.

Jeśli szanowni moderatorzy pozwolą podepnę się do tematu. Mam na oku dwa języki: QML i C++ jako że jako IDE wybrałem Qt Creator. Który z tych dwóch jest bardziej “przyjazny” dla początkującego? A może lepszy byłby Python ale wtedy musiałbym zmienić IDE :roll: (choć pewnie nie jest ono wcale potrzebne i wystarczy mi sam edytor tekstu) Od Javy trzymam się z daleka :wink:

 

EDIT

Interesuje mnie Qt i jeśli to ważne system to Linux & KDE.

QML jest językiem nie programowania, a deklarowania pewnych aspektów interfejsu tworzonego z użyciem biblioteki Qt. Całą logikę aplikacji tworzysz w C++/Pythonie/innym-języku, interfejs zaś w “zwyczajnym” Qt ze wstawkami QML-owymi.

 

Jeżeli chodzi o “przyjazność” języka, zmieniłbym C++ na Pythona.

Dziękuje za wyjaśnienie :wink: Znalazłem kurs Pythona ale już przy drugiej lekcji prawie wyrzuciłem klawiaturę przez okno, cholibka chyba programista to będzie ze mnie żaden :mrgreen: Co sądzisz o Ruby?

Niestety tak to wygląda, szczególnie na początku - jest dużo sytuacji, że chcesz rzucić to w choinkę, zastanawiasz się czy to w ogóle jest Tobie potrzebne, wielu rzeczy nie jesteś w stanie zrozumieć. A jak już programujesz nawet na poziomie, to tak czy siak nadal musisz kombinować jak, co i z czym połączyć, w tym uczyć się nowych ficzerów lub technologii :wink:

 

Podstawa według mnie to kompetentne źródło pierwszego startu, czyli dla mnie - dobra książka (konkretnie napisana dla człowieka, a nie przez geeka dla geeka. Niestety częściej trafisz na ten drugi typ). W przypadku Pythona jest ta komplikacja, że jest pewien dysonans w stosunku ceny do materiału dla początkujących, w tym najbardziej rozbudowane publikacje są najczęściej po angielsku i dość drogie (niemniej fachowa literatura IT nie jest tania tak czy siak, więc Python po prostu podpada pod regułę).

 

Jeśli trafisz na fajny kurs lub przyjazną książkę - to z takim materiałem nawet w Assemblerze byś śmigał :slight_smile: Tutoriale w internecie często mają ten problem, iż mają nierówny poziom, dublujący się materiał lub są luki w teorii, bądź urywają się i nie są dokończone. Z kolei tutoriale oficjalne są często zbyt suche :wink:

 

Osobiście jednak nie jestem programistą - poruszam się po handlowo-marketingowych sferach oprogramowania IT, ale staram kodzić z własnej ambicji, przy czym przebywam codziennie z masterami kodu, także co nieco łyknąłem od kuchni i w sumie od nich się zaraziłem. Może zawodowi programiści podpowiedzą Ci lepiej.

 

Mimo wszystko - start jest zawsze trudny. Bezboleśnie to można wystartować chyba tylko z HTML (i CSS) :wink:

Chyba najlepiej będzie wypróbować parę języków np Python, Ruby i C++ i potem zdecydować się na ten który mi najbardziej pod pasował :diabel: Fakt że sam nie wiem co chciałbym stworzyć, setny edytor tekstu? tysięczny odtwarzacz muzyczny? :-s

EDIT

Ciekawe że znalazłem kilka książek o Ruby (wyglądają na sensownie napisane) ale prawie nic o Pythonie.

W internetach jest tyle kursów i informacji, że do podstaw nie warto zaopatrywać się w książki (najczęściej przestarzałe i kulawo przetłumaczone). Wystarczy odpowiedni dobór (z pomocą idą fora poświęcone konkretnym językom i narzędziom) i znajomość angielskiego (serio, absolutne must-have).

 

Do Pythona sam mogę polecić:

http://www.codecademy.com/en/tracks/python

http://www.swaroopch.com/notes/python

Waść sobie przeczysz. Skoro angielski jest “must-have”, to argument o przestarzałych i kulawo przetłumaczonych książkach jest bez sensu. Aktualnych i dobrze napisanych książek po angielsku jest masa, a większość z nich lepsza od kursów online. Szczególnie dla początkujących, bo “internety” są świetne jeśli chodzi o dokumentację, ale jako materiał dydaktyczny internetowe kursy sporo ustępują profesjonalnym publikacjom książkowym.

No, ale to o Pythonie 2 głównie (tylko?) a jak angielskojęzyczne “internety” piszą, obecnie zaczynać powinno się od Pythona 3… Ktoś tu mówił coś o przestarzałych materiałach, czy mi się przywidziało? Dla początkującego to http://www.amazon.co.uk/Python-Programming-Absolute-Beginner-Dawson/dp/1435455002/ref=sr_1_2?ie=UTF8&qid=1405956139&sr=8-2&keywords=learning+python . A potem http://www.amazon.co.uk/Learning-Python-Mark-Lutz/dp/1449355730/ref=sr_1_1?ie=UTF8&qid=1405956371&sr=8-1&keywords=learning+python . Ta druga pozycja jest o tyle fajna, że opisuje obie linie Pythona (2 i 3). Oczywiście, wersje papierowe.

Witam jaki jezyk jest napjelpszy na poczatek patrzac na to z perspektywy doswiadczonego programisty? Chodzi mi o baze dobra aby ona mi tez sie przydala w pozniejszej fazie nauki jezykow bo jak wiemy programisci musza sie stale rozwjac. Zaczołem się uczyc c++ i nie wiem czy dobrze wybrałem ten jezyk raczej juz staje się coraz mniej popularny ,a bardziej java staje sie na rynku pracy bardziej oplacalna

Zacznij od nauki polskiego.