
Ako radite u dizajnu, ilustraciji, animaciji ili bilo kojoj kreativnoj disciplini, prije ili kasnije ćete naići na isti zid: Softver i računarski programi koje svakodnevno koristite nisu samo „alati“već cijeli ekosistem sa svojim vlastitim pravilima, osobitostima i idiosinkrazijama. Razumijevanje ovih malih nijansi može napraviti razliku između muke s računarom i osjećaja da on na vas čini magiju.
Osim prečica na tastaturi i nekoliko nasumičnih trikova, Postoji čitav univerzum detalja o operativnim sistemima, programiranju, otklanjanju grešaka, "tehnološkoj" kulturi i načinima rada. Ovo utiče na to kako su aplikacije koje koristite kao kreativac dizajnirane i funkcionišu. Razumijevanje ovog svijeta iznutra pomaže vam da bolje sarađujete sa razvojnim timovima, tražite realistične stvari... i imate snažnije ideje jer znate šta se može, a šta ne može izgraditi.
Unix, Mac, Linux i zašto je sistem važniji nego što se čini
Za mnoge kreativce, klasična debata je "Mac ili Windows za dizajn?"Ali unutar svijeta softvera, razgovor često ide korak dalje: Unix naspram svega ostalog. macOS i većina Linux distribucija nasljeđuju Unix filozofiju, što ih čini vrlo moćnim platformama za razvoj i automatizaciju zadataka koji zatim direktno utiču na alate koje koristite.
Programeri često kažu da „Cijeli Unix sistem je kao jedno veliko razvojno okruženje“Zato što je sve dizajnirano da poveže male, moćne uslužne programe iz terminala: obradu slika, automatizaciju izvoza, pokretanje skripti za renderiranje, upravljanje serverima ili kompajliranje koda bez oslanjanja na grafičke čarobnjake. Zato su mnogi napredni kreativni paketi, game engine-i i 3D alati dizajnirani imajući na umu ovakva okruženja.
Nasuprot tome, u Windowsu su stvari vizualnije i prilagođenije korisniku, ali Historijski gledano, bio je manje "prijateljski nastrojen" prema dubokom razvoju i radu iz komandne linije.Danas se jaz znatno smanjio (WSL, PowerShell, itd.), ali Unix kultura i dalje prožima veliki dio softvera koji koristite, a da toga niste ni svjesni.
Zašto te ovo zanima kao kreativca? Zato što Automatizacije, skripte i dodaci koji vam štede sate često potiču iz ovog Unix svijeta.Rad u timovima koji su to savladali često rezultira robusnijim i stabilnijim radnim procesima koji se lakše skaliraju kako projekat raste.
Programiranje je rijedak hibrid: logika, inženjerstvo... i mnogo kreativnosti
Izvana, programiranje može izgledati kao čisto hladno računanje, ali u stvarnosti To je neobična mješavina matematike, inženjerstva i brutalne kreativnostiBaš kao što kreirate ilustraciju ili storyboard, programer kreira logičke elemente kako bi softver radio tačno ono što je zamišljeno.
Većina stručnjaka se slaže da Vještine rješavanja problema i kreativnost su jednako važne, ako ne i važnije, od znanja milion jezika.Za istu funkcionalnost obično postoji mnogo načina da se implementira, baš kao što postoji hiljadu načina za dizajniranje omota ili logotipa; ključno je pronaći najčišće, najelegantnije i najlakše za održavanje rješenje.
Zato je sve važnije da kreativni timovi razumiju da Kod je također dizajnPostoje odluke o softverskoj arhitekturi, tokovi podataka i interne strukture koje uveliko utiču na ono što možete tražiti od aplikacije, dodatka ili web stranice, a da pritom projekat ne pretvorite u neodrživog Frankensteina.
I da, programiranje izaziva ovisnost: Mnogi programeri opisuju svoj rad kao najbolju logičku zagonetku koja postoji.Onaj u kojem vi određujete pravila i dijelove, a to se odlično uklapa u način razmišljanja nekoga ko uživa u stvaranju stvari od nule.
Kompajliranje, komandna linija i drugi "rituali" kodiranja
Ako ste ikada čuli nekoga kako kaže "kompilira se" i nestaje sa stolice s kafom, znajte to Nije uvijek izgovor, ali je savršen.Kompajliranje znači prevođenje izvornog koda u izvršni program, a u jezicima poput C++ ili u velikim engine-ima za igre to može trajati mnogo minuta ili čak sati.
iz dana u dan, To vrijeme kompilacije je za disanje, pregledavanje koncepata ili jednostavno resetiranje uma.U kreativnim okruženjima, kada radite s renderirajućim engine-ima ili zahtjevnim izradama igara, događa se nešto slično: postoje zastoji dok se čeka da mašina završi, a mnogi timovi ih iskorištavaju za raspravu o idejama, poliranje dizajna ili pregled zadataka.
S ovim je povezana i komandna linija, taj crni ekran koji je u početku zastrašujući, ali kada ga savladate, To postaje neka vrsta čarobnog štapićaOno što zapravo radite tamo je programiranje u malom: pišete instrukcije u skriptnom jeziku (kao što je Bash) kako biste automatizirali radnje koje bi bile muka u grafičkom interfejsu.
Za naprednog kreativca, učenje četiri stvari o terminalima može biti neprocjenjivo: Preimenujte hiljade datoteka, grupno konvertujte formate, pokrenite skripte za renderovanje, premjestite sigurnosne kopije ili sinhronizujte projekte bez dodirivanja miša. To je još jedan način da se "govori jezik" računara i približi načinu na koji programeri razmišljaju.
Tamna strana koda: tačka-zarez, greške i beskrajno otklanjanje grešaka
Jedna od najokrutnijih zanimljivosti softvera je ta da Sitne stvari mogu slomiti ogromne stvariPogrešno postavljena tačka-zarez, nedostajuća zagrada ili uglata zagrada koja se zatvara na pogrešnom mjestu mogu uništiti stotine savršeno osmišljenih linija, baš kao što pogrešno zaključan sloj može uništiti cijeli PSD.
Programeri provode veliki dio svog dana na vrlo neglamurozan, ali bitan način rada: greške u otklanjanju grešakaLov na bube je kao lov na stvorenja koja se kriju na apsurdnim mjestima: ne uzrokuju uvijek pad programa, ponekad samo izazivaju čudne greške u određeno vrijeme ili se pojavljuju s određenim podacima ili na određenim uređajima.
U tvom svijetu, ovo se prevodi u stvari poput Alati koji ne rade samo s jednom vrstom datoteke, animacije koje izgledaju dobro na računaru, ali se ruše u produkciji, web stranice koje ne rade samo u određenom pregledniku...koji su, iznenađujuće, obično vidljivi dio mnogo dublje greške u kodu.
Da bi ovo preživjeli, većina programera razvija arsenal tehnika za otklanjanje grešaka: Koristite logove, grafičke programe za otklanjanje grešaka, tačke prekida i ispise stanja varijabli....i čak nude interne nagrade za pronalaženje određenih posebno neuhvatljivih grešaka. Ovo je još jedan razlog zašto "brze" promjene gotovo nikada nisu toliko brze.
I da: ima humora. Mnogi komentari u kodu postaju mala umjetnička djela sarkazma: „// Magija. Ne diraj.“, „// pijan, popravi kasnije“ ili „// hak za IE preglednik (pod pretpostavkom da je IE preglednik)“Taj rovovski humor je važan dio kulture programera.
Lijenost, automatizacija i kontrola verzija: skrivene vrline
Možda zvuči čudno, ali je u razvoju. Lijenost, kada se pravilno shvati, smatra se profesionalnom vrlinom.Ideja je jednostavna: ako je nešto repetitivno i ručno, neko pametan će tražiti način da to automatizuje kako to više nikada ne bi morao raditi. Ta "lijenost" je ono što pokreće skripte, dodatke, automatizovane radnje i makroe koje zatim koristite svakodnevno, a da ne znate odakle potiču.
U ozbiljnim projektima, ta filozofija se oslanja na još jedan ključni element: kontrola verzija, s Gitom kao apsolutnim kraljemZahvaljujući Gitu, timovi mogu raditi na istom projektu bez međusobnog ometanja, testirati lude ideje u odvojenim granama, vraćati se na prethodno stanje kada nešto pokvari polovinu aplikacije ili vidjeti ko je šta dirao i kada.
Za kreativnog profesionalca koji sarađuje s programerima, razumijevanje osnova je ključno. Šta je commit, grana ili spajanje? Mnogo pomaže: omogućava vam praćenje napretka razvoja, praćenje kada je uvedena promjena koja utiče na vaš dizajn i bolju koordinaciju kada treba uvesti nove funkcije i fokusirati se na usavršavanje onoga što već postoji.
Nadalje, ova kultura automatizacije primjenjuje se i na zadatke koji su naizgled manje "tehnički": Skripte za implementaciju, automatsko generiranje dokumentacije, testovi koji se automatski pokreću svake noći, cjevovodi koji konvertuju resurse, komprimiraju slike ili generiraju verzije za različite uređaje bez ljudske intervencije. Sve ovo potiče od nekoga ko je odbio da isti proces ručno ponovi stotinu puta.
Komentari, jasna imena i opsesija čitljivim kodom
Baš kao što je dizajnerska datoteka s dobro imenovanim slojevima i organiziranim grupama beskrajno cijenjena, Kodu je potreban redoslijed, kontekst i dobre oznake.U suprotnom, postaje neprohodna džungla, čak i za osobu koja ju je napisala nekoliko sedmica ranije.

Dobri programeri pridaju veliku važnost dvjema stvarima: smislena imena i komentari koji pružaju stvarni kontekstPozivanje varijable userAge o totalCost To govori mnogo više nego x o tempI napomena zašto je odabran određeni algoritam ili koji se trik koristi je beskrajno korisnija od komentarisanja "// saberi dva broja".
U praksi, ovo stvara neku vrstu internog "tehničkog scenarija" za projekat, koji drugi programeri mogu pročitati da bi ga razumjeli. odluke o dizajnu softvera koje stoje iza svakog modulaKada je kod dobro napisan, najbolji komentar je ponekad sam kod, koji se sam objašnjava zahvaljujući tim dobro odabranim imenima.
Ta opsesija jasnoćom se vrlo dobro uklapa u koncepte za koje ste možda čuli, kao što su Čist kod, refaktorisanje ili pravilo "ne ponavljaj se" (DRY)Sva ta filozofija ukazuje na istu stvar: da softver treba biti jednostavan za razumijevanje, mijenjanje, testiranje i proširivanje bez ikakvog oštećenja.
Testiranje, TDD i zašto "pokrenuti ga danas" nije dovoljno
Još jedan manje vidljiv, ali fundamentalni aspekt bilo kojeg programa koji koristite je ekosistem testiranja koji stoji izaJedinični testovi, integracijski testovi, automatizirani ili ručni testovi postoje upravo da bi spriječili da mala promjena koja dodaje opciju koju ste tražili tiho uništi 20 drugih dijelova sistema.
Postoje metodologije poput TDD-a (razvoj vođen testiranjem) gdje Prvo se pišu testovi, a zatim kod koji omogućava da prođu.Djeluje kontraintuitivno, ali prisiljava programera da od početka razmišlja o željenom ponašanju, graničnim slučajevima i kako provjeriti da li sve nastavlja ispravno funkcionirati tokom vremena.
Za kreativne timove, ovo se prevodi u nešto vrlo konkretno: Zahtjev za "samo ovu malu promjenu na dugmetu" ili "dodavanje novog efekta" ima stvarnu cijenu u smislu testiranja i validacije.Nije stvar u tome da ne žele da vam pomognu; stvar je u tome što svaka modifikacija, koliko god mala izgledala interfejsu, može imati nuspojave, i moraju se pobrinuti da ostatak aplikacije ne prestane raditi.
Osim toga, mnoge kompanije postavljaju testne pakete koji se izvršavaju dok tim spava ili vikendom: Kod se kompajlira, izvršava se niz testova i rezultati se pregledavaju.Ako nešto krene po zlu, to se otkrije mnogo prije nego što stigne do krajnjih korisnika... a to uključuje i kreativce koji se oslanjaju na te alate u produkciji.
Algoritmi, strukture podataka i brzina: nevidljivi motor vaših alata
Iza svake pretrage datoteka, svakog filtera primijenjenog u sekundi ili svakog platna koje ostaje fluidno čak i sa hiljadama slojeva, postoji nešto što ne vidite: algoritmi i strukture podataka odabrani sa zlonamjernom namjeromKorištenje liste, steka, reda čekanja ili rječnika (hashmap) pravi ogromnu razliku u performansama.
Na primjer, Ako trebate brzo pronaći stavke, rječnik je mnogo efikasniji od osnovnog popisa.Ovo omogućava vašem uredniku da pronađe stil, simbol ili resurs u milisekundama, čak i u ogromnom projektu. Isto važi i za način na koji se pohranjuju pikseli, vektori, 3D mreže ili audio zapisi.
Kada je kreativna aplikacija spora, nije uvijek krivica vašeg računara: Ponekad usko grlo leži u odlukama o dizajnu softvera donesenim prije mnogo godina.ili u brzim prečicama koje su uzete "privremeno", a zatim ostale zauvijek, nešto što je, nažalost, uobičajeno u mnogim projektima.

Zato toliko kolumni sa profesionalnim savjetima insistira na Izbjegavajte preuranjenu optimizaciju, ali od samog početka odaberite prave algoritme i strukture.Ova čvrsta osnova omogućava skalabilnost: više slojeva, više efekata, više korisnika, više uređaja... bez pada sistema.
Programerska kultura: čudne šale, binarni sistem i „nema kašike“
Ako radite okruženi programerima, prije ili kasnije ćete čuti stvari poput "Postoji 10 tipova ljudi: oni koji razumiju binarni sistem i oni koji ga ne razumiju."To je klasična šala koja se igra na činjenicu da je 10 u binarnom sistemu 2 u decimalnom sistemu. Ova vrsta tehničkog humora dio je cijele supkulture: memovi, subredditi, reference na Matrix, Ratove zvijezda, Zvjezdane trupe...
Čuvena fraza "Nema kašike" Analogija s Matrixom se često koristi za opisivanje osjećaja gledanja kroz interfejs i razumijevanja kako je aplikacija izgrađena ispod. Kada znate programirati, gledanje programa ili web stranice više nije samo konzumiranje: počinjete zamišljati njegove module, njegovu arhitekturu, kako dijelovi komuniciraju, gdje nešto možda ne radi kako treba.
O greškama se također raspravlja kao da su Stvorenja iz Zvjezdanih trupa: mala po izgledu, ali sposobna da izazovu ogroman neredTaj zajednički jezik stvara zajednicu; humor je način suočavanja s pritiskom ogromnih sistema koji se oslanjaju na vaš kod.
Za kreativnog profesionalca, povezivanje s tom kulturom čini odnos s programerima lakšim: da razumijem njegove šale, njegove reference i njegove neobičnosti To uveliko olakšava komunikaciju prilikom razgovora o rokovima, tehničkim ograničenjima ili promjenama u zadnji čas.
Kako programeri (zaista) uče i šta to znači za vas
Još jedna zanimljiva činjenica je da, iako postoje diplome, bootcampovi i master programi, Većina pravog učenja u programiranju događa se radomTo je više kao zanat nego univerzitetski predmet: učiš kroz rad, lomljenje stvari, popravljanje i ponavljanje ciklusa iznova i iznova.
Većina programera se slaže oko jedne ideje: Ne moraš sve pamtitiPostoji službena dokumentacija, forumi, članci, knjige poput „97 stvari koje bi svaki programer trebao znati“ i mnoštvo online resursa, kao što su Tutorijali o programskim jezicima na španskomVažno je znati kako pretraživati, odabirati i primjenjivati to znanje na određeni problem, baš kao što ne znate sve Photoshop prečice napamet, ali znate gdje tražiti kada vam zatrebaju.
Nadalje, gotovo svi preporučuju specijalizaciju: Odaberite područje (web, mobilni uređaji, backend, podaci, videoigre…) i istražite dublje Umjesto da pokušavate pokriti cijeli tehnološki pejzaž. Ista logika vas može inspirisati: istinsko razumijevanje kako softver funkcioniše u vašoj kreativnoj niši učinit će vas mnogo moćnijim od poznavanja malo o svemu, a bez savladavanja ičega.
Nešto što se također ponavlja u mnogim internim anketama je važnost mentora i "programiranja u parovima": Programirajte u parovima, dopustite drugima da pregledaju vaš kod, tražite pomoć i prihvatajte kritike.Potpuno isto kao kada dijelite storyboard ili moodboard s nekim drugim i prihvatate povratne informacije kako biste poboljšali djelo.
Realnost developerskog rada: usamljenost, koncentracija i ogromne slušalice
Unutra, svakodnevni život softverskog tima dijeli dosta stvari sa kreativnim studijem: Mnogo sati provedenih ispred ekrana, dugi periodi koncentracije i veza puna ljubavi i mržnje sa prekidima.Nije neuobičajeno vidjeti pola tima kako nosi ogromne slušalice za poništavanje buke, gotovo kao da su to obavezne radne kacige.
Muzika postaje alat za produktivnost: Meke liste za arhitektonsko razmišljanje, nešto moćnije za mehaničke zadatke, potpuna tišina za otklanjanje grešaka u složenim greškamaSlušalice nisu samo hir: one su društveni signal "ne prekidaj me sada, u modu sam fokusiranja", baš kao što neki studiji koriste zastavice ili male fizičke signale na stolu.

Postoji i druga, manje vidljiva strana: Rad toliko vremena sam ispred računara može biti izolirajućiMnogi veterani insistiraju na tome da ne treba dozvoliti da se prema vama postupa kao prema robotu i da je od vitalnog značaja njegovati život izvan kodiranja: hobiji, veze, fizička aktivnost, odmor. Mozak koji dizajnira rješenja i onaj koji dizajnira interfejse su isti i potreban im je prostor.
Paralelno s tim, postoji nešto vrlo stvarno što se zove ovisnost o programiranjuKada ste zaista u nečemu, lako je provesti cijele noći "samo da biste završili ovaj modul" i zaboraviti jesti, spavati ili čak ustati sa stolice. Baš kao i sa svakom kreativnom strašću, morate naučiti postavljati granice kako biste izbjegli izgaranje.
Način razmišljanja, sindrom varalice i zdrava konkurencija
Većina ljudi koji se bave programiranjem dolaze iz tehničkih oblasti, ali To ne znači da neko sa "humanističkim" obrazovanjem ne može biti prekvalificiran.Ono što veterani najviše cijene nije vrsta srednjoškolske diplome, već dosljednost, sposobnost učenja i određena udobnost logičkog razmišljanja.
Gotovo svi u industriji žive s nečim prilično raširenim: sindrom varaliceTaj osjećaj "ne znam dovoljno, uhvatit ću se, nisam dorastao zadatku" može se pojaviti bez obzira na to koliko ste stariji. Mnogi ga koriste kao motivaciju za nastavak učenja, sve dok ne dovodi do paralizirajuće anksioznosti.
Konkurentnost je također dio pejzaža, ali u svom zdravom obliku više je kao "Rivalstvo" među kolegama da se vidi ko najbolje optimizuje modul ili ko piše najelegantniji kod Nije kao rat da se vidi ko koga gazi. Imati programera kojeg cijeniš i cijeniš svoj rad vrlo je slično kao kada druga kreativna osoba divi se tvojoj ilustraciji ili videu.
U ovom okruženju, učenje prihvatanja povratnih informacija je ključno: Kada te hvale, ne skreći s puta; kada te kritikuju, ne odustaj.Sektor se mijenja tako brzo da će uvijek postojati tehnologije koje ne kontrolišete i ljudi koji znaju više o nečemu specifičnom, a život s tim je dio igre.
Dio koji oduzima najviše vremena: otklanjanje grešaka, upravljanje frustracijom i odlučivanje kada preći na drugu opciju.
Ako pogledate samo krajnje rezultate, mogli biste pomisliti da developeri cijeli dan pišu nove funkcije, ali u stvarnosti... Veliki dio vremena se troši na otklanjanje grešaka i podešavanje stvari koje već postoje.Napredak s projektom često znači otklanjanje malih grešaka koje sprječavaju napredak ostatka sistema.
Ovo uzrokuje značajne poraste frustracije: Problemi koji prkose otkrivanju, konstrukcije koje ne uspijevaju bez očiglednog objašnjenja, klijenti koji zahtijevaju nemoguće rokoveMnogi profesionalci kažu da su imali trenutke kada su željeli sve napustiti i promijeniti sektor, posebno kada su radili na složenim proizvodima.
Strategije koje preporučuju zvuče poznato: Upornost, samomotivacija, određeni ponos zbog dobro obavljenog posla i iskrena strast prema zanatuKao i u svakoj zahtjevnoj kreativnoj disciplini, ta mješavina je ono što vas tjera da pokušate ponovo kada nešto ne uspije i ono što odvaja one koji ostaju na površini od onih koji postanu zaista dobri.
Određeni stepen fluktuacije radnih mjesta je također uobičajen: Dobri kandidati kontinuirano dobijaju ponude.Mnogi savjeti ovdje ukazuju na istu stvar: tražite kulturu kompanije koja je usklađena s vašim vrijednostima i zapamtite da na intervjuu također procjenjujete kompaniju. Provest ćete mnogo sati razmišljajući o njenim problemima; dobra međuljudska usklađenost i zajedničke vrijednosti važnije su nego što se možda čini u vašem životopisu.
Tehnički intervjui, integracija tima i komunikacija

Unutar razvojne zajednice, tehnički intervjui su prilično poznati... a ujedno imaju i prilično lošu reputaciju. Mnogi veterani vjeruju da Precijenjeni su, a neuspjeh na jednom ne govori mnogo o vašem potencijalu.Obično mjere specifičan skup vještina pod pritiskom, a ne vašu stvarnu sposobnost učenja, saradnje i uspješnog završetka projekata na dugi rok.
Umjesto toga, Meke vještine često čine svu razliku: znanje komunikacije, postavljanje pitanja kada nešto nije jasno, integriranje povratnih informacija, saradnja s ljudima iz različitih sredina (kao što ste vi, ako ste kreativni) i održavanje smirenosti u napetim trenucima.
Prilikom pridruživanja kompaniji, glavna preporuka za svakog juniora programera je Ne bojte se postavljati pitanja, ali to činite promišljeno.Zakažite određeno vrijeme s mentorom za odgovore na pitanja, izbjegavajte prekidanje osim ako nije hitno i temeljito pripremite svoja pitanja. Isto vrijedi i kada se pridružite tehničkom timu: što je vaša komunikacija jasnija i strukturiranija, to ćete se bolje uklopiti.
U okruženjima gdje mentor nije dodijeljen, najpreporučljiviji postupak je steći povjerenje nekoga s iskustvom i izgraditi čvrst profesionalni odnos s tom osobom. U konačnici, veliki projekti zavise koliko od kvalitete koda i dizajna, toliko i od kvalitete odnosa između onih koji ih grade.
U konačnici, magija alata koje koristite svaki dan dolazi iz prilično ljudske mješavine: Ljudi koji stalno uče, frustriraju se, postaju takmičarski nastrojeni, sarađuju, smiju se čudnim binarnim šalama i postepeno pretvaraju ideje u softverKada vi, kao kreativac, razumijete ove zanimljivosti i načine rada, mnogo je lakše govoriti istim jezikom, pitati šta se zapravo može izgraditi i učestvovati u tom gotovo "magičnom" procesu navođenja računara da radi upravo ono što zamislite.
