Mga tribyu tungkol sa software at programming na dapat malaman ng bawat creative

  • Ang ecosystem ng software ay umaasa sa mga sistemang parang Unix, automation, at version control, na siyang nagkokondisyon kung paano dinisenyo at pinapanatili ang mga malikhaing tool.
  • Pinagsasama ng programming ang lohika, pagkamalikhain, pagsubok, at patuloy na pag-debug, kung saan ang maliliit na error ay maaaring makasira sa malalaking sistema at ang pagiging madaling mabasa ng code ay susi.
  • Ang kultura at pag-iisip ng mga programmer (tuloy-tuloy na pag-aaral, pamamahala ng imposter syndrome, malalim na trabaho, at kolaborasyon) ay direktang nakakaapekto sa kalidad ng pangwakas na produkto.
  • Ang pag-unawa sa mga detalyeng ito ay nagbibigay-daan sa mga malikhain na mas mahusay na makipag-ugnayan sa mga developer, humiling ng mga makatotohanang pagbabago, at masulit ang potensyal ng kanilang mga tool.

Mga kawili-wiling katotohanan tungkol sa software at mga programa sa computer

Kung nagtatrabaho ka sa disenyo, ilustrasyon, animation, o anumang malikhaing disiplina, maya-maya ay makakaharap mo rin ang parehong problema: Ang software at mga programa sa computer na ginagamit mo araw-araw ay hindi lamang mga "kagamitan"kundi isang buong ecosystem na may sarili nitong mga patakaran, kakaibang katangian, at kakaibang katangian. Ang pag-unawa sa maliliit na detalyeng ito ay maaaring makagawa ng pagkakaiba sa pagitan ng paghihirap sa iyong computer at pakiramdam na parang gumagawa ito ng mahika sa iyo.

Higit pa sa mga keyboard shortcut at ilang random na trick, Mayroong isang buong mundo ng mga detalye tungkol sa mga operating system, programming, debugging, kulturang "tech", at mga paraan ng pagtatrabaho. Nakakaimpluwensya ito kung paano dinisenyo at gumagana ang mga application na ginagamit mo bilang isang creative. Ang pag-unawa sa mundong ito mula sa loob ay makakatulong sa iyong mas mahusay na makipagtulungan sa mga development team, humingi ng mga makatotohanang bagay... at magkaroon ng mas makapangyarihang mga ideya dahil alam mo kung ano ang maaari at hindi maaaring itayo.

kasaysayan ng artipisyal na katalinuhan
Kaugnay na artikulo:
Kasaysayan ng artipisyal na katalinuhan: mula sa mga mito hanggang sa panahon ng pagbuo

Unix, Mac, Linux, at kung bakit mas mahalaga ang sistema kaysa sa tila

Para sa maraming malikhain, ang klasikong debate ay "Mac o Windows para sa disenyo?"Ngunit sa mundo ng software, ang usapan ay kadalasang mas malalim pa: Unix kumpara sa lahat ng iba pa. Ang macOS at karamihan sa mga distribusyon ng Linux ay nagmamana ng pilosopiya ng Unix, na ginagawa itong napakalakas na mga plataporma para sa pagbuo at pag-automate ng mga gawain na direktang nakakaapekto sa mga tool na iyong ginagamit.

Madalas sabihin ng mga programmer na "Ang buong sistema ng Unix ay parang isang malaking kapaligiran sa pag-unlad"Dahil ang lahat ay dinisenyo upang pagdugtungin ang maliliit at makapangyarihang mga utility mula sa terminal: pagproseso ng mga imahe, pag-automate ng mga export, paglulunsad ng mga rendering script, pamamahala ng mga server, o pag-compile ng code nang hindi umaasa sa mga graphical wizard. Kaya naman maraming advanced na creative suite, game engine, at 3D tool ang dinisenyo na isinasaalang-alang ang ganitong uri ng mga kapaligiran.

Sa kabaligtaran, ang mga bagay ay mas biswal at madaling gamitin sa Windows, ngunit Sa kasaysayan, hindi ito gaanong "palakaibigan" sa malalim na pag-develop at gawaing command-line.Sa kasalukuyan, ang agwat ay lubhang lumiit na (WSL, PowerShell, atbp.), ngunit ang kultura ng Unix ay tumatagos pa rin sa halos lahat ng software na ginagamit mo nang hindi mo namamalayan.

Bakit ka interesado rito bilang isang malikhain? Dahil Ang mga automation, script, at plugin na nakakatipid sa iyo ng oras ay kadalasang nagmumula sa mundong ito ng Unix.Ang pagtatrabaho sa mga pangkat na bihasa na rito ay kadalasang nagreresulta sa mas matatag at mas matatag na daloy ng trabaho na mas madaling palawakin habang lumalaki ang proyekto.

Ang programming ay isang bihirang hybrid: lohika, inhenyeriya… at maraming pagkamalikhain

Sa labas, ang programming ay maaaring mukhang purong malamig na kalkulasyon, ngunit sa katotohanan Ito ay isang kakaibang halo ng matematika, inhenyeriya, at brutal na pagkamalikhainTulad ng paggawa mo ng ilustrasyon o storyboard, ang isang developer ay lumilikha ng mga lohika upang gawin ng software ang eksaktong naisip.

Karamihan sa mga propesyonal ay sumasang-ayon na Ang mga kasanayan sa paglutas ng problema at pagkamalikhain ay kasinghalaga, kung hindi man higit pa, sa pag-alam ng isang milyong wika.Para sa parehong gamit, karaniwang maraming paraan para ipatupad ito, tulad ng pagkakaroon ng libu-libong paraan para magdisenyo ng pabalat o logo; ang susi ay hanapin ang pinakamalinis, pinakamaganda, at pinakamadaling panatilihing solusyon.

Kaya naman lalong pinahahalagahan na nauunawaan ng mga malikhaing pangkat na Disenyo rin ang codeMay mga desisyon sa arkitektura ng software, daloy ng data, at mga panloob na istruktura na lubos na nakakaimpluwensya sa kung ano ang maaari mong hilingin sa isang app, plugin, o website nang hindi ginagawang isang hindi mapapanatiling Frankenstein ang proyekto.

At oo, nakakahumaling ang programming: Inilalarawan ng maraming developer ang kanilang trabaho bilang ang pinakamahusay na logic puzzle na mayroon.Isa kung saan ikaw ang magpapasya sa mga patakaran at mga piyesa, at akmang-akma iyon sa pag-iisip ng isang taong mahilig lumikha ng mga bagay mula sa simula.

Pag-compile, command line, at iba pang mga "ritwal" ng pag-coding

Kung may narinig kang nagsabing "nakakapag-compile lang" tapos bigla kang mawawala sa upuan mo na may kape, alamin mo 'yan... Hindi ito palaging dahilan, pero isa itong perpektong dahilan.Ang pag-compile ay nangangahulugang pagsasalin ng source code sa isang executable program, at sa mga wikang tulad ng C++ o sa malalaking game engine ay maaaring tumagal ito ng maraming minuto o kahit na oras.

Sa araw-araw, Ang oras ng pag-compile ay para sa paghinga, pagrerepaso ng mga konsepto, o simpleng pag-reset ng iyong isip.Sa mga malikhaing kapaligiran, kapag gumagamit ka ng mga rendering engine o mabibigat na game build, may katulad na nangyayari: may mga downtime na naghihintay na matapos ang makina, at maraming team ang nagsasamantala sa mga ito upang talakayin ang mga ideya, pahusayin ang mga disenyo, o suriin ang mga gawain.

Kaugnay nito ang command line, yung itim na screen na nakakatakot sa una pero, kapag na-master mo na, Ito ay nagiging isang uri ng mahiwagang wandAng ginagawa mo talaga diyan ay ang pagprograma nang maliit: nagsusulat ka ng mga tagubilin sa isang scripting language (tulad ng Bash) para i-automate ang mga aksyon na magiging mahirap sa isang graphical interface.

Para sa isang bihasang malikhain, ang pag-aaral ng apat na bagay tungkol sa mga terminal ay maaaring maging napakahalaga: Palitan ang pangalan ng libu-libong file, i-batch convert ang mga format, ilunsad ang mga render script, ilipat ang mga backup, o i-synchronize ang mga proyekto nang hindi hinahawakan ang mouse. Isa itong paraan upang "magamit ang wika" ng computer at mapalapit sa paraan ng pag-iisip ng mga programmer.

Mga programmer at creative na gumagamit ng software

Ang madilim na bahagi ng code: mga semicolon, mga bug, at walang katapusang pag-debug

Isa sa mga pinakakakatwang katangian ng software ay ang Ang maliliit na bagay ay maaaring makabasag ng malalaking bagayAng isang maling nailagay na tuldok-kuwit, isang nawawalang panaklong, o isang bracket na nagsasara sa maling lugar ay maaaring makasira sa daan-daang perpektong naisip na linya, tulad ng isang maling naka-lock na layer na maaaring makasira sa isang buong PSD.

Ginugugol ng mga developer ang malaking bahagi ng kanilang araw sa isang hindi kaakit-akit ngunit mahalagang paraan: mga error sa pag-debugAng pangangaso ng insekto ay parang mga nilalang na nagtatago sa mga kakaibang lugar: hindi sila palaging nagiging sanhi ng pag-crash ng isang programa, kung minsan ay nagti-trigger lamang sila ng mga kakaibang error sa mga partikular na oras, o lumalabas kasama ng ilang partikular na data o sa ilang partikular na device.

Sa mundo mo, ito ay isinasalin sa mga bagay tulad ng Mga tool na nabibigo lang sa isang uri ng file, mga animation na mukhang maayos sa iyong computer ngunit nagka-crash sa produksyon, mga website na nasisira lang sa isang partikular na browser...na, nakakagulat, ay kadalasang ang nakikitang bahagi ng isang mas malalim na bug sa code.

Upang makaligtas dito, karamihan sa mga programmer ay bumubuo ng isang arsenal ng mga diskarte sa pag-debug: Gumamit ng mga log, graphical debugger, breakpoint, at mga printout ng variable state....at nag-aalok pa nga ng mga panloob na gantimpala para sa paghahanap ng ilang partikular na mahirap matukoy na mga bug. Ito ay isa pang dahilan kung bakit halos hindi kailanman ganoon kabilis ang mga "mabilis" na pagbabago.

At oo: mayroong katatawanan. Maraming komento sa code ang nagiging maliliit na likhang sining ng sarkastiko: “// Mahika. Huwag hawakan.”, “// lasing, ayusin mamaya” o “// i-hack para sa ie browser (kung ipagpapalagay na ang ie ay isang browser)”Ang katatawanan na iyan ay isang mahalagang bahagi ng kultura ng mga developer.

Katamaran, automation, at pagkontrol ng bersyon: mga birtud na nakabalatkayo

Maaaring kakaiba ang tunog nito, ngunit ito ay ginagawa pa lamang Ang katamaran, kapag naunawaan nang maayos, ay itinuturing na isang propesyonal na birtud.Simple lang ang ideya: kung ang isang bagay ay paulit-ulit at manu-mano, may isang matalinong tao na hahanap ng paraan para i-automate ito para hindi na nila ito kailangang gawin muli. Ang "katamaran" na iyon ang nagtutulak sa mga script, plugin, automated actions, at macros na ginagamit mo araw-araw nang hindi alam kung saan nanggaling.

Sa mga seryosong proyekto, ang pilosopiyang iyan ay nakasalalay sa isa pang mahalagang elemento: kontrol sa bersyon, kung saan ang Git ang ganap na hariDahil sa Git, maaaring magtrabaho ang mga pangkat sa iisang proyekto nang hindi natatapakan ang isa't isa, subukan ang mga kakaibang ideya sa magkakahiwalay na sangay, mag-roll back kapag may sumira sa kalahati ng aplikasyon, o makita kung sino ang humawak sa ano at kailan.

Para sa isang malikhaing propesyonal na nakikipagtulungan sa mga developer, mahalaga ang pag-unawa sa mga pangunahing kaalaman. Ano ang isang commit, isang branch, o isang merge? Malaking tulong ito: pinapayagan ka nitong subaybayan ang progreso ng pag-develop, subaybayan kung kailan ipinakilala ang isang pagbabagong nakakaapekto sa iyong disenyo, at mas mahusay na maiugnay kung kailan dapat isama ang mga bagong feature at tumuon sa pagpapabuti ng mga mayroon na.

Bukod pa rito, ang kulturang ito ng automation ay naaangkop din sa mga gawaing tila hindi gaanong "teknikal": Mga script ng pag-deploy, awtomatikong pagbuo ng dokumentasyon, mga pagsubok na awtomatikong tumatakbo tuwing gabi, mga pipeline na nagko-convert ng mga asset, nagko-compress ng mga imahe, o bumubuo ng mga bersyon para sa iba't ibang aparato nang walang interbensyon ng tao. Ang lahat ng ito ay nagmula sa isang taong tumangging ulitin ang parehong proseso nang manu-mano nang isang daang beses.

Mga komento, malinaw na pangalan, at isang obsesyon sa nababasang code

Tulad ng isang design file na may mga layer na mahusay ang pangalan at organisadong grupo ay walang katapusang pinahahalagahan, Ang code ay nangangailangan ng kaayusan, konteksto, at mahusay na mga tag.Kung hindi, ito ay magiging isang hindi madaanan na gubat, kahit para sa taong sumulat nito ilang linggo na ang nakalilipas.

computer

Ang mga magagaling na programmer ay nagbibigay ng malaking kahalagahan sa dalawang bagay: mga makabuluhang pangalan at komento na nagbibigay ng totoong kontekstoPagtawag ng isang variable userAge o totalCost Higit pa ang sinasabi nito kaysa sa x o tempAt ang pagbanggit kung bakit napili ang isang partikular na algorithm o kung anong trick ang ginagamit ay mas kapaki-pakinabang kaysa sa pagkomento ng "// magdagdag ng dalawang numero".

Sa pagsasagawa, lumilikha ito ng isang uri ng panloob na "teknikal na iskrip" para sa proyekto, na maaaring basahin ng ibang mga developer upang maunawaan ito. ang mga desisyon sa disenyo ng software sa likod ng bawat modyulKapag maayos ang pagkakasulat ng code, ang pinakamagandang komento minsan ay ang mismong code, na siyang nagpapaliwanag sa sarili nito salamat sa mga napiling pangalan.

Ang obsesyon sa kalinawan ay akmang-akma sa mga konseptong maaaring narinig mo na, tulad ng Malinis na code, refactoring, o ang tuntuning "huwag mong ulitin ang iyong sarili" (DRY)Ang lahat ng pilosopiyang iyan ay tumutukoy sa iisang bagay: na ang software ay dapat madaling maunawaan, baguhin, subukan, at palawakin nang hindi nasisira ang lahat.

Hindi sapat ang pagsubok, TDD, at kung bakit "paandarin ito ngayon"

Isa pang hindi gaanong nakikita ngunit pangunahing aspeto ng anumang programang ginagamit mo ay ang ekosistema ng pagsubok sa likodAng mga unit test, integration test, automated o manual test ay umiiral upang maiwasan ang isang maliit na pagbabago na nagdaragdag ng opsyong hiniling mo mula sa tahimik na pagsira sa 20 iba pang bahagi ng sistema.

May mga metodolohiya tulad ng TDD (Test Driven Development) kung saan Una, isinusulat ang mga pagsusulit, at pagkatapos ay ang code na magpapasa sa kanila.Tila taliwas ito sa inaasahan, ngunit pinipilit nito ang developer na mag-isip mula sa simula tungkol sa ninanais na pag-uugali, mga edge case, at kung paano beripikahin na ang lahat ay patuloy na gumagana nang tama sa paglipas ng panahon.

Para sa mga malikhaing pangkat, ito ay isinasalin sa isang bagay na napaka-konkreto: Ang paghiling ng "maliit na pagbabago lang sa button" o "pagdaragdag ng bagong effect" ay may tunay na gastos sa mga tuntunin ng pagsubok at pagpapatunay.Hindi naman sa ayaw ka nilang tulungan; ang ibig sabihin nito ay anumang pagbabago, gaano man ito kaliit sa interface, ay maaaring magkaroon ng mga side effect, at kailangan nilang siguraduhin na hindi masisira ang iba pang bahagi ng application.

Bukod pa rito, maraming kumpanya ang nag-set up ng mga test suite na tumatakbo habang natutulog ang team o sa katapusan ng linggo: Ang code ay kino-compile, isang serye ng mga pagsubok ang pinapatakbo, at ang mga resulta ay sinusuri.Kung may magkamali, matagal na itong natutukoy bago pa man ito makarating sa mga end user... at kasama na rito ang mga creative na umaasa sa mga tool na iyon sa produksyon.

Mga algorithm, istruktura ng datos, at bilis: ang hindi nakikitang makina ng iyong mga tool

Sa likod ng bawat paghahanap ng file, bawat filter na inilapat sa isang segundo, o bawat canvas na nananatiling tuluy-tuloy kahit na may libu-libong layer, mayroong isang bagay na hindi mo nakikita: mga algorithm at istruktura ng datos na pinili nang may malisyosong layuninAng paggamit ng listahan, stack, pila, o diksyunaryo (hashmap) ay nakakagawa ng malaking pagkakaiba sa pagganap.

Hal Kung kailangan mong mabilis na mahanap ang mga aytem, ​​mas mahusay ang isang diksyunaryo kaysa sa isang simpleng listahan.Nagbibigay-daan ito sa iyong editor na makahanap ng estilo, simbolo, o asset sa loob ng milliseconds, kahit na sa isang malaking proyekto. Ganito rin ang nangyayari sa kung paano iniimbak ang mga pixel, vector, 3D mesh, o audio track.

Kapag mabagal ang isang creative app, hindi naman laging kasalanan ng computer mo: Minsan ang hadlang ay nasa mga desisyon sa disenyo ng software na ginawa ilang taon na ang nakalilipas.o sa mabibilis na mga shortcut na "pansamantalang" ginawa at pagkatapos ay nanatili magpakailanman, isang bagay na nakalulungkot na karaniwan sa maraming proyekto.

babae na nagtatrabaho sa computer

Kaya naman napakaraming kolum ng propesyonal na payo ang naggigiit na Iwasan ang napaaga na pag-optimize, ngunit piliin ang mga tamang algorithm at istruktura mula pa sa simula.Ang matibay na pundasyong ito ay nagbibigay-daan para sa scalability: mas maraming layer, mas maraming effect, mas maraming user, mas maraming device… nang hindi nagkaka-crash ang system.

Kultura ng programmer: kakaibang biro, binary at "walang kutsara"

Kung nagtatrabaho ka sa paligid ng mga developer, maya-maya ay makakarinig ka ng mga bagay tulad ng "Mayroong 10 uri ng tao: iyong mga nakakaintindi ng binary at iyong mga hindi."Isa itong klasikong biro na gumagamit ng katotohanang ang 10 sa binary ay 2 sa decimal. Ang ganitong uri ng teknikal na katatawanan ay bahagi ng isang buong subkultura: mga meme, subreddit, mga pagtukoy sa The Matrix, Star Wars, Starship Troopers…

Ang sikat na parirala "Walang kutsara" Ang analohiyang Matrix ay kadalasang ginagamit upang ilarawan ang pakiramdam ng pagtingin sa interface at pag-unawa kung paano binuo ang isang application sa ilalim. Kapag alam mo kung paano mag-program, ang pagtingin sa isang programa o website ay hindi na lamang basta pag-obserba nito: magsisimula kang mag-isip ng mga module nito, ang arkitektura nito, kung paano nakikipag-ugnayan ang mga bahagi, kung saan maaaring may sira.

Tinatalakay din ang mga insekto na parang sila ay Mga nilalang na Starship Troopers: maliit sa hitsura, ngunit may kakayahang magdulot ng malaking guloAng wikang ibinahaging iyon ay lumilikha ng komunidad; ang katatawanan ay isang paraan upang harapin ang presyon ng pagkakaroon ng malalaking sistema na nakakapit sa iyong code.

Para sa isang malikhaing propesyonal, ang pakikipag-ugnayan sa kulturang iyon ay nagpapadali sa pakikipag-ugnayan sa mga programmer: para maunawaan ang kanyang mga biro, ang kanyang mga pagtukoy, at ang kanyang mga kakaibang ugali Malaki ang naitutulong nito sa komunikasyon kapag tinatalakay ang mga deadline, teknikal na limitasyon, o mga pagbabago sa huling minuto.

Paano (talagang) natututo ang mga programmer at ano ang kahulugan nito para sa iyo

Isa pang interesanteng katotohanan ay, bagama't may mga digri, bootcamp, at mga programang masteral, Karamihan sa tunay na pagkatuto sa programming ay nangyayari sa pamamagitan ng pagtatrabahoPara itong isang gawaing pangkalakalan kaysa sa isang asignaturang pang-unibersidad: natututo ka sa pamamagitan ng paggawa, pagsira ng mga bagay, pag-aayos ng mga ito, at paulit-ulit na pag-uulit ng siklo.

Karamihan sa mga developer ay sumasang-ayon sa isang ideya: Hindi mo kailangang kabisaduhin ang lahatMayroong opisyal na dokumentasyon, mga forum, artikulo, mga libro tulad ng “97 Bagay na Dapat Malaman ng Bawat Programmer,” at napakaraming online na mapagkukunan, tulad ng Mga tutorial sa mga wikang programming sa EspanyolAng mahalaga ay ang pag-alam kung paano maghanap, pumili, at ilapat ang kaalamang iyon sa isang partikular na problema, tulad ng hindi mo kabisado ang lahat ng shortcut sa Photoshop, ngunit alam mo rin kung saan hahanapin kapag kailangan mo ang mga ito.

Bukod pa rito, halos lahat ay nagrerekomenda ng pagdadalubhasa: Pumili ng isang lugar (web, mobile, backend, data, video games…) at sumisid nang mas malalim Sa halip na subukang saklawin ang buong teknolohikal na tanawin. Ang parehong lohika ay maaaring magbigay-inspirasyon sa iyo: ang tunay na pag-unawa kung paano gumagana ang software sa iyong malikhaing larangan ay gagawing mas makapangyarihan ka kaysa sa kaunting pag-alam tungkol sa lahat ng bagay nang hindi pinag-aaralan ang anuman.

Isang bagay na inuulit din sa maraming internal survey ay ang kahalagahan ng tagapayo at "pair programming": Magprograma nang pares, hayaan ang iba na suriin ang iyong code, humingi ng tulong, at tumanggap ng kritisismo.Pareho lang ito ng kapag nagbahagi ka ng storyboard o mood board sa ibang tao at tumatanggap ng feedback para mapabuti ang piyesa.

Ang realidad ng gawaing pang-develop: kalungkutan, konsentrasyon, at higanteng mga headphone

Sa loob, ang pang-araw-araw na buhay ng isang software team ay may ilang mga katangian na katulad ng sa isang creative studio: Maraming oras sa harap ng screen, matagal na panahon ng konsentrasyon, at isang relasyong love-hate na may mga pagkaantalaHindi pangkaraniwan na makita ang kalahati ng koponan na nakasuot ng napakalaking headphone na nagpapawalang-bisa ng ingay, na para bang mga mandatoryong helmet ang mga ito para sa trabaho.

Ang musika ay nagiging isang kasangkapan sa produktibidad: Mga malalambot na listahan para sa arkitektural na pag-iisip, isang bagay na mas makapangyarihan para sa mga gawaing mekanikal, ganap na katahimikan para sa pag-debug ng mga kumplikadong bugAng mga headphone ay hindi lamang basta kapritso: ang mga ito ay isang sosyal na senyales na "huwag mo akong istorbohin ngayon, nasa focus mode ako," tulad ng ilang studio na gumagamit ng mga flag o maliliit na pisikal na senyales sa mesa.

Isang computer screen na may html

Mayroon ding isa pang bahagi na hindi gaanong nakikita: Ang pagtatrabaho nang matagal nang mag-isa sa harap ng computer ay maaaring nakakainisMaraming beterano ang naggigiit na hindi mo dapat hayaang tratuhin ang iyong sarili na parang robot at mahalagang linangin ang isang buhay sa labas ng coding: mga libangan, relasyon, pisikal na aktibidad, pahinga. Ang utak na nagdidisenyo ng mga solusyon at ang utak na nagdidisenyo ng mga interface ay pareho, at nangangailangan ito ng espasyo.

Kasabay nito, mayroong isang bagay na totoong-totoo na tinatawag na adiksyon sa programmingKapag talagang interesado ka sa isang bagay, madaling gumugol ng buong gabi "para lang matapos ang modyul na ito" at makalimutang kumain, matulog, o kahit bumangon mula sa iyong upuan. Tulad ng anumang malikhaing hilig, kailangan mong matutong magtakda ng mga limitasyon upang maiwasan ang pagka-burnout.

Pag-iisip, sindrom ng imposter, at malusog na kompetisyon

Karamihan sa mga taong pumapasok sa programming ay nagmula sa teknikal na background, ngunit Hindi ibig sabihin nito na ang isang taong may background sa "humanities" ay hindi maaaring sanayin muli.Ang pinakamahalaga sa mga beterano ay hindi ang uri ng diploma sa hayskul, kundi ang pagiging consistent, ang kakayahang matuto, at ang tiyak na ginhawa sa lohikal na pag-iisip.

Halos lahat ng tao sa industriya ay nabubuhay na may isang bagay na laganap: imposter syndromeAng pakiramdam na "Hindi pa ako sapat ang alam, mahuhuli ako, hindi pa ako kayang gawin ang gawain" ay maaaring lumitaw kahit gaano ka pa katanda. Marami ang gumagamit nito bilang motibasyon para patuloy na matuto, basta't hindi ito humahantong sa nakakaparalisa na pagkabalisa.

Ang kompetisyon ay bahagi rin ng mundo, ngunit sa malusog nitong anyo, ito ay mas katulad ng "Pagtutunggali" sa mga kasamahan upang makita kung sino ang pinakamahusay na nag-o-optimize ng isang modyul o kung sino ang sumulat ng pinaka-eleganteng code Hindi ito parang digmaan kung sino ang tatapakan kung sino. Ang pagkakaroon ng isang programmer na hinahangaan mo na nagpapahalaga sa iyong trabaho ay halos kapareho ng pagkakaroon ng isa pang malikhaing tao na humanga sa iyong ilustrasyon o video.

Sa ganitong sitwasyon, napakahalagang matutong tumanggap ng feedback: Kapag pinupuri ka, huwag kang maligaw ng landas; kapag pinupuna ka, huwag kang sumuko.Napakabilis magbago ng sektor kaya palaging may mga teknolohiyang hindi mo kontrolado at mga taong mas may alam tungkol sa isang partikular na bagay, at ang pamumuhay kasama iyon ay bahagi ng laro.

Ang pinakamatagal na bahagi: pag-debug, pamamahala ng pagkabigo, at pagpapasya kung kailan lilipat

Kung titingnan mo lang ang mga huling resulta, maaaring isipin mo na ang mga developer ay gumugugol ng buong araw sa pagsusulat ng mga bagong tampok, ngunit sa katotohanan Karamihan sa oras ay ginugugol sa pag-debug ng mga error at pagsasaayos ng mga bagay na umiiral na.Ang pagpapatuloy ng isang proyekto ay kadalasang nangangahulugan ng pag-aalis ng maliliit na bug na pumipigil sa pag-unlad ng iba pang bahagi ng sistema.

Ito ay nagdudulot ng mga makabuluhang rurok sa pagkabigo: Mga problemang hindi matukoy, mga problemang nabibigo nang walang maliwanag na paliwanag, mga kliyenteng humihingi ng mga imposibleng deadlineMaraming propesyonal ang nagsasabing naranasan na nila ang mga pagkakataong gusto na nilang itigil ang lahat ng bagay at magpalit ng sektor, lalo na kapag nagtatrabaho sa mga kumplikadong produkto.

Parang pamilyar ang mga estratehiyang inirerekomenda nila: Pagtitiyaga, motibasyon sa sarili, isang tiyak na pagmamalaki sa isang trabahong mahusay, at isang tapat na pagkahilig para sa kasanayanTulad ng sa anumang mapanghamong disiplina ng pagkamalikhain, ang timpla na iyon ang siyang magpapasubok muli sa iyo kapag ang isang bagay ay hindi gumana at siyang nagpapaiba sa mga nananatili sa panlabas na anyo mula sa mga nagiging tunay na mahusay.

Karaniwan din ang isang tiyak na antas ng paglilipat ng trabaho: Ang magagaling na kandidato ay patuloy na nakakatanggap ng mga alok.Maraming payo rito ang tumuturo sa parehong bagay: maghanap ng kultura ng kumpanya na naaayon sa iyong mga pinahahalagahan at tandaan na, sa isang panayam, sinusuri mo rin ang kumpanya. Gugugulin mo ang maraming oras sa pag-iisip tungkol sa mga problema nito; ang pagkakaroon ng mahusay na interpersonal fit at mga ibinahaging pinahahalagahan ay mas mahalaga kaysa sa maaaring makita sa iyong resume.

Mga teknikal na panayam, pagsasama ng koponan, at komunikasyon

Isang batang lalaki na naglalaro

Sa loob ng komunidad ng mga taga-unlad, ang mga teknikal na panayam ay medyo sikat... at mayroon ding masamang reputasyon. Naniniwala ang maraming beterano na Masyado silang binibigyang-halaga, at ang hindi pagtagumpayan ay hindi nangangahulugan ng iyong potensyal.Karaniwan nilang sinusukat ang isang partikular na hanay ng mga kasanayan sa ilalim ng presyon, hindi ang iyong aktwal na kakayahang matuto, makipagtulungan, at matagumpay na makumpleto ang mga proyekto sa pangmatagalan.

Sa halip, Ang mga soft skill ay kadalasang nakakagawa ng malaking pagkakaiba: pag-alam kung paano makipag-usap, pagtatanong kapag may hindi naiintindihan, pagsasama ng feedback, pakikipagtulungan sa mga taong mula sa iba't ibang pinagmulan (tulad mo, kung ikaw ay malikhain) at pananatiling kalmado sa mga sandali ng kapanapanabik na sitwasyon.

Kapag sumasali sa isang kumpanya, ang pangunahing rekomendasyon para sa sinumang junior programmer ay Huwag matakot magtanong, ngunit gawin ito nang may pag-iisip.Mag-iskedyul ng mga partikular na oras kasama ang isang mentor para sagutin ang mga tanong, iwasan ang pag-abala maliban kung ito ay apurahan, at ihanda nang mabuti ang iyong mga tanong. Ganito rin ang mangyayari kapag sumali ka sa isang teknikal na pangkat: mas malinaw at mas nakabalangkas ang iyong komunikasyon, mas magiging maayos ang iyong pagsasama.

Sa mga sitwasyon kung saan walang itinalagang tagapayo, ang pinaka-mainam na hakbang ay upang makuha ang tiwala ng isang taong may karanasan at lumikha ng isang matibay na propesyonal na relasyon sa taong iyon. Sa huli, ang malalaking proyekto ay nakasalalay nang malaki sa kalidad ng code at disenyo gayundin sa kalidad ng mga ugnayan sa pagitan ng mga taong bumubuo ng mga ito.

Sa huli, ang mahika ng mga kagamitang ginagamit mo araw-araw ay nagmumula sa isang medyo makataong halo: Mga taong patuloy na natututo, naiinis, nakikipagkumpitensya, nakikipagtulungan, tumatawa sa kakaibang binary jokes, at unti-unting ginagawang software ang mga ideyaKapag ikaw, bilang isang malikhain, ay nauunawaan ang mga kakaibang bagay at paraan ng pagtatrabaho, mas madaling magsalita ng parehong wika, magtanong kung ano talaga ang maaaring itayo, at makilahok sa halos "mahiwagang" proseso ng paggawa sa isang computer na gawin nang eksakto ang iyong naiisip.