JavaRush /Java Blog /Random-TL /Ano ang kailangan mong malaman upang maging isang Java Ju...

Ano ang kailangan mong malaman upang maging isang Java Junior, at ano ang gagawin sa lahat ng ito?

Nai-publish sa grupo
Ang mga kinakailangan para sa mga potensyal na developer ng Java ay patuloy na nagbabago at mahirap sundin. Sapat ba na malaman lamang ang Java Core upang maging isang Trainee? Gaano kahusay ang kailangan mong maunawaan ang Spring at Hibernate upang makakuha ng posisyon sa Java Junior? Sulit ba ang pag-aaral ng mga database at pag-unawa sa pag-uuri at paghahanap ng mga algorithm? At dahil ang mga mag-aaral ng JavaRush ay madalas na nag-aalala tungkol sa mga tanong na ito, nagpasya kaming itanong ang mga ito sa aming mga nagtapos na nagtatrabaho na bilang Java Juniors o interning sa mga kumpanya bilang Java Trainees. Tandaan na 13% ng mga respondent ay sapat na mapalad na makakuha ng posisyong Java Middle sa kanilang unang pagtatangka, na lumampas sa Junior stage. Ano ang kailangan mong malaman upang maging isang Java Junior, at ano ang gagawin sa lahat ng ito?  - 1Nagbahagi ang mga respondente ng impormasyon tungkol sa kung aling mga teknolohiya ang kailangan nila upang makapasa sa panayam at kung saan nila ginamit sa unang taon ng kanilang unang trabaho sa Java.

Kailangan ng lahat ng Java Core

Ang terminong Java Core ay medyo malawak. Ang pangalang ito ay tumutukoy sa parehong elementarya na syntax ng wika at sa isang kumplikadong paksa gaya ng multithreading. Sa totoo lang, ang kursong JavaRush ay pangunahing nakatuon sa Core. Ano ang kailangan mong malaman upang maging isang Java Junior, at ano ang gagawin sa lahat ng ito?  - 2Java Syntax. Mga Pangunahing Kaalaman sa Wika. Ang lahat ng mga uri ng data na ito, mga operator, mga loop at mga sangay. Naturally, 92.4% ng mga nakakuha ng trabaho ay nag-rate ng kanilang kaalaman sa syntax bilang "mabuti o mahusay." Gayunpaman, 7.6% ng mga respondent ang nagawang maging Java Trainees na may average na kaalaman sa syntax. Gayunpaman, ito ay dapat na tasahin nang higit pa bilang swerte (o pagmamayabang ng mga sumasagot :)). Siyempre, dapat alam ng lahat ng nag-aaplay para sa isang trabaho bilang programmer ang syntax ng wika. Object-oriented programming (OOP). Ang lahat sa Java ay binubuo ng mga bagay, kaya ang OOP ay maituturing na isa sa pinakamahalagang tema ng wika. Ang object-oriented na diskarte ay maaaring mukhang hindi pamilyar sa simula, lalo na kung pinag-aralan mo lang ang mga procedural na wika noon, ngunit hindi mahirap lumipat sa mga bagay. Ang pinakamalaking kahirapan para sa mga nagsisimula ay ang mga antas ng abstraction at ang kanilang independiyenteng pamamahagi - ang isang baguhan na programmer ay dapat na magawa nang tama ang isang hierarchy ng mga bagay, maunawaan kung ano ang magiging responsable ng interface at kung ano ang maaaring ilagay sa isang abstract na klase, lumikha ng isang mana hagdan, at iba pa. Gaya ng dati, ang paghihirap na ito ay nalulutas sa pamamagitan ng pagsasanay. Karamihan sa mga sumasagot, 80.3% ng mga nakakuha ng kanilang unang trabaho, ay alam nang mabuti ang mga prinsipyo ng OOP at ginagamit ang mga ito nang palagian. Sa unang taon ng trabaho bilang Java Juniors at interns, 78.8% ng mga respondent ang madalas gumamit ng mga prinsipyo ng OOP, 12.1% - paminsan-minsan. 7.6% ng mga tagapakinig ay bihirang gumamit ng mga ito - ang mga taong ito ay pangunahing abala sa pagsubok ng yunit at iba't ibang maliliit na gawain. Iyon ay, siyempre, gumamit din sila ng mga klase o bagay (hindi mo magagawa nang wala ito sa Java), ngunit bihirang lumikha ng mga hierarchy ng klase. Framework ng Mga Koleksyon. Ang isang koleksyon ay isang koleksyon ng mga indibidwal na bagay na ipinakita sa kabuuan. Ang Java ay may napakatalino na Collections Framework para sa kumakatawan sa mga koleksyon. Ang mga koleksyon ay batay sa mga sikat na istruktura ng data - mga listahan, ordinaryo at konektado, mga set, hash table. Kaya kapag nag-explore ng mga koleksyon, magandang ideya na maging mas pamilyar sa mga istruktura ng data. Ang pangunahing kahirapan sa pag-aaral ng mga koleksyon ay ang pag-unawa at pag-alala kung paano gumagana ang mga ito. Kung naiintindihan mo kung paano nila ina-access ang isang elemento, kunin ito mula sa isang koleksyon at idagdag ito, pagkatapos ay magsisimula kang maunawaan kung saan ilalapat ito o ang istrakturang iyon. Ito ay may kasamang pagsasanay. Ngunit, sa kabutihang palad, hindi lahat ng malaking bilang ng mga koleksyon ay aktibong ginagamit sa totoong trabaho. 80.3% ng mga respondente ang nagpahiwatig na mayroon silang mahusay o kahit na mahusay na kaalaman sa mga koleksyon bago matanggap ang kanilang unang alok sa trabaho, at halos lahat ng 96.9% ng mga Junior at trainees ay gumagamit ng mga koleksyon sa kanilang unang trabaho. Ano ang kailangan mong malaman upang maging isang Java Junior, at ano ang gagawin sa lahat ng ito?  - 3Exception Handling.Ang eksepsiyon ay isang hindi pangkaraniwang sitwasyon na maaaring mangyari habang isinasagawa ang iyong programa. Ang lahat ng exception class ay mga subtype ng java.lang.Exception class. Ang mekanismo sa paghawak ng exception ay lubos na nagpapadali sa proseso ng paghahanap ng mga error sa mga programa. Karaniwan, ang mga mag-aaral ay nagsisimulang gumamit ng mga eksepsiyon nang maaga, halimbawa, sa JavaRush. Sa JavaRush, ang paksang ito ay itinaas sa unang Java Syntax quest. Halos lahat ng JavaRush graduates na nakakuha ng kanilang mga unang trabaho ay alam kung paano humawak ng mga exception, at, natural, ginamit ang mga ito habang nagtatrabaho. I/O Streams Java. Ang pinakaunang mga program na nakasulat sa Java ay karaniwang naglalaman ng isang bagay tulad ng System.out.println("Hello world"). Kadalasan, naiintindihan ng mga baguhan na ang paraan ng println ay nagpi-print ng isang linya patungo sa console, ngunit walang ideya kung bakit naroroon ang System at out at kung paano gumagana ang mga ito. Maya-maya ay lumabas na ang Java ay nagsasagawa ng input at output operations gamit ang mga stream, isang tuluy-tuloy na stream ng data. Ang mga thread ay hindi ang pinakamadaling paksang unawain, at hindi ito madalas na ginagamit sa mga bagong trabaho: 22.7% lang ng mga taong nakakuha ng kanilang unang Java Junior/Trainee na trabaho ang nagsabing madalas silang gumagamit ng mga I/O na thread, 31.8% - mula sa oras hanggang oras, 25.8% - bihira. Kaya wala pang 20% ​​ang hindi gumamit ng mga ito sa kanilang unang taon bilang isang developer ng Java. Sa panahon ng kanilang pag-aaral, 18.2% ay hindi nakaranas ng anumang partikular na paghihirap sa mga daloy at alam ang mga ito nang husto, 36.4% ang nag-rate ng kanilang kaalaman bilang mahusay, ngunit 10.6% ang hindi pinansin ang paksang ito. Multithreading (Java Multithreading/Concurrency). Marahil ito ang paksang nagdudulot ng pinakamalaking hindi pagkakaunawaan sa mga baguhang developer. Kahit na ang multithreading sa Java ay napakahusay na ipinatupad, mahirap maunawaan, at maaaring lumitaw ang mga problema kahit na nagsusulat ng mga simpleng programa (halimbawa, multithreaded na "Hello, world"). Maraming mga tagapag-empleyo ang nauunawaan ito at hindi nangangailangan ng malalim na pag-unawa sa multithreading mula sa mga nagsisimula, umaasa na ito ay darating na may karanasan. 12% lamang ng mga respondent ang nagsabi na alam nila ang paksa sa isang mahusay na antas bago matanggap ang unang alok, habang halos 32% ng mga respondent ang umamin na wala silang alam tungkol sa paksa. Ang karamihan, 56.2%, ay nagsabi na sila ay "may kaunting pag-unawa" sa multithreading. Kaya't kung ang mga kahirapan sa pagtatrabaho sa mga thread ay tila hindi mo kayang lampasan ngayon, ang mga numerong ito ay maaaring magbigay ng katiyakan sa iyo. Gayunpaman, kung nais mong makakuha ng isang mapagkumpitensyang kalamangan sa isang pakikipanayam, ang paksang ito ay maaaring ang iyong matibay na punto. Sa mga tunay na proyekto, ang mga baguhan ay bihira ding pinapayagang magtrabaho sa mga thread. Kaya, 15.1% ng mga baguhang programmer ang hindi nakatagpo ng Java Multithreading sa kanilang trabaho, at 39.4% ang nakatagpo nito, ngunit bihira. Kadalasan sa unang taon ng trabaho 9.1% lamang ng mga respondente ang kailangang magtrabaho sa multithreading. Mga expression ng Lambda.Ang mga expression ng Lambda at mga pahiwatig ng functional programming ay lumitaw sa Java 8, ngunit ang mga baguhan ay hindi gumagamit ng madaling gamiting tool na ito nang madalas. Ang lambda expression ay isang function na maaaring malikha nang hindi kabilang sa anumang klase, at maaari mo itong ipasa bilang isang bagay o isagawa ito kapag hinihiling. 22.7% lang ng mga nagtapos na na-survey ang nakakaalam ng mga expression ng Lambda bago matanggap ang kanilang unang alok sa trabaho, at 48.5% ang nag-rate ng kanilang kaalaman sa paksa bilang "malapit sa zero." Kasabay nito, higit sa 85% ng mga bagong programmer ang nagsabing gumamit sila ng mga expression ng lambda sa kanilang unang taon. Upang maging patas, itinuturo namin na ang mababang porsyento ng mga nakakaalam sa paksang ito ay maaaring dahil sa katotohanan na sa JavaRush, ang mga expression ng lambda ay ipinakita lamang sa bagong Java Syntax Pro quest at mga artikulo . Kaya, ligtas nating masasabi na ang kaalaman sa Core Java para sa anumang potensyal na Java Junior at maging ang Trainee ay kailangan lang. Siyempre, ang ilang mga paksa, halimbawa, multithreading, ay katanggap-tanggap na malaman nang kaunti, ngunit ang Java syntax, OOP at mga koleksyon ay dapat na matatag na nakatanim sa iyong kamalayan.

Algorithm at istruktura ng data

Mayroong patuloy na debate tungkol sa pag-aaral ng pag-uuri at mga algorithm sa paghahanap. Sa isang banda, ang pinakamahusay na mga algorithm ay matagal nang naisulat at kasama sa mga aklatan ng lahat ng mga sikat na programming language, kabilang ang Java. At maaari silang legal na gamitin nang walang abala sa pagsulat ng iyong sariling code. Gayunpaman, inirerekomenda pa rin ng mga eksperto na nagsasanay sa mga programmer na sanayin ng bawat baguhan na developer ang kanyang utak sa pamamagitan ng pagsusulat ng lahat ng bubble algorithm na ito, pagsasama-sama, binary search at iba pa. Una, ang mga algorithm na ito ay isang uri ng litmus test ng mga kasanayan ng isang programmer (ibig sabihin, hindi kaalaman, ngunit kasanayan) at pag-unawa ng isang tao sa kung ano ang programming sa prinsipyo. Kung ang iyong utak ay mahusay na nakatutok sa ganitong uri ng trabaho, ikaw ay magsusulat ng mga algorithm na medyo madali. At gayon pa man, dapat mong tandaan: kailangan mo ng tumpak na mga algorithm upang sanayin ang iyong utak... at upang makapasa sa isang panayam: ang mga kinakaing unti-unti na Senior developer na nagsasagawa ng mga ito ay napakahilig na pahirapan ang mga aplikante na may mga kahilingang isulat ito o ang algorithm na iyon. Ngunit sa kanilang trabaho, ang karamihan (48.5%) ay gumagamit ng mga karaniwang algorithm ng library, epektibo at napatunayan, habang 16% ng mga respondent ay hindi gumamit ng pag-uuri sa unang taon ng pagtatrabaho bilang isang programmer. Ano ang kailangan mong malaman upang maging isang Java Junior, at ano ang gagawin sa lahat ng ito?  - 4Sinasabi ng 69.6% ng mga nagtapos na bago matanggap ang kanilang unang alok sa trabaho, mayroon silang mahusay na pag-unawa sa pag-uuri at paghahanap ng mga algorithm at maaari nilang isulat ang mga ito sa kanilang sarili. Ano ang kailangan mong malaman upang maging isang Java Junior, at ano ang gagawin sa lahat ng ito?  - 5Nahawakan na namin ang paksa ng mga istruktura ng data noong pinag-usapan namin ang tungkol sa mga koleksyon ng Java. Oo, mas mahusay na maunawaan ang mga ito upang malaman kung saan at kung anong istraktura ang ilalapat. Ang paggawa ng sarili mong mga istruktura ng data sa larawan ng mga library ay isang mahusay na ehersisyo na makakatulong sa iyong mas maunawaan ang mga ito. Maaari mong, halimbawa, subukang magsulat ng sarili mong bersyon ng ArrayList o magmungkahi ng sarili mong listahan ng isahang naka-link (ang karaniwang LinkedList sa Java ay dobleng naka-link). Ano ang kailangan mong malaman upang maging isang Java Junior, at ano ang gagawin sa lahat ng ito?  - 6Habang nagtatrabaho, ginagamit ng mga baguhang programmer ang mga karaniwang istruktura ng data.Ano ang kailangan mong malaman upang maging isang Java Junior, at ano ang gagawin sa lahat ng ito?  - 7

Pagsubok sa yunit

Ang JUnit library ay may pananagutan para sa unit testing sa Java. Sa katunayan, maaari mong simulan ang pagsubok sa yunit halos sa pinakadulo simula ng pagsasanay. Hindi bababa sa, kapag kinuha mo ang iyong unang independiyenteng proyekto, kahit na isang napakaliit, mas mahusay kang maging bihasa sa tool na ito. Ang pagsulat ng mga pagsusulit sa yunit ay hindi ganoon kahirap, bagama't may ilang mga nuances. Ang pag-aaral ng JUnit ay hindi kukuha ng maraming oras, ngunit ang mga benepisyo ng pag-alam nito ay napakalaki. Magagawa mong sakupin ang iyong sarili at ang code ng ibang tao gamit ang mga pagsubok. Kadalasan, ang mga baguhan ay naatasan sa pagsulat ng mga pagsubok sa yunit para sa mga kasamahan, kaya maaari itong maging kapaki-pakinabang nang direkta sa kanilang bagong trabaho. 57.5% ng mga respondent ang nagsabing ginamit nila ang JUnit bago ang kanilang unang matagumpay na panayam sa Java, at mahigit 83% ang nakagamit na ng unit testing sa kanilang unang taon.

Mga library ng utility, GUI at mga kapaki-pakinabang na bahagi

Tinanong namin kung gaano pamilyar ang mga nagtapos ng JavaRush sa ilang mga tool, ang ilan sa mga ito ay sakop sa aming kurso.
  • Ang mga Servlet ay mga bahagi ng software ng Java na nagpapalawak ng mga kakayahan ng isang server.
  • Ang JDBC ay isang platform-independent na pamantayan para sa interoperability sa pagitan ng mga Java application at database. Ang JDBC ay ipinatupad bilang isang java package. Ang sql ay kasama sa Java SE (Standard Edition).
  • Ang log4j ay ang pinakatanyag na library ng pag-log ng mensahe. Binibigyang-daan ka nitong magsulat ng mga tawag sa library sa java code, at pagkatapos ay flexible na i-customize ito nang hindi binabago ang nakasulat na code.
  • Jackson/JSON. Ang JSON (JavaScript Object Notation) ay isang napakasikat na open standard na file at format ng pagpapalitan ng data, at ang Jackson ay isang high-performance na JSON processor para sa Java.
Ang lahat ng mga tool na ito ay lubhang kapaki-pakinabang at kadalasang ginagamit sa trabaho, at karamihan sa mga mag-aaral ay hindi pinabayaan ang mga ito kapag naghahanda para sa interbyu. Ito ay totoo lalo na para sa Jackson, na 72.7% ng mga aplikante para sa posisyon ng Java programmer ay nakatagpo, JDBC - ang library na ito ay sinubukan ng higit sa 78% ng mga respondent. Halos lahat ay gumagamit ng mga teknolohiyang ito sa kanilang trabaho. Ang mga developer ng Java ay hindi madalas na nakakatagpo ng mga GUI. Nagtanong kami ng tanong tungkol sa JavaFX: 18% lang ng mga respondent ang nakatagpo ng teknolohiyang ito sa trabaho. Ano ang kailangan mong malaman upang maging isang Java Junior, at ano ang gagawin sa lahat ng ito?  - 8Dalawang-katlo ng mga respondent ang nagtrabaho sa mga servlet; isang bahagyang mas maliit na bilang ng mga respondent ang sumubok sa kanila sa panahon ng kanilang pag-aaral. Lumalabas din na ang ilang bagong Java programmer ay nakatagpo ng mga proyekto tulad ng Apache Commons (isang hanay ng mga aklatan na nakatuon sa lahat ng aspeto ng magagamit muli na mga bahagi ng Java) at Guava (isang hanay ng mga open source na karaniwang aklatan para sa Java, na pangunahing binuo ng mga inhinyero ng Google ).Ano ang kailangan mong malaman upang maging isang Java Junior, at ano ang gagawin sa lahat ng ito?  - 9

Mga Framework

Dati, walang inaasahang malalaman ng Java Junior ang Spring o Hibernate. Ngunit nagbabago ang panahon, at ngayon ito ay inaasahan kahit na mula sa Trainee. Ang pag-aaral ng mga teknolohiyang ito sa iyong sarili ay hindi madali. Kahit na ang lahat ay tila malinaw, ang mga estudyante ay madalas na nakakalimutan kung ano ang napakabilis. Minsan kahit na ang mga application na nakasulat nang nakapag-iisa sa Spring ay hindi isang panlunas sa lahat. Ang aktibong gawain lamang ang makakatulong. Gayunpaman, bago ang isang matagumpay na panayam, isang ikatlong bahagi ng mga sumasagot ay pamilyar sa Spring sa isang mahusay na antas, at 45.5% ay may average na pag-unawa dito. Ang sitwasyon sa Spring boot ay medyo mas masahol pa (36.4% ay hindi alam ito sa lahat), at halos 44% ng JavaRush graduates na na-survey ay nagsabi na mayroon silang mahusay na kaalaman sa Hibernate. Ano ang kailangan mong malaman upang maging isang Java Junior, at ano ang gagawin sa lahat ng ito?  - 10Kasabay nito, habang nagtatrabaho, ang pangunahing balangkas ng Java ay ginamit ng halos 88% ng mga bagong programmer, Spring Boot - 83%, Hibernate - 81%.Ano ang kailangan mong malaman upang maging isang Java Junior, at ano ang gagawin sa lahat ng ito?  - labing-isa

Bumuo ng mga tool sa Automation at mga server ng application

Karamihan sa mga nagtapos ng JavaRush na nakapanayam ay sinubukang makipagtulungan sa mga tagabuo ng proyekto. Kadalasan ito ay si Maven (40.9% sinubukan ito sa pagsasanay, isa pang 30.3% ang gumagamit nito paminsan-minsan, at 12.1% ang patuloy na gumagamit nito sa kanilang pag-aaral). Kapag nagtatrabaho sa Maven, nakatagpo ako ng 72.7% (madalas), 7.6% (minsan) at 3% (madalang). Para kay Gradle, medyo mas malala ang sitwasyon. 22.7% lamang ang nagsanay sa kolektor na ito, at karamihan sa kanila ay sinubukan lamang ang teknolohiya. Halos kalahati ng mga respondente ang gumamit ng Gradle sa kanilang trabaho. Ano ang kailangan mong malaman upang maging isang Java Junior, at ano ang gagawin sa lahat ng ito?  - 12Matagal nang nawala ang posisyon ng langgam, at ito ay makikita sa katanyagan nito sa ating mga nagtapos: 3% lamang ng mga respondent ang nakikialam dito. At 12% ng mga sumagot sa mga tanong ay kailangang makipagtulungan sa kanya. Sa mga server ng application, ang Tomcat ang nangunguna; higit sa 77% ng mga respondent ang nakaisip nito sa kanilang pag-aaral, 11% ang sumubok ng GlassFish, 12% ang sumubok ng JBoss. Ang kasikatan ng mga server sa mga nagtatrabaho na ay mukhang magkatulad. 31.8% lamang ng mga nakakuha ng trabaho ang walang karanasan sa Tomcat. Gayundin, ang mga nagtapos ng JavaRush, sa kanilang unang taon ng pagtatrabaho bilang isang programmer, ay sinubukan ang mga server tulad ng WebSphere, Jetty, Netty, Wildfly, Weblogic.Ano ang kailangan mong malaman upang maging isang Java Junior, at ano ang gagawin sa lahat ng ito?  - 13

Ano pa?

Ang karamihan ng mga sumasagot, bago pa man makakuha ng kanilang unang trabaho:
  • nagkaroon ng pag-unawa sa HTML, CSS at JavaScript;
  • nagtrabaho sa mga database, alam ang SQL;
  • halos lahat ay gumamit ng Git at GitHub;
  • sinubukang magtrabaho gamit ang purong XML.
Ang lahat ng mga teknolohiyang ito ay kapaki-pakinabang sa kanila sa kanilang karagdagang gawain. Ang isang Java programmer, o sinuman sa bagay na iyon, ay inaasahan bilang default na pamilyar sa lahat ng nasa itaas. Ito ay kakilala, hindi malalim na kaalaman. Kaya't inirerekumenda namin na magpahinga minsan mula sa Java at palawakin ang iyong pananaw sa pamamagitan ng pag-aaral ng mga teknolohiyang ito. Gayundin, sinabi ng ilan sa mga sumagot sa mga tanong na sa panayam ay inaasahang magkaroon sila ng kaalaman, kahit man lang theoretical, sa mga pattern ng disenyo, mga pattern ng arkitektura, pati na rin ang mabuting asal sa programming (lahat ng KISS, DRY, SOLID na ito). Gayunpaman, kadalasan sa panayam, ang mga kahulugan lamang ang sapat: ang mga nagsagawa ng mga panayam ay alam na alam na ang tunay na pag-unawa sa gayong mga bagay ay dumarating lamang sa patuloy na pagsasanay. Nakatulong ba sila sa iyong trabaho? Siyempre sila ay kapaki-pakinabang.

mga konklusyon

Umaasa kami na hindi ka namin masyadong natakot sa dami ng mga teknolohiyang kailangan mong matutunan. Hindi lahat ng ito ay kailangang malaman nang lubusan, at bukod pa, ang pag-uunawa sa lahat ng ito ay medyo kawili-wili. It's not for nothing that you decided to become a programmer, right? Kaya ipagpatuloy ang pag-aaral ng Java at manatiling motibasyon. Good luck! PS Kung nakahanap ka na ng trabaho at gusto mong pag-usapan ang iyong karanasan, maligayang pagdating sa mga komento!
Mga komento
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION