Well, I found my hands time to share my little story.
Prologue
Magsimula tayo sa katotohanan na ako ay 30, mayroon akong mas mataas na edukasyon sa kimika (hindi ko na ilalarawan ang mga detalye), at nagtrabaho ako sa isang pabrika ng halos 8 taon. Ang trabaho ay talagang medyo kawili-wili, ngunit sa pagtingin sa aking mga katrabaho, napagtanto ko na hindi ko nais na magtrabaho dito ng dalawampung taon hanggang sa pagreretiro. Hindi ito ang paraan na gusto kong gugulin ang aking buhay. Gusto ko ring idagdag na mayroon akong pamilya, kasama ang dalawang anak (ang panganay ko ay 6, ang bunso ay 1 taong gulang), at predictably, isang mortgage. Sa wakas, nagpasya akong subukang lumipat sa ibang lugar, sa ibang pabrika na may mas mataas na suweldo at tunay na paglago ng karera. Nag-ugat na ako sa unang pabrika, kaya mahirap umalis, ngunit nagpasya ako. Ang aking paglalakbay sa St. Petersburg ay tumagal ng isang buwan. Opisyal akong nasa trabaho doon sa loob ng isang linggo nang mapagtanto ko na ang sitwasyon sa mga pabrika sa ating bansa (Sviatoslav ay mula sa Russia — tala ng editor) ay nakakalungkot sa karamihan. Bumalik ako sa aking bayan. Hindi ko gustong bumalik, dahil sa tingin ko ito ay isang hakbang pabalik. Sa puntong ito, nagpasya ako na kung babaguhin ko ang aking buhay — at baguhin ito nang radikal! Sa loob ng halos isang linggo ay pinag-isipan ko kung aling programming language ang pipiliin, at, mabuti, ang pagpipilian ay nahulog sa Java. Pagkatapos noon, nagsimula na akong maghanap ng mga kurso. Ang katotohanan ay maraming magagandang kurso, ang ilan sa mga ito ay makatuwirang presyo, ngunit nagkaroon ako ng problema: Ako ay sobrang motivated at nagkaroon ng maraming oras upang mag-aral, ngunit ang aking pinansiyal na unan ay tatagal ng hindi hihigit sa 3-4 buwan. Ang lahat ng mga kurso na nagustuhan ko ay para sa kalahating taon o higit pa na may dalawang aralin bawat linggo (madalas). Ngunit pagkatapos ay inirerekomenda ng isang kaibigan ang CodeGym sa akin pagkatapos niyang marinig na ito ay isang napakahusay na mapagkukunan. Nakita ko na nasa kursong ito ang lahat ng kailangan ko:- isang subscription sa mga materyales sa pag-aaral at mga gawain;
- no time limits — I could study just as much as my schedule (which was wide open) and my desire (as I said above, I was super motivated) would allow.
Bahagi 1: Sa paghahanap ng kaalaman
Noong Nobyembre 26, 2019, nag-sign up ako at nagsimula ng aking pag-aaral. Sasabihin ko kaagad na may ilang araw na nakaupo ako nang 14 na oras nang diretso, nag-aaral, nagbabasa ng lahat ng nauugnay na link, at nagsisikap na makahanap ng mas magagandang solusyon (nang hindi sumilip sa Tulong). Nang naisip ko na ang aking solusyon ay ang pinakamahusay na tumingin ako sa Tulong. Madalas akong namamangha sa mga solusyon na mas maganda at mas maigsi. Sa katapusan ng Enero, sa pag-abot sa Level 17, nagpasya akong magsimulang pumunta sa mga panayam, ilabas ang aking mga kasanayan, at makita kung ano ang gusto ng merkado. Sa nangyari, wala talagang tumugon sa akin, ngunit may isang opisina na kumuha sa akin bilang isang walang bayad na probationary intern: ang unang buwan ay walang bayad, ang pangalawa at pangatlo ay may kasamang maliit na stipend. Susunod ay magkakaroon ng isa pang panayam batay sa aking pagganap pagkatapos ng tatlong buwan, at kung ang internship ay matagumpay - pagkatapos ay trabaho.Part 2: Nagmamadali sa labanan
Kasama sa aking internship ang pagsusulat ng Chrome plugin na may back-end ng Java upang i-automate ang mga nakagawiang gawain ng isa sa mga panloob na departamento ng kumpanya. Nagkaroon ako ng isang kahanga-hangang tagapagturo na may maraming kaalaman, na sa tingin ko ay mahalaga din. Karaniwan, upang maiwasang mawala sa mga damo, sasabihin ko sa iyo ngayon ang tungkol sa teknolohiyang stack na ginamit ko, at pagkatapos ay sa dulo ng artikulo ay magbibigay ako ng ilang mga link na naging lubhang kapaki-pakinabang para sa akin.Technology stack:
Java 11 (ang proyekto ay ganap na isinulat mula sa simula), Spring (Boot, Security, OAuth2); Ginamit ko ang MongoDB para sa isang database; para sa mga awtomatikong pagsubok, ginamit ko ang AssertJ, Mockito, at Spring-boot-starter-test; at ginamit ko ang medyo sikat na daloy ng GitHub (tingnan ang artikulong ito ). BTW, kung nahihirapan ka sa English, ito na ang oras para payuhan kang pag-aralan ito. Ang antas ng aking katatasan ay A2, ngunit palagi kong sinusubukang magbasa ng mga artikulo sa Ingles (nang hindi gumagamit ng tagasalin, siyempre). Ito ang aking pinakamalaking kahirapan habang sinimulan ko ang internship project, dahil kailangan kong magtrabaho sa isang third-party na CRM, at lahat ng dokumentasyon nito ay nasa English. Gayundin, kapag nagtatrabaho sa Spring, pinakamahusay na basahin ang orihinal na dokumentasyon. Ito ay napakahusay at detalyado. Higit pa rito, halos lahat ng dokumentasyon ay Ingles (medyo mula kay Captain Obvious). Gayundin, sinabi sa akin ng aking tagapagturo na isulat ang lahat ng komento sa code at dokumentasyon ng API sa Ingles, kaya inuulit ko muli: matuto ng Ingles, kung hindi ka katutubong nagsasalita! Kahit na hindi ka magtatrabaho sa mga dayuhang customer o maglalakbay sa ibang bansa, ang kasanayang ito ay lubos na magpapasimple sa iyong pag-aaral at pag-unlad.Bahagi 3: Kinalabasan
Ang bahaging ito ay magiging mas maikli :) Sa pagtatapos ng internship, matagumpay kong naipasa ang panayam sa pagsusuri sa pagganap at nakakuha ng trabaho, kung saan ipinagpatuloy ko ang paggawa sa proyektong ito. Ang unang yugto ay dapat ipatupad bilang bahagi ng aking internship, ngunit mayroong tatlong yugto sa lahat. Dahil sa pagsisimula ng pandemya, maraming komersyal na proyekto ang nawala, at ipinatupad ko ang lahat ng mga yugto at lahat ng iba pang ideya/nais na maaaring magkaroon para sa proyektong ito. May iba pang mga gawain, ngunit, tulad ng sinasabi nila, iyon ay ibang kuwento.Part 4: Nagkaroon ng happy ending, though things are far from over ;)
Noong kalagitnaan ng Hulyo, nakatanggap ako ng tawag at tinanong kung naghahanap ako ng trabaho. Nai-post ko ang aking resume, kahit na ito ay hindi na-update nang mahabang panahon. Nagpasya akong subukan ang aking sarili. Dumaan ako sa 3 yugto: isang pagsubok na gawain, isang teknikal na panayam, at isang pakikipanayam sa boss. Nagpadala sila sa akin ng isang alok at... Ito ay isang alok na hindi ko maaaring tanggihan. Naiintindihan ko, siyempre, na sa iyong unang pares ng mga trabaho, susubukan mong makapasok saanman ka nila dalhin, ngunit gayon pa man. Ang aking unang trabaho ay isang outstaffing na posisyon, ngunit ang aking kasalukuyang trabaho ay sa industriya ng pagkain. Kinuha din nila ako bilang isang junior dev, ngunit hindi ako nagagalit, dahil may puwang na lumago kapwa sa mga tuntunin ng kaalaman at pera.Epilogue
Kaya, mga kaibigan, huwag panghinaan ng loob. Ang pangunahing bagay ay magpasya at huwag lumihis sa iyong landas. Sa aking kaso, nagkaroon ako ng malaking responsibilidad na pangalagaan ang aking pamilya at isang pagnanais na baguhin ang isang bagay sa aking buhay, upang simulan ang paggawa ng kung ano ang talagang tinatamasa ko. Napakahusay ng software development, dahil maaari kang umakyat sa career ladder, hindi alintana kung mayroong mas mataas na bakante sa iyong kumpanya, hindi alintana kung ang isang tao ay nagretiro pagkatapos magtrabaho sa loob ng dalawampung taon, at hindi alintana kung mayroon kang mga personal na koneksyon upang mapunta ang mas mataas na trabaho. Sa aming larangan, ang lahat ay nasa aming mga kamay!Narito ang ilang artikulo na nais kong ibahagi:
- Pag-unawa sa arkitektura . Personal kong binasa ang artikulong ito nang 4 na beses habang ginagawa namin ang arkitektura ng isang aplikasyon sa hinaharap. Ginagamit ko ang salitang "kami", dahil sinuri ng aking tagapagturo ang lahat at ipinadala ito pabalik para sa mga pagwawasto (ibig sabihin, gumawa siya ng mga pagsusuri sa code). Sa unang pagkakataon ay hindi ko masyadong naintindihan. Pagkatapos ay binasa ko ito makalipas ang 3 buwan, at nalaman kong naunawaan ko kung bakit. Nang maglaon, binasa ko pa ito ng 2 beses upang patatagin at lubos na ma-assimilate ang lahat ng impormasyon.
- Interactive na pag-aaral ng Git .
- Inirerekomenda ko na dapat matutunan ng lahat kung paano magtrabaho sa mga stream. Ang mga ito ay talagang maluwalhati: madalas mong palitan ang malalaking volume ng code ng isang maliit na stream.
- Dokumentasyon ng tagsibol.
- Dahil nagtrabaho ako sa isang database na hindi nauugnay, at karamihan sa mga kumpanya (lalo na sa malalaking) ay nagtatrabaho sa SQL, sa aking libreng oras sinubukan kong lutasin ang hindi bababa sa ilang mga problema na kinasasangkutan ng pagbuo ng mga query sa SQL. Mayroong maraming iba't ibang mga website para dito.
- Inirerekomenda ko rin ang pagbabasa tungkol sa mga pagsusulit sa pagsulat (Assertj, Mockito), ngunit wala akong matandaan na magagandang artikulo, dokumentasyon lamang.
- At kapag gumagawa ka ng application (ngunit lampas na kami ngayon sa beginner level), subukang gumamit ng mga pattern ng disenyo . Hindi bababa sa isang mabilis na pagtingin sa mga kilalang pattern. Magiging kapaki-pakinabang iyon sa pagsisimula mo.
GO TO FULL VERSION