Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: vyvojar 21. 12. 2011, 19:47:30
-
Zajímalo by mě, jak začínáte s nějakou novou technologií, když ji chcete někde použít. Např. phpčkar bude muset udělat projekt v ASP.NET MVC 3. Dejme tomu, že už umí např. c#. Zakempíte se třeba na týden s nějakou knihou a internetem a projdete třeba 80% reference guide, různých manuálů atd., nebo spíš hledáte ekvivalence k tomu, jak to řešíte v tom, co už umíte? Tím druhým způsobem ale člověk zase moc nevyužije ten potenciál té nové technologie, protože vlastně neví, co mu všechno nabízí, že. Já že některé ty platformy jsou fakt brutální, viz. např php(nette, zend) vs. Java EE (Servlety, Jsp, ejb,....), takže si fakt nejsem moc jistý, jak vůbec postupovat. Sry za možná poněkud debilní dotaz :)
-
Asi podle toho, o jaké technologie jde, jak moc příbuzné věci znám a jaké mám plány.
Pokud potřebuju udělat něco jednorázově v nějakém, pro mě novém, jazyce, ale neplánuju ho používat dál a zdokonalovat se v něm, pak se budu snažit v maximální míře dělat věci "tak, jak je umím" a využívat copy&paste.
Pokud se v jazyce plánuju zdokonalovat a je podobný něčemu, co už znám, pak se snažím pochytit hlavní rozdíly a studovat vzorová řešení něčeho, co už znám.
Pokud je to pro mě zcela novinka, tak začínám papírovým studiem a pak přibírám různé "hello world".
-
Já jen doplním, že tím copy and paste se také hodně naučí, protože ono to paste většinou hned nefunguje tak, jak si člověk představuje a je nutné to přiohnout, takže se začne v tom šťourat co a jak, než se podaří výsledek ... a pro příště je člověk už moudřejší. ;)
-
Vezmem nieco co aspon vzdialene pripomina moj problem a snazim sa to osedlat. Potom pripisujem dalsiu funkcionalitu.
Nakoniec to cele zmazem a idem od znova.
Hlavne zo zaciatku je potrebne mat silu nicit inak vytvoris kockopsa.
-
Nakoniec to cele zmazem a idem od znova.
Heh, ja presne takto programujem. Skusam, az kym to ako tak nejde podla mojich predstav. Potom si vytvorim novy projekt a zo stareho preberiem vacsinou len filozofiu, a pisem nanovo, tak aby to bolo jednoduche a rychle.
-
Nakoniec to cele zmazem a idem od znova.
Heh, ja presne takto programujem. Skusam, az kym to ako tak nejde podla mojich predstav. Potom si vytvorim novy projekt a zo stareho preberiem vacsinou len filozofiu, a pisem nanovo, tak aby to bolo jednoduche a rychle.
Prototypy jsou dulezity :-)
-
Je to trochu mimo, ale npíšu to sem.
Pár dní zpět jsem potřeboval zjistit jaké fotky mám v NTB a jaké na desktopu a udělat nějakou synchronizaci. rsync mi přišel jako dobrá volba, ale soubory mohly mít jiný čas (podle kterého rsync jede) nebo nemusely být na jednom stroji kompletní. rsync -c dělá checksum souborů a tím pádem by se mi o tohle postaral.
Ale mluvíme tady o Intel Atom v NTB (u kterého jsem seděl) a připojení přes wifi, cca 20GB dat a mojí lenosti.
Řešení ve zkratce - md5sum na obou strojích všeho a do souboru, diff souborů s md5 součty, vyseknutí jen cesty z předchozího příkazu, použití rsyncu spolu s cestou ke konkrétním souborům.
Prasil jsem se s tím hodinu, nakonce šlo o 30 fotek a udělal bych to ručně za 5 minut. Ale vyřešil jsem to systémově. Takhle se snažím i řešit případný kód. Spíš myslet na to, že to bude do budoucna chtít víc, ež to pak dodělávat.
Při aplikování nové technologie (fuj, to zní blbě) to mám tak, že si počtu nějaké základy, nejlépe i s příklady, a pak to začnu plácat dohromady. První věc tahle udělaná stojí sice za prd, ale už v ní člověk stihne vychytat nebo vylepšit spoustu věcí. Učím se hlavně z příkladů, teorie je mi k ničemu.
-
Pokud jde o C#, tak tam jsem zacal tak ze jsem si nainstaloval monodevelop. V jeho dokukentaci je i specifikace jazyka C#. Ta specifikace je akorat husta a vyzivna. Nejsou tam zbytecny kecy navic ani neni prilis strucna. Narozdil od C++ se specigikace C# da projit za den.
A pak doporucuju cist zdrojaky, cist zdrojaky a zase cist zdrojaky. Pokud se budes snazit v C# uplatnit postupy, ktery znas z PHP tak se daleko nedostanes.
-
ja bych to shrnul, ze jsou podle me dva zakladni pristupy.
1) predbezne studium literatury a studium detailu, pak zacit budovat slozity software a zpetne opravy predeslych casti.
2) rychla tvorba malinkatych projektiku na vyzkouseni hello world, postupne nacitani literatury podle toho co zrovna potrebuju,
zahazovani projektu a tvorba novych s novymi znalostmi.
-
A kdyz uz jsme v tom tak kolik vam tak v prumeru trva si nove znalosti osvojit na pouzitelnou uroven. Chapu, ze se to bude lisit v zavislosti na predchozich zkusenostech etc. ale zajima mne to jen orientacne.
-
kdyz pouziju kusy cizich zdrojaku tak to jde rychleji :-)
-
A kdyz uz jsme v tom tak kolik vam tak v prumeru trva si nove znalosti osvojit na pouzitelnou uroven. Chapu, ze se to bude lisit v zavislosti na predchozich zkusenostech etc. ale zajima mne to jen orientacne.
Když jsem se učil PHP, tak během prvního dne jsem měl přečtenou knihu od Koska a v průběhu následujícího dne jsem přepsal svůj statický web na dynamický. V mém případě to tedy trvá cca 2 dny, než si osvojím základy neznámého jazyka na použitelnou úroveň. Samozřejmě pak přicházím na další a další vlastnosti.
Základy Lispu jsem se naučil během několika málo hodin, ale jeho pravou podstatu jsem pochopil až po několika měsících různých experimentů. A stejně si myslím, že například ohledně maker se stále mám co učit. Syntaxe je jednoduchá, ale překonat zažitá paradigmata je mnohem obtížnější.
-
to Kit:
A troufnul by sis s takto nabytymi znalostmi po dvou dnech zadat o misto PHP admina/programatora byt i treba na juniorske pozici?
-
to Kit:
A troufnul by sis s takto nabytymi znalostmi po dvou dnech zadat o misto PHP admina/programatora byt i treba na juniorske pozici?
Já? Ano. Například Ruby neumím, ale za 2 dny jsem schopen se ho naučit tak, abych ho mohl používat a psát v něm aplikace. Je to jak s lingvisty: Prvních pár jazyků je obtížných, ale ty další jdou už tak nějak samy. PHP umím, o takové místo bych mohl žádat klidně hned.
-
Tak to je hodne slusny :). Taky bych rekl, ze je to hlavne o tom, naucit se premejslet a ta syntaxe uz je pak malickost. Nicmene u mne je problem prave ta syntaxe. Mam zaklady X-jazyku, ale nic neumim ani vzdalene na nejaky rozumne pouzitelny urovni. Ne ze bych chtel byt teda profesionalni programator, to ne, ale obcas se to hodi. Mysleni mi problem nedela, vzdycky jsem patril k nejlepsim a spise jsem vysvetloval ostatnim jak na to, nicmenenemuzu najit rozumnej system, jak se naucit postupne to nejdulezitejsi s rozumnym pomerem teorie i praxe zaroven. Vzdycky to dopadne tak, ze po vstrebani zakladu vytuhnu pred branou zajimavosti, protoze mne proste nenapada co za program udelat a kdyz uz neco vymyslim tak vetsinou vykysnu na nejaky pytlikovine trivialni co neumim udelat :) Asi je dobre se stat clenem nejakeho fora kde se clovek muze pripadne poptat.
-
A kdyz uz jsme v tom tak kolik vam tak v prumeru trva si nove znalosti osvojit na pouzitelnou uroven. Chapu, ze se to bude lisit v zavislosti na predchozich zkusenostech etc. ale zajima mne to jen orientacne.
Když jsem se učil PHP, tak během prvního dne jsem měl přečtenou knihu od Koska a v průběhu následujícího dne jsem přepsal svůj statický web na dynamický. V mém případě to tedy trvá cca 2 dny, než si osvojím základy neznámého jazyka na použitelnou úroveň. Samozřejmě pak přicházím na další a další vlastnosti.
Základy Lispu jsem se naučil během několika málo hodin, ale jeho pravou podstatu jsem pochopil až po několika měsících různých experimentů. A stejně si myslím, že například ohledně maker se stále mám co učit. Syntaxe je jednoduchá, ale překonat zažitá paradigmata je mnohem obtížnější.
Ahch jo, taky bych chtel byt takovy krasny, skvely a chytry, jako ty
-
mi radeji s nicim novym nezaciname ...
-
Taky bych rekl, ze je to hlavne o tom, naucit se premejslet a ta syntaxe uz je pak malickost.
Je to hlavně o tom se naučit přemýšlet v paradigmatu použitého jazyka. Jinak musíš přemýšlet v PHP, SQL, XSLT, Lisp, Lua apod. Každý je dobrý na něco jiného a často je vhodné je mezi sebou v rámci jedné úlohy kombinovat. Ovšem nesmí se to přehnat.
Schválně jsem nejmenoval C/C++ a Javu, protože je nemám rád. Programátor se v nich neustále pere se syntaxí, místo aby programoval. Na můj vkus jsou prostě příliš nízkoúrovňové.
-
Já? Ano. Například Ruby neumím, ale za 2 dny jsem schopen se ho naučit tak, abych ho mohl používat a psát v něm aplikace. Je to jak s lingvisty: Prvních pár jazyků je obtížných, ale ty další jdou už tak nějak samy. PHP umím, o takové místo bych mohl žádat klidně hned.
Ackoliv si myslim, ze trosku prehanis, tak Ti musim dat v obecne rovine za pravdu. Kdybych nebyl na druhe strane stolu, ale mel bych ja vybirat programatora, tak bych spis vzal cloveka, ktery umi psat v PHP, C, Pythonu, Lispu a *chce* se naucit psat v Lua, nez nekoho, kdo mi rekne ze v nicem jinem nikdy nedelal, nebo hur, delal v Jave a rekni mi, ze "se ji teda nauci". Bohuzel, personalisti jsou trotlove a na "umi Lua? ano/ne" vyhodi ty nejlepsi.
(Lua je neutralni priklad. V realu by tam byla Java a pochybuji, ze nekdo, kdo pise ve Schemu by se sel ucit Javu. No jo, no, 95% manazeru jimi nemaji byt.)
</rant>
-
Je to jak s lingvisty: Prvních pár jazyků je obtížných, ale ty další jdou už tak nějak samy.
Tohle platí pro syntaxi. Ta se skutečně takhle rychle zvládnout dá, ale něco jiného jsou „slovíčka“ – i když pochopíš principy, na kterých ten jazyk stojí, pořád se musíš naučit spoustu slovíček (hodně toho může vycházet z latiny nebo jiných jazyků, které už znáš, ale stejně se musíš naučit ty odlišnosti, jinak budeš mluvit jako tatar). A u programovacích jazyků se musíš naučit standardní knihovnu + některé nestandardní, ale obvyklé, knihovny. Nemusíš vědět zpaměti sice názvy všech tříd, metod, funkcí, ale musíš vědět, které knihovny existují (a co si musíš napsat sám nebo hledat v jinde) a kde je najdeš. Při programování aplikací totiž nestačí umět napsat třídící algoritmus v daném jazyce, ale musíš umět komunikovat s databází, se souborovým systémem, se sítí atd. atd. Znát různé záludnosti (některé postupy budou při větší zátěži nepoužitelné, byť vypadají na první pohled skvěle, jinde zase třeba musíš ošetřit ručně synchronizaci pro přístup z více vláken atd.) a fígle (co jsi byl zvyklý psát zdlouhavě ručně, jde v tomhle jazyce vyřešit elegantně zavoláním jedné metody atd.). A spousta dalšího… Tohle se rozhodně za dva dny naučit nedá.
Na druhou stranu, jestli se ucházíš o juniorskou pozici, kde nebudeš mít na starosti návrh, ale jen plnit úkoly někoho zkušenějšího, tak se s takovými znalostmi asi uspět dá, protože ostatní uchazeči to udělají podobně (v životopisu vyjmenují technologie, o kterých byť jen slyšeli), zaměstnavatel s tím více méně počítá.
-
Je to hlavně o tom se naučit přemýšlet v paradigmatu použitého jazyka. Jinak musíš přemýšlet v PHP, SQL, XSLT, Lisp, Lua apod. Každý je dobrý na něco jiného a často je vhodné je mezi sebou v rámci jedné úlohy kombinovat. Ovšem nesmí se to přehnat.
Schválně jsem nejmenoval C/C++ a Javu, protože je nemám rád. Programátor se v nich neustále pere se syntaxí, místo aby programoval. Na můj vkus jsou prostě příliš nízkoúrovňové.
To je jedna vec. Druha, mnohonasobne slozitejsi, vec je psat pekny, prehledny, lehce udrzovatelny kod. Vetsina programatoru zvladne jen tu prvni vec.