JavaRush /Java Blog /Random-TL /Coffee break #55. 4 na tip para sa paghahanap ng komunida...

Coffee break #55. 4 na tip para sa paghahanap ng komunidad ng developer. 5 di-inaasahang mga kasanayan na kailangang makabisado ng isang baguhan na programmer

Nai-publish sa grupo

4 Mga Tip para sa Paghahanap ng Developer Community

Source: Honeypot Isa sa mga salik na tumutulong sa mga developer sa kanilang propesyonal na pag-unlad ay ang komunidad na kinabibilangan nila. Kung hindi mo pa nahahanap ang sa iyo, huwag mag-alala! Sa artikulong ito sasabihin ko sa iyo kung paano ito gagawin. Ang mga tao ay hindi nilalayong mag-isa. Ito ay sa pamamagitan ng kakayahang makipagtulungan upang makamit ang isang karaniwang layunin na ang sangkatauhan ay nakamit ang pag-unlad. Ang isang magandang halimbawa ng naturang pakikipagtulungan ay ang komunidad ng developer. Hindi tulad ng ilang iba pang mga propesyonal na industriya, ang mga developer ay madalas na nakikipag-ugnayan sa isa't isa, at halos lahat ng kanilang buhay ay konektado sa mga komunidad na kanilang nilikha sa kanilang paligid. Kung isa kang developer ngunit hindi mo pa nakikita ang iyong komunidad, huwag mawalan ng pag-asa. Maaari kang sumali sa isa sa kanila sa anumang yugto ng iyong karera.Coffee break #55.  4 na tip para sa paghahanap ng komunidad ng developer.  5 di-inaasahang mga kasanayan na kailangan ng isang baguhan na programmer - 1

1. Alamin kung ano ang kailangan mo

Bago ka tumalon sa online na kailaliman upang mahanap ang iyong komunidad ng developer, dapat mong malaman kung ano ang eksaktong kailangan mo at kung ano ang iyong hinahanap. Ang bawat yugto ng propesyonal na karera ng isang developer ay may sariling mga interes at pagkakaiba. Kung nag-aaral ka ng Java, malamang na hindi mo mahanap ang impormasyong hinahanap mo sa komunidad ng Python, at vice versa.

2. Maghanap ng mga lokal na komunidad

Si Jessica, isang miyembro ng Ember programming team, ay nakatira sa Berlin. Sa kabutihang-palad para sa kanya, nag-aalok ang lungsod ng maraming pagkakataon upang makipag-network sa iba pang mga lokal na developer. "Marami akong karanasan sa mga pulong ng propesyonal na grupo at naging bahagi ako ng Open Technology School sa mahabang panahon, na tumutulong sa mga tao na matuto nang higit pa tungkol sa teknolohiya." Ang batang babae ay lumahok sa mga seminar at co-educational na grupo, at natagpuan na ito ay lubhang kapaki-pakinabang para sa isang baguhan. “Sinuportahan ako ng ibang mga estudyante at nakatanggap ng libreng mentoring. Maaari mong sabihin na ito ay nagbigay sa akin ng isang pakiramdam ng pananagutan, nakatulong sa akin na dumalo nang regular sa mga pulong, at pinasigla akong mag-aral nang mag-isa.” Upang mahanap ang iyong lokal na komunidad, iminumungkahi ni Jessica na maghanap sa Google. Kung nakatira ka sa isang malaking lungsod, malamang na hindi ka magkakaroon ng anumang problema sa paghahanap ng mga lokal na komunidad ng coding na masasali. Gayunpaman, maaaring lumabas na ang ilang mga naturang grupo sa mga social network ay hindi na aktibo o hindi nag-post ng mga mensahe sa kanila sa loob ng mahabang panahon. Sa mga sitwasyong ito, huwag matakot na direktang magtanong kung may iba pang nangyayari sa komunidad. Ang pagpapakita ng interes ay palaging pinahahalagahan.

3. Maghanap ng isang online na komunidad

Mayroong ilang mga benepisyo sa pakikipagkita sa iba pang mga developer nang personal. Ngunit kung limitado ang iyong access sa mga lokal na komunidad, halos garantisadong makakahanap ka ng alternatibo online. Maaaring nagtatrabaho ka na sa iba't ibang mga framework o teknolohiya na may sariling nakatuong komunidad sa Discord o Slack. Ito ay angkop kapwa para sa tulong sa trabaho at para sa paghahanap ng inspirasyon para sa mga bagong proyekto, ideya, at maging para sa pakikilahok sa mga bukas na proyekto.

Narito ang ilang mga lugar upang mahanap ang iyong online na komunidad

dev.to . Sa sarili nilang mga salita, "ang industriya ng software ay umaasa sa pakikipagtulungan at naka-network na pag-aaral," at ang dev.to ay nagbibigay ng puwang para sa mga developer na magkita at tumulong sa isa't isa, ito man ay mga teknikal na aspeto ng coding, payo sa karera, o pangkalahatang suporta at pagganyak. #developers sa Slack . Kakailanganin mong sumagot ng ilang tanong para magkaroon ng access sa channel na ito, ngunit kapag nakapasok ka na, makukuha mo ang lahat ng suporta at payo na kailangan mo :) Hashnode . Sumulat ng isang artikulo sa anumang paksa sa programming na gusto mo at makipag-ugnayan sa mas malawak na komunidad. Ito ay isang mahusay na paraan upang manatiling konektado sa iba pang mga developer. Babaeng nagko-code . Ito ay isang lugar na sumusuporta para sa mga kababaihan sa tech, kung saan makakahanap sila ng mga mapagkukunan ng programming at isang bukas na espasyo upang magbahagi ng mga ideya. Reddit . Maraming subreddits para sa bawat coding niche; tingnan ang ilan sa mga pinaka-aktibo: r/programming , r/java , r/python , r/javascript , r/reactjs at r/cscareerquestions . Mga Lupon ng Developer sa Facebook . Ang pangunahing layunin dito ay lumikha ng mga lokal na organisadong komunidad kung saan ang mga developer ay maaaring "makakuha ng mga libreng tool upang bumuo ng mga bagong kasanayan, ideya, at isulong ang kanilang mga karera." Hanapin ang iyong komunidad sa Facebook, lahat ng mga talakayan ay kasalukuyang online.

4. Maghanap ng isang open source na komunidad

Ang pakikilahok sa isang open source na komunidad ay maaaring maging isang mahalagang bahagi ng iyong propesyonal na pag-unlad. Ang pagiging aktibong miyembro ng open source na komunidad ay nangangahulugan na hindi lamang nag-aambag, ngunit dumalo din sa mga kaganapan at kumperensya, pakikipagpulong sa iba, paghahanap ng mga tagapayo, at networking. Bilang karagdagan sa mga kasanayang nakuha sa open source na komunidad (parehong teknikal at hindi teknikal), ang pakikilahok dito ay nagbibigay ng pakiramdam ng pagiging kabilang sa mga programmer sa labas ng trabaho sa araw. May kakaibang pakiramdam sa open source na komunidad ng pagtatrabaho sa isang bagay na malaki, at sa maraming paraan ang paggawa ay isang makabuluhang kontribusyon. Nagtataka kung saan magsisimula? Isipin kung anong mga open source na proyekto ang gusto mo at magsimula doon - maaari itong maging kasing simple ng paghahanap at pag-aayos ng typo sa code. Mahalaga lamang na magsimula sa isang lugar.

Konklusyon

Napakataas ng antas ng suporta at mga insentibo para sa pagpapaunlad ng sarili na natatanggap ng isang developer sa propesyonal na komunidad. Sa kabutihang palad, ang access sa mga komunidad ng developer ay nasa lahat ng dako, ito man ay isang lokal na grupo ng social media o isang malaking online na mapagkukunan na nakatuon sa isang programming language. Ang pangunahing bagay ay upang mahanap kung ano ang nababagay sa iyo.

5 di-inaasahang mga kasanayan na kailangang makabisado ng isang baguhan na programmer

Pinagmulan: Codeburst Ang aking landas sa pagiging isang self-taught developer ay mahaba at mahirap. Minsan, naaalala ang lahat ng mga hadlang at pagkabigo na aking naranasan, tinatanong ko ang aking sarili kung ito ay nagkakahalaga ng pagsisimula sa ganitong paraan. At ngayon masasabi kong sulit ito. Para sa mga taong tulad ko, na nagsimula sa simula, ang curve ng pagkatuto ay napakatarik. Ngunit tiwala ako na sa katagalan ang mga benepisyo ay mas hihigit sa pagsisikap na kinakailangan upang masakop ang bundok na ito. Siyempre, nalalapat lang ito kung nasiyahan ka sa iyong natututuhan. Kinailangan ko ng ilang taon upang maunawaan na ang isang mahusay na developer ay dapat na makagawa ng higit pa sa pagsulat ng code nang mabilis at madali. Maraming mga nagsisimula ang hindi nakakaalam na ang pagkakaroon ng mga kasanayan sa pag-unlad ay nangangailangan ng higit pa sa kakayahang magsulat at magpatakbo ng isang programa. Kaya, narito ang limang higit pang mga kasanayan bilang karagdagan sa coding na tiyak na kakailanganin ng bawat aspiring developer!Coffee break #55.  4 na tip para sa paghahanap ng komunidad ng developer.  5 di-inaasahang mga kasanayan na kailangan ng isang baguhan na programmer - 2

1. Gumamit ng mga tool sa pakikipagtulungan

Maraming sikat na self-paced programming platform ang tumutuon sa syntax ng wika at mga istruktura ng data. Ang ilan ay nagpapahintulot sa mga mag-aaral na lumikha ng mga pangunahing proyekto mula sa simula. Sabihin nating isang simpleng laro o app ng listahan ng gawain. Ang mga araling ito ay napakahalaga para sa pagsisimula sa mga kasanayan sa programming, ngunit hindi nila ginagaya ang totoong buhay na kapaligiran sa trabaho na makakatagpo mo sa hinaharap. Nagtutulungan ang mga developer sa malalaking proyekto, at kung minsan ang isang developer ay maaaring nagtatrabaho sa maraming base ng code nang sabay-sabay. Kadalasang kasama sa pagtutulungan ng magkakasama ang paggamit ng mga tool gaya ng Google Spreadsheets o Invision. Ang mga development team ay may sariling karaniwang hanay ng mga tool sa pakikipagtulungan. Ang aking kumpanya, tulad ng sampu-sampung libong iba pang kumpanya sa United States, ay gumagamit ng GitHub. Hindi ko malilimutan ang araw na ipinakilala ako ng aking mga kasamahan sa GitHub. Una sinabi nila sa akin na buksan ang terminal sa aking computer (wala akong ideya na mayroon akong ganoon sa aking computer). Pagkatapos ay nagsimulang mag-type ng ilang kalokohan ang aking mga kasamahan sa mahiwagang window na ito sa aking screen. Ang daldal na ito ay gumawa ng mga mahiwagang bagay, tulad ng pagpuno sa ilang mga folder sa aking computer ng lahat ng uri ng mga file na puno ng code. Pagkatapos ay pinag-usapan nila ang tungkol sa "mga sanga" at "mga fluff", isang bagay na "malayuan". At tila literal na nagsimula ang lahat ng mga salita sa prefix na "git". Alam kong nagsasalita sila ng Ingles, ngunit ang kahulugan ng kanilang mga salita ay hindi malinaw sa akin. Kung ikaw ay isang baguhan na hindi pa nakakapag-code sa ibang mga developer, kailangan mong matutunan ang wika at mga tool sa pakikipagtulungan. Maaaring mukhang kumplikado ito, lalo na kung hindi mo pa nabuksan ang Command Prompt. Ngunit sa paglipas ng panahon ito ay magiging isang ugali.

2. Pag-log at paghawak ng error

Sabihin nating natuto ka nang makipagtulungan sa ibang mga programmer, at ang iyong code ay ipinadala sa produksyon. Kapag ang isang bagay na iyong isinulat ay ginagamit ng libu-libo o kahit milyon-milyong mga gumagamit, ito ay isang tunay na kapana-panabik na pakiramdam. Ngunit sa sandaling makarating ka sa yugtong ito, matututunan mo ang mahirap na paraan kung paano nangyayari ang mga hindi inaasahang error sa code sa lahat ng oras. Halimbawa, ang variable na ginawa mo ay hindi kailanman nakatanggap ng halaga. Ngayon ay tumatawag ka ng isang pamamaraan na may null na halaga, at hindi alam ng iyong programa kung ano ang gagawin dito. May naganap na error at ngayon ay wala nang access ang user sa kahanga-hangang page na iyong ginawa. Kapag sinubukan mo ang programa, tila tama ang lahat, kaya maaaring hindi mo mapansin ang problema. Ang partikular na error na ito ay maaaring mangyari lamang ng 5% ng oras, ngunit para sa 5% ng 100k user ito ay makabuluhan. Kailangan mong matutunan kung paano mag-log, mangasiwa, at mag-anticipate ng mga error sa iyong code: ang mga ito ay talagang mahahalagang kasanayan para sa isang developer. Oo, ang kakayahang mahulaan ang mga problema ay isang likas na hilig na nabubuo sa panahon at karanasan. Ngunit mahalagang tandaan ng isang baguhan na ang mga pagkakamali ay halos mahalagang bahagi ng pag-unlad. Ang pag-alam kung paano protektahan ang iyong code gamit ang iba't ibang uri ng pag-log ng error ay makakapagtipid sa iyo ng maraming sakit ng ulo sa hinaharap, lalo na kapag naatasan ka sa pag-debug. Makakatulong din ito na matukoy ang mga problemang hindi mo alam na mayroon ka. Ngayon, mayroon kaming access sa iba't ibang mga tool sa pag-log ng bug na nagpapadali sa pagsubaybay sa mga kahinaan sa isang codebase. Ang isa sa aking mga paborito ay Sentry, na nagbibigay-daan sa iyo upang makita kung kailan unang nangyari ang isang problema at kung gaano kadalas ito nangyayari. Dapat ding banggitin ang Logentries, Rollbar at Instabug. May mga programang sumusubaybay sa data at mga isyu sa buong system, gaya ng New Relic at Datadog. Malamang na makatagpo ka ng ilang kumbinasyon ng mga programang ito sa iyong karera sa pag-unlad, at sulit na matutunan kung paano gamitin ang mga ito.

3. Saklaw ng pagsubok

Gaya ng sinabi ko dati, ang pagpapahusay sa iyong mga kasanayan sa programming ay higit pa sa pagsusulat ng code. Kailangan mong tiyakin na ang iyong code ay nauunawaan ng iba pang mga developer, at kapag may nagbukas nito pagkalipas ng dalawang taon, ang taong iyon ay dapat na mabilis itong kunin at magsimulang gumawa ng mga pagbabago. Ang lohika na iyong isusulat ay dapat na maunawaan at magagamit muli para sa mga darating na taon. Ngunit kung minsan ang iyong lohika ay magiging kumplikado at hindi maaaring pasimplehin. Marahil dahil sa pagiging kumplikado ng lohika ng negosyo. Marahil dahil sa kakulangan ng oras. Ang katotohanan ay kung minsan ay pipilitin ka ng mga deadline na gumawa ng hindi gaanong perpektong mga teknikal na desisyon. At hindi mo palaging malinaw na matukoy ang lahat ng mga kaso ng paggamit bago simulan ang trabaho. Ang isang paraan upang mapanatiling ligtas ang iyong code ay ang pagsulat ng mga pagsubok upang samahan ng mga pagbabago. Karamihan sa mga programming language ay may mga karagdagang testing package na maaari mong i-install. Halimbawa, para kay Ruby ginagamit namin ang Rspec, at para sa React madalas naming ginagamit ang Jasmine. Mayroong iba't ibang uri ng pagsubok, kabilang ang mga unit test (para sa pagsubok ng maliliit na piraso ng logic) at integration test (para sa end-to-end na pagsubok sa daloy). Kadalasan, para maisumite ang iyong code sa karaniwang codebase, dapat itong pumasa sa buong test suite. Kapag natutunan mo na kung paano isulat ang mga ito, magdaragdag ka ng "mga kaligtasan" na pumipigil sa mga pagbabago sa hinaharap na hindi sinasadyang ma-overwrite ang mga function na iyong isinulat. Tumutulong din ang saklaw ng pagsubok na tukuyin ang inaasahang pag-uugali dahil maraming kaso ng pagsubok ang nakasulat sa simpleng Ingles. Hindi ko masasabi sa iyo kung ilang beses akong nagpunta sa ilang file na isinulat ilang taon na ang nakararaan, gumawa ng pagbabago, at nalaman na nagdulot ito ng isang dosenang pagsubok na mabigo, kahit na naisip ko na mayroon akong mahusay na pag-unawa sa inaasahang pag-uugali . Minsan ay sinira ko pa ang isang pag-andar na isinulat ko sa aking sarili ilang buwan na ang nakakaraan. Sa kabutihang-palad, ang aking mga pagsubok sa unit ay agad na nagsiwalat nito. Sa pagtingin sa mga kahilingan sa paghila, napapansin kong madalas na hindi binibigyang pansin ng mga developer ang saklaw ng pagsubok, at nalalapat ito sa parehong simple at kumplikadong mga pagbabago. May kasalanan din ako dito, lalo na kapag mahigpit ang deadline. Ngunit naiisip ko ang ilang mga proyekto kung saan ang paggawa ng mga pagbabago sa isang lugar ay humantong sa mga pagkasira sa apat na iba pang mga lugar. Ito ay nagpapataas ng aming antas ng stress at nagdagdag ng higit pang trabaho sa amin, kahit na kami ay nagmamadali na upang matugunan ang deadline. Naiwasan sana ang mga ganitong sitwasyon kung naglaan kami ng oras para magsulat ng mga unit test sa takdang panahon. Ang pag-aaral na isulat ang mga ito ay maaaring maging isang nakakapagod na gawain, lalo na para sa isang bagong developer, at ang pagsulat ng mga ito ay tiyak na nagpapabagal sa pangkalahatang proseso ng pag-unlad. Ngunit kapag mas maaga kang nagsimulang magsulat ng mga pagsusulit, mas kaunting sakit ng ulo ang naghihintay sa iyo at sa iyong koponan sa hinaharap.

4. Pagsusuri ng code

Ang puntong ito ay nauugnay sa pinakaunang isa - tungkol sa pakikipagtulungan sa mga base ng code. Kadalasan ang proseso ng paggawa ng mga pagbabago sa codebase ay ganito ang hitsura. Nagsusulat ka ng ilang code nang lokal. Para itulak ito sa pangunahing sangay ng iyong codebase, gagawa ka ng pull request (isang visual na buod ng iyong mga pagbabago) at susuriin ng iba pang developer sa iyong team ang iyong code bago magbigay ng go-ahead sa pagsasama. Ang iba't ibang team ay may iba't ibang mga kinakailangan para sa pag-apruba ng isang pull request, ngunit sa pangkalahatan ay dapat mong asahan na ang iyong mga pagbabago ay tiyak na susuriin at ipapatupad ng isang tao. Kapansin-pansin na hindi mo lang isusumite ang iyong code para sa pagsusuri, ngunit susuriin mo rin ang ibang tao. Ang pag-aaral na basahin ang code ng ibang tao ay isang mahalagang kasanayan para sa isang developer at dapat na paunlarin sa buong karera mo. Noong una akong nagsimula at hiniling na tingnan ang mga hinihiling ng iba pang mga tao, hindi ko masyadong naiintindihan kung ano ang hahanapin. Noong una naisip ko na dapat akong maghanap ng mga bug. Lumipas ang ilang taon, at itinuturing ko na ngayon ang mga pagsusuri sa code na higit na isang pagsusuri sa katinuan kaysa sa isang masusing pagsisiyasat. Sa huli, ang developer ang nagpadala ng pull request na responsable para sa pagsusuri ng kanilang code, pagdaragdag ng mga kinakailangang pagsubok, at ligtas na pag-aambag ng code na ito sa karaniwang database. Hindi trabaho ng tagasuri na tukuyin ang mga nakatagong problema. Sa panahon ngayon, kapag sinusuri ko ang code, tinitingnan ko ang pagiging madaling mabasa (halimbawa, ang mga pangalan ng variable at pamamaraan na ito ay naglalarawan), organisasyon, at istraktura (kung ang code ay maaaring maayos na mas mahusay para mas malinaw sa isang taong nakakakita nito sa unang pagkakataon) . Siyempre, kapag mas naging pamilyar ka sa codebase, mas madali itong matukoy ang mga potensyal na problema. Ngunit maaari kang magsimulang makakuha ng mga kasanayan sa pagsusuri ng code kahit bilang isang baguhan. Sa iba pang mga bagay, isa rin itong magandang paraan upang maging pamilyar sa mga pattern ng code na ginagamit ng iyong mga mas may karanasang kasamahan.

5. Wastong Paghahanap sa Google

Walang developer ang nakakaalam ng lahat tungkol sa programming, kanilang programming language, o maging ang kanilang codebase. Dati, sigurado akong lahat maliban sa akin ay mauunawaan agad kung anong mga pamamaraan, query at estratehiya ang dapat gamitin sa ganito o ganoong kaso. Ngunit kapag mas maraming tao ang aking ipinares, mas napagtanto ko kung gaano kadalas naghahanap ang mga developer sa Google ng mga sagot sa kanilang mga tanong. Kahit na mga may karanasan! Napakaraming detalye sa aming linya ng trabaho na dapat tandaan. Di-nagtagal ay naging malinaw sa akin na ang hinihiling sa akin ay hindi malaman ang lahat sa pamamagitan ng puso, ngunit upang matutunan kung paano maghanap nang tama ng mga sagot. Magiging matalik mong kaibigan ang Stackoverflow. Ang mga pagkakataon ay, kung natigil ka sa isang bagay, may ibang natigil dito dati. Pagdating sa paglutas ng problema, subukang alamin kung ano mismo ang mali, ilarawan ito sa mga salita, at i-type ang mga salitang iyon sa isang search engine. Ang kakayahang ipahayag ang mga problemang kinakaharap mo ay higit na makakatulong kaysa sa pagsasaulo.

Konklusyon

Maaga o huli sa iyong paglalakbay sa pagbuo ng software, tiyak na makakatagpo ka ng pagkabigo. Walang takas dito. Ngunit kapag mas ginagamit mo ang mga tool at diskarte na idinisenyo upang maibsan ang mga pagkabigo na ito, mas magiging kapakipakinabang ang iyong karera. Manatili sa kurso at huwag sumuko.
Mga komento
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION