JavaRush /Java Blog /Random-TL /Nag-aaral sa JavaRush. Mga unang proyekto, kung ano ang n...
dwajot
Antas
Киев

Nag-aaral sa JavaRush. Mga unang proyekto, kung ano ang naghihintay sa iyo at kung ano ang pinakamahusay na huwag gawin. Bahagi 1.

Nai-publish sa grupo
Magandang hapon Sa wakas ay naabot ko na ang oras na handa na akong ibahagi ang aking kwento ng tagumpay. Marami akong gustong sabihin sa iyo, kaya hahatiin ko ito sa dalawang bahagi - kung sabihin, "mga unang proyekto at kung ano ang pinakamahusay na hindi dapat gawin" at talagang "paghahanap ng trabaho at pagpasa sa mga panayam." Hindi ko na sasabihin sa iyo ang tungkol sa aking sarili, sasabihin ko lang na tulad ng halos lahat dito, nagtapos ako at nagtrabaho sa ibang espesyalidad, ngunit pagkatapos ay nagpasya na maging isang programmer :) Pag-usapan natin ang tungkol sa pagsasanay kaagad. Nagsimula akong mag-aral ng JavaRush sa simula ng 2016. Gumugol ako ng mahabang oras sa pagpili kung saan mag-aaral ng programming at, siyempre, tulad ng lahat ng aming mga tao, hindi ko nais na magbayad para sa pagsasanay. Nais kong mag-aral ng Java, dahil ang pangarap ko ay mag-program sa Android. Ang kursong JavaRush ay nakakuha ng mata ko nang ilang beses sa aking paghahanap, ngunit itinapon ko ito dahil ito ay shareware. Nagsimula akong kumuha ng mga aralin sa video sa YouTube. Pagkatapos, gayunpaman, pinilit ako ng ilang puwersa na subukang lutasin ang mga libreng problema sa JavaRush, at nagulat ako na pagkatapos makumpleto ang 50 mga aralin sa video (itinuring ko silang normal) at pagsulat ng code sa ilalim ng lektor, nahirapan ako at hindi sa una. subukang lutasin ang mga unang problema ng kurso. Pinahahalagahan ko ang kalidad ng kurso at kung ano ang ibibigay nito sa akin kung makumpleto ko ito nang buo, pagkatapos ay tumingin ako sa forum na paminsan-minsan ay may magagandang diskwento sa mga subscription at nagpasya na kukunin ko ang buong bersyon. Oo, maraming mga mag-aaral ang nagagalit at nagagalit tungkol sa kurso - ang mga problema ay ibinibigay batay sa materyal na hindi pa nasasakupan, hindi sila naiintindihan ng validator, at marami, maraming bagay na mababasa sa forum at sa mga komento. And guess what? Ganyan din ako :) Mayroon pa akong malaking gawain na nakabitin sa level 34 at sinubukan ko ang lahat ng mga solusyon, ngunit hindi ito tinatanggap ng validator. Mabuti na ang suporta ay nagbigay sa akin ng ilang itim na bagay at natapos ko ang kurso. Sa pangkalahatan, bilang nagtapos sa kursong JavaRush, sasabihin ko sa iyo ang aking pansariling opinyon tungkol sa kung ano ang nagustuhan at hindi ko nagustuhan sa kurso (nawa'y patawarin ako ng mga admin). Nagustuhan ko: ang bilang ng mga gawain, agarang pag-verify ng mga gawain, malayong pag-aaral, pagsasanay ay hindi nakatali sa iyong iskedyul ng trabaho, ang istraktura ng kurso, ang forum ng mag-aaral, pati na rin ang presyo. Hindi nagustuhan:Sa panahon ng kurso, nagsisimula kang umangkop sa validator at pagkatapos ay mahirap na alisin ang iyong sarili dito, mag-isip at maghanap ng ilang iba pang mga diskarte (ngunit ganoon pa rin ang ideya at ito ay ipinatupad nang maayos dito), mga pagkakamali sa ilang mga gawain, malakas na pagkasalimuot. sa ilang mga kondisyon ng gawain (mabuti na mayroong isang forum para sa mga ganitong kaso), sinubukan ko rin ang bagong interface - hindi ko talaga gusto ito, sa kabutihang palad may pagkakataon na lumipat sa luma. Kung susumahin, masaya ako sa kurso at sa ibinigay nito sa akin. Naaalala ko noong isang taon, kung paano sinubukan ng isang kaibigan na ipaliwanag sa akin kung ano ang boolean at void, kung ano ang mga pamamaraan at kung paano sila nagbabalik ng mga halaga. Naaalala ko kung gaano katagal hindi ko maintindihan kung bakit kailangang ibalik ang mga halagang ito :) Ngayon ay madalas kong naaalala ang isang eksena mula sa pelikulang The Matrix: Neo: Tuturuan mo ba ako kung paano umiwas sa mga bala? Morpheus: Pagdating ng panahon, hindi mo na ito kakailanganin. At sa katunayan, pagdating ng panahon, mayroon na siyang priori na mga kasanayang ito. Sa antas 30 ng kurso, gusto kong makakuha ng internship na inaalok ng JavaRush. Tiningnan ko ang gawain sa pagsusulit at medyo natakot. Inaasahan ko talaga na tutulungan ako ng aking kaibigan na gawin ito, ngunit isang linggo bago ang deadline sinabi niya na narito ang Google, ipasok ang lahat ng mga teknolohiya dito at magkakaroon ng isang grupo ng mga halimbawa. Malaki ang pasasalamat ko sa kanya na nangyari ito, dahil noon ko unang naramdaman ang ibig sabihin ng pagiging programmer. Nakumpleto ko ang takdang-aralin sa loob ng 4 na buong araw at hindi kapani-paniwalang natutuwa na nakuha ko ang internship. Internship. Hindi ko natapos ang internship, dahil sa parehong oras ay sinimulan kong gawin ang aking unang proyekto at gayon pa man ito ay naging isang priyoridad at mas kawili-wili para sa akin + Hindi ko nais na magtrabaho sa isang negosyo. Ano ang masasabi ko tungkol sa mismong internship? Mayroon itong mga kalamangan at kahinaan, ngunit sa pangkalahatan ay maganda ito. Kung plano mong magpatuloy sa pagpasok sa negosyo, sa tingin ko ito ay sulit na kunin. Unang proyekto. Tulad ng nabanggit ko sa itaas, sa paligid ng antas 30 ay nakakuha ako ng internship at nagsimulang gawin ang aking proyekto. Ito ay isang telegram bot. Nagkaroon ako ng pagnanais na lumikha ng isang bot kahit na sa 20-30 na antas ng kurso, ngunit hindi ako makahanap ng angkop na tutorial o mga tagubilin kung paano magsimula. At gayon pa man, sa pamamagitan ng pagkakataon, nakatagpo ako ng ganoong artikulo at agad kong sinimulan ang pagsubok. Kung sinuman ang interesado, narito ang isang link sa artikulo - Paano magsulat ng isang bot sa telegrama Java Sa totoo lang, ang may-akda ng artikulong ito sa ibang pagkakataon ay nakatulong sa akin ng maraming, na tatalakayin sa ibaba. Ang ideya para sa bot ay ito: bilang isang programmer, kailangan kong matuto ng Ingles. Medyo alam ko ang grammar, ngunit gusto kong pagbutihin ang aking bokabularyo. Naisip ko na masarap magkaroon ng bot para sa pag-aaral ng mga salita. Nagsulat na ako ng detalyadong impormasyon tungkol sa bot sa isang artikulo kanina, kaya hindi ko na ito uulitin - narito ang link na Telegram bot Words Sasabihin ko sa iyo kung anong mga paghihirap ang kinailangan kong harapin sa paggawa nito. Una, ito ang unang pagkakataon na nagtatrabaho sa telegram api. Bagama't maraming tao ang nagsasabi na ito ay isa sa pinakasimple at pinakamahusay na dokumentado na api, napakahirap para sa akin bilang isang baguhan. Ginawa ko ang lahat sa pamamagitan ng pagpili :) Minsan kailangan kong gumugol ng isang buong araw para gumawa ng ilang feature, halimbawa, mag-alis ng isang button pagkatapos itong pinindot. Sa humigit-kumulang kalahating buwan, nagawa kong isulat ang pinakaunang beta version, lahat ng code ay nasa isang java class, at gusto kong subukang i-upload ito sa server. Hindi commercial ang project ko, kaya itinapon ko agad ang mga bayad na server. Naalala ko ang server ng Heroku, na sa pamamagitan ng paraan ay ginagamit upang mag-host ng site para sa internship. Sinubukan ko ang server na ito sa loob ng dalawang buong araw at nawalan na ako ng pag-asa, dahil walang gumana - lahat ng mga tagubilin na nauugnay sa mga site, ngunit mayroon akong bot at doon kailangan kong kumilos nang medyo naiiba. Bilang resulta, nagpasya akong sumulat sa may-akda ng artikulo tungkol sa bot at tanungin kung anong server ang ginagamit niya upang i-host ang bot. At pagkatapos ay ngumiti sa akin ang swerte - ang may-akda ay naging isang napaka-cool na programmer (nakipag-ugnayan pa rin ako sa kanya), at inalok niya akong i-host ang bot sa kanyang server ng Linux (at kung kilala ko si Linus, ilalaan niya ako isang account). Ang paunang pag-aaral ng Linux ay tumagal ng isang araw at, siyempre, nang walang mga pagkakamali at kahirapan, ang bot ay nagsimulang umikot sa server. Gayundin, sa pagitan ng lahat ng ito, natapos ko ang kursong JavaRush at labis akong nasiyahan :) Pinili ko ang MySql bilang database para sa bot, nagsuri ng maraming aralin sa pag-optimize ng mga talahanayan, pagpili ng makina, at lahat ng iba pa. Magbibigay ako ng payo sa lahat na gagawa ng kanilang unang proyekto - subukang isipin kaagad ang buong istraktura nito at bumuo ng hindi bababa sa isang medyo napapalawak na arkitektura. I rewrote minahan marahil 3 beses dahil sa naturang mga error. Oo, mahirap, dahil madalas na hindi mo alam kung ano ang gusto mong idagdag sa tabi ng iyong proyekto, ngunit magagawa mo pa rin ito sa pinakamababang antas. Huwag isulat ang lahat ng iyong code sa isang klase!!! Subukang gumamit ng MVC, tandaan ang OOP, atbp. Ang nakakatawa ay nagsimula akong gumamit ng ilang pangunahing prinsipyo ng OOP sa proyekto noong halos handa na ito. Bago ito hindi ko man lang naisip ang tungkol sa kanila. Siyempre, ang gumagamit sa pangkalahatan ay walang pakialam kung anong wika ang nakasulat sa produkto, kung anong mga pattern at teknolohiya ang ginagamit, ngunit kapag binuksan mo ito pagkatapos ng ilang buwan at nais na magdagdag ng isang bagay doon, maiisip mo ang maraming magagandang salita tungkol sa iyong sarili :) Gayundin, huwag kalimutang mag-log - nagbibigay-daan ito sa iyo na parehong subaybayan ang mga error at makita kung aling mga function ang ginagamit ng mga gumagamit at kung ano ang kailangang paunlarin pa. Sa isang telegrama, sa pamamagitan ng paraan, magagawa mo ito sa isang napaka-cool na paraan - ipadala ang lahat ng mga log sa real time sa iyong pribadong channel, upang magsalita, maaari kang lumikha ng ilang uri ng malaking data :) Upang ibuod ang tungkol sa unang proyekto , tumagal ng humigit-kumulang 3 buwan upang malikha ito, ngayon ay mayroong higit sa 14 na libong mga rehistradong gumagamit, na marami sa kanila ay naging regular at nag-aaral ng mga banyagang salita araw-araw. Pangalawang proyekto. Ang layunin ko ay maging isang Android programmer, kaya noong ako ay halos tapos na sa bot, nagpasya akong ibagay ito sa Android platform. Nagsimula akong magsanay gamit ang startandroid na kurso, at binigyan ako ng aking matalik na kaibigang android developer ng maraming cool na gawain, sinuri ang mga ito at sinabi kung ano ang kailangang gawing muli at kumpletuhin. Kapag nakuha ko na ang mga pangunahing kasanayan, nagsimula akong gumawa ng sarili kong aplikasyon. Tulad ng sa unang proyekto, mayroong maraming iba't ibang mga paghihirap, ngunit kung kukunin natin ito sa kabuuan, kung gayon ay mas kaunti. Sa humigit-kumulang isang buwan at kalahati, handa na ang unang bersyon ng beta (kailangan kong muling isulat ang buong disenyo ng application nang ilang beses, dahil wala akong ideya kung ano ang magiging hitsura nito). Pagkatapos ay nagparehistro ako bilang isang developer sa Google Play at na-upload ito sa merkado. Kamakailan lamang ay nag-optimize at nag-synchronize ako ng aking dalawang proyekto. Para sa pangkalahatang database na pinili ko ang Firebase - napakahusay na dokumentasyon, maraming mga aralin at para sa maliliit na proyekto ang libreng bersyon ng 1GB ng volume ay higit pa sa sapat. Kung maikli nating pinag-uusapan ang mga pinakamalaking paghihirap sa pangalawang proyekto (sa palagay ko ang ilan sa mga paghihirap na ito ay lumitaw din para sa mga may karanasan na mga developer), kung gayon ito ang paglikha ng multi-threading sa Android, maraming mga problema sa mga laki ng screen at mga extension, upang lumikha ang disenyo na kailangan kong makipagkaibigan sa Photoshop, suporta para sa mga lumang bersyon ng Android, at hindi rin gumamit ng Recycler View kung mayroon kang animation sa iyong listahan :) Matapos ma-block ang Yandex sa Ukraine, at doon ko nakukuha ang karamihan sa mga pagsasalin at boses- overs of words, kinailangan kong magdagdag ng mga karagdagang check sa code at ipaalam lang sa mga user na gumamit ng vpn. Nagkaroon pa nga ng mga kahirapan kapag nagrerehistro sa Google Play - upang maging isang developer kailangan mong magbayad ng isang beses na bayad na $25 (hindi tulad ng Apple Store). Noong nagbayad ako, may limitasyon ang card ko at natigil ang bayad ko. Kinailangan kong makipag-usap sa suporta ng Google at, sa pangkalahatan, ipinadala nila ako mula sa isang operator patungo sa isa pa, hanggang sa napagtanto ko na magalang lang silang nagpapadala sa akin :) Kailangan kong tanggalin ang lahat at magrehistro muli (naisip ko na iyon kaagad ). Ilang salita pa tungkol sa pag-promote ng iyong mga proyekto.Sa bot, ang mga bagay ay medyo mas simple - ang ideya ng mga bot mismo ay medyo bago (hindi ako nakapasok sa mainstream, ngunit okay pa rin). Mayroong direktoryo ng mga bot, VK, FB group at iba pang mapagkukunan. Ngayon ang aking bot ay tumatagal ng ika-5 na lugar sa seksyong pang-edukasyon at para sa akin ito ay isang napakagandang resulta. Upang mag-advance sa bot catalog, kailangan mong suriin. Gumawa ako ng panukala para sa user na bumoto, na nangyayari nang isang beses lamang (hindi ko gusto ang panghihimasok sa sarili ko), kapag ang gumagamit ay naglalaro ng isang tiyak na bilang ng mga laro (na parang gumugugol siya ng ilang oras sa bot). Sa Android app mas malala ang mga bagay. Sasabihin ko ang isang bagay - nang walang advertising, walang makakapansin sa iyong aplikasyon sa merkado, kahit na sa pamamagitan ng mga keyword, dahil may milyon-milyong mga ito doon. Pagkatapos kong mag-synchronize sa pagitan ng mga proyekto, ini-advertise ko ang aking aplikasyon sa bot. Pagkatapos nito, nakuha ko ang unang 14 na pag-download :) Kung may nakabasa hanggang sa puntong ito, narito ang isang link sa application, kung interesado ka - ang Words Android application . Ang link sa bot ay nasa artikulo tungkol dito na medyo mas mataas sa teksto. Salamat sa lahat ng iyong atensyon. Sasabihin ko sa iyo ang tungkol sa aking karanasan sa pakikipanayam, ang mga itinanong nila at ang paghahanap ng trabaho sa pangkalahatan sa ikalawang bahagi.
Mga komento
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION