Alam namin na gustong marinig ng mga estudyante ng CodeGym ang mga kuwento ng mga nagtatrabaho na sa IT. Kaya't kinuha namin ang mga bagay sa aming sariling mga kamay at naglunsad ng isang serye tungkol sa mga developer mula sa iba't ibang bansa at kumpanya, na nakatapos ng aming pagsasanay sa Java. Ang kwentong ito ay tungkol kay Irina. Sa paaralan at unibersidad, mahal niya ang mga teknikal na agham. Medyo alam niya ang tungkol sa programming ngunit pinili niyang kumuha ng trabaho sa contextual advertising. Gayunpaman, nais ni Irina na subukan ang kanyang kamay sa pag-unlad. Isang araw, nakatanggap siya ng email na nagpapaalam sa kanya na ang mga developer intern ay kinukuha para sa isang partikular na serbisyo. At bagama't hindi nakapasa sa panayam ang ating pangunahing tauhang babae, ang karanasan ang nag-udyok sa kanya na simulan ang pag-aaral ng Java."Hindi na kailangang labanan ang kasamaan sa pag-unlad, ngunit hindi mo rin dapat hawakan ito": ang kuwento ni Irina the Programmer - 1

"Talagang gusto kong subukan ang aking sarili sa pag-unlad"

Pagkatapos ng ika-9 na baitang, nang kailangan kong pumili ng direksyon para sa karagdagang pag-aaral (ibig sabihin, teknikal, humanitarian, pang-ekonomiya, at medikal na mga landas), napunit ako sa pagitan ng humanitarian at teknikal na mga landas. Para sa akin, ang humanities ay kumakatawan sa isang karera bilang isang mamamahayag, tinutuligsa ang kasamaan at ipinagtanggol ang mabubuting layunin sa buong mundo. Habang pinag-iisipan ko ang technical track, naisip ko, kung hindi ako lumalaban sa kasamaan, at least hindi ko ito hawakan. Sinundan ko ang landas ng hindi bababa sa paglaban at pinili ang teknikal na track. Pagkatapos ng paaralan, pumasok ako sa unibersidad, majoring sa Computer Science at Computer Engineering. Sa kasamaang palad, ang unibersidad ay hindi nagbigay ng anumang mga kasanayan sa anumang partikular na wika. Sa isang di-pagkakabit na paraan, natutunan ko ang ilang bagay tungkol sa C++, C#, JavaScript, at layout ng UI. Sa aking ikatlong taon, bigla akong naging interesado sa advertising ayon sa konteksto at nagkataon lang na makakuha ng trabaho sa isang medyo kilalang kumpanya. Bilang resulta, nanatili ako sa advertising sa loob ng 2 taon. Nasiyahan ako sa mga disenteng tagumpay, ngunit talagang gusto kong subukan ang aking sarili sa pag-unlad. Ang aking pagbabalik sa programming ay wala ring pinag-isipang mabuti na plano: Nakatanggap ako ng email sa trabaho tungkol sa isang bagong serbisyo na naghahanap ng pagkuha ng mga intern ng developer ng Java. Nagpasya akong pumunta sa isang panayam. Siyempre, sa oras na iyon ang aking pangunahing kaalaman ay hindi sapat upang makakuha ng isang alok, ngunit ang episode na ito ay nag-udyok sa akin na maghanap ng ilang mga mapagkukunan tungkol sa Java. Natisod ako sa kursong ito sa Internet. Hindi nila ako na-hook noong una: lahat ng nakakatawang larawan at kwento ng robot ay ginawa itong tila hindi seryoso sa akin, ngunit talagang nagustuhan ko ang pagkakataong magsanay at suriin ang aking mga gawain. Nagtagal ako at nagpasyang subukan ito, at pagkatapos ay hinila ako.

"Nabigo ako sa mga unang panayam"

Nag-aral ako nang walang mahigpit na iskedyul, sa mga akma at pagsisimula: sa mga pahinga sa trabaho, minsan sa gabi. Sa mga Level 16-17, sinimulan kong subukang maghanap ng trabaho. Noong panahong iyon, halos tatlong buwan na akong nag-aaral nang may ilang pahinga. Kung wala kang karanasan sa trabaho, gusto nilang magtanong tungkol sa mga algorithm, ngunit halos hindi ko rin sila kilala. Kaya nabigo ako sa mga unang panayam. Kinailangan kong maghanda nang higit pa, hanapin ang mga madalas itanong, at isaulo ang mga sagot sa kanila. Agad kong natutunan ang SQL, pinag-aralan ang mga code versioning system (IMO, binanggit ng CodeGym ang Git sa hindi makatwirang advanced na antas, hindi hanggang Level 30) at mga SOLID na prinsipyo, at natutunan ang mga algorithm sa pag-uuri. Sa huli, natanggap ako bilang junior dev sa isang maliit na kumpanya. Ang aking mga gawain sa una kong trabaho ay napakaliit: pagbuo ng bagong paggana ng system, pagpapakintab ng umiiral na paggana, pag-aayos ng mga bug. Ginamit namin ang pamamaraan ng waterfall: nagpapadala ang isang negosyante ng isang gawain, inilalarawan ito ng isang analyst nang mas detalyado, ipinapatupad ito ng isang developer, sinusuri ito ng isang analyst, at pagkatapos ay ini-roll ito ng developer sa produkto. Hindi kami gumamit ng anumang espesyal na teknolohiya: isinulat namin ang lahat sa purong Java — isang monolith sa halip na mga microservice. Upang magtrabaho kasama ang database, ginamit namin ang aming sariling pinagmamay-ariang closed-source na balangkas. Nagkaroon ng karagatan ng mga paghihirap sa simula pa lamang — mula sa pag-aaral kung paano i-upload ang proyekto sa repository, hanggang sa kung paano magsulat ng kahilingan sa database upang hindi ito mag-time out. Marami akong kailangang i-google tungkol sa pagtatrabaho sa JSON, SOAP, tungkol sa kung ano ang Maven, at tungkol sa kung paano bumuo ng isang proyekto ng Maven. Hindi ko pinabayaan ang pag-aaral. Sinubukan kong mag-aral kahit sa bawat ibang araw, ngunit may ilang beses na kailangan kong itabi ito sa loob ng isang buwan. Ngunit ang layunin ko ay tapusin ang itinatangi na 40 antas. Sa parallel, kumuha ako ng kurso sa Spring framework. Nagbukas ang Spring ng maraming bagong pagkakataon para sa akin, at ang mga alok na natatanggap ko salamat sa aking resume ay dumami nang maraming beses. Sa panahon ng quarantine, nagpalit ako ng trabaho at lumipat sa isang proyekto na may arkitektura ng microservice. Gumagawa kami ng serbisyo para sa paghahanap, pagbebenta, pagbili, at pagpapaupa ng residential at commercial real estate, pati na rin sa pag-a-apply at pagseserbisyo ng mga mortgage. 80% ng aming mga serbisyo ay nakasulat sa Kotlin. Ang iba pang 20% ​​ay nakasulat sa Java.

Ang aking mga plano para sa malapit na hinaharap ay:

  1. Mas malalim na pagsasawsaw sa arkitektura. Gusto kong gumawa ng malalim na pagsisid sa disenyo ng arkitektura ng backend.

  2. Pag-aaral ng C++. Sa tingin ko ito ay tiyak na magiging kapaki-pakinabang para sa sinumang programmer - upang magawa, kung kinakailangan, na isulat ang mga bahagi ng isang application na kailangang tumakbo nang napakabilis. Magiging kapaki-pakinabang ito para sa anumang kumplikadong mga kalkulasyon sa matematika.

  3. DevOps. Ginagawa pa nga ng ilang kumpanya ang kasanayang ito bilang mandatory na kinakailangan para sa mga programmer. At tiyak na magiging kapaki-pakinabang ito sa anumang iba pang kumpanya.

Wala akong pinagsisisihan na noong ika-9 na baitang ay pinili ko ang teknikal na track at dalawang taon na ang nakalipas ay nagkaroon ako ng lakas ng loob na umalis sa advertising at magsimula ng isang karera sa programming. Ang pag-unlad ay isang uri ng mahika, isang paraan upang gawing simple ang mga kumplikadong bagay para sa mga tao, upang mapalitan ng kalinawan ang pagkalito. Kasalukuyan kong sinusubukan na makuha ang aking 12-taong-gulang na nakababatang kapatid na lalaki na interesado sa programming. Isang taon na ang nakalipas binigyan ko siya ng Arduino starter kit at iniisip kong bumili ng libro para sa kanya tungkol sa Python coding para sa Minecraft. Kapag medyo tumanda na siya, ipapakilala ko siya sa CodeGym. I think magugustuhan niya. Isang mahalagang bagay na nakuha ko mula sa CodeGym ay ang aking pagkaunawa na talagang hindi ka dapat matakot na magbayad para sa magagandang materyales. Magbabayad ito ng isandaang beses.

Mga tip para sa mga nagsisimulang developer:

  • Ipagpatuloy ang programming. Ang gawain ng isang programmer ay ganap na binubuo ng paglutas ng ilang mga problema, at paghahanap ng ilang mga pagkakamali, at pagwawasto sa mga ito. Minsan ito ay maaaring (at tiyak na magiging!) ay tila mahirap, nakakainip, at nakakainis, ngunit kapag nalutas mo na ang problema, ito ay parang isang tunay na tagumpay, isang tagumpay, halos isang pagtuklas. At ang cycle na ito ay umuulit. Galit, pagtanggap, mahabang pagtatangka, at walang katapusang kabiguan, pagkatapos ay tagumpay. Ang kilig sa gawain ng isang programmer ay nasa pag-asam ng susunod na tagumpay at tagumpay. "Hindi na kailangang labanan ang kasamaan sa pag-unlad, ngunit hindi mo rin dapat hawakan ito": ang kuwento ni Irina the Programmer - 2
  • Ipagpatuloy ang pag-aaral kailanman at saanman posible. Magbasa ng mga artikulo at libro. Maghanap at kumuha ng mga kurso sa iba't ibang larangan ng software development. Tiyaking sumubok ng mga bagong teknolohiya. Ilapat ang mga ito sa iyong mga personal na proyekto. Makipag-ugnayan sa iba na masigasig sa pagbuo ng software. Magpalitan ng mga karanasan at ideya. Noong unang panahon, ito ay nakikipag-usap sa mga taong mapaghangad na tumulong sa akin upang hindi mapagod sa aking unang kumpanya at hindi matakot na magpatuloy.

  • Kaya ang aking pangatlong tip — Huwag matakot na baguhin ang mga bagay-bagay : isang bagong trabaho, isang bagong balangkas, isang bagong wika (patawarin mo ako, CodeGym). Ang lahat ng aking malalaking tagumpay sa aking sarili ay nangyari sa eksaktong sandali nang ako ay nagpalit ng trabaho. Sa una, tila nakakatakot pumunta sa isang lugar nang hindi lubusang pinagkadalubhasaan ang teknolohiya o wika, ngunit ito ay nagpapasigla ng maraming paglago, habang pinag-aaralan mo ang hindi kilalang teknolohiya o wikang ito. Ang iyong pangalawang hangin ay sumisipa, at nakakita ka ng espesyal na kahulugan sa pag-unawa at pag-aaral ng bago.

  • Maging makatwiran sa pagtatasa ng iyong mga lakas. Kahit na maaari mong pagsamahin ang trabaho, independiyenteng pag-aaral sa bahay, ilang mga online na kurso, unibersidad, at maaaring isang pamilya, para sa isang oras, mayroong isang malaking pagkakataon na ikaw ay maubos. Sa kasamaang-palad, may kilala akong ilang lalaki na na-burn out at inabandona ang programming pagkatapos ng mahabang panahon ng pagsasama-sama ng unibersidad, pagiging matagumpay na nagtatrabaho, at nagtatrabaho din bilang isang unpaid developer intern. Kung kumuha sila ng dagdag na day off o academic leave sa unibersidad, kung nagbakasyon sila ng isang araw at isinasantabi ang pag-aaral kung nagpahinga sila sa kanilang mga online na kurso sa loob ng ilang linggo, kung gayon marahil ay nangyari ang lahat. iba.