{"id":109,"date":"2020-01-04T11:11:00","date_gmt":"2020-01-04T11:11:00","guid":{"rendered":"http:\/\/www.juniorjavadeveloper.pl\/?p=109"},"modified":"2020-10-25T09:07:36","modified_gmt":"2020-10-25T09:07:36","slug":"czy-sam-jezyk-java-wystarczy","status":"publish","type":"post","link":"https:\/\/www.juniorjavadeveloper.pl\/en\/2020\/01\/04\/czy-sam-jezyk-java-wystarczy\/","title":{"rendered":"Czy sam j\u0119zyk Java wystarczy?"},"content":{"rendered":"<p class=\"wp-block-paragraph\">Niestety nie, sama znajomo\u015b\u0107 j\u0119zyka Java nie wystarczy, \u017ceby zosta\u0107 Junior Java Developer&#8217;em. B\u0142\u0119dne jest my\u015blenie, \u017ce zostaniemy zatrudnieni znaj\u0105c ca\u0142\u0105 teori\u0119 zwi\u0105zan\u0105 z j\u0119zykiem Java oraz wiedz\u0105c jak napisa\u0107 program w j\u0119zyku Java. Tak jak w ka\u017cdym innym zawodzie potrzebujemy zna\u0107 i umie\u0107 pos\u0142ugiwa\u0107 si\u0119 narz\u0119dziami i posiada\u0107 odpowiednie \u015brodowisko do pracy oraz zna\u0107 dobre praktyki. Przez \u015brodowisko do pracy rozumiem r\u00f3\u017cne programy wspieraj\u0105ce prac\u0119 programisty pocz\u0105wszy od systemu operacyjnego, a sko\u0144czywszy na narz\u0119dziu s\u0142u\u017c\u0105cym do ochrony wzroku.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dla przyk\u0142adu pisarz u\u017cywa j\u0119zyka np. polskiego do pisania swoich ksi\u0105\u017cek, w najprostszym przypadku potrzebuje kartki papieru i czego\u015b do pisania. W dzisiejszych czasach u\u017cywa si\u0119 do tego laptopa i edytora tekstu. Fragmenty ksi\u0105\u017cki trzeba wysy\u0142a\u0107 do wydawnictwa, gotow\u0105 ksi\u0105\u017ck\u0119 trzeba przygotowa\u0107 tak, aby mog\u0142a by\u0107 wydrukowana. Czy pisarz znaj\u0105c tylko j\u0119zyk polski b\u0119dzie w stanie od razu tworzy\u0107 r\u00f3\u017cne gatunki literackie, np. powie\u015b\u0107 sensacyjn\u0105? Raczej nie, tak samo jest z programist\u0105, znaj\u0105c j\u0119zyk Java mo\u017ce wybra\u0107 jak\u0105 aplikacj\u0119, program (gatunek literacki) chcia\u0142by stworzy\u0107, np. aplikacja na urz\u0105dzenia mobilne, ale to wymaga du\u017cego nak\u0142adu pracy i obszernej wiedzy.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Praca programisty, w tym przypadku m\u0142odszego programisty Java polega na wytwarzaniu oprogramowania, czyli aplikacji, program\u00f3w, np. aplikacji www, aplikacji na smartfony, komputery. Proces wytwarzania oprogramowania jest usystematyzowany i podlega pewnym regu\u0142om &#8211; tak jak proces tworzenia ksi\u0105\u017cki. Nieod\u0142\u0105cznym elementem pracy ka\u017cdego programisty jest analizowanie, projektowanie, tworzenie i rozwi\u0105zywanie problem\u00f3w, kt\u00f3re s\u0105 i b\u0119d\u0105 zawsze czy, to w postaci b\u0142\u0119dnie dzia\u0142aj\u0105cego programu, czy te\u017c \u017ale zrozumianego zagadnienia.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">W du\u017cym uproszczeniu proces wytwarzania oprogramowania wygl\u0105da nast\u0119puj\u0105co:<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>Analiza, czyli zbieranie informacji o tym, co ma robi\u0107 aplikacja, program, analiza np. w postaci dokumentu Word.<\/li><li>Przygotowanie projektu aplikacji, np. w postaci diagram\u00f3w <a rel=\"noreferrer noopener\" href=\"https:\/\/pl.wikipedia.org\/wiki\/Unified_Modeling_Language\" target=\"_blank\">UML<\/a> i <a rel=\"noreferrer noopener\" href=\"https:\/\/www.bridging-the-gap.com\/wireframe-mock-up-prorotype-difference\/\" target=\"_blank\">makiet GUI<\/a>.<\/li><li>Implementacja aplikacji, czyli pisanie kodu w wybranym j\u0119zyku programowania.<\/li><li>Testowanie aplikacji, najlepiej na ka\u017cdym etapie tworzenia oprogramowania.<\/li><li>Wdro\u017cenie aplikacji, czyli umieszczenie na serwerach, gdzie b\u0119d\u0105 mogli z niej korzysta\u0107 u\u017cytkownicy tej aplikacji.<\/li><\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">W takim razie, gdzie jest ten ogrom pracy, kt\u00f3r\u0105 musi wykona\u0107 programista? Po pierwsze programista b\u0119dzie musia\u0142 umie\u0107 odczyta\u0107 dokument z analiz\u0105 aplikacji, jak r\u00f3wnie\u017c zrozumie\u0107 projekt aplikacji na podstawie, kt\u00f3rej powstanie kod \u017ar\u00f3d\u0142owy aplikacji. Niestety w wielu przypadkach brakuje analizy i\/lub projektu aplikacji, w takim przypadku, to programista b\u0119dzie musia\u0142 samemu je &#8220;stworzy\u0107&#8221;. Z mojego do\u015bwiadczenia wynika, \u017ce praca programisty w 70% polega na komunikacji w zespole, a w 30% z samego pisania kodu, wi\u0119cej o tym mo\u017cna przeczyta\u0107 w <a href=\"https:\/\/www.juniorjavadeveloper.pl\/en\/2020\/02\/01\/junior-java-developer-umiejetnosci-techniczne-a-umiejetnosci-miekkie\/\" target=\"_blank\" rel=\"noreferrer noopener\">Junior Java Developer umiej\u0119tno\u015bci techniczne, a umiej\u0119tno\u015bci mi\u0119kkie<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Zanim programista zabierze si\u0119 za pisanie kodu aplikacji, b\u0119dzie musia\u0142 zna\u0107 takie narz\u0119dzie jak zintegrowane \u015brodowisko programistyczne IDE (np. <a rel=\"noreferrer noopener\" aria-label=\"IntelliJ IDEA (otwiera si\u0119 na nowej zak\u0142adce)\" href=\"https:\/\/www.jetbrains.com\/idea\/\" target=\"_blank\">IntelliJ IDEA<\/a>, <a rel=\"noreferrer noopener\" aria-label=\"Eclipse (otwiera si\u0119 na nowej zak\u0142adce)\" href=\"https:\/\/www.eclipse.org\/\" target=\"_blank\">Eclipse<\/a>), w kt\u00f3rym, to b\u0119dzie pisa\u0142 kod w j\u0119zyku Java. Kod, kt\u00f3ry stworzy b\u0119dzie musia\u0142 wsp\u00f3\u0142dzieli\u0107 z innymi programistami za pomoc\u0105 systemu kontroli wersji <a rel=\"noreferrer noopener\" aria-label=\"VCS (otwiera si\u0119 na nowej zak\u0142adce)\" href=\"https:\/\/en.wikipedia.org\/wiki\/Version_control\" target=\"_blank\">VCS<\/a>, np. <a href=\"https:\/\/en.wikipedia.org\/wiki\/Git\" target=\"_blank\" rel=\"noreferrer noopener\">git<\/a>. Ju\u017c dawno min\u0119\u0142y czasy kiedy, to programista pisa\u0142 w notatniku, to samo tyczy si\u0119 wsp\u00f3\u0142dzielenia kodu aplikacji, ju\u017c nie przenosi si\u0119 go na dyskietkach lub nie wysy\u0142a si\u0119 emailem.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Patrz\u0105c na powy\u017csze, programista nie zacz\u0105\u0142 jeszcze pisa\u0107 kodu aplikacji, a ju\u017c musi zna\u0107 dwa narz\u0119dzia, rozumie\u0107 analiz\u0119 i projekt aplikacji. Dodatkowo rzadko kiedy korzysta si\u0119 tylko i wy\u0142\u0105cznie z tego, co dostarcza sam j\u0119zyk Java. W wi\u0119kszo\u015bci przypadk\u00f3w korzysta si\u0119 z innych bibliotek (np. JUnit) oraz framework&#8217;\u00f3w (np. <a rel=\"noreferrer noopener\" href=\"https:\/\/en.wikipedia.org\/wiki\/Spring_Framework\" target=\"_blank\">Spring Framework<\/a>) i z tych gotowych element\u00f3w tworzy si\u0119 aplikacje. Kod, kt\u00f3ry piszemy powinien by\u0107 zgodny z dobrymi praktykami (np. <a rel=\"noreferrer noopener\" aria-label=\"SOLID (opens in a new tab)\" href=\"https:\/\/pl.wikipedia.org\/wiki\/SOLID_(programowanie_obiektowe)\" target=\"_blank\">SOLID<\/a>, <a rel=\"noreferrer noopener\" aria-label=\"DRY (opens in a new tab)\" href=\"https:\/\/pl.wikipedia.org\/wiki\/DRY\" target=\"_blank\">DRY<\/a>) oraz przetestowany (np. biblioteka <a rel=\"noreferrer noopener\" aria-label=\"JUnit (opens in a new tab)\" href=\"https:\/\/pl.wikipedia.org\/wiki\/JUnit\" target=\"_blank\">JUnit<\/a>) &#8211; wi\u0119cej na <a href=\"https:\/\/www.juniorjavadeveloper.pl\/en\/2020\/02\/29\/dlaczego-kod-w-jezyku-java-powinien-byc-solidny-oraz-suchy-dry\/\" target=\"_blank\" rel=\"noreferrer noopener\">Dlaczego kod w j\u0119zyku Java powinien by\u0107 SOLID\u2019ny oraz suchy, DRY?<\/a> oraz <a href=\"https:\/\/www.juniorjavadeveloper.pl\/en\/2020\/10\/02\/po-co-w-ogole-testowac-kod-aplikacji-mbank-robi-to-na-produkcji\/\" target=\"_blank\" rel=\"noreferrer noopener\">Po co w og\u00f3le testowa\u0107 kod aplikacji? mBank robi to na produkcji!<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Zapraszam do regularnego odwiedzania mojej strony, b\u0119d\u0105 pojawia\u0107 si\u0119 kolejne artyku\u0142y oraz do kontaktu przez email kontakt(at)juniorjavadeveloper.pl.<\/p>","protected":false},"excerpt":{"rendered":"<p>Niestety nie, sama znajomo\u015b\u0107 j\u0119zyka Java nie wystarczy, \u017ceby zosta\u0107 Junior Java Developer&#8217;em. B\u0142\u0119dne jest my\u015blenie, \u017ce zostaniemy zatrudnieni znaj\u0105c ca\u0142\u0105 teori\u0119 zwi\u0105zan\u0105 z j\u0119zykiem Java oraz wiedz\u0105c jak napisa\u0107 program w j\u0119zyku Java. Tak jak w ka\u017cdym innym zawodzie potrzebujemy zna\u0107 i umie\u0107 pos\u0142ugiwa\u0107 si\u0119 narz\u0119dziami i posiada\u0107 odpowiednie \u015brodowisko do pracy oraz zna\u0107 [&hellip;]<\/p>","protected":false},"author":1,"featured_media":121,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_ppp_document_settings_meta":"","footnotes":"","jetpack_publicize_message":"","jetpack_is_tweetstorm":false,"jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false}}},"categories":[4,6,2],"tags":[],"class_list":["post-109","post","type-post","status-publish","format-standard","has-post-thumbnail","category-bez-kategorii","category-felieton","category-poczatkujacy"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/www.juniorjavadeveloper.pl\/wp-content\/uploads\/2019\/12\/czy-sam-jezyk-java-wystarczy-.jpg","jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/www.juniorjavadeveloper.pl\/en\/wp-json\/wp\/v2\/posts\/109","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.juniorjavadeveloper.pl\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.juniorjavadeveloper.pl\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.juniorjavadeveloper.pl\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.juniorjavadeveloper.pl\/en\/wp-json\/wp\/v2\/comments?post=109"}],"version-history":[{"count":20,"href":"https:\/\/www.juniorjavadeveloper.pl\/en\/wp-json\/wp\/v2\/posts\/109\/revisions"}],"predecessor-version":[{"id":1228,"href":"https:\/\/www.juniorjavadeveloper.pl\/en\/wp-json\/wp\/v2\/posts\/109\/revisions\/1228"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.juniorjavadeveloper.pl\/en\/wp-json\/wp\/v2\/media\/121"}],"wp:attachment":[{"href":"https:\/\/www.juniorjavadeveloper.pl\/en\/wp-json\/wp\/v2\/media?parent=109"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.juniorjavadeveloper.pl\/en\/wp-json\/wp\/v2\/categories?post=109"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.juniorjavadeveloper.pl\/en\/wp-json\/wp\/v2\/tags?post=109"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}