« 1 2
Autor Zpráva
joe
Profil
Stalker:
1. Může se naučit programovat opravdu každý?
2. Může se stát dobrým programátorem opravdu každý?

Může se jím stát ten, kdo chce.
Pavel Krátký
Profil *
joe:
Slovo chlapa. Co je podle tebe dobrý(m) programátor(em)?
Adrifinel
Profil
Mám kámošku, která to studuje na střední... Dokáže se vyznat v kódu, ve kterém já ne, ale 2 hodiny se ji snažím vysvětlit, co že chci, co že ten kód má jako dělat. :D
Tori
Profil
Adrifinel:
Analýza požadavků je imho něco jiného než programování. Analytikovi pomůže programátorské vzdělání, ale vyžaduje to i další znalosti / schopnosti navíc.
joe
Profil
Pavel Krátký:
To, co teď napíšu se nevztahuje jen na programátory, ale prakticky na každého, ať se jedná o jakýkoli obor, takže tedy:

- měl by rozumět tomu, co dělá a určitě by se neměl bránit inovativním metodám, které mají smysl
- měl by chápat i práci kolegů, jestliže s nimi má spolupracovat (programátor -> kodér) a ne jen slepě myslet na odpracování svého úkolu
- rychle se orientovat v cizí práci, i když se jedná o totální patlaninu
- umět si naplánovat, co a jak bude nakonec provedeno, aby se to v průběhu realizace nemuselo tisíckrát měnit
- schopnost pracovat samostatně
- být precizní
- umět svůj jazyk

Když bych to měl konkrétně převést pouze na programátory, tak:

(jinak pracuji jako kodér/skriptař, protože práce programátora mi přijde neskutečně nudná a nejvíc mě zaráží to povyšování jiných s nálepkou "programátor", co si asi myslí, že i když dělá někdo "jen" kodéra, že toho nemůže umět víc, než oni a tvrdí absurdní nesmysly jen proto, že se jim to nechce dělat, ale radši o tom hodinu prokecají, než kdyby se do toho pustili a měli to za patnáct minut hotové)

- měl by rozumět programování v daném jazyce, ve kterém dělá a neměl by se bránit používání frameworků, které šetří čas, peníze a udělají kód mnohokrít bezpečnější, než když si to někdo spatlá sám
- měl by rozumět i HTML, jakým způsobem se hodnoty budou předávat do šablon a jak to nakonec bude uděláno, měl by v tom mít jasno, a ne aby to kodŕ vracel s tím, že takto to nejde. Zároveň by neměl mít problém vrátit se ke svým kódum, které jsou již starší a opět se v nich orientovat.
- vyznat se v kódu ostatních (smutné je, když si každý píše co chce a jak chce)
- napsat kód rovnou tak, aby při dalším jeho rozšířování se nemusela celá jeho funkčnost psát znovu
- pokud něco neví, umí si to vyhledat. Doteď jsem nechápu ty, co si raději skočí pro radu k někomu jinému, kde to spolu řeší třeba hodinu, když stačí zadat do Googlu klíčové slovo a najdu to hned na první stránce
- pokud možno psát kód podle zadaných pravidel, mně osobně záleží na velikosti každého. Předem daná pravidla jsou pro práci v týmu celkem důležitá a když si pojmenuju soubory MojeTrida.js, určitě by mi je nikdo neměl přejmenovávat s argumentem, "že všechny další soubory jsou malýma písmenkama, tak jsem to chtěl sjednotit"
- umět češtinu (přijde mi až trapný, když někdo, kdo komunikuje s klientama neumí ovládat svůj rodný jazyk a dělá základní chyby v i/y, aby jste (abyste), apod.)

Za programátora mám toho, kdo si umí poradit, neokecává místo toho, aby něco udělal, netvrdil věci, co nejsou pravda, uměl využít nějaký nástroj tak, aby to dávalo smysl a mělo to hlavu a patu. Je sice pěkné, když někdo použije pět frameworků, ale když se pak má něco upravit a lehce změnit, všechno se rozpadne jako domeček z karet.

Na tohle fórum chodí spousta dobrých programátorů/skriptařů a znalých lidí, díky kterým jsem se toho spoustu naučil a jsem jim za to vděčný, takže jen, které si vybavím: Chamurappi, Str4wberry, Joker, Tori, _es, ... a další. Omlouvám se těm, na které jsem zapomněl.
Adrifinel
Profil
Tori:

Takže ty říkáš, že programátor nemusí vědět o co go?

Já vždycky myslela, že správně je programátor i analytik. Že si dokáže představit, co se po něm chce.
Tori
Profil
Adrifinel:
Myslela jsem to tak, že to není úplně totéž. Že třeba může být dobrý programátor, který nicméně bude málo komunikativní nebo mu bude bude dělat problém přizpůsobit se způsobu, jakým se klient vyjadřuje / myslí. To, že člověk nerozumí oboru klienta, bude mít imho větší vliv u grafika resp. UX návrháře, než u programátora. Z toho, co jsem o sběru požadavků četla vycházelo, že v tom rozdíl je (programátor vs. analytik). Nevím ale, jestli ta představa asociálního podivínského programátora, co umí komunikovat jen se stroji, je v dnešní době ještě realitou nebo jen populárním mýtem / stereotypem.

edit: Vyhodila jsem jednu blbou větu, která se mohla někoho dotknout, myslela jsem to v tu chvíli nějak jinak než jak to vyznělo. Omlouvám se.
Petr ZZZ
Profil
Adrifinel [#3]:
Ono když jeden vysvětluje a druhý nechápe, tak to nemusí být nutně tím, že ten druhý neumí chápat, ale může to být stejně dobře i tím, že ten první neumí vysvětlovat.

Reaguji na Tori: [#9] ↓
Ano. Čím hůře komunikuje první (druhý), tím lépe musí umět komunikovat (případně i jasnovidět) druhý (první). :-)
Tori
Profil
Petr ZZZ:
Ano, a v tom případě právě záleží na tom, jak dobře ten programátor umí komunikovat, aby to zadání z klienta nějakým způsobem vytáhl a poskládal, ne?
Adrifinel
Profil
Petr ZZZ:

Já ti nevím, ale jak jednouše vysvětlit, že mám v db 1000 záznamů a chci je při vypsání rozdělit, tak aby na jedné stránce bylo 100, tedy budu mít 10 stránek?
A jako odpověd se mi dostává nějaká složka inc, varchar apod... No pak se diskuze stočila k tomu, že tam nemám podmínky, a to jsem jako ten kód poslala... Nakonec jsme se dobraly k tomu, že mi nefungují správně, což jsem věděla sama i na začátku našeho rozhovoru :D
Joker
Profil
Adrifinel:
Takže ty říkáš, že programátor nemusí vědět o co go?
Já vždycky myslela, že správně je programátor i analytik. Že si dokáže představit, co se po něm chce.
Programátor a analytik jsou dvě různé činnosti.
Ovšem poměrně často obě vykonává jeden člověk na pozici programátor-analytik.

Mezi analytikem a programátorem je řekl bych podobný rozdíl, jako mezi architektem a stavbyvedoucím.
Úkolem analytika je pochopit klientovy požadavky a navrhnout systém, který jim bude odpovídat. Výsledkem práce analytika je návrh systému popsaný tak, aby tomu klient porozuměl a mohl to odsouhlasit a zároveň to programátor podle toho mohl naprogramovat (dnes se obvykle používá UML).
Úkolem programátora je analytikův návrh systému implementovat, tj. podle toho vyrobit skutečnou aplikaci. Samozřejmě i programátor by měl ovládat jazyk analýzy (UML), aby pochopil, co má vlastně dělat. Podobně, jako stavbyvedoucí se musí vyznat v projektu, ale nemusí umět navrhnout dům.

Teoreticky by v objektovém systému asi práce analytika byla až po návrh tříd a jejich atributů, tj. analytik by třeba řekl, že chce v systému třídu MyClass s metodou Hello, která vypíše uživateli Hello World. Práce programátora by pak byla tu třídu vytvořit a metodu implementovat (a jeho věc pak je, jak technicky nejlépe udělat metodu, která bude dělat to, co chce analytik).
V praxi bych řekl, že i když to dělají dva různí lidé, málokdy ten programátor má takhle omezenou úlohu, často se zapojuje i do poslední fáze analýzy.
Nebo to celé dělá jeden člověk a pak tam samozřejmě nějaká ostrá hranice nebývá.

V každém případě, pokud bychom kromě programování brali i analýzu, tak to už dvojnásob není pro každého.
A rozhodně jen málokdo může být dobrý programátor-analytik.
Tohle bych opravdu přirovnal k tomu architektovi: Rozhodně ne každý má na to být architektem a už vůbec ne dobrým architektem.
Adrifinel
Profil
Joker:

To jsem zjistila, že docela skřípe, pokud neumí programátor analyzovat či si prostě představit, co po něm chceš.
Joker
Profil
Adrifinel:
Když to stále beru v té „akademické“ rovině, od programátora se nějaké velké analytické schopnosti nečekají. Spíš se má orientovat v technických záležitostech implementace (umět udělat efektivní kód nenáročný na údržbu).
Co chce klient nemusí programátor vymýšlet, od toho je analytik, aby mu to srozumitelně popsal.
Adrifinel
Profil
Joker:

Ovšem, vysvětlovat dvě hodiny programátorovi, co se po něm chce, taky není to pravé ořechové...

Takže analytik mu řekne něco jako: Takže tady klient chce mít tabulku, ohraničenou tak border 3, v ní výpis údajů z databáze, která bude obsahovat tyto hodnoty...

Imho je důležité, aby programátor byl schopen alespoň přitom trochu myslet, už jen proto, aby věděl, co za metodu zvolit. Je docela odrazující, když programátorovi trvá dvě hodiny pochopit, že po něm chcete, aby údaje vypsal do tabulky...

Stavbyvedoucí, který by nechápal, že se po něm v projektu chce, ať postaví místnost o rozměrech 5mx3m, by nebyl dobrým stavbyvedoucím...
joe
Profil
Adrifinel:
Imho je důležité, aby programátor byl schopen alespoň přitom trochu myslet, už jen proto, aby věděl, co za metodu zvolit. Je docela odrazující, když programátorovi trvá dvě hodiny pochopit, že po něm chcete, aby údaje vypsal do tabulky...
Do tabulky programátor nic nevypisuje, takže se možná diví nad tím, že analytik neví, co dělá programátor a co má dělat kodér :-)
Joker
Profil
Adrifinel:
Takže tady klient chce mít tabulku, ohraničenou tak border 3, v ní výpis údajů z databáze, která bude obsahovat tyto hodnoty...
No, programátor obecně není vhodný člověk pro návrh vzhledu aplikace.
(Je fakt, že často se to po něm i tak chce a podle toho pak ty aplikace vypadají :-) )

Stavbyvedoucí, který by nechápal, že se po něm v projektu chce, ať postaví místnost o rozměrech 5mx3m, by nebyl dobrým stavbyvedoucím...
Jistě, ale to jsem už psal, že stavbyvedoucí musí umět přečíst projekt, aby věděl, co se po něm chce. Ale nemusí umět navrhnout dům.
Camo
Profil
joe:
Na ktorom mieste aplikácie sa u vás vypisujú dáta do tabuľky? Nejako si neviem predstaviť, že to robí kóder. Ešte tak chápem, že vzhľad tej tabuľky je niekde v CSS, čo je zrejme v kompetencii kódera, ale neviem si predstaviť inú cestu ako vypísať tabuľku, ako je cyklus so všetkými HTML tagmi.
Str4wberry
Profil
ale neviem si predstaviť inú cestu ako vypísať tabuľku, ako je cyklus so všetkými HTML tagmi

Co šablonovací jazyk?
Camo
Profil
Str4wberry:
Asi neviem čo presne myslíš. Ale bez PHP si to tak či tak neviem predstaviť.
Joker
Profil
Camo:
Na ktorom mieste aplikácie sa u vás vypisujú dáta do tabuľky?
Tak třeba v aplikaci postavené na MVC by se to dělalo ve view, napsané v nějakém šablonovacím jazyce.
A view nemusí dělat programátor.
Je pravda, že takové rozdělení funkcí (už tu máme analytika, programátora, kodéra a ještě budeme potřebovat někoho na vzhled, řekněme grafika) by bylo jen u hodně rozsáhlého projektu, ale klidně si lze představit, že jeden člověk bude programátor-analytik a druhý kodér-grafik.
Čili jeden člověk bude dělat analýzu, model a controller a druhý člověk grafický návrh a view. Přičemž ten druhý bude mít hlavně grafické cítění a pak bude umět HTML a CSS vylepšené o šablonovací jazyk.
Camo
Profil
Str4wberry, Joker:
Priznávam, že ešte som asi nedozrel na tento druh šablon A asi nechápem ako presne fungujú. Mne to pripadá ako zbytočný medzikrok a stále nevidím ako to oddeliť od PHP. Viete mi vysvetliť, akú majú tieto šablony výhodu oproti klasickému HTML výstupu?
Adrifinel
Profil
joe:

To ti sedí z jedné strany analytik a z druhé kóder a uprostřed programátor :D

Joker

To byl příklad :D I když by asi programátor měl mít jasno, jak bude výsledek vypadat nebo to jen slepě programuje?


Když budu citovat tak: "od základní koncepce projektu až po matematické odvození vztahů, měl by umět dokázat správnost algoritmů, vypočítat časovou složitost, analyzovat možné zlepšení výkonu aplikace"
Joker
Profil
Camo:
Viete mi vysvetliť, akú majú tieto šablony výhodu oproti klasickému HTML výstupu?
To bychom asi utekli už moc daleko od tématu vlákna. Ale můžeme na to samozřejmě rozjet jiné vlákno.

Adrifinel:
I když by asi programátor měl mít jasno, jak bude výsledek vypadat nebo to jen slepě programuje?
To je zase to samé: Programátor samozřejmě má mít jasno, jak bude výsledek vypadat. To je napsané v analýze. Ale tím, kdo definuje, jak bude výsledek vypadat, je analytik.
Čili programátor si přečte analýzu a ví například, že tady má být třída MyClass s metodou SayHello, která uživateli vypíše „Hello world“ (resp. analytik obecně řekne, co chce, aby to udělalo). A jeho úkol je vymyslet optimální kód, který to zařídí (což ne vždy je tak triviální jako u Hello world).
Ale pravomoc programátora už není se rozhodnout, že třída MyClass je úplně zbytečná a kód metody SayHello spojit ještě s něčím jiným a realizovat úplně jinde.
Pavel Krátký
Profil *
joe:
- umět češtinu (přijde mi až trapný, když někdo, kdo komunikuje s klientama neumí ovládat svůj rodný jazyk a dělá základní chyby v i/y, aby jste (abyste), apod.)

Za tohle ti děkuji, já sám vždycky rostu, když někdo napíše "chlapy by si měly uvědomit, že za chvíly už bude pozdě.." a tvrdě bojuju za přežití naší krásné mateřštiny.

Ještě poznámečka k tomu "gůglení" - já dělám doma, na venkově, teď už sedím na sluníčku a dostala by mě "ven" (myšleno třeba do města a třeba velkého) možná spíš nějaká konzultace u piva s někým, kdo má podobného "koníčka" jako já :-)

otázka co je a není programátor je taky zajímavá :-)
Joker
Profil
Ohledně googlení bych řekl, že hodně programátorů má spíš opačný problém:
Raději strávit třičtvrtě hodiny s Googlem výzkumem nějakého problému, než ho během pěti minut vyřešit s kolegou, který sedí vedle.

I když samozřejmě ta druhá věc, najít někoho kdo má hodně znalostí a pak ho de facto používat místo Googlu, samozřejmě taky existuje. Vrcholem jsou dotazy na témata mimo oblast působnosti toho tázaného, který pak slouží jako jakési rozhraní na Google.

Pavel Krátký:
by mě "ven" (myšleno třeba do města a třeba velkého) možná spíš nějaká konzultace u piva s někým, kdo má podobného "koníčka" jako já :-)
K tomu jsou ideální příležitost srazy DJPW ;-)
Lamicz
Profil
Joker:
Raději strávit třičtvrtě hodiny s Googlem výzkumem nějakého problému, než ho během pěti minut vyřešit s kolegou, který sedí vedle.
Ono to má i jiný problém, programátoři jsou drazí a je jich ve firmách tak akorát (nebo spíš méně), takže kolegu nechce vyrušovat, protože dělá něco úplně jinýho a jakmile se zanoří do jeho problému, trvá nějaký čas se přeorientovat zpět. A čas jsou peníze :). Navíc, pokud je jejich úroveň víceméně stejná, je dost velká šance, že to nebude vědět.
Bleksak
Profil *
jenikkozak:
:D Já to mám stejné akorád že umím PHP, ale nezvládám si nakódovat prostě nějakou HTML šablonu :(
« 1 2

Vaše odpověď

Mohlo by se hodit

Příspěvky nesouvisející s webem budou odstraněny.

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0