Muling pagsasanay sa mga steroid - 1Dalawang taon at tatlong buwan na ang lumipas mula nang mag-sign up ako para sa kursong ito at sumulat ng HelloWorld. Dapat ay naisulat ko na ang artikulong ito at nagbigay pugay sa napakagandang mapagkukunang ito noon pa man, ngunit kahit papaano ay napigilan ako ng mabilis na takbo ng buhay. Pero ngayon "salamat" sa covid pandemic, may oras na ako. Ako ay 33 taong gulang. Ako ay isang social worker sa Latvia at walang kinalaman sa IT. Ang huling karanasan ko sa code ay 15 taon na ang nakakaraan. Ngunit ang aking maliit na suweldo at kakulangan ng mga prospect sa karera ay naghanap ako ng alternatibo. Tulad ng nangyari, marami sa aking mga kaibigan ang sumubok ng kanilang kamay sa larangan ng IT. Bukod dito, wala sa kanila ang nagkaroon ng edukasyon sa IT. Ang ilan ay nakakuha ng trabaho, ang ilan ay hindi masyadong mahusay. Ngunit ang mga tagumpay ay nagbigay inspirasyon sa akin, at sa wakas ay nagpasya ako. Sa Riga, isang beses bawat anim na buwan, isang kilalang kumpanya sa pagkonsulta ay nag-organisa ng isang serye ng mga libreng bootcamp (intensive training courses) na may kasunod na pagkakataon (para sa mga nagtapos) upang makakuha ng internship at kontrata sa pagtatrabaho. Ilang oras akong nag-iisip kung anong kurso ang kukunin. Sa huli, pinili ko ang Java, dahil ang Java bootcamp ang nagbigay ng pinakamalaking bilang ng mga pagkakataon pagkatapos ng graduation. Nakagawa ako ng ilang reconnaissance at nakipag-usap sa mga kalahok sa bootcamp, kabilang ang ilan na natanggap na sa kumpanya. Narito ang intel na nakalap ko: ang kurso ay napakatindi; walang saysay na pumunta doon na walang kaalaman; mas mabuting matutunan mo ang lahat bago ang bootcamp. Kaya huminto ako sa aking trabaho apat na buwan bago ang bootcamp, nanirahan sa bahay, nabubuhay sa tulong pinansyal at ilang maliit na ipon, at nagsimulang mag-aral nang masinsinan. Ano ang naging training program? Well, una sa lahat, ang CodeGym na ito ay natural na praktikal na bahagi ng aking pagsasanay. Ang theoretical arm ay Head First Java (Java 5). At dapat kong sabihin, ang CodeGym at Head First Java ay ganap na umakma sa isa't isa. Ang aklat ay nagbigay ng mahusay na pangkalahatang-ideya ng mga pangunahing tampok ng wika. Higit pa rito, ang materyal ay may kasamang madaling maunawaan na mga visualization at analogies (ang salamin na may remote control ay talagang kahanga-hanga). Alam kong hindi gusto ng mga batikang tech ang aklat na ito dahil mismo sa presentasyong ito, ngunit kung galing ka sa humanities, ito lang ang kailangan mo. Sa anumang kaso, ito ang hitsura ng aking curriculum: 3 oras ng teorya mula sa Head First Java sa umaga, 3 oras ng hands-on na pagsasanay sa CodeGym sa hapon. 6 na oras araw-araw, kabilang ang katapusan ng linggo at bawat holiday. Napaka intensively. Marahil ay masyadong matindi — ang aking mahigpit na rehimyento ay nagdulot ng ilang mga problema sa kalusugan. Kung mayroon kang oras at pinansiyal na reserba, hindi ko inirerekumenda ang gayong matinding diskarte. Ngunit wala akong ganoong karangyaan, at hindi ko mabibigo ang bootcamp. Kaya nag-aral ako ng 4 na buwan hanggang sa magsimula ang bootcamp, umabot sa Level 23 sa CodeGym na may disenteng solusyon sa lahat ng mga gawain (bagama't ang ilan sa mga ito ay nagpawis sa akin ng husto), at natapos ang libro, matapos ang lahat ng mga gawain. Mayroon pa akong ilang linggo bago ang bootcamp. Maaari akong gumawa ng karagdagang pag-unlad sa pamamagitan ng mga antas, ngunit sa halip ay nagpasya akong makabisado ang lahat ng uri ng mga kaugnay na kasanayan, tulad ng Git. Nagsimula ang bootcamp, at ang mga kurso ay sobrang matindi, ngunit lumabas na hindi ko pa nararanasan dati ang dalawa sa mga paksa: pagsulat ng mga pagsubok sa yunit at JavaFX. Nagbunga ang taya ko sa mahigpit na pag-aaral sa sarili. Hindi rin pala ako ang pinakamasama sa grupo. Bilang karagdagan, nagpasya akong gumawa ng inisyatiba at magtapon ng isang malaking suntok para sa huling proyekto. Isang maliit ngunit kahanga-hangang pangkat ang natipon at gumawa ng aplikasyon para sa mga nars (lumabas ang aking background bilang isang social worker). Sa kabuuan, natapos nang maayos ang bootcamp, at nakakuha ako ng internship at nagkaroon pa ako ng pagkakataong pumili ng espesyalisasyon. Dito ako nakagawa ng kasuklam-suklam na pagkakanulo sa pamamagitan ng pagpili sa Salesforce sa halip na hardcore Java. Nagsimula ang Salesforce bilang isang cloud-based na CRM (customer relationship management) system na nag-aalok ng napakaraming opsyon sa pagpapasadya. Ngunit pagkalipas ng maraming taon, isa na itong makapangyarihang ganap na platform na hinahayaan kang gawin ang halos anumang bagay. Marami akong nakitang proyekto na walang kinalaman sa CRM. Karaniwan, ang Salesforce ay isa na ngayong cloud-based na database kung saan maaari mong makuha ang halos anumang bagay na gusto mo. Para sa backend, ginagamit ng Salesforce ang Apex, na isang uri ng "Java para sa mga retirees". Ginagawa nitong insensitive ang Java syntax case, walang pinamamahalaang multithreading, medyo kakaunti ang mga built-in na klase, at halos lahat ng code ay umiikot sa pagsulat at pagkuha ng data mula sa isang database ng Salesforce. Ngunit mayroon din itong sariling kahirapan. Ang Apex code ay pinapatakbo sa gilid ng server, kung saan ayon sa teorya ay maaaring makuha ng sinumang user ng Saleforce ang buong kapangyarihan ng cloud. Upang maiwasan ang monopolisasyon ng mga mapagkukunan, mayroong maraming limitasyon ng gobernador. Nalalapat ang mga limitasyong ito sa lahat ng pag-customize ng Salesforce, kabilang ang Apex. Minsan ito ay nangangahulugan na ang Apex code ay mukhang kakaiba sa mga developer ng Java. Bukod sa Apex, ang SF ay may tatlong katutubong front-end na framework: Visualforce, Aura Components, at ang buong bagong Lightning Web Components. Matapos lagdaan ang aking kontrata sa pagtatrabaho noong unang bahagi ng Hulyo, ang aking mga unang takdang-aralin ay nauugnay sa pangalawang balangkas. Ito ang aking unang pagkakakilala sa JavaScript, isang wika na unti-unti kong nagustuhan, kahit na may kahirapan. Sa pamamagitan ng paraan, aktibo akong nagtrabaho sa parehong JavaScript at Apex. Ang unang bagay na natutunan ko tungkol sa Salesforce ay ang bawat marine ay isang rifleman. Sa Salesforce, lahat tayo ay full-stack na developer. Dagdag pa, tulad ng nabanggit ko, ang Salesforce ay isang buong mundo — hindi lamang isang wika. Bilang karagdagan sa code, maraming mga tool sa pagpapahayag: Tagabuo ng Proseso, Tagabuo ng Daloy, Mga Panuntunan sa Daloy ng Trabaho, Mga Panuntunan sa Pagpapatunay, at iba pa. Gusto ko ito ng marami, dahil nangangahulugan ito na ang isang problema ay maraming solusyon, at ang pinakamahusay ay karaniwang nangangahulugan ng kakayahang maiwasan ang code. Nagkaroon ng mga kaso kapag ang ilang mga developer ay walang pag-aalinlangan na sumulat ng isang bundok ng code upang ipatupad ang pagpapaandar na maaaring nakamit sa pamamagitan ng pagsuri sa ilang mga checkbox sa mga file ng pagsasaayos. Anyway, sa unang dalawang buwan, lubusan kong isinawsaw ang aking sarili sa platform, at pagkatapos ay nakakuha ako ng alok na trabaho. Ang unang tatlong buwan sa trabaho ay natakot ako, ngunit pagkatapos ay naakit ako. Nakumpleto ko ang isang pares ng mga certification ng Salesforce: App Builder at Platform Developer 1. Pagkatapos ang lahat ay naging isang nakagawian: Nagtrabaho ako nang eksaktong isang taon at kalahati sa ang aking unang kumpanya (I am very grateful for that time). Pagkatapos ay nakatanggap ako ng isang imbitasyon sa LinkedIn mula sa isang tao sa London, kung saan sinusulat ko ngayon ang artikulong ito. Gumagana ang aking bagong kumpanya sa Vlocity, na naka-install sa Salesforce sa isang pinamamahalaang package, ibig sabihin, ito ay isang platform sa isang platform. Nagbibigay ang Vlocity ng maraming karagdagang tool para sa pagpapasadya at paglikha ng mga user interface. Sa ngayon, 20-30 porsiyento lamang ng aking trabaho ang nauugnay na code, ang natitira ay tungkol sa mga tool na nabanggit ko. Ngunit ako ay karaniwang nalulugod. Inirerekomenda ko ang CodeGym sa lahat ng aking mga kaibigan na maaaring interesado sa muling pagsasanay. Ito ay isang ganap na hindi maaaring palitan na tool. Ang ilan sa mga gawain ay nagpapatunaw ng iyong utak. Nagpalipas ako ng 2-3 araw sa kanila. Ito ay isang napakahusay na paraan upang makakuha ng karanasan. Nga pala, sa trabaho ko, Bihira akong nakatagpo ng mga ganitong gawain. Ang pangunahing punto ay ang muling pagsasanay mula sa isang social worker patungo sa isang developer ay nangangailangan ng matinding pagsisikap, ngunit hindi pa rin ito tulad ng pag-akyat sa Mt. Everest. Ang payo ko: mag-aral ng mabuti, ngunit huwag mag-overdo ito (huwag sirain ang iyong kalusugan). Hindi sapat ang 1-2 oras sa isang araw. 6 ay marami. Tama lang siguro ang 3-4. Kung kaya mong huminto at tumuon sa muling pagsasanay, sa palagay ko dapat kang huminto. Pagkatapos ng ilang paunang pagtatangka, nalaman ko na ang pagsasama-sama ng trabaho sa muling pagsasanay ay hindi isang opsyon para sa akin. Ang aking pamilya ay hindi masaya na ako ay huminto, ngunit sa aking kaso ang panganib ay nagbunga. Kung mayroon kang ipon, maaari mong ituring ang paggamit nito dito bilang isang pamumuhunan sa iyong sarili. Magsaliksik sa lahat ng mga pangunahing kumpanya sa pagkonsulta. Sa panahon ng hindi krisis, marami silang mga proyekto, kailangan nila ng maraming developer, handa silang bigyan ng pagkakataon ang mga bagong dating, at madalas na sila mismo ang nag-aayos para sa pagsasanay. Pinakamahalaga, hindi ang iyong edukasyon ang mahalaga sa kanila, kundi ang iyong kakayahan. Kung kaya mo, walang magtataboy sa iyo sa industriya ng pagkonsulta. Well, iyon lang ang tungkol sa lahat: Nais kong good luck sa iyong mga unang hakbang sa mundo ng IT. Kunin ang lahat ng mga gawain ng CodeGym sa pagkakasunud-sunod. Huwag magmadali at lumaktaw sa mga susunod na paksa. Ibabalik ng pagsasanay dito ang iyong pag-iisip. Kung nangyari iyon, maniwala ka sa akin: mararamdaman mo ang iyong sarili hindi lamang sa Java, kundi pati na rin sa anumang iba pang wika o teknolohiya.