Zbieram moją całoroczną wiedzę o językach / freamworkach itp.
Kim ja mam zostać w pigułce:
Na początku polecam wybierać taki język, który zapewni dobrą podstawę do dalszej nauki. Językiem tym jest C++. Po dojściu do poziomu polimorfizmu jesteś w stanie przejść do wielu dziś popularnych języków bardzo podobnych składniowo. Zasada działania również pozostaje w większości taka sama. Następnie określ ścieżkę jaką chciałbyś podążać. Może to być: tworzenie gier, stron internetowych / aplikacji internetowych, aplikacji desktopowych, aplikacji mobilnych, programów / sterowników do maszyn. Jeśli interesujesz się paroma ścieżkami i tak wybierz jedną, nad którą skupisz się w najbliższym czasie.
Strony / aplikacje internetowe:
Dzielą się na frontend, backend oraz middleend.
Frontent to część, którą jest w stanie zobaczyć użytkownik, prowadzić z nią interakcję. Do opisu zawartości strony służy HTML. Sama zawartość jest dosłownie brzydka: czarny tekst, niebieskie linki, obrazki, białe tło, wszystko jedno pod drugim. Aby było nieco weselej powstaje język do stylizacji zawartości: CSS. Człowiek nie byłby sobą gdyby ciągle nie starał się ulepszać swoich dzieł ( jaki i siebie ), dlatego powstają preprocesory. W skrócie są to języki, które są prostsze, pozwalają szybciej opisywać te same style a potem kompilują się do zwykłego CSS. Najpopuralniejsze to SASS, LESS oraz Stylus. Preferuję SASS - jest coraz częściej wybierany. Oczywiście na tym chęci rozwoju się nie zatrzymują. Powstają całe freamworki, czyli podstawy ( szkielety ) zapewniające wiele gotowych elementów mogących zostać w każdej chwili przez nas wykorzystanych, rozbudowywanych. Najpopuralniejsze freamworki to Bootstrap i Foundation. Polecam zapoznanie się z Compass oraz Bourbon. Preprocesor do HTML to Jade i Haml ( Haml często nie jest polecany ).
Językiem do tworzenia fajerwerków na stronie oraz wszelakich form interakcji z użytkownikiem jest JavaScript. Ogromna ilość bibliotek / narzędzi tworzonych przez społeczność skutecznie podtrzymuje jego popularność i jest z pewnością sporą zaletą. Na JavaScript jest stworzony AngularJS, niebawem światło dzienne ujrzy Angular 2 - freamwork MVC godny uwagi, czy Node.js - całe środowisko programistyczne pozwalające korzystać z JS po stronie serwera ( backend ). Nie ma tak pięknie. Na samym JS tworzone są kolejne usprawnienia: CoffeeScript, TypeScript, Dart. CoffeScript jest językiem generującym JS. W oficjalnym poradniku znalazłem taką oto linijkę kodu napisaną w tym cudzie:
eat food for food in foods when food isnt 'chocolate'
Krótko mówiąc - to nie jest najlepsze rozwiązanie, kod może jest prosty jednak brakuje mu zrozumiałości. Google również stworzyło nowy język, który generuje JS. Wiele osób uznaje to za dobre rozwiązanie. Cóż napisanie hello worlda rzeczywiście było szybkie w Darcie. Dart posłusznie wygenerował kod w JS. Gdzie kryje się haczyk? Kod ten zajmował równe 17259 linijek... jednak co człowiek to nie komputer. ( nie jestem żednym antagonistą Darta jednak projekt jest powoli porzucany ) Pozostaje nam TypeScript - nadzbiór JS od microsoftu. Jak już wspominałem google troszkę porzuciło swojego Darta i zajęło się właśnie tym tworem. Angular 2 ( tak, twór google ) będzie posiadał wsparcie tego języka. Dodatkowo jeszcze do niedawna w google trwały prace nad porzuconym już projektem AtScript - nadzbioru TypeScript. Chodzą rówież plotki, że w przyszłości TypeScript stanie się standardem. ECMAScript 7 ( nowa wersja JS, aktualnie króluje 6 ) przejmie bardzo dużo funkcjonalności z TS.
Przydatne narzędzia do wzięcia pod uwagę: Bower, npm, Jeoman, Gulp.js, Polymer. Pamiętajcie, że to ma nam ułatwić życie, nie na odwrót.
Mamy więc do czynienia z 3 podstawowymi językami. A to dopiero początek.
Backend - cała mechanika strony działająca po stronie serwera. Tutaj mamy już większe pole do popisu. Python - Django, Ruby - Ruby on Rails, C# - ASP.net, PHP - Zend Freamwork, Symphony i wiele innych, Java, Scala - Play, Akka i wiele innych, Node.js - Express, Mean.js, Sails.js, Meteor i jeszcze więcej innych. ( po lewej - język, po prawej - freamwork. Wybierałem te popularne, warte nauki od dziś ).
Backend to również komunikacja serwera z bazą danych - Języki dzielimy na: SQL (MySQL) oraz NOSQL (mongoDB, PostgreSQL, Firebase).
Część 2: https://forum.pasja-informatyki.pl/35874/artykul-poradnik-sciezka-zawodowa-dzisiejsze-trendy-jezyki-programowania-czesc