Programátorův pohled na svět

ddffddf

Re:mysleni pana Programatora
« Odpověď #15 kdy: 04. 01. 2016, 18:55:59 »
kdyz vlezu do vytahu a pominu nizkourovnove uvahy o hardware a ovladani mikrocipu, relatek, tlacitek, displeju,
tak muzu treba premyslet jaky by byl vhodny model pro chovani vytahu.
napr. je lepsi pribirat lidi v patrech, reagovat na tlacitka i kdyz vytah jede.
co treba kdyz vytah dlouho zahali, nebylo by jej lepsi automaticky odeslat do prizemi.
nebylo by nejlepsi kdyby vytah cekal v prostrednim patre, aby byl stejne rychle dole jako nahore.
pakvsi muzu rici jak tohle zapsat do kodu.


tralala

Re:mysleni pana Programatora
« Odpověď #16 kdy: 04. 01. 2016, 18:59:56 »
podla mna musis mat velmi silnu schopnost abstraktne mysliet. vela krat rozmyslam v programovacom jazyku cez bezny den a potom uz viem ze ked si sadnem za klavesnicu tak to napisem tak a tak. je to strasne zvlastny pocit, ktory pride az so skusenostami, ale deje sa to a verim ze sa to nedeje len mne. uz mas nejaky jazyk tak zazity ze v tom vies proste rozmyslat. ako by si mal vyriesit nejaky rebus a v hlave prides na riesenie. ono ani nejde o to, ze by si to vedel "uplne presne" ako to a tamto odkodit, ale staci ti viac menej zhruba vediet, akym sposobom ten problem atakovat a v hlave ti vznikne hruby nastrel ked _vies_, ze bude spravny a potom je to len otazka konkretnej implementacie.

mozno sa to nezda, ale programovanie je dost o mentalnej praci. stale a stale len rozmyslas, refaktorujes, abstrahujes, generalizuje a zapuzdrujes ...

lojza

Re:mysleni pana Programatora
« Odpověď #17 kdy: 04. 01. 2016, 19:05:27 »
no to vypada ze trenovane mysleni ovlivnuje vnimani reality a asi jedine vedomym usilim se pak muzu snazit se ho docasne oprostit ... musi byt zajimava prace (jestli nekde probiha) treba v tymu kde na jedne strane cisty teoreticky matematik kteremu z rovnic vychazeji nejake nove pohledy (reseni) predpovedi, fyzik ktery by to rad testoval jestli to panBuh takhle opravdu myslel a programatorem ktery ma umoznit fyzikovi ten experiment provest (merici zarizeni apod.), to cele v nejakem x-dimensionalnim prostoru, ktery je lidskemu "rozumu"nepristupny si predstavit, je nenazorny, ale matematicky sedi ...

tralala

Re:mysleni pana Programatora
« Odpověď #18 kdy: 04. 01. 2016, 19:13:04 »
lenze ten programator nemusi vediet vzdy uplne vsetko do podrobna ako  to ten matematik myslel. naco by mu to bolo? samozrejme, moze sa o to zaujimat a moze si to dopodrobna nastudovat, ale velmi, velmi zriedka sa stane, ze to ma programator odkodit uplne vsetko cele odznova. vzdy proste len nadviaze na pracu niekoho a dorobi tam to co chyba. na to nutne nemusis vediet, ako uplne vsetko cele dokopy funguje. staci ti, ak sa velmi rychlo zorientujes.

Danny

Re:mysleni pana Programatora
« Odpověď #19 kdy: 04. 01. 2016, 19:15:57 »
Programatorske mysleni: Ja bych rekl, ze musis umet dobre zobecnovat.

Nekdy se hodi, narozdil od realneho zivota, kde je tomu asi presne naopak, uprednostnovat obecne principy pred jejich konkretnimi "instancemi".

Napriklad asi pred pul rokem jsem mel ukol rozparsovat nejaky velky textak z jednoho toolu a vygenerovat z toho CSVcko. Navic mel uzivatel jeste domain-specific "prani", ktere konkretni vysledky z tohoto obecneho rozparsovani jsou relevantni a ktere musim zahodit.

Tak jsem udelal dva skripty: jeden, ktery parsoval obecne a druhy, ktery "vyhazoval" nebo nechaval ty specificke radky.

A bylo to vtipne v tom, ze jsme se s uzivatelem neshodli na terminu "cisty": uzivatel povazoval za "cistou" tu kombinaci obou skriptu, protoze prinasela vysledky, ktere on zrovna chtel. Pro me byl "cisty" naopak ten prvni skript, protoze parsoval obecne dana data a nemel tam zadna konkretni "magicka cisla".


v

Re:mysleni pana Programatora
« Odpověď #20 kdy: 04. 01. 2016, 19:24:03 »
slo by nejak (asi na zaklade analogie s necim z bezneho zivota co kazdy zna ?) priblizit cloveku, co nikdy neprogramoval ani nebude, cim a jak se lisi "pohled na svet"tech opravdu nejlepsich programatoru od bezneho smrtelnika jako ja ? nejde mi ani tak o vysvetlovani jednotlivych paradigmat, natoz syntaxe, spis o nejake "kulhajici"zobecneni neprenosnych ? zkusenosti za roky co se venujete programovani ? asi to nejde co ? ja vim ze nikdy umet programovat nebudu tak bych chtel jen zazit ten pohled na svet Vasima ocima ...
vytěžil jste z dosavadních odpovědí nějaké poznatky? :)

Kit

Re:mysleni pana Programatora
« Odpověď #21 kdy: 04. 01. 2016, 19:29:00 »
A bylo to vtipne v tom, ze jsme se s uzivatelem neshodli na terminu "cisty": uzivatel povazoval za "cistou" tu kombinaci obou skriptu, protoze prinasela vysledky, ktere on zrovna chtel. Pro me byl "cisty" naopak ten prvni skript, protoze parsoval obecne dana data a nemel tam zadna konkretni "magicka cisla".

Pokud by ten druhý skript byl parametrizován dalším souborem podobného typu jako třeba .gitignore, byly by programátorsky čisté oba dva skripty, resp. ten první by pozbyl na významu. Programátor kouká, zda má čistý program - bez skrytých závislostí. Uživatel zase chce mít čistá data - bez těch zbytečných.

lojza

Re:mysleni pana Programatora
« Odpověď #22 kdy: 04. 01. 2016, 19:31:06 »
zajimave muselo byt urcite treba programovani v NASA pro projekt Apollo, pozdeji pro raketoplany, nebo i obycejnejsi programy pro Airbusy nebo rizeni letoveho provozu, asi by se mi trochu roztrasly kolena kdybych vedel ze programuju neco na necem fyzicky visi zivoty lidi, ono ale asi i treba internetove bankovnictvi, burzovni sw pro algorithmic trading atd. musi byt zajimave

co podle Vas ma ted nejvetsi perspektivu (dejme tomu na 40 let dopredu, dal asi videt neni ?  AI, machine learning, support decesion sw, data mining, nebo se v tomto stoleti dockame nejakeho (dnes to jeste je jen na papire nebo ani to ne) fakt prulomu ktery se dnes zda spis sci-fi ale bude realitou,  treba opravdu myslici stroje samoucici, selfrepairing, ktere zastoupej primo lidi pri rozhodovani (vzdyt treba letadla by uz mohly brzy samy vzletat a pristavat) apod. umoznujici treba bruteforce metodou otestovat vsechno v domenach, ktere jsou nam zatim nepristupne, kvantove pocitace, vzdyt treba i zmena pocasi je deterministicka jen nemame tu silu to vcas vypocitat (deterministicky chaos), asi to spis budou veci az pro 22. stoleti ?

jsem laik treba mluvim hlouposti, ale zajimalo by mne jak to bude v roce 2050, 2100, mam pocit ze ted se jen dotahuji stare koncepty do detailu ale nic noveho na obzoru ?

lojza

Re:mysleni pana Programatora
« Odpověď #23 kdy: 04. 01. 2016, 19:33:17 »
slo by nejak (asi na zaklade analogie s necim z bezneho zivota co kazdy zna ?) priblizit cloveku, co nikdy neprogramoval ani nebude, cim a jak se lisi "pohled na svet"tech opravdu nejlepsich programatoru od bezneho smrtelnika jako ja ? nejde mi ani tak o vysvetlovani jednotlivych paradigmat, natoz syntaxe, spis o nejake "kulhajici"zobecneni neprenosnych ? zkusenosti za roky co se venujete programovani ? asi to nejde co ? ja vim ze nikdy umet programovat nebudu tak bych chtel jen zazit ten pohled na svet Vasima ocima ...
vytěžil jste z dosavadních odpovědí nějaké poznatky? :)
urcite je to pro mne obohacujici dozvedet se neco o pohledu na svet jinyma ocima, snazit se vtelit do Vas byt jen v predstave a pokusit se videt svet Vasima ocima

Kit

Re:mysleni pana Programatora
« Odpověď #24 kdy: 04. 01. 2016, 19:52:25 »
zajimave muselo byt urcite treba programovani v NASA pro projekt Apollo, pozdeji pro raketoplany, nebo i obycejnejsi programy pro Airbusy nebo rizeni letoveho provozu, asi by se mi trochu roztrasly kolena kdybych vedel ze programuju neco na necem fyzicky visi zivoty lidi, ono ale asi i treba internetove bankovnictvi, burzovni sw pro algorithmic trading atd. musi byt zajimave

Není to tak zlé. U těch letadel a raketoplánů jsou nižší nároky na produktivitu a je tam vícestupňová kontrola, takže pokud jeden programátor něco zvorá, tak jiný tu chybu odhalí. A vše se pořád dokola testuje - testy bývají i dvacetkrát delší než produkční kód a simulují i závady na hardware, protichůdná data z různých čidel apod.

Racionalita

Re:mysleni pana Programatora
« Odpověď #25 kdy: 04. 01. 2016, 19:59:44 »
Vezmu to za sebe.

Všiml jsem si tohoto: Přestal jsem věřit lidem a hlavně pak sobě.
Proč? Inu chyby v myšlení a chyby při práci člověk dělá velmi často. U programování mívají z velké části fatalní následek (program něběží, padá a pod.). I když se programátor snaží, věnuje se programování naplno a pečlivě, vždy se tam nějaká chyba objeví. Uvědomil jsem si, že lidský mozek (i když se zdá, že funguje perfektně) dělá často chyby a zkracuje uvažování pomocí heuristik a odhadů.
Co to mělo za následek?
Pokud mi člověk přednese nějaké důležité tvrzení, prozkoumám jej opravdu důkladně. Rozložím jej stejně jako když řeším/implementuji nějaký problém. A často naleznu chybné logické závěry, kontradikce a pod., kterých si sdělovatel není vědom.

Dále jsem si všiml, že se mi zlepšilo logické a dedukční uvažování a jsem (doufám) méně chybový při sestavování logických závěrů. Nebo se alespoň častěji kontroluji. Taky jsem si všiml, že jsem schopen změnit názor na danou věc velmi rychle, pokud se ukáže logická chyba v mém uvažování. To je něco, čeho nejsou například věřící lidé schopni - zbavit se v okamžiku víry, i když je jim ukázána logická chyba.

Také jsem si všiml, že spousta věcí ve světě je navržena velmi neefektivně, redundantně, chybně. Zvlášť si toho člověk všimne, když programuje nějaký realným program, který se zabývá člověkem definovanými pravidly.
Jsem zvyklý na vysokou kvalitu kódu a to ne jen z pohledu, jak je to napsáno, ale hlavně z pohledu, jak je to vymyšleno.
Také si člověk všímá věcí, které jsou opravdu velmi pěkně vymyšleny a je slast je studovat a implementovat. Zvlášť se jedná o čistě matematické věci.

Pro mne vystavení intenzivnímu přemýšlení a programování v průběhu mnoha let znamenalo pozitivní změnu v mém uvažování.
Samozřejmě, toto nemusí platit, jen o programování. Programování (testování, verifikování) ale dává neustálou zpětnou vazbu.
Navíc dává člověku schopnost realný problém správně rozložit na podčásti a vztahy mezi nimi a ty pak popsat pomocí základních matematických formulí a struktur. Tím pak lépe chápe význam a fungování dané věci, (ale často i chyby autora dané věci).


ferren

Re:mysleni pana Programatora
« Odpověď #26 kdy: 04. 01. 2016, 20:39:48 »

obecne, silna stranka programatora je schopnost rozpadnout slozitou ulohu na jednodussi jednoduse resitelne ukoly. nejlepe co nejvic opakujici se.
naopak, drtiva vetsina programatoru postrada fantazii na opacnou ulohu,  hladat abstraktnejsi tezko rozlozitelne souvislosti.
filozof a programator jsou docela protihlehle pristupy, kupodivu dost programatoru ma tandence podivne filozofovat, nastesti vetsina filozofu neprogramuje


Rado2

Re:mysleni pana Programatora
« Odpověď #27 kdy: 04. 01. 2016, 20:47:04 »
Myslím, že mňa programovanie v bežnom živote moc nezasiahlo, alebo si to neuvedomujem. Občas sa ale chytám za hlavu, keď mi neprogramátor v práci na otázku typu "Chceš to červené, alebo zelené?"  odpovie "Áno".
Ale inak napadla ma paralela s právnikom, ten niekedy rieši podmnožinu úloh programátora, keď píše zmluvu a musí si dať pozor, aby boli pokryté a definované všetky možné stavy, ktoré môžu nastať (keď sa nejaké podmienky neplnia tak, ako to bolo dané v happy scenári).

jaasg

Re:mysleni pana Programatora
« Odpověď #28 kdy: 04. 01. 2016, 21:09:30 »
je to len skladacka. na spodku mas 1 bit. s toho mas bit sequencie zvane tiez vektory, prirodzene big cisla alebo ludovo subory. potom je taky trik predstav premennu ako  aritmeticky vektor (v ose x), a logicky vektor (v ose y). nad aritmetickou premennou robis plus krat deleno, nad logickou prem. robis bitwise a posuny. potom mas bit funkcie, tych je zas exponencialne viacej z n-bit inputmi ako n-bit cisel. takze je tam kopu priestoru kde mozes hladat tie riesenia a realizovat sa.

na nizkej urovni mas abstrakciu turingov stroj. implementacia toho je  operacny system (kazdy bezny os to tak ma). policka na paske turingovho stroja su tie 4KB stranky (virtualna pamat). tie pasky potom putuju cez potrubia internetu a na druhej strane prijemca ich cita a tak dalej.

proceduralna paradigma je klasika, proste turing.stroj na vysokej urovni, oop fajn na enkapsulaciu ale inak proceduralne v ruzovom, funkc. fajn na srandu ale zivot je prave o side effectoch

po tom mas tie trendy (nastroje, jazyky, technologie). programatori nerozhoduju ktory trend bude popularny. user je svedkom cool web blbosti, super 3d srandy. user sa spyta na akej technologii funguje tato blbost, odpoved je angularjs, webgl, na zaklade toho useri sformuju poziadavky na najatie angularjs, webgl programatorov kvoli vytvoreniu podobnych blbosti ako ta uspesna.

programatori proste len nasleduju dopyt tychto userov. ale na spodku je furt to iste, logika, aritmetika, os, potrubia na prenos udajov a to cele visi na elektronike.

jaasg

Re:mysleni pana Programatora
« Odpověď #29 kdy: 04. 01. 2016, 21:17:31 »
na funkciach neni nic extra su to len funkcne tabulky. kto zaplati tomu to trochu optimalizujes, kto nezaplati tomu to nechas pomale a odporucis kupu viacerych masin