Zrozumieć Javę – dla IT Rekruterów

Doskonale pamiętam ten moment, gdy podszedł do mnie manager i powiedział „Renia, musisz znaleźć Javowca!” Losie, że o co c`mon? Że kogo? Tak to było niestety… Dawno temu, ale zapomnieć tej chwili się nie da 🙂  Może jesteś w podobnej sytuacji, jak ja kiedyś? Przychodzę zatem z drobną pomocą i chcę się podzielić z Tobą małą dawką wiedzy, która mam nadzieję pomoże Ci choć trochę zrozumieć, jak to jest z językami programowania, jak to jest z Javą?

Specjaliści piszą programy (aplikacje), które – i tu użyję bardzo prostego stwierdzenia – mówią komputerowi, co on ma zrobić. A ,,świata nie odkryję”, gdy powiem, że z komputerami mamy do czynienia wszędzie, stykamy się z nimi praktycznie na co dzień, po to, aby rozwiązać problem, wyszukać informacje, skontaktować się z bliskimi, mieć chwilę relaksu, pograć w grę, uczynić naszą pracę łatwiejszą – prosto – są one w wielu przedmiotach: telefony, tablety, samochody, roboty, urządzenia medyczne, kuchenne, RTV, konsole do gier, zabawki, zegarki itd. Programowanie to nic innego, jak zbiór poleceń, instrukcji krok po kroku dla komputera w konkretnym języku, który jest dla niego zrozumiały. Czasem tych kroków tzw. linijek kodu może być kilka, kilkaset, a nawet w skrajnych przypadkach paręset tysięcy. Wszystko zależy od tego, co chcemy, aby komputer zrobił.

Trochę niecodzienne porównanie przyszło mi do głowy, a że lubię kulinarne, więc co tam! – takie podrzucam. Możemy sobie wyobrazić sytuację, gdy mama wydaje swojej córce polecenia podczas przygotowywania śniadania:

  • weź patelnię,
  • włącz kuchenkę,
  • wrzuć jedną łyżkę masła na patelnię,
  • poczekaj, aż masło się rozpłynie,
  • weź jajko,
  • rozbij jajko,
  • wrzuć jajko na patelnię etc.

Aby wszystko poszło zgodnie z planem mama i córka muszą komunikować się oczywiście w tym samym języku. Proste danie, więc poleceń jest mało, ale gdyby pojawiła się potrzeba ugotowania nie jednego, ale 12 dań (wigilijnych powiedzmy) to automatycznie linijek poleceń byłoby znaaaacznie więcej.

Zaawansowana dygresja: przy okazji powyższego przykładu kulinarnego można fajnie zobrazować samo programowanie obiektowe, gdzie to właśnie obiekty przejmują część pracy np. wyślij brata (obiekt) po zakupy; ,,każ” nowoczesnemu piekarnikowi (obiekt) piec jajko najpierw w temperaturze 80 stopni, a potem zmień na 100 stopni. ,,każ” zmywarce (obiekt) wykonać następującą sekwencję kroków etc.

Dobrze, już wracam do wątku głównego.

Języków programowania jest dużo, prawdopodobnie można liczyć je w tysiącach (choć oczywiście są te bardziej popularne, których jest o wiele wiele mniej) i mają one swoje konkretne zastosowanie. Część z nich jest dedykowana tylko do pisania stron internetowych: od frontendu – JavaScript, od backendu np. PHP,  Ruby, Java, C#, część tylko do pisania aplikacji mobilnych: Kotlin, Objective-C, Swift, część jest bardziej popularna w grach komputerowych: C++, albo w systemach wbudowanych: C lub C++ albo bardzo dobrze sobie radzi w analizie danych: R, Python. Zatem zastosowanie języka jest uzależnione od tego, jaką aplikację trzeba napisać i z jakim systemem operacyjnym zainstalowanym na komputerze będzie ona “rozmawiać”. Jeżeli interesuje Was historia języków, pochodzenie ich nazw, zerknijcie sobie w wolnym czasie tutaj.

I teraz ważny punkt: programista programiście nie jest równy – bo zobaczcie, jeżeli widzimy developera, który ma na profilu C++ i proponujemy mu pracę w obszarze gier, a on do tej pory „siedział” w sektorze automotive (systemy wbudowane C/C++) to możemy usłyszeć, że ta oferta jest nietrafiona. Dlatego takie ważne jest głębsze wczytanie się w profil kandydata. Do tego jeszcze wrócę.

Każdy język, oczywiście dla laika, może wydać się podobny. Jakieś tam znaczki, robaczki, esy floresy. Otóż na pierwszy rzut oka tak, ale w istocie czy to Java, C#, Python – one mają swoją składnię i zasady, których każdy specjalista musi się nauczyć i zapamiętać. Ponadto – i tutaj może Was zaskoczę nie są one tak skomplikowane (zgodnie z hierarchią Chomsky’ego), jak języki naturalne (polski, angielski  etc.). W gruncie rzeczy można powiedzieć też, że przepis na jajko sadzone, o którym była wcześniej mowa jest notabene programem zapisanym w języku naturalnym 🙂

No, ale co w końcu z tą Javą? 🙂  Już przechodzę do meritum. To język,  który jest praktycznie do wszystkiego! Program w nim napisany dogada się z każdym komputerem! Nieźle co? Dlatego jest taki popularny! Java może być wykorzystana w zasadzie na każdym urządzeniu: mobilnym, webowym czy desktopowym. Przyjęło się mówić: ,,write once, run anywhere”.  Ale to nie wszystko! W przeciwieństwie do innych języków, program napisany w Javie może działać w każdym środowisku: Windows, Linux, macOS, Android. To trochę jak z językiem angielskim, dokąd nie pojedziesz – dogadasz się. Jest uniwersalny.

Ale jak to się dzieje, że aplikacja w Javie będzie działać ,,wszędzie”? To za sprawą JVM (Java Virtual Machine) –  dodatkowe oprogramowanie, które trzeba zainstalować. JVM sprawia, że raz napisany program uruchomi kod na każdym systemie operacyjnym: Windows, Linux, Solaris, Android, macOS i inne. 

Generalnie Java jest kojarzona z dużymi aplikacjami, bankowymi, korporacyjnymi, księgowymi, z przeznaczeniem do zarządzania, takie ot kolumbryny. Ale jak podkreślają specjaliści, ma zastosowanie również przy znacznie mniejszych programach.

W zależności do czego zostanie wykorzystana, używa się różnych określeń, z pewnością wyłapujecie te skróty na linkedinowych profilach potencjalnych kandydatów, do podstawowych należą:

JSE (Java Standard Edition) – aplikacje desktopowe

JEE albo J2EE (Java Enterprise Edition) – aplikacje webowe

JME ( Java Micro Edition)  – aplikacje mobilne

I tu właśnie kolejna uwaga: jeżeli szukamy powiedzmy specjalisty Java do systemów bankowych to warto zwrócić uwagę w pisaniu, jakich programów ów inżynier się specjalizuje. Może bowiem okazać się, że osoba pisze aplikacje w Javie, ale na Androida i tworzy oprogramowanie gier. A że umieścił na Linkedin w skillach ten język, to mam nadzieję, że już widzicie, jak Java Javie jest nierówna. Ha! I więcej, myślę, że już też wiecie w takim razie, kim jest Backend Java Developer 🙂 Zanim puścicie wasz InMail w ,,eter” warto jednak pochylić się nad profilem kandydata i wczytać się w projekty, które miał okazję do tej pory realizować.

Głównym konkurentem Javy jest opracowany nieco póżniej C#. Bardzo wiele podobieństw, natomiast różnica podstawowa to koszty*. Niemniej każdy z nich ma mnóstwo swoich zalet i chyba bardziej od gustu zależy, który z owych języków wybierze programista. 

To tak na dobry początek! Mam nadzieję, że się przydało 🙂

 

*Java jęst darmowym jezykiem, C# podobnie, choć  serwery na których działa aplikacje nie są darmowe. Podobnie Visual Studio, program w którym najczęściej pisze się aplikacje C#, nie jest darmowy. Tylko że sytuacja ma się podobnie we wszystkich innych językach. Nikt nie rozdaje serwerów do Javy za darmo, podobnie jak IDE. Od niedawna Microsoft rozwija również projekt .NET Core, który pozwala uruchamiać aplikacje C# na systemach Linux. W pakiecie z Visual Studio Code (darmowe IDE) daje to całkiem „darmowe” doświadczenia z językiem.

 

Your email address will not be published. Required fields are marked *

*