Otázky o programovaní

TomBA

Otázky o programovaní
« kdy: 07. 08. 2013, 20:13:42 »
Začnem tým, že sa ospravedlním. Chcel som položiť pár jednoduchých otázok, ale nakoniec som napísal celý román, aby som ozrejmil (asi aj sám sebe), ako som sa ku nim dostal.

Tak si občas pozriem forum tu na root-e. Otázky ohľadne programovania sú relatívne časté. Ako začať, ktorý jazyk, aký hardware, aká literatúra, aké licencie, dá sa z toho vyžiť, do akého veku sa oplatí začať a tak podobne.
Odpovede sú všelijaké. Od reálnych pohľadov na problematiku, snahy pomôcť, až po extrémne veci ako výsmech či hádky o tom "jedinom správnom" IDE/jazyku/OS/whatever_you_want. Žiaľ nekompetentné a arogantné vyjadrenia prevažujú. Často mám pocit že radia ľudia, ktorí sa práve tento semester dostali ku tomu či onomu jazyku. Minulý semester ich uchvátil jeden, tento semester je to druhý a s veľkou pravdepodobnosťou to bude za polrok tretí. Túžba prezentovať sa a ukázať sa ako cool geek je veľmi silná, hoci staré Si tacuisses, philosophus mansisses platí stále.
Osobne už dlhší čas neprogramujem a nikdy som sa tým naozaj neživil. Občas upravím voľajaký webshop, zbastlím nieco v php, naskriptujem niečo bashi, sed, awk, ale nepovažujem sa za odborníka na programovanie. Keby moje "produkty" videl odborník, asi by zalamoval rukami. V mojom najbližšom okolí ale mám ľudí, ktorý sa programovaniu venujú. Ako pedagógovia, ako študenti i ako freelanceri či zamestnanci v softvérových domoch. Pri rozhovoroch s nimi sa snažím dopátrať, ako taká výuka programovania dnes prebieha.
Keďže považujem programovanie za veľmi tvorivú činnosť, prekvapuje ma, že nič o tomto aspekte nepočujem. Analýze problémov sa venuje minimálne množstvo času. Predpokladal by som, že sa začne vývojovými diagramami, ukážkami ako previesť problém zo života do matematicko-logickej postupnosti. Že sa poukáže na to, ako dokáže dobrá analýza X-násobne urýchliť výpočet, ako ani najrýchlejší počítač nedokáže vyriešiť koncovku šachovej partie, ktorá je aj pre priemerného šachistu evidentná, ak nemá k dispozícii tabuľky koncových pozícií.
Začína sa inštaláciou voľajakého megamonštra (dosaďte si IDE podľa ľubovôle) a po obligátnom "hello world" nasledujú nijako nesúvisiace ukážky kódu v tom-ktorom jazyku. Triedenia, výpisy, súborový systém..... všetko bez toho PREČO?
A potom dostane študent voľajakú úlohu, ktorá bola už 1k krát na internete či inde riešená (s malou obmenou, v inom jazyku), veď nech si minuloročný druháci zarobia na pivečko.
Nerozumiem tomu. Ak ide naozaj o to pripraviť ľudí pre prax, trval by som na tímových projektoch, kde sa jeden študent môže prejaviť ako grafik, iný ako schopný analytik, tretí ako výkonný kóder, štvrtý dorobí dokumentáciu..... Tak ako v živote, každý má silnejšie a slabšie stránky a podstatné je to dať dokopy.
Ak ste dočítali až sem gratulujem. Tu sú moje otázky:
- Možete mi napísať akou genézou programovania ste prešli?
- V ktorej etape je podľa vás podstatný výber jazyka?
- V ktorej etape je podľa vás podstatné zapojenie a využívanie kooperácie a CVS?
- V ktorej etape je podľa vás podstatný výber IDE?
- Zažili ste / trvali vyučujúci na voľajakej "štábnej kultúre" kódu? Na komentovaní, na dodržiavaní konvencií pri pomenovávaní?
- Viete si predstaviť / zažili ste na školách využívanie niečoho ako codenvy, čo by viacej tlačilo na tímovosť, nevyžadovalo silný hardware na strojoch študentov (furt čítam že pre programovanie treba SSD s 8+ GB RAM)? Používajú školy niečo takéto?
- Majú študenti prístup ku voľajakým výpočtovým farmám (povedzme 128 jadrová pračka v pivnici) na ktorých si môžu spúšťať svoje projekty a testovať "multiprocesorovosť"?
- Viete si predstaviť / zažili ste na školách prácu hoci aj v konzole (ssh na školský server, vim alebo niečo iné, git)?
- Viete si predstaviť / zažili ste na školách niečo ako, že na jednom predmete sa niečo postaví (hardware), na druhom sa to naprogramuje, na treťom sa spraví dokumentácia/manuál/propagačný materiál/web/marketing/prezentácia?
- Viete si predstaviť / zažili ste na školách orientáciu na tímovú prácu? Výuku toho ako bude človek neskôr v praxi pracovať?

Všetkým, ktorý sa dostali až sem, za odmenu http://www.youtube.com/watch?v=pGFGD5pj03M.


spartakus

Re:Otázky o programovaní
« Odpověď #1 kdy: 07. 08. 2013, 20:32:30 »
Nejaky tymovy projekty jsme ve skole meli a byla to docela katastrofa...

V podstate si vzpominam jenom na jede projekt kde sem byl v tymu s lidma co se snazili a neco delali. Jinak jsem ty projekty musel vzdicky udelat sam...

Kolemjdoucí

Re:Otázky o programovaní
« Odpověď #2 kdy: 07. 08. 2013, 20:43:55 »
Týmová práce studentů je kontraindikace pro výuku čehokoliv, je to naprosto zcela zcestná myšlenka, která se zcela nepochopitelně dokonce zkoušela i v praxi a dopadla podle očekávání katastrofálně. V týmu makal jeden génius a ostatní se vezli a následně toho uměli ještě méně než dřív.

Výuka programování dnes v ČR neexistuje, na tom se místní osazenstvo vzácně shodlo, tudíž se nemůžete ničeho dopátrat, drtivá většina programátorů vznikla samostudiem mimo prostředí školy.

omg

Re:Otázky o programovaní
« Odpověď #3 kdy: 07. 08. 2013, 20:59:02 »
- Možete mi napísať akou genézou programovania ste prešli?
irelevantni.
- V ktorej etape je podľa vás podstatný výber jazyka?
pri vyberu pozice zamestnance.
a tesne pred prvnimi priznaky vyhoreni - preventivni zasadni zmeny jako prevence vyhoreni.
- V ktorej etape je podľa vás podstatné zapojenie a využívanie kooperácie a CVS?
od prvniho projektu co ma vic jak 300 radku i kdyz primarni je casove kriterium. tedy i min radku pokud nad nimi musi nekdo dumat adekvatne dlouho. druhorade kriterium je pak spoluprace.
- V ktorej etape je podľa vás podstatný výber IDE?
cim driv tim lip. dobre ide zrychluje uceni. od hierarchie objektu pres podbizeni dokumentace az po nabizeni predpokladanych/moznych variant.
- Zažili ste / trvali vyučujúci na voľajakej "štábnej kultúre" kódu? Na komentovaní, na dodržiavaní konvencií pri pomenovávaní?
irelevantni
- Viete si predstaviť / zažili ste na školách využívanie niečoho ako codenvy, čo by viacej tlačilo na tímovosť, nevyžadovalo silný hardware na strojoch študentov (furt čítam že pre programovanie treba SSD s 8+ GB RAM)? Používajú školy niečo takéto?
castecne irelevantni
- Majú študenti prístup ku voľajakým výpočtovým farmám (povedzme 128 jadrová pračka v pivnici) na ktorých si môžu spúšťať svoje projekty a testovať "multiprocesorovosť"?
distribucnim balickarem se muze stat v podstate kazdy. build servery maji k dispozici.
- Viete si predstaviť / zažili ste na školách prácu hoci aj v konzole (ssh na školský server, vim alebo niečo iné, git)?
za to se davaly dutky nebo dvojky z chovani, kdyz si lidi na netware serveru instalovali exploitovaci patche :-D
- Viete si predstaviť / zažili ste na školách niečo ako, že na jednom predmete sa niečo postaví (hardware), na druhom sa to naprogramuje, na treťom sa spraví dokumentácia/manuál/propagačný materiál/web/marketing/prezentácia?
irelevantni
- Viete si predstaviť / zažili ste na školách orientáciu na tímovú prácu? Výuku toho ako bude človek neskôr v praxi pracovať?
jeden predmet.

nuda

Re:Otázky o programovaní
« Odpověď #4 kdy: 07. 08. 2013, 21:15:51 »
- K tej tymovosti: imho je to totalna konina, na strednej na nas nieco take skusali a vysledok bol, ze v kazdej skupinke bol 1-2 ludia, ktory vedeli co a ako, a zbytok len prikyvoval a viezol sa... pokial bola uloha obkecat nejaky problem, vetsinou sa skupina prezentovala tym, co navhrol najvacsi kriklun skupiny - nie ten co mal najlogickejsi pristup, cize vacsinou nejaka hlupost...
Dokonca na nas skusali take, ze sa menil pocet clenov v skupine, az sa preslo od dvojic po 30-clennu skupinu: vysledok je taky, ze cim vacsia skupina, tym bol vysledok horsi, pretoze sa islo podla najvcsieho krikluna... :D

- Co sa tyka vyuky programovania (na slovensku) - existuje asi v takej miere, ze toto si opiste, a potom prepiste do pocitaca... to je cele...co, preco, ako - nic, alebo nauc sa sam... Osobne som mal uplne brutalnu skusenost, kde sme mali napisat program bez toho aby sme realne programovali... cize par-krat nam predviedli zdrojak a podla toho sme mali na pisomke spravit novy kod... :D :D :D (mal som za 3 kvoli syntaxu :D :D), a pohadal som sa z ucitelom, pretoze je to imho ko....na  :D :D :D

- K tomu stavaniu hardweru, programovaniu, dokumentacii: no my sme robili napriklad funkcny model vytahu, cize sa normalne staval z plexiskla model (50 cm na vysku), poriesili sa servo-motory, potom sa navrhla elektronika, urbil sa plosak, potom to zhorelo :D :D :D, takze sa tam dalo PLC, naprogramovalo sa to, a potom sup s tym na sutaz... funkcny vytah s troma podlaziami a pamätou stisknutych tlacidiel skoncil druhy za tabulou z diod, na ktorej beziaci text hlasal nejaku mudrost :D vystriedalo sa na tom tak 30 ludi, konkretne ja som robil nejaky kod pre PLC, kamos zas tie serva... IMHO fungovalo to len preto, ze ucitel, ktory to mal pod palcom vedel ludi organizovat, a vedel si vybrat spravnych studentov na konkretne prace... inak by sme sa nedostali ani po dvierka :D

Takze asi tak... :D


Re:Otázky o programovaní
« Odpověď #5 kdy: 07. 08. 2013, 21:17:01 »
Keďže považujem programovanie za veľmi tvorivú činnosť, prekvapuje ma, že nič o tomto aspekte nepočujem. Analýze problémov sa venuje minimálne množstvo času. Predpokladal by som, že sa začne vývojovými diagramami, ukážkami ako previesť problém zo života do matematicko-logickej postupnosti. Že sa poukáže na to, ako dokáže dobrá analýza X-násobne urýchliť výpočet, ako ani najrýchlejší počítač nedokáže vyriešiť koncovku šachovej partie, ktorá je aj pre priemerného šachistu evidentná, ak nemá k dispozícii tabuľky koncových pozícií.
Problém je trochu jinde. Ne převést problém ze života do matematicko-logickej postupnosti, ale do takové posloupnosti úkonů čí akcí, která bude nadále dávat podobný smysl a splní ten účel, který se očekává. Jinak, většina úloh je banálních. (Dobře, chce to navrhnout databázi aspoň trochu správně, a všeobecně, nebýt idiot, ale málokdy jsem se setkal s tím, že vymyslet, jak něco naprogramovat, by byl problém. Problém je, jak to správně navrhnout z hlediska firemního (nebo lidského) workflow.)
Začína sa inštaláciou voľajakého megamonštra (dosaďte si IDE podľa ľubovôle) a po obligátnom "hello world" nasledujú nijako nesúvisiace ukážky kódu v tom-ktorom jazyku. Triedenia, výpisy, súborový systém..... všetko bez toho PREČO?
A potom dostane študent voľajakú úlohu, ktorá bola už 1k krát na internete či inde riešená (s malou obmenou, v inom jazyku), veď nech si minuloročný druháci zarobia na pivečko.
Pokud studenti nebudou umět tyhle základy (a oni je zatím neumí), tak nemá smysl zabývat se nějakým smysluplným projektem. Známému jsem pomáhal s nějakými OS na FIT, myslím, že ve druhém semestru. Byla to podle mého názoru né úplně jednoduchá úloha typu producent - konzument. No a prostě když to neumí, tak si to musí natrénovat. Ani v prváku na FEL CVUT jsem před těmi 20 lety neměl v programování semestrálku, která by se dala někde najít (ikdyž s obměnami). A nebyla úplně nezanedbatelná. Nadruhou stranu, nevidím nic špatného na opakování podobných úloh.
Nerozumiem tomu. Ak ide naozaj o to pripraviť ľudí pre prax, trval by som na tímových projektoch, kde sa jeden študent môže prejaviť ako grafik, iný ako schopný analytik, tretí ako výkonný kóder, štvrtý dorobí dokumentáciu..... Tak ako v živote, každý má silnejšie a slabšie stránky a podstatné je to dať dokopy.
To bys ale musel dát dohromady lidi z víc škol nebo aspoň víc oborů. U nás byly týmové projekty v:
Softwarové inženýrství I a II, Mikropočítače, Počítačová grafika nevím kolik, asi jich bylo víc, ale teď si nevzpomenu.
Ak ste dočítali až sem gratulujem. Tu sú moje otázky:
- Možete mi napísať akou genézou programovania ste prešli?
Hodně ve zkratce. Atari Basic, Assembler 6502, Turbo Pascal, (Turbo/Borland) C, C++, trošku toho assembleru 8086 a 8051 (velice trošku), pak GCC+Emacs+CVS, pak první zaměstnání C++, Win32, Visual Studio 6, Visual Source Safe (bad joke), pak druhé zaměstnání a znovu Emacs a YCP/Yast + CVS + autobuild (+autotest) systém distribuovaný v několika zemích, myslím, že tady někte byl taky přechod na vim, pak třetí zaměstnání, VIM, java (+ servlets + jsp), perforce ale práce v týmu velikosti 1, pak čtvrté zaměstnání (zase sám v týmu), Visual Studio 6, C++, SVN, javascript na serveru (asp zase bad joke), Python+wxPython na klientské aplikace, Python Pylons a později Pyramid na weby.
- V ktorej etape je podľa vás podstatný výber jazyka?
Nikdy
- V ktorej etape je podľa vás podstatné zapojenie a využívanie kooperácie a CVS?
Včera. Version control se hodí i pro nevývojáře, vpodstatě komukoliv, ale nikdo jiný než vývojáři to nebude schopen používat.  Dá se to pochopit rychle, ale je zapotřebí mít toho šéfa.
- V ktorej etape je podľa vás podstatný výber IDE?
Není důležité. Člověk vůbec musí prvně přijít na to, jestli IDE ano nebo ne, a jestli ano, tak je pak skoro jedno jaké, a jestli ne tak je to taky jedno.
- Zažili ste / trvali vyučujúci na voľajakej "štábnej kultúre" kódu? Na komentovaní, na dodržiavaní konvencií pri pomenovávaní?
Ano, ale vlastně jen v té grafice (Žára).
- Viete si predstaviť / zažili ste na školách využívanie niečoho ako codenvy, čo by viacej tlačilo na tímovosť, nevyžadovalo silný hardware na strojoch študentov (furt čítam že pre programovanie treba SSD s 8+ GB RAM)? Používajú školy niečo takéto?
Nedovedu si představit projekt, na který bych potřeboval výpočetně silný stroj. Pokud budu dělat úlohu z paralelních systémů, budu mít nástroje, jak to testovat na svém slabém notebooku, a občas vyzkoušet na skutečném železe. Ale cloud IDE? WTF?!?
- Majú študenti prístup ku voľajakým výpočtovým farmám (povedzme 128 jadrová pračka v pivnici) na ktorých si môžu spúšťať svoje projekty a testovať "multiprocesorovosť"?
My jsme měli, sice ve formě emulátoru, ale fungovalo to dostatečně. Upřímě, kolik studentů to využije? 1 ze 100? Věřím, že ten se k tomu dostane. My jsme se hlavně naučili, že tyhle věci jsou o něčem jiném.
- Viete si predstaviť / zažili ste na školách prácu hoci aj v konzole (ssh na školský server, vim alebo niečo iné, git)?
Haha, vim na sériovém terminálu k Unixu? No nic, tenkrát se ještě používal telnet.
- Viete si predstaviť / zažili ste na školách niečo ako, že na jednom predmete sa niečo postaví (hardware), na druhom sa to naprogramuje, na treťom sa spraví dokumentácia/manuál/propagačný materiál/web/marketing/prezentácia?
Nedovedu. Bylo by trochu blbý v předmětu B trpět za chyby, které udělal někdo jiný v předmětu A.
- Viete si predstaviť / zažili ste na školách orientáciu na tímovú prácu? Výuku toho ako bude človek neskôr v praxi pracovať?
Problém bude sehnat vedoucího týmu. Když se zamyslím nad tím, jak to bylo za nás, tak pár lidí bych do týmu sehnal, ale vedoucího blbě. Malý týmový projekty byly. Občas bylo i něco v tom smyslu, že se udělalo něco, co se pak použilo na něco dalšího (jako knihovna nebo tak).

hmmm

Re:Otázky o programovaní
« Odpověď #6 kdy: 07. 08. 2013, 22:08:48 »
- Možete mi napísať akou genézou programovania ste prešli?

Karel, Turbo Pascal, ruzne jazyky na skole, ruzna klikatka pro programovani PLC, ted C#

- V ktorej etape je podľa vás podstatný výber jazyka?

Podstate to je asi u zacatecniku. Zvolit jazyk umerne veku ditete. Me tenkrat ten Karel vyhovoval.
V praci se musi zamestnanec naucit, co je potreba.

- V ktorej etape je podľa vás podstatné zapojenie a využívanie kooperácie a CVS?

Nechapu otazku. Podstatne to je v okamziku, kdy to je potreba.

- V ktorej etape je podľa vás podstatný výber IDE?

Uznavam, ze Visual Studio mi napovida docela hezky. Ale v praxi se dela v tom, co vyzaduje a plati zamestnavatel.

- Zažili ste / trvali vyučujúci na voľajakej "štábnej kultúre" kódu? Na komentovaní, na dodržiavaní konvencií pri pomenovávaní?

Ve skole s jednalo o nekolikaradkove programy, ktere vucujici pochopi i bez komentaru. Znam to i z pozice vyucujiciho.

- Viete si predstaviť / zažili ste na školách využívanie niečoho ako codenvy, čo by viacej tlačilo na tímovosť, nevyžadovalo silný hardware na strojoch študentov (furt čítam že pre programovanie treba SSD s 8+ GB RAM)? Používajú školy niečo takéto?

Zazil jsem nekolikaradkove programy. Pouze diplomka byla vetsi, ale moje zdrojaky nikoho nezajimaly.

- Majú študenti prístup ku voľajakým výpočtovým farmám (povedzme 128 jadrová pračka v pivnici) na ktorých si môžu spúšťať svoje projekty a testovať "multiprocesorovosť"?

My jako studenti jsme nemeli Rok cca 2000.

- Viete si predstaviť / zažili ste na školách prácu hoci aj v konzole (ssh na školský server, vim alebo niečo iné, git)?

SSH jem zazil.

- Viete si predstaviť / zažili ste na školách niečo ako, že na jednom predmete sa niečo postaví (hardware), na druhom sa to naprogramuje, na treťom sa spraví dokumentácia/manuál/propagačný materiál/web/marketing/prezentácia?

Ne. Takovahle souslednost predmetu nebyla.
Ale panove ve veku meho otce (tj. momentalne ca 60 let) vzpominaji, ze skutecne takhle na sebe ty predmety navazovaly Od kombinacnch pres sekvencni obvody az k asembleru...

- Viete si predstaviť / zažili ste na školách orientáciu na tímovú prácu? Výuku toho ako bude človek neskôr v praxi pracovať?

Na skole jsem nejakou vyraznejsi tymovou praci nezazil.

TomBA

Re:Otázky o programovaní
« Odpověď #7 kdy: 07. 08. 2013, 23:25:52 »
Podľa doterajších reakcií by som to zhrnul asi tak že:
- Výuka programovania ako priprava na prax v CZ/SK prakticky neexistuje (dodržiavanie noriem, kooperatívny vývoj...). Je to veľmi smutné tvrdenie.

- Argumenty, že týmové projekty sú nezmysel, lebo jeden robí a ostatní sa vezú sú chybné. Podľa mňa je len otázkou, ako bude pedagóg sledovať, účasť jednotlivých členov týmu a pri prezentácii si veľmi rýchlo zistí, či všetci členovia tímu rozumejú riešeniu. Vaše reakcie, myslím si, len odzrkadlujú Vaše skúsenosti zo školy i praxe.

- To že sa vo výuke nepoužíva súslednosť a jednotlivé predmety spolu nesúvisia je veľmi demotivujúce. Každý potrebuje pocit úspechu, dokončenia niečoho zmysluplného. Ak človek vytvára kód len pre známku je to škoda. Ak robí dokonca to isté na viacerých predmetoch (povedzme v inom jazyku), len preto že pedagógovia nekomunikujú, je to katastrofa. Každý zahradkár vám povie, že dlhodobá práca na niečom zmysluplnom (úroda) je veľmi napĺňajúca.

- Snažil som sa tou týmovou prácou a rozdielnymi úlohami členou tímu, poukázať na to, že veľmi dôležitou činnosťou dnešného komerčného sveta je schopnosť prezentovať produkt. V mnohých krajinách, sú deti od malička vedené k prezentácii svojich prác (USA, Škandinávia, CH). V praxi sa to potom prejavuje pri uplatnení na trhu práce. Je až katastrofálne, keď špičkový SK/CZ odborník je počas svojej prednášky otočený chrbtom k auditóriu a mrmle si niečo pod nos. A nemyslím si že úloha prezentátora je v tíme menej dôležitá ako toho kto kódi.

- To že nie je podstatné ako sa čo naprogramuje, hlavne ked to robí čo má, sa mi tiež nepozdáva. Nedávno som so synom riešil klasický problém ôsmich dám na šachovnici. Samozrejme, že jeho softwarové riešenie bolo postavené na brutalforce. Keď som sa ho spýtal na šachovnicu 1000x1000, alebo iné figúry, mal problém. Za týždeň prišiel s riešením, ktoré počítalo šachovnicu 1000x1000 za pár sekúnd. Ďaľší krok sú strelce i veže.  Ide o analýzu. Ak niekto tvrdí že pri bežnej business aplikácii nie je už čo vymyslieť, že je to o pár formulároch a databáze, je to omyl. Presne týmto sa dobré produkty odlišujú od zlých. Majú v sebe nápad. Pred 10 rokmi mnohí vraveli, že Photoshop vie už všetko.....

ded kenedy

Re:Otázky o programovaní
« Odpověď #8 kdy: 07. 08. 2013, 23:58:54 »
Tymove projekty maji nekolik problemu. Zaprve, nemuzes ucit lidi programovat v tymu, kdyz jeste ani poradne neumi programovat jako jednotlivci. Zadruhe, na VS IT smeru je spousta lidi, kteri na to nemaji a po case odpadnou. Kdyz je nechas pracovat v tymech, skonci to tak, ze ti schopnejsi, aby ziskali kredity, radsi praci za ty mene schopne udelaji.

Citace
Snažil som sa tou týmovou prácou a rozdielnymi úlohami členou tímu, poukázať na to, že veľmi dôležitou činnosťou dnešného komerčného sveta je schopnosť prezentovať produkt.

Od toho je tu marketingove oddeleni.

Citace
V mnohých krajinách, sú deti od malička vedené k prezentácii svojich prác (USA, Škandinávia, CH). V praxi sa to potom prejavuje pri uplatnení na trhu práce.

Ano, pak existuje spousta lidi, kteri sice umi zvanit, ale nikdo nic nedela. Priklad USA, kde na technicke skole pro zastupy indu a cinanu mas problem najit opravdoveho americana.

Citace
- Výuka programovania ako priprava na prax v CZ/SK prakticky neexistuje (dodržiavanie noriem, kooperatívny vývoj...). Je to veľmi smutné tvrdenie.

Naucit se programovat je otazka nekolika let a spousty praxe, predstava, ze te to nekdo nauci za dve hodiny tydne je naivni.

black3r

Re:Otázky o programovaní
« Odpověď #9 kdy: 08. 08. 2013, 01:13:08 »
- Možete mi napísať akou genézou programovania ste prešli?
Stredna skola: Turbo Pascal -> FreePascal -> C (gcc) -> C++ (g++) (samozrejme na gympli sme sa ucili len turbo pascal, zvysok vlastna snaha)
Vyska: Python + Vsetko mozne (PHP, JavaScript, CoffeeScript, Dart, Ruby, C#, C++, Java) (na skole len C++ a Java, zvysok vlastna snaha + praca)
- V ktorej etape je podľa vás podstatný výber jazyka?
Iba na zaciatku: Je blbost naucit sa napisat Hello World v 20 jazykoch a nevediet ani v jednom viac... ked uz clovek ovlada jeden jazyk celkom slusne tak uz na dalsie sa prechadza celkom lahko..
- V ktorej etape je podľa vás podstatné zapojenie a využívanie kooperácie a CVS?
Ked clovek zacne robit na niecom vacsom, napr. Git pouzivam na hocijaky projekt ktory kodim viac ako 3 dni a aj ked ho kodim sam... uz len kvoli tej historii a branchingu sa to oplati
- V ktorej etape je podľa vás podstatný výber IDE?
Nikdy: Clovek si vybere jedno IDE a potom sa uz nevie prisposobit ostatnym. Ja som si nikdy ne"vybral" IDE a teraz som schopny robit v hocicom co mi podstrcia --> vim, eclipse, netbeans... Hej, ulahcuje to pracu, to je pravda, ale ked sa raz naucis pisat kod v niecom primitivnom (napr. vim bez milion pluginov), tak sa vyhnes narekom ked raz nebudes mat k dispozicii to tvoje vyvolene IDE. A aj tak si myslim ze v serioznej praxi vacsinu casu zaberie vymysliet ako nieco spravit a nie uz naklikanie/napisanie... a ked viem rychlo pisat na klavesnici tak pri vybere pisat/klikat si vacsinou vyberiem pisanie...
- Zažili ste / trvali vyučujúci na voľajakej "štábnej kultúre" kódu? Na komentovaní, na dodržiavaní konvencií pri pomenovávaní?
Idem momentalne do druhaku na FMFI, na predmete Programovanie v Jave sme kod komentovat museli. Nepredpokladam ze na nejakej strednej sa to niekde vyzaduje...
- Viete si predstaviť / zažili ste na školách využívanie niečoho ako codenvy, čo by viacej tlačilo na tímovosť, nevyžadovalo silný hardware na strojoch študentov (furt čítam že pre programovanie treba SSD s 8+ GB RAM)? Používajú školy niečo takéto?
codenvy nepoznam, neviem v com kodenie na skolach vyzaduje silny hardware.. ale mozno som sa s takym este len nestretol
- Majú študenti prístup ku voľajakým výpočtovým farmám (povedzme 128 jadrová pračka v pivnici) na ktorých si môžu spúšťať svoje projekty a testovať "multiprocesorovosť"?
Ten kto chce si k tomu pristup najde..
- Viete si predstaviť / zažili ste na školách prácu hoci aj v konzole (ssh na školský server, vim alebo niečo iné, git)?
Stredna skola tazko, tam su radi ked sa naucia Pascal.. U nas na vyske sa o ssh a vim-e rozpravalo, ale zatial to nejako vyzadovane nebolo, no som tu len rok zatial tak neviem..
- Viete si predstaviť / zažili ste na školách niečo ako, že na jednom predmete sa niečo postaví (hardware), na druhom sa to naprogramuje, na treťom sa spraví dokumentácia/manuál/propagačný materiál/web/marketing/prezentácia?
Taketo nieco si predstavit neviem... Podla mna to hlavne trocha mixuje odbory... postavit nejaky hardware je skor pre elektrotechnikov, programovanie hardware skor pre nejakych priemyselnych informatikov a web-y skor pre aplikovanu informatiku?
- Viete si predstaviť / zažili ste na školách orientáciu na tímovú prácu? Výuku toho ako bude človek neskôr v praxi pracovať?
Timova praca na skolach vzdy dopadne tak, ze vacsinu kodu zbucha ten najsikovnejsi/najlepsi v skupine a zvysok sa len vezie. Alebo to dopadne tak ze ti slabsi sa aj o nieco pokusia, ale nakoniec to nedopadne velmi dobre a potom ten lepsi to po nich musi opravovat..

JS

Re:Otázky o programovaní
« Odpověď #10 kdy: 08. 08. 2013, 07:21:03 »
Na otazky nema smysl odpovidat, zakladni problem je v premise, ze ty veci, ktere povazuje za dulezite, se nebudou jiz menit. Neboli jak mi rikal jeden asi 60-lety kolega - "nam na skole rikali, co se tyce volby jazyka, ze jsou do budoucna jen 2 realisticke moznosti - PL/I nebo FORTRAN". Ja napriklad jsem profesionalni programator, prestoze jsem to nestudoval - studoval jsem aplikovanou matematiku - a tedy nezapadam do vasi skatulky vubec. Zivot je slozitejsi.

Citace
To že nie je podstatné ako sa čo naprogramuje, hlavne ked to robí čo má, sa mi tiež nepozdáva. Nedávno som so synom riešil klasický problém ôsmich dám na šachovnici.

Citace
A potom dostane študent voľajakú úlohu, ktorá bola už 1k krát na internete či inde riešená

Neprotireci si to trochu? Smyslem techto jednoduchych uloh (na prohledavani do hloubky, napriklad) je prave naucit analyze. Ze si to nekdo zkopiruje z Internetu a v praxi pak nebude vedet, jak k problemu pristoupit, a co je asymptoticka slozitost, je jeho problem. Nemuzes zacit analyzou realnych problemu - to je spatny treninkovy priklad z vicero duvodu (jeden je nejednoznacnost dobreho reseni).

Citace
Viete si predstaviť / zažili ste na školách niečo ako, že na jednom predmete sa niečo postaví (hardware), na druhom sa to naprogramuje, na treťom sa spraví dokumentácia/manuál/propagačný materiál/web/marketing/prezentácia?

Tato myslenka uz existuje: http://www.nand2tetris.org/ Byl by to dobry stredoskolsky predmet, IMHO (pro lepsi stredni skoly).

Citace
Kdyz je nechas pracovat v tymech, skonci to tak, ze ti schopnejsi, aby ziskali kredity, radsi praci za ty mene schopne udelaji.

A to prave studenty dobre pripravi na tu praxi. :-) Ja jsem tymovy projekt nezazil, myslim, ze v jednom predmetu je uzitecne si to zkusit, ale asi by to nemel byt hlavni zpusob jak ucit lidi programovat (jak uz podotkli jini).

Kolemjdoucí

Re:Otázky o programovaní
« Odpověď #11 kdy: 08. 08. 2013, 07:42:26 »
- Výuka programovania ako priprava na prax v CZ/SK prakticky neexistuje (dodržiavanie noriem, kooperatívny vývoj...). Je to veľmi smutné tvrdenie.

BINGO

- Argumenty, že týmové projekty sú nezmysel, lebo jeden robí a ostatní sa vezú sú chybné. Podľa mňa je len otázkou, ako bude pedagóg sledovať, účasť jednotlivých členov týmu a pri prezentácii si veľmi rýchlo zistí, či všetci členovia tímu rozumejú riešeniu. Vaše reakcie, myslím si, len odzrkadlujú Vaše skúsenosti zo školy i praxe.

Pedagog nemá čas a prostředky zjišťovat úroveň členů týmu, to zjistí až na konci pololetí/semestru a teprve ex post se zjistí jaká úroveň studentů je a že v drtivé většině případů byla zcela nedostatečná pro činnost v týmu. V reálném životě se úroveň členů týmu zjišťuje před vstupem do týmu a to je pak zcela jiná situace.

- Snažil som sa tou týmovou prácou a rozdielnymi úlohami členou tímu, poukázať na to, že veľmi dôležitou činnosťou dnešného komerčného sveta je schopnosť prezentovať produkt. V mnohých krajinách, sú deti od malička vedené k prezentácii svojich prác (USA, Škandinávia, CH). V praxi sa to potom prejavuje pri uplatnení na trhu práce. Je až katastrofálne, keď špičkový SK/CZ odborník je počas svojej prednášky otočený chrbtom k auditóriu a mrmle si niečo pod nos. A nemyslím si že úloha prezentátora je v tíme menej dôležitá ako toho kto kódi.

Prezentování produktů a vůbec business je samozřejmě velmi důležitý, ale na to máme armády absolventů jiných oborů. Programátor odborník nemá čas na objíždění nějakých prezentací nebo přednášek, ten musí makat.

- To že nie je podstatné ako sa čo naprogramuje, hlavne ked to robí čo má, sa mi tiež nepozdáva. Nedávno som so synom riešil klasický problém ôsmich dám na šachovnici. Samozrejme, že jeho softwarové riešenie bolo postavené na brutalforce. Keď som sa ho spýtal na šachovnicu 1000x1000, alebo iné figúry, mal problém. Za týždeň prišiel s riešením, ktoré počítalo šachovnicu 1000x1000 za pár sekúnd. Ďaľší krok sú strelce i veže.  Ide o analýzu. Ak niekto tvrdí že pri bežnej business aplikácii nie je už čo vymyslieť, že je to o pár formulároch a databáze, je to omyl. Presne týmto sa dobré produkty odlišujú od zlých. Majú v sebe nápad. Pred 10 rokmi mnohí vraveli, že Photoshop vie už všetko.....

První šachový program který je schopen spolehlivě porazit člověka, je založen na brutalforce 200 000 000 tahů za sekundu, žádná velká analýza nebyla potřeba :P
Samozřejmě v praxi analýza potřeba je, to je jasná věc.

Re:Otázky o programovaní
« Odpověď #12 kdy: 08. 08. 2013, 08:01:42 »
Podľa doterajších reakcií by som to zhrnul asi tak že:
- Výuka programovania ako priprava na prax v CZ/SK prakticky neexistuje (dodržiavanie noriem, kooperatívny vývoj...). Je to veľmi smutné tvrdenie.
Mám dojem, že máš odpověď bez oholedu na to, co Ti kdo napíše. Jaké normy? V IT normy zatím nejsou. V programování už vůbec. Jaká praxe? Praxe programátora? Nemůžeš čekat, že ze školy vyleze hned hlavní programátor (to je název pozice).

Citace
- Argumenty, že týmové projekty sú nezmysel, lebo jeden robí a ostatní sa vezú sú chybné. Podľa mňa je len otázkou, ako bude pedagóg sledovať, účasť jednotlivých členov týmu a pri prezentácii si veľmi rýchlo zistí, či všetci členovia tímu rozumejú riešeniu. Vaše reakcie, myslím si, len odzrkadlujú Vaše skúsenosti zo školy i praxe.
Heh? Pokud je to týmová práce, tak snad jen jeden musí rozumět řešeni. Jeden dělá grafiku, jeden docs, 1 programuje podle zadání, jeden to vede.
Citace
- To že nie je podstatné ako sa čo naprogramuje, hlavne ked to robí čo má, sa mi tiež nepozdáva. Nedávno som so synom riešil klasický problém ôsmich dám na šachovnici. Samozrejme, že jeho softwarové riešenie bolo postavené na brutalforce. Keď som sa ho spýtal na šachovnicu 1000x1000, alebo iné figúry, mal problém. Za týždeň prišiel s riešením, ktoré počítalo šachovnicu 1000x1000 za pár sekúnd. Ďaľší krok sú strelce i veže.  Ide o analýzu. Ak niekto tvrdí že pri bežnej business aplikácii nie je už čo vymyslieť, že je to o pár formulároch a databáze, je to omyl. Presne týmto sa dobré produkty odlišujú od zlých. Majú v sebe nápad. Pred 10 rokmi mnohí vraveli, že Photoshop vie už všetko.....
Někdo psal, že není podstatné, jak se co naprogramuje? Podstatné to sice je, ale není to ten problém. Tvůj syn řešil problém a vyřešil problém a Ty v tom hledáš chybu? Dostal zadání, vyřešil ho správně, pak dostal jiné zadání, a vyřešil ho taky správně. Udělal to nejlepší, co šlo. Reagoval na poptávku. Vlastně se z hlediska týmové práce choval dokonale.

Mirek

Re:Otázky o programovaní
« Odpověď #13 kdy: 08. 08. 2013, 08:56:22 »
Mám dojem, že máš odpověď bez oholedu na to, co Ti kdo napíše. Jaké normy? V IT normy zatím nejsou. V programování už vůbec. Jaká praxe? Praxe programátora? Nemůžeš čekat, že ze školy vyleze hned hlavní programátor (to je název pozice).

Opravdu v IT žádné normy nejsou? Jsi si jistý? Co takhle zkusit trochu pohledat?

Heh? Pokud je to týmová práce, tak snad jen jeden musí rozumět řešeni. Jeden dělá grafiku, jeden docs, 1 programuje podle zadání, jeden to vede.
Koukám, že to máš pěkně a jednoznačně nalajnované. Myslíš že to nejde jinak? Já bych řekl, že existuje spousta možností, jak týmovou "semestrálku" pojmout tak, aby dala studentům, kteří mají otevřené oči a i mysl, hodně do jejich profesního života. To co píšeš opravdu nepatří mezi takové přístupy.

JS

Re:Otázky o programovaní
« Odpověď #14 kdy: 08. 08. 2013, 09:37:41 »
Opravdu v IT žádné normy nejsou? Jsi si jistý? Co takhle zkusit trochu pohledat?

Tak zkuste pohledat a pak nam napiste, jak to dopadlo a co jste nasel. Takhle je to argument o nicem.