Jaki język programowania + ogólne pytania

0

Witam serdecznie,
Jest to mój pierwszy post na tym forum. Czytając masę artykułów w internecie, for czy też komentarzy w grupach specjalistycznych na fecebooku, zacząłem się już w tym gubić.

Chciałbym zacząć naukę programowania backendowego w serwisach WWW. Ogarniam HTML i CSS, natomiast wiem, że to nie są języki programistyczne tylko opisujące szkielet witryny. Zawsze mnie fascynowało to jak witryna działa oraz co się dzieje kiedy zaczynam wstukiwać różne polecenia na WWW. Co się potem z tymi danymi dzieje i gdzie one lądują (wiem że do MySQL).

Chciałbym wybrać język programowania, który będzie posiadać niski próg wejścia - nie zrazi mnie od samego początku i do którego jest masa kursów.

Swoją przygodę zacząłem z książką Head First PHP i MySQL, lecz strasznie topornie wg mnie piszą. Skończyłem edukację na 80 stronie...

Czytając natłok informacji w internecie, powiem szczerze, że niektóre komentarze mnie przygniotły.

Coraz częściej spotykam się z frameworkami, które trzeba znać. Za dobrze nie wiem co to znaczy, ponieważ nigdy nie miałem z tym styczności.

Co to znaczy, że ktoś pisze:
Jak JavaScript - to koniecznie Node JS.
Jak PHP to ZEND
Jak Python to Django.
Ruby On Rails - nie mam pojęcia co to jest, jakiego języka to używa. Co trzecia osoba poleca zacząć naukę od tego.

O co w tym wszystkim chodzi? Czy te frameworki ułatwiają "myślenie" programiście? Czy tylko służą do zebrania całego serwisu WWW w jedną całość?

Poszukiwania swojego języka programowania, chciałbym zacząć od tego, że potrzebuję języka typowo do WebMasterki. Wiem, że bez znajomości MySQL się nie obejdzie. Tylko co polecacie?

Czy jeżeli przyjdę do pracy, w której strona jest napisana w PHP a ja zacząłem uczyć się JavScriptu czy Pythona czy w ogolę na coś się przydam?

Chciałbym też dowiedzieć się gdzie można uzyskać kompletne informacje dotyczące nowych technologii. Co z czym się je, czego się uczyć oraz co z czym współpracuje.

Z framworków HTML poznałem bootstrapa i wiem do czego służy, natomiast już GULPy Grunty nie mam pojęcia. Czarna magia jednym słowem, a nie ma żadnego serwisu, w którym czarno na białym pokażą początkujacemu newbie o co w tym wszystkim chodzi.

Z góry dziękuje, jeżeli ktoś przeczyta moje wypociny i spróbuje udzielić mi jakiejkolwiek informacji :)
Pozdrawiam,
Newbie.

3

Nie trzeba znać frameworków by pisać backend, jednak jest to tak rozległe zagadnienie, że frameworki najzwyczajniej w świecie porządkują Tobie kod i narzucają jakiś (mniej lub bardziej poprawny) tok rozumowania.

Jeśli mogę coś poradzić:

  • Odrzuć JS z samego startu (jeśli interesuje Cię backend). Fragmentacja w tym języku oraz mnogość różnych (konkurencyjnych) rozwiązań jest wręcz śmieszna i tylko może Cię zrazić. Dodatkowo JS nie (IMHO) wygodnym językiem.
  • Odrzuć PHP, bo ten język wymagałby gruntownej przebudowy by być użytecznym. Jeśli jeszcze nic nie znasz, i chcesz się nauczyć czegoś fajnego, to porzuć PHP. Jeśli nie masz wyboru to spróbuj Hack lub HHVM.
  • Python (Django/Flask) oraz Ruby (Rails/Sinatra) są całkiem fajnymi rozwiązaniami na start, bo mają dużo materiałów, są w miarę na bieżąco technologiami, i mają dość niski próg wejścia. Tutaj nie poradzę Ci co wybrać, bo to kwestia czysto osobista. Ja wybrałem Rubiego, bo bardziej mi podeszła składnia i filozofia języka.
  • Jeśli masz wybór (a zakładam, że skoro zaczynasz to tak), to ucz się PostgreSQL zamiast MySQL. Więcej kompatybilności z nowymi standardami SQL, lepsza konfiguracja domyślna. Ogólnie w 90% przypadków, pgSQL będzie miało to czego potrzebujesz wbudowane i sprawdzi się lepiej niż MySQL. A jak już musisz MySQL to MariaDB.
  • Na starcie zarzuć pomysły z używaniem NoSQLi. Na 99% nie trafisz i prędzej czy później napotkasz problemy.
  • Jeśli już kiedyś programowałeś i masz ochotę na coś bardziej hardkorowego (lub nigdy jeszcze nie programowałeś i masz głowę gotową na przyjęcie wiedzy) to spróbuj Clojure lub Elixira. Jest to podejście funkcyjne, więc troszeczkę mniej intuicyjne od standardowego podejścia do pisania programów, ale dzięki temu masz dużo zalet, które przydają się w pisaniu aplikacji sieciowych.
0

@winerfresh Dziękuje Ci bardzo za obszerny komentarz.
Wielu zdań z tego co napisałeś nie rozumiem, ale od czego jest wujek Google żeby znaleźć informację. Zawarłeś wszystkie informacje w kilku zdaniach :)

Dziękuje raz jeszcze.

0

Zacząłem naukę PHP, ponieważ WordPress z niego korzysta.
Znalazłem fajny komentarz dotyczący RoR:

Przykładem może być to jak łatwo w Ruby’m możemy napisać „ha ha ha”. Jest to popularny przykład.

Tradycyjny język komputerowy pewnie robi to w ten sposób:

Kod:

for ($i=0; $i<3; $++) {
   echo "ha";
}

Natomiast w RUBY’m wygląda to tak:

Kod:

3. times do
print "ha"
end
0

A w Pythonie to napiszesz jeszcze krócej niż w Ruby. Pamiętaj że wymagany jest wszędzie JavaScript, dlatego ES6 i Node,js to dobre połączenie. Uczysz się jednego języka i masz do backendu, frontendu.

0

W mojej opinii nie powinieneś przekreślać NodeJS. Skoro już znasz JS z Node bardzo szybko postawisz aplikację z backendem. Aplikacje MEAN są bardzo popularne i calkiem nieźle się sprawują (IMHO).

Poza tym uważam, że dobrze jest znać Javę, ma masę zastosowań i prędzej czy później, gdziesz się z nią spotkasz.

0

@wielki pomidor. Co to jest ES6?

@shagrin o co chodzi z aplikacjami Mean? Czy Java nie jest tylko dla molohów w korpo? Nie za trudna na poczatek? Czy sam cos ogarne w niej dla siebie na www?

0

Pan Mirosław Zelent odradza na początek Jave i C#, to są języki dla klasy Enterprise i wielkich korporacji, bardzo dużo materiału do nauki są dość trudne i skomplikowane. Lepiej zaczynać od mniejszych języków programowania w których coś stworzysz szybko, no bo za czym się nauczysz dobrze Javy, to w innym mniejszym języku napisał byś już kilka projektów. Java bez frameworów praktycznie nie istnieje, a to dodatkowe materiały przecież do nauki. Pisząc w Javie dobrze znać JavaScript i Angulara, w ogłoszeniach o prace to wymagają oprócz Spring, czy Hibernate.

0

Pan Mirosław Zelent odradza na początek Jave i C#, to są języki dla klasy Enterprise i wielkich korporacji, bardzo dużo materiału do nauki są dość trudne i skomplikowane.

Dlatego po to był mój post! Docelowo chciałbym znać javę i pracować w ogromnej korporacji. Jednak wiem, że jeżeli efektów nie zobaczę szybko, to taki język nie będzie przynosić mi motywacji do dalszej nauki.

1

Otóż to, stracisz motywacje, bo długa żmudna nauka wyczerpuje chęci. A korpo-szczurem zawsze możesz zostać potem.

0

Programowanie to ciągła nauka nowych technologi jak ty twierdzisz, że stracisz motywacje przy nauce schematycznych podstaw to lepiej zostań cukiernikiem.

8
morek900 napisał(a):

Docelowo chciałbym znać javę i pracować w ogromnej korporacji. Jednak wiem, że jeżeli efektów nie zobaczę szybko, to taki język nie będzie przynosić mi motywacji do dalszej nauki.

Dobra, to teraz zagadka. Co trzeba zrobić, aby nauczyć się Javy:

  1. Zacząć uczyć się Javy.
  2. Zacząć uczyć się PHP.
  3. Pytać na forum.
  4. Zostać stolarzem.

Test jednokrotnego wyboru, czas na odpowiedź nieograniczony.

0

Jest w tych pytaniach jakiś haczyk i ukryta pułapka?

3

Do nauki Javy wyznacz sobie takie etapy:
a) aplikacje konsolowe typu implementacja jakiegoś algorytmu lub bardziej zaawansowane - ściągnięcie i wyświetlenie prognozy pogody
b) aplikacje GUI: Swing / JavaFX
c) aplikacje web: JEE/Spring, REST, Akka, Play
d) certyfikat

Na etapach a-c rób aplikacje typu PoC które działają, są na serwerze, umiesz je zbudować i przetestować automatycznie.
W okolicach b/c szukasz pracy.
Po d praca szuka Ciebie.

5

o co chodzi z aplikacjami Mean? Czy Java nie jest tylko dla molohów w korpo? Nie za trudna na poczatek? Czy sam cos ogarne w niej dla siebie na www?

Aplikacje MEAN czyli MongoDB, Express, Angular, NodeJS.

W mojej opinii to śmieszne twierdzić, ze nie ma co się uczyć Javy bo trudny jezyk odstrasza i zniechęca. Chcesz docelowo pracować jako javowiec, zacznij jak najwcześniej uczyć się javy. Przy stwierdzeniu, ze łatwiej jest nauczyć sie drugiego jezyka, jak już się jakiś zna, zgodzę sie, pod warunkiem ze tym pierwszym jezykiem jest jakiś niskopoziomowy jezyk, np. C. Ogarniając jezyk z tej grupy będziesz miał większe pojecie jak to faktycznie wszystko działa.

0

Najszybciej efekty pracy zobaczysz w PHP.

I jeżeli nigdy nie programowałeś wcześniej - zacznij od tego.

Zrobisz sobie stronę WWW, poznasz jak to wszystko działa.

A potem - gdy zobaczysz, że to dla Ciebie - będziesz mógł zacząć się uczyć C# czy od biedy nawet tej Javy.

Prawdę mówiąc nie rozumiem dlaczego niektórzy tak odradzają PHP, bo to nie język, bo ciężko się przestawić, bo tylko Allegro i Facebook na tym zrobiono, a jednocześnie zachwalają .... JavaScript, jako must have <szok>

0
shagrin napisał(a):

o co chodzi z aplikacjami Mean? Czy Java nie jest tylko dla molohów w korpo? Nie za trudna na poczatek? Czy sam cos ogarne w niej dla siebie na www?

Aplikacje MEAN czyli MongoDB, Express, Angular, NodeJS.

W mojej opinii to śmieszne twierdzić, ze nie ma co się uczyć Javy bo trudny jezyk odstrasza i zniechęca. Chcesz docelowo pracować jako javowiec, zacznij jak najwcześniej uczyć się javy. Przy stwierdzeniu, ze łatwiej jest nauczyć sie drugiego jezyka, jak już się jakiś zna, zgodzę sie, pod warunkiem ze tym pierwszym jezykiem jest jakiś niskopoziomowy jezyk, np. C. Ogarniając jezyk z tej grupy będziesz miał większe pojecie jak to faktycznie wszystko działa.

W zasadzie to wszystko prawda.
Ale jeżeli mamy spełnione 2 warunki:
-ktoś wie co to programowanie i wie, że mu się to podoba
-ktoś chce się uczyć Javy.

Jeżeli ktoś dopiero zaczyna to warto przemyśleć możliwość uczenia prostszego, czyli szybciej dającego efekty języka programowania.
Ja zaczynałem w latach 90 od Turbo Pascala, i to dawało od razu efekty, bo cały interfejs w komputerach był tekstowy w DOSie.

Teraz jest trudniej zaczynać, bo trzeba poznawać te wszystkie frameworki, tracić masę czasu aby zrobić Hello World.

Stąd może najłatwiej będzie się nauczyć...C# i WinFormsów ?

To powinno dać szybko efekty, jeżeli nie chcemy robić super pro aplikacji od razu.

Instalacja Visual Studio 2015 Community, designer do formsów jest, nic tylko klikać :)

0

@Robaczkowy, a jeżeli ja mam tylko Ubuntu 16.10 na laptopie i Ubuntu 17.04 na Desktopie, to który język programowania poza C# najlepiej wybrać. Zależy mi aby nie zmieniać technologii co 2 lata. nauczyć się dobrze języka i jednego frameworka i mieć stabilność. Warunek jest taki aby nie babrać się w HTML5, CSS, JS.

0
Czarny Młot napisał(a):

@Robaczkowy, a jeżeli ja mam tylko Ubuntu 16.10 na laptopie i Ubuntu 17.04 na Desktopie, to który język programowania poza C# najlepiej wybrać. Zależy mi aby nie zmieniać technologii co 2 lata. nauczyć się dobrze języka i jednego frameworka i mieć stabilność. Warunek jest taki aby nie babrać się w HTML5, CSS, JS.

Jeżeli nie chcesz pisać pod windowsa to wówczas podzielam zdanie @shagrin - zainwestuj swój czas w Javę.

0

Tylko że ta Java bardzo ciężka dla podzespołów, gdy chce napisać program na desktop. Zasobożerna jest i wymagająca moznego sprzętu. Mój kolega używa Android Studio do pracy zawodowo i ma dla wygody, aby mu nic nie zacinało i7 i 64GB RAM DDR4. Inne języki programowania są dużo lżejsze od Javy.

0

Może inaczej, Java skłoniła mnie do nauki dlatego, że :

  • jest opłacalna pod względem $$ w PL i za granicą
  • jest multiplatformowa

Docelowo nie mam zamiaru pisać aplikacji na Androida oraz Mobile. Ale Oferty Pracy skłaniają mnie ku niej.
Jakie jest zdanie na ten temat?

0
Robakowy napisał(a):
shagrin napisał(a):

W zasadzie to wszystko prawda.
Ale jeżeli mamy spełnione 2 warunki:
-ktoś wie co to programowanie i wie, że mu się to podoba
-ktoś chce się uczyć Javy.

Jeżeli ktoś dopiero zaczyna to warto przemyśleć możliwość uczenia prostszego, czyli szybciej dającego efekty języka programowania.

Dokładnie o to mi chodziło, dopiero zaczynam pracę z językiem programowania. Nie mam zielonego pojęcia o pętlach, warunkach itp.

Mierosław Zelent uczy C++ niestety, który IMO jest zbyt rozbudowany dla świeżynki jak ja.

0

W mojej opini!
Żeby coś osiągnąć to trzeba najpierw zacząć coś robić. Arsenał, który zdobyłem do nauki to :

  1. Rusz głową - JavaScript
  2. Rusz głową - JAVA i pierwsze linijki w książce:

Jeśli możesz odpowiedzieć twierdząco na wszystkie z poniższych pytań:
Czy programowałeś już wcześniej?
Czy chcesz nauczyć się programowania w Javie?
Czy wolisz stymulującą pogawędkę przy obiedzie
niż suchą i nudną techniczną publikację?
to jest to książka dla Ciebie.

Kto prawdopodobnie nie powinien sięgać po tę książkę?
Jeśli możesz odpowiedzieć twierdząco na przynajmniej jedno z poniższych pytań:

Czy Twoje doświadczenia programistyczne ograniczają się wyłącznie do
języka HTML i to bez korzystania z jakichkolwiek języków skryptowych?
(Jeśli robiłeś cokolwiek wykorzystującego pętle lub logikę warunkową, to na
pewno sobie poradzisz, jeśli jednak Twoje doświadczenia ograniczają się do
stosowania znaczników języka HTML, to może to być nieco zbyt mało).

Jesteś doświadczonym programistą C++ szukającym podręcznika Javy?
Boisz się spróbować czegoś nowego? Czy wolałbyś raczej leczenie
kanałowe niż szal w szkocką kratkę. Czy uważasz, że książka
o programowaniu, w której w dziale o zarządzaniu pamięcią są
rysunki kaczuszki, nie może być poważna?
to ta książka nie jest dla Ciebie.

  1. Wprowadzenie PYTHON - o'reilly
  2. https://www.freecodecamp.com/
  3. Codeacademy i PYTHON
  4. Rusz Głową - PHP i MySQL
    • jakieś videokursy z Javy i Pythona :)

Co o tym myślicie?

0
morek900 napisał(a):

Mierosław Zelent uczy C++ niestety, który IMO jest zbyt rozbudowany dla świeżynki jak ja.

Java nie jest prostsza :)

Nie zniechęcaj się tymi wszystkimi rozbudowanymi składniami.
Wszystko da się ogarnąć. Po prostu programowanie to nie jest coś czego da się nauczyć w miesiąc.
Trzeba poświęcić temu dużo czasu, ale jest to wykonalne.
Nie patrz na skomplikowaność języka, bo każdy jest skomplikowany jak się go nie zna.

Jeżeli widzisz się w Javie to z pewnością nauka jej nie będzie czasem straconym.

0
Czarny Młot napisał(a):

Tylko że ta Java bardzo ciężka dla podzespołów, gdy chce napisać program na desktop. Zasobożerna jest i wymagająca moznego sprzętu. Mój kolega używa Android Studio do pracy zawodowo i ma dla wygody, aby mu nic nie zacinało i7 i 64GB RAM DDR4. Inne języki programowania są dużo lżejsze od Javy.

To że Twój kolega ma 64 GB RAM nie znaczy że tyle jest niezbędne.
Do nauki wystarczy 4-8 GB i Intel i5.
Do pracy zawodowej wystarcza spokojnie 16 GB (gdzie serwer JEE - WebSphere - jest w wirtualce).

0
Robakowy napisał(a):
morek900 napisał(a):

Nie zniechęcaj się tymi wszystkimi rozbudowanymi składniami.
Wszystko da się ogarnąć. Po prostu programowanie to nie jest coś czego da się nauczyć w miesiąc.
Trzeba poświęcić temu dużo czasu, ale jest to wykonalne.
Nie patrz na skomplikowaność języka, bo każdy jest skomplikowany jak się go nie zna.

Jeżeli widzisz się w Javie to z pewnością nauka jej nie będzie czasem straconym.
</quote>

Widzę się, bo w końcu chciałbym zacząć zarabiać $$. Szczerze, to jak kiedyś kolega przyszedł do mnie z kodem HTML i CSSem to też dla mnie to była czarna magia. Nie wiedziałem gdzie co jest i z czym i oczywiście dlaczego. Dopiero później, po nauce wszystko zaczęło wchodzić do głowy.

0

70% internetu uważa, że PHP sux i C++ sux na 1szy język.

Ale 70% internetu nie wie, że większość osób w tym pisze i buduje strony np WordPress :>

0

PHP to fajny język i z pewnością trzeba go znać, bo jest w tym napisanych wiele użytecznych narzędzi jak właśnie wiele systemów CMS czy sklepy internetowe.

Ale przez to, że PHP jest łatwy w nauce, jest dużo programistów tego języka i przez to tacy programiści są nisko wyceniani.

Czy PHP jest dobry na pierwszy język ? Moim zdaniem tak.

1
morek900 napisał(a):

70% internetu uważa, że PHP sux i C++ sux na 1szy język.

Ale 70% internetu nie wie, że większość osób w tym pisze i buduje strony np WordPress :>

Znajomość PHP-a możesz stopniować:
a) język szablonów (Wordpress, sklepy)
b) język programowania do zabawy (algorytmy, przetwarzanie plików)
c) język do pracy

Od siebie mogę polecić tylko (a), bo ponieważ iż:

  • jeśli chodzi o (a) to oczywiście PHP rządzi - masa darmowych, bardzo rozbudowanych skryptów gotowych do wdrożenia

a reszta?

  • PHP nie jest językiem uniwersalnym, wręcz przeciwnie - możesz w nim właściwie zrobić tylko backend aplikacji (ew. frontend - zależy co się przez to rozumie)
  • w PHP-ie nie zarobisz dużo, bo jest strasznie dużo chętnych na taką pracę a oferty pracy też nie są jakieś super
  • PHP jest powolny. Nie tak powolny jak Ruby, ale jednak. Do zabaw algorytmicznych średni. Lepszy zamiennik: Python.
  • PHP ma skopany system typowania. Upraszczając trzyma dane jako string a potem zgaduje co w tym stringu siedzi. Tak to przynajmniej wygląda z zewnątrz. PHP7 jest trochę lepszy pod tym względem.

Jeśli już uczyć się PHP-a to tylko PHP 7.
http://blog.teamtreehouse.com/5-new-features-php-7
https://blog.feryn.eu/php-7-is-now-available-new-features-improvements/

Ale skoro jest Python, to nie wiem jaki jest sens nauki PHP-a.

Python możliwe że jest łatwiejszy od Javy.

Jedna z możliwych ścieżek rozwoju to:
Python (nauka programowania) -> JavaScript (webdev) -> Java (praca w web / korpo).

Inne:
Python (nauka programowania) -> JavaScript (webdev) -> node.js (praca w web).
Python (nauka programowania) -> C/C++ (moduły dla Python) -> praca w data mining / data science.
Java (nauka programowania) -> Groovy / Grails (web) -> JEE / Spring / Scala (praca)

Jak już wskoczysz na Jave to polecam się skupić tylko na niej - przynajmniej przez jakiś czas.
Jest w niej kupę rzeczy do nauki (język, frameworki, narzędzia, serwery, wzorce, standardy...)

0

PHP się po prostu przydaje w życiu codziennym.
Przykład - zainstalowałem sobie forum na phpBB i od razu widzę, że czegoś mi brakuje. Patrzę na rozszerzenia - nie ma.
Więc pozostaje samemu napisać :)

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