Jak nauczyć się nowego języka programowania tego lata

Jaki lepszy cel można sobie wyznaczyć na lato, niż nauczenie się nowego języka programowania? Zapomnijcie o "książkach na plażę" i zamiast tego skupcie się na nauce nowego języka programowania – ale który z nich wybrać?

Według danych firmy EDC, na Ziemi pracuje około 24 miliony programistów, a istnieje prawie 700 popularnych języków programowania (zgodnie z informacjami na stronie Wikipedia). Jestem przekonany, że istnieje ogromna liczba stron internetowych, na których można nauczyć się różnych języków programowania. Niezależnie od tego, czy jesteś już jednym z 11 milionów ekspertów programowania, czy dopiero zaczynasz swoją przygodę, istnieje mnóstwo informacji, które warto przeanalizować.

W ramach tego wpisu na blogu, przyjrzymy się z pewnością Najpopularniejsze języki programowania w 2021 roku, ale także języków istotnych dla manipulacji danymi i zapytań, dlatego omówimy: C i jego pochodne (C++, C#, Objective-C), Java, Python, R, JavaScript, Ruby, SQL oraz XQuery.

Decyzja, od czego zacząć, zależy całkowicie od rodzaju scenariuszy rozwoju, które mają Państwo na myśli, dlatego podzieliliśmy informacje, aby ułatwić Państwu wybór. Nie ma znaczenia, czy są Państwo doświadczonym programistą, który chce poszerzyć swoje umiejętności o nowy język, czy też osobą początkującą, która jeszcze nie zna różnic między C, C++, Objective-C czy C#. Przygotowaliśmy listę wyjaśnień, która pomoże Państwu wybrać, który język warto opanować jako następny.

Zanim zagłębimy się w szczegóły i przeanalizujemy każdy język programowania, porozmawiajmy o sześciu głównych obszarach, w których języki programowania są obecnie wykorzystywane, oraz o tym, które języki mogą być przydatne w danym kontekście. To da wam pewien zarys i wstępne wyobrażenie o tym, który język może być dla was najbardziej odpowiedni do nauki.

Aplikacje mobilne

Kiedy chcesz tworzyć aplikacje dla smartfonów lub tabletów, wybór języka programowania zależy w dużej mierze od platformy, dla której chcesz je opracować. Jeśli chcesz tworzyć aplikacje dla urządzeń iOS, standardowym językiem jest Objective-C. W przypadku tworzenia aplikacji dla Androida, domyślnym językiem jest Java, a dla Microsoft Surface (oraz ogólnie dla urządzeń z systemem Windows 10 lub 11) jest C#. Jeśli Twoja aplikacja mobilna wymaga serwera działającego w chmurze, zapoznaj się z poniższym akapitem dotyczącym tworzenia aplikacji po stronie serwera, aby dowiedzieć się więcej o dodatkowych językach. Jeśli chcesz docierać do wszystkich trzech platform mobilnych, a nauka wszystkich języków jednocześnie wydaje się zbyt trudna, polecam zapoznać się z narzędziami wieloplatformowymi, takimi jak Altova MobileTogether, które pozwalają tworzyć jedną aplikację mobilną dla wszystkich platform, korzystając z jednego źródła, dzięki wykorzystaniu języka XQuery i wizualnego skryptowania ActionTree.

Rozwój stron internetowych

Do tworzenia stron internetowych, zarówno tych przeznaczonych dla urządzeń mobilnych, jak i dla tradycyjnych przeglądarek internetowych, językiem programowania, który jest wykonywany przez przeglądarkę, jest JavaScript. Oczywiście, główna treść strony internetowej będzie napisana w HTML5, a najlepiej, jeśli wszystkie informacje o wyglądzie będą zakodowane w arkuszach stylów CSS3, ale te nie są językami programowania w ścisłym tego słowa znaczeniu. Dotychczas rozmawiałem tylko o programowaniu po stronie klienta.

Rozwój po stronie serwera

Niezależnie od tego, czy mówimy o backendzie aplikacji mobilnej, czy o klasycznym serwerze internetowym, istnieje wiele różnych języków programowania, które są odpowiednie do tworzenia aplikacji po stronie serwera. Najczęściej wykorzystywane są w tym celu Java, C#, Python, PHP i Ruby. Dotyczy to zarówno tradycyjnych serwerów internetowych, jak i serwerów działających w chmurze, które mogą być zlokalizowane na platformach AWS lub Azure.

Klasyczne aplikacje dla komputerów PC i komputerów stacjonarnych

Chociaż aplikacje Java i Visual Basic są czasami wykorzystywane w środowiskach korporacyjnych, większość aplikacji desktopowych opartych na komputerach osobistych była i nadal jest tworzona w językach C, C++ lub C#. Jednak języki takie jak Python zyskują na popularności również w środowisku desktopowym jako języki skryptowe, służące do automatyzacji powszechnych zadań.

Obliczenia naukowe

Do analizy danych, statystyki oraz zaawansowanych obliczeń matematycznych, powszechnie wykorzystuje się trzy specjalistyczne języki: Matlab, Mathematica i R. Biorąc pod uwagę popularność, język R w ciągu ostatnich kilku lat wyraźnie wyprzedził pozostałe dwa, dlatego poniżej skupię się wyłącznie na opisie języka R.

Urządzenia wbudowane i Internet Rzeczy

Kiedy mówimy o urządzeniach wbudowanych, języki C i C++ wciąż dominują. Oczywiście, ta dziedzina przeszła znaczące zmiany w ciągu ostatnich kilku lat, ponieważ coraz więcej urządzeń wbudowanych i urządzeń IoT staje się pełnoprawnymi komputerami z systemem Linux, ale w przypadku tworzenia oprogramowania, które jest bardzo blisko warstwy sprzętowej, a także w przypadku wielu funkcji systemu operacyjnego i sterowników urządzeń, wydajność, szybkość i efektywność języka C nadal czynią go najlepszym wyborem w tej dziedzinie.

Zapytania do bazy danych i manipulacja danymi

Niezależnie od tego, który z powyższych obszarów Państwo mają na myśli, w większości przypadków konieczna będzie znajomość języka, który umożliwia dostęp do określonej części danych z bazy danych. Chociaż platformy skupione na przetwarzaniu dużych zbiorów danych, takie jak Hadoop/MapReduce, cieszą się obecnie dużą popularnością, język SQL (Structured Query Language) istnieje od lat 70. i wciąż jest najczęściej używanym językiem zapytań do baz danych, obsługiwanym przez wszystkie główne systemy baz danych.

Oprócz SQL, polecam również zapoznać się z XQuery, językiem zapytań XML, ponieważ obecnie duża ilość danych jest dostępna w formacie XML lub JSON, a XQuery jest bardzo potężnym językiem programowania funkcyjnego, który umożliwia efektywną manipulację takimi danymi. W szczególności, zaawansowane narzędzia mobilne, takie jak Altova MobileTogether, wykorzystują XQuery, aby umożliwić programowanie funkcyjne w zakresie manipulacji danymi z różnych źródeł, w tym z plików XML, JSON, HTML oraz baz danych SQL.

Teraz, gdy przedstawiłem Państwu, w których regionach te języki są najczęściej używane, mam nadzieję, że mają Państwo pewne pojęcie, który z nich mógłby być dla Państwa odpowiednim wyborem do nauki. Porozmawiajmy teraz szczegółowo o poszczególnych językach i o tym, gdzie można się ich nauczyć online:

C

Język C oraz jego pochodne (C++, C#, i Objective-C) to języki programowania ogólnego przeznaczenia, a język C cieszy się dużą popularnością od czasu wydania przełomowej książki z 1978 roku Język programowania C autorstwa Kernighana i Ritchie'ego. Jeśli poważnie myślicie o karierze w informatyce, znajomość języka C jest wciąż niezbędna, ale nie polecam go jako pierwszy język programowania dla początkujących, ponieważ jest on najczęściej wykorzystywany do pracy nad aplikacjami związanymi z sprzętem lub innymi aplikacjami na niższym poziomie. Język C został pierwotnie stworzony do użytku w systemie operacyjnym UNIX i obecnie jest najczęściej wykorzystywany do tworzenia systemów operacyjnych, sterowników urządzeń i aplikacji wbudowanych.

Oto kilka miejsc, gdzie można nauczyć się języka C: https://alison.com/courses/Diploma-in-Programming-in-C https://www.udemy.com/c-programming-for-beginners/ http://c.learncodethehardway.org/book/

C++

C++ wywodzi się z języka C i jest również używany od dłuższego czasu. Do rozpoczęcia nauki tego języka wymagana jest przynajmniej podstawowa znajomość programowania. C++ oferuje funkcje programowania imperatywnego, obiektowego i generycznego, co czyni go niezwykle potężnym, ale jednocześnie wymaga zrozumienia wielu zaawansowanych koncepcji informatycznych, aby w pełni go opanować. Ten język jest głównie wykorzystywany do tworzenia oprogramowania systemowego, gier wideo, aplikacji oraz aplikacji klient-serwer, a także oprogramowania serwerowego działającego w chmurze.

Miejsca, gdzie można nauczyć się języka C++: http://www.learncpp.com/ http://www.cplusplus.com/doc/tutorial/

C#

C#, pierwotnie opracowany przez firmę Microsoft jako część inicjatywy .NET, jest używany do tworzenia aplikacji programowych dla platform Windows. Ponieważ C# jest integralną częścią frameworka .NET, jeśli planujesz tworzyć oprogramowanie dla Microsoftu, to jest to język, który powinieneś znać. Jest on bardzo podobny do języka Java, więc jeśli znasz jeden z nich, przejście na drugi nie będzie zbyt trudne. Podobnie jak Java, C# został pierwotnie stworzony, aby wprowadzić koncepcje programowania obiektowego do języka przypominającego C, bez całej złożoności języka C++.

Miejsca, gdzie można nauczyć się języka C#: https://docs.microsoft.com/en-us/learn/paths/csharp-first-steps/ https://channel9.msdn.com/Series/C-Fundamentals-for-Absolute-Beginners

Java

Java to język programowania obiektowego, który obecnie jest jednym z najpopularniejszych. Programiści cenią Javę, ponieważ jest ona z natury przenośna i dobrze działa na różnych platformach programowych. Java to wszechstronny język, który można wykorzystać do tworzenia aplikacji mobilnych, aplikacji serwerowych, a także oprogramowania dla przedsiębiorstw.

Miejsca, gdzie można nauczyć się języka Java: https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-092-introduction-to-programming-in-java-january-iap-2010/ https://www.codecademy.com/edn/courses/learn-java/

R

R to język programowania, który jest specjalistycznie zaprojektowany do analizy statystycznej i tworzenia wykresów, w tym analizy dwuwymiarowej oraz korelacji. Popularność tego języka rośnie wraz z dużym zapotrzebowaniem na specjalistów w dziedzinie analizy danych, zarówno w środowisku akademickim, jak i biznesowym, gdzie wizualizacja i analiza danych są kluczowe dla rozwoju projektów. R jest doskonałym wyborem, jeśli potrzebujesz stworzyć projekt związany z analizą danych, lub jeśli uważasz, że możliwości programu Excel są zbyt ograniczone, aby w pełni przeanalizować korelacje, które mogą występować w Twoich danych.

Miejsca, gdzie można nauczyć się języka R, to m.in.: https://cran.r-project.org/manuals.html https://www.edx.org/course/r-programming-fundamentals https://www.datacamp.com/courses/free-introduction-to-r

Python

Python, uważany za jeden z najłatwiejszych języków programowania do nauki, jest uniwersalnym, wysokopoziomowym językiem skryptowym. Wykorzystywany do tworzenia różnorodnych rozwiązań, od stron internetowych i aplikacji mobilnych po analizę danych, Python posiada rozbudowaną i kompleksową bibliotekę standardową. Ze względu na swoją prostotę, Python jest również jednym z najczęściej nauczanych języków programowania w szkołach w Stanach Zjednoczonych. Jeśli dopiero zaczynasz swoją przygodę z programowaniem, to zdecydowanie jest to doskonałe miejsce, aby zacząć.

Miejsca, gdzie można nauczyć się Pythona: https://www.python.org/doc/ http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-189-a-gentle-introduction-to-programming-using-python-january-iap-2011/ https://developers.google.com/edu/python/?hl=en

Rubin

Ruby to kolejny doskonały język skryptowy, który cieszył się pewną popularnością w ciągu ostatnich 10-15 lat, ale obecnie wydaje się tracić na znaczeniu. Jest wykorzystywany do tworzenia stron internetowych i aplikacji mobilnych. Ten język o otwartym kodzie źródłowym posiada silną społeczność, co znacznie ułatwia znalezienie materiałów do nauki Ruby. Ruby został stworzony w połowie lat 90. w Japonii przez Yukihiro Matsumoto, który połączył elementy z niektórych z jego ulubionych języków (Perl, Smalltalk, Eiffel, Ada i Lisp), aby stworzyć nowy język, który jest z natury obiektowy i funkcjonalny.

Oto kilka miejsc, gdzie można nauczyć się języka Ruby:

https://www.ruby-lang.org/en/documentation/quickstart/
https://rubymonk.com/

JavaScript

JavaScript to język programowania oparty na Javie, który jest często wykorzystywany do dodawania funkcjonalności do stron internetowych w formacie HTML. Jest to stosunkowo prosty język do nauki, a w internecie można znaleźć wiele praktycznych poradników, które pomogą rozpocząć pracę. Najczęściej jest wykonywany w przeglądarce internetowej, chociaż możliwe jest również wykorzystanie go w aplikacjach działających po stronie serwera. W ostatnich latach JavaScript zyskał również popularność w innych obszarach, w tym w aplikacjach mobilnych, a nawet w niektórych urządzeniach wbudowanych.

JavaScript wykorzystuje wbudowany format serializacji do zapisywania obiektów z pamięci na dysk lub do strumienia danych, zwany JSON (JavaScript Object Notation). JSON zyskał popularność jako sposób przesyłania danych między komputerami, podobny do XML, ponieważ jest to szybki i efektywny sposób transferu danych. Znajomość JavaScripta przygotowuje do efektywnego korzystania z JSON oraz schematów JSON, które są niezbędne do tworzenia aplikacji internetowych i usług sieciowych.

Oto kilka miejsc, gdzie można nauczyć się JavaScript: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide https://www.codecademy.com/tracks/javascript

SQL

SQL, czyli Structured Query Language (język zapytań strukturalnych), to język zapytań do baz danych, używany do zarządzania danymi w relacyjnych bazach danych. Kto powinien nauczyć się SQL? Każdy! SQL jest wszechobecny, a jego nauka nie jest tak trudna. Jeśli kiedykolwiek będziecie potrzebować pobierać lub modyfikować dane w bazie danych (a przyznajmy, kto by z tego nie skorzystał), to jest to doskonały język do nauki.

Miejsca, gdzie można nauczyć się SQL: https://www.codecademy.com/learn/learn-sql http://www.sqlcourse.com/ http://www.w3schools.com/sql/ http://www.tutorialspoint.com/sql/

XQuery

XQuery to język programowania funkcyjnego, zaprojektowany zarówno do odpytywania, jak i transformacji danych XML i JSON. Zgodnie z opinią W3C, XQuery zastępuje złożone programy w językach Java lub C++ kilkoma linijkami kodu, ponieważ jest prostszy w użyciu i łatwiejszy w utrzymaniu. XQuery jest obecnie preferowanym językiem do zaawansowanej manipulacji danymi z różnorodnych źródeł, w tym na platformach mobilnych, takich jak Altova MobileTogether. XQuery jest bardzo potężny i nie jest trudnym językiem do nauczenia.

Miejsca, gdzie można nauczyć się XQuery: https://www.altova.com/training/xquery3/ https://www.w3schools.com/xml/xquery_intro.asp http://www.tutorialspoint.com/xquery/

Oprócz wszystkich tych zasobów dostępnych online, na Amazonie można również znaleźć wiele doskonałych książek poświęconych tym językom. Dlatego warto je również sprawdzić i zapoznać się z opiniami innych użytkowników przed podjęciem decyzji o zakupie.

Nie ma złego języka programowania, który można by umieścić w swoim "arsenale umiejętności"; wręcz przeciwnie, każdy z nich tylko zwiększy Twoją atrakcyjność na rynku pracy. Więc zanurz się w świat programowania i zacznij uczyć się nowego języka programowania już tego lata!