Jump to content

Ar ko sākt, lai kļūtu par LABU programmētāju?


Gaisma
 Share

Recommended Posts

Pirms 9 minūtēm , rnxx teica:

Kāpēc tieši šos?

palasi, tad sapratīsi. Tas ir augstskolas kurss programmēšanā. Pasniedzējs pats daudzus gadus ir bijis profesionāls programmētājs.

Labots - Mateushs
Link to comment
Share on other sites

2017.03.23. , 09:42, Gaisma teica:

Es gribu izaugt tā, lai varētu sevi saukt par labu programmētāju. 1. soli es daru - mācos 1. IT kursā, specialitātē - programmēšanas inženieris. Universitātē ieskatam esmu apguvusi C++, šobrīd mācos HTML, CSS, lieku kopā mājaslapu pēc vizuāla parauga. Tūlīt PHP sākšu apgūt. Bet universitātē mācītais ir tikai pats, pats pamats, ar to pietiks, lai es saprastu domu, kodu, bet ne lai labi kodētu, tur pašam daudz patstāvīgi jādarbojas. Prakse man būs tikai nākamgad, bet es vēlos praktiski vismaz mājās darboties tā, lai jau praksē varu sevi labi pierādīt. Tāpēc mans jautājums Jums - ar ko sākt? 

  • Es DevC++ varu vienkāršas programmiņas sastādīt, kas kaut ko aprēķina u.tml. Bet viņa turpat arī paliek. Bet vai es varu izdarīt kaut kā savādāk, kur es reāli jau to C++ ielieku iekšā - reālu programmu uztaisīt priekš sevis?
  • Es gribētu pamēģināt izveidot mājaslapu. Par wordpresiem u.tml. zinu, bet es vēlos pati izveidot dizainu, kāda tā lapa izskatīsies, nevis iet pēc tā, ko piedāvā. Notepadā ir skaidrs kā rakstīs css un html, atveru sevis uzrakstīto pārlukā, jā ir tā lapa, bet tā ir tikai man redzama, kā atvērts fails no mana kompja. Vai bez lieliem finanšu ieguldījumiem ir iespējams iesācējam izveidot mājaslapu, kuru reāli varu izmantot? Cik saprotu, tādai ir jāpieliek klāt datubāzes ( ko vēl neesmu mācījusies, bet varu sākt ).
  • Varbūt ir kādi ieteikumi?

 

Piebildīšu, ka nekad iepriekš netiku domājusi iet uz IT, mani tas neuzrunāja līdz brīdim, kad tomēr "apstākļu spiesta" aizgāju studēt IT un man tiešām iepatikās un joprojām patīk, bet mīnuss - man nav nekādu priekšzināšanu kā citiem kursa biedriem, jo neko vairāk par wordu, exceli, powerpointu nebiju darbinājusi līdz šim (tāpēc, lūdzu, nebrīnieties par pavisam elementāriem jautājumiem :))) )

 

Paldies par Jūsu laiku!

Sāc izdomāt, rakstīt un uzlabot dažādas programmas. Izdomā uzdevumu, kas Tev šķistu interesants un raksti.

  • Kādas šausmas! 1
Link to comment
Share on other sites

1 stundu atpakaļ, rnxx teica:

Esi pabeidzis augstskolu?

Studēju, bet aizgāju, jo sapratu, ka tas, ko māca augstskolā, nav priekš manis. Piemēram, studējot operētājsistēmas, es gribēju saprast operētājsistēmas kā tādas, nevis bakstīties Windows sistēmas opcijās, kuras drīz mainīsies...

Labots - Mateushs
Link to comment
Share on other sites

2018.12.11. , 11:26, usver teica:

 

 

Latvieši jau tagad ik pa laikam medaļas dabūn - jo sevišķi skolēni. Tev nešķiet, ka pie 70 reižu lielāka latviešu skaita (lai būtu līdzvērtīgi kā Krievijā) būtu vēl lielāka konkurence, izkristalizētos labāka infrastruktūra un viņi brauktu mājās ar pilniem spaiņiem medaļu?

Tā kopējā kultūra Latvijā ir pakaļā, augstskolās reflektantu skaits ir niecīgs, uz tehniskajām profesijām vēl mazāks, līmenis slīd uz leju (nāk tādi ar pirkstiem gaisā, kam viss ir labi arī tāpat un nav motivācijas springt), un pasniedzēji ir spiesti pielāgoties kopējam līmenim, lai neizlidinātu studentus un nezaudētu budžeta naudu uz to gadu. Labi, ka LU vēl cenšas līmeni turēt.

 

Es esmu runājis ar RTU studentiem - tur ir daudz fakultāšu, un tur ir nopietnas problēmas ar apmācību. Reāli nopietnas. Studenti ar RTU diplomu, kas gandrīz nemaz nemāk programmēt, Java nav redzējuši vispār. Es kaut kad arī kaut ko RTU pasniedzu epizodiski, un tāpēc biju pārsteigts. Tev tiešām šķiet, ka aizvietojot vienu pavirši apgrābstītu valodu ar otru pavirši apgrābstītu valodu, kaut kas mainīsies?

 

 

Nē, es tiešām nedomāju, ka ja latviešu būtu 70 reižu vairāk, mēs būtu labāki programmētāji. Līmeni nosaka nevis kvantitāte, bet sagatavošanas kvalitāte. Varbūt nevis jauno studentu līmenis ir zems, bet gan pasniedzējiem ir vērts padomāt par to, lai pasniegtu priekšmetus tā, ka studenti tos saprot? Manuprāt, ir vērts padomāt par to, lai, piemēram, tai pašā programmēšanā mācītu nevis kaut kādu valodu (kaut kādu iedomātu iemeslu dēļ; populāra, plaši izplatīta u.t.t.), bet gan programmēt!! Es saredzu problēmu tieši tanī faktā, ka skolās nesagatavotiem cilvēkiem, daudzi no kuriem pirmo reizi sastopās ar programmēšanu, māca nevis programmēt, bet reāli smagas valodas bāž galvā: Java, C++ u.t.t. Jautājums: priekš kam? Turklāt māca pēc principa: es savu lekciju nolasīju, savu sakāmo pateicu, bet vai jūs sapratāt - jūsu problēma. Laikā, kad studēju, neredzēju nevienu studentu ar "pirkstiem gaisā" (kaut gan, protams, ka tādi varētu būt), taču man ir daudz jautājumi par to, kā tiek pasniegts. Un, zinot, kā augstskolās pasniedz, mani nepārsteidz tas, ka daudzi cilvēki pēc augstskolas nemāk programmēt. Var smīnēt par Pascal valodu, cik grib (turklāt bez  novecojušā Turbo Pascal ir arī Free Pascal), bet tā savulaik tika radīta tieši tāpēc, lai mācītu cilvēkiem programmēt. Tā netika radīta, lai profesionāli tajā programmētu (kaut gan arī tas ir iespējams), bet gan tāpēc, lai mācītu cilvēkus, ar vienkāršas valodas palīdzību skaidrojot programmēšanas pamatus. Paņemam kaut vai standarta programmu "Hello, world!", ar kuru sākās programēšana, Pascal valodā un C valodā; starpība pierakstā ir būtiska. Man augstskolā bāza citu valodu, taču jēga no tā nemainās; Pascal ir labākais iesācējam. Pēc sevis zinu; ja nebūtu Pascal, augstskola mani aizbaidītu no programmēšanas. Un, smejoties par Turbo Pascal, der atcerēties, ka MS-DOS (kurā mūsu pasniedzēji māca programmēt), jau savus gadus 20 ir pagātne.

Labots - Mateushs
Link to comment
Share on other sites

PlayingTheSaint

1) par tām 70 reizēm var paskatīties uz lieliem un maziem uzņēmumiem
2) pythons

Link to comment
Share on other sites

pirms 4 stundām , Mateushs teica:

Kas labi zina krievu valodu, iesaku šos materiālus: http://stolyarov.info/books/programming_intro

 

1 stundu atpakaļ, Mateushs teica:

Nē, es tiešām nedomāju, ka ja latviešu būtu 70 reižu vairāk, mēs būtu labāki programmētāji.

 

es atvainojos .. Tu tagad kasies kasīšanās pēc? Realcoding.net, opennet.ru - sameklē, lūdzu, analoģiskus portālus latviski ar tutoriāļiem un diskusijām par visdažādākajām tēmām un tūkstošiem lietotāju. Es šitos pirms gadiem padsmit atradu, noteikti ri vēl kaudze. Tev tiešām nepielec, ka krieviski ir nenormāla sabiedrība, kas veicina attīstību pirmkārt jau ārpus visām augstskolām? Grāmatas vietējā valodā, lai padsmitgadnieki varētu lasīt un sākt? Sabiedrības apkārt tām grāmatām? Tutoriāļi? Youtube kanāli ar auditoriju? Sabiedrība veicina jauno kadru piesaisti.

 

1 stundu atpakaļ, Mateushs teica:

māca nevis programmēt, bet reāli smagas valodas bāž galvā: Java, C++ u.t.t. Jautājums: priekš kam?

Tad redz, kur tas suns aprakts - cilvēks nav C++ varējis iemācīties.

Nu okei - tātad ir arī tādi. Es nebūtu pats iedomājies, ka sākt ar C++ būtu problēma. Iemācījos - sākumā tajā pašā linuksī lika visu darīt. Īsti nesaprotu, ar ko DOS sliktāks par bash, ja tur tāpat GUI ar GTK/Qt iesācējam neredzēt kā savas ausis. GUI iemācījos pielikt klāt ar Win32 API un pēc tam MFC un pēc tam citiem freimvorkiem. Pēc tam C#. Nenomiru. Cits vordpresu iemācīsies uzlikt un sūdzēsies, ka skolā sūda c++ un sūda paskāli vien māca, vot vordpress - tā ir īstā manta, kas ļauj ieraudzīt darba rezultātus un nopelnīt reālu naudu, nevis melnus logus tik programmēt. Un to vien sludinās - tieši tikpat aizvainotā tonī. Tā vietā, lai iemācītos, ko skolā liek un izmantotu to kā starta pozīciju, lai apgūtu to, ko skola dod, nozīmētos pasniedzējiem, cik tālu patiesībā var viņu priekšmetu attīstīt. Augstskolu vismaz pabeidzi? Vai izkriti un tagad klāstīsi, ka augstskolas ir sūds?

 

ok, atradu atbildi. un tagad ar ko pelni iztiku, ko taisi, kādos uzņēmumos vai kādiem klientiem? kāds lietotāju skaits un kā sanāk?

pirms 3 stundām , Mateushs teica:

Studēju, bet aizgāju, jo sapratu, ka tas, ko māca augstskolā, nav priekš manis.

Labots - usver
  • Patīk 1
Link to comment
Share on other sites

Inspektors Caps

Mateushs, pēdējais MS-DOS bāzētais Windows bija Windows ME. NT platforma, kas mājas lietotājiem sākās ar Windows XP, ir no paša sākuma būvēta ar multithreading, virtuālo atmiņu un pārējiem modernas lielās OS principiem. Man ir aizdomas, ka Tu patiesībā runā par komandrindas interfeisu un konkrēti cmd.exe, bet sauc to par MS-DOS, kas ir auzās, jo MS-DOS ir operētājsistēma. Tās komandrindas programmas nekādi nav uzskatāmas par DOS programmām, jo lielākā daļa lietu, kas strādāja DOS, tur nestrādā, bet Windows API strādā viss.

 

Programmēšanas industrijā ir fundamentālas kļūdas un haoss gan globāli, gan jo īpaši Latvijā. Pati fundamentālākā kļūda - programmēšana tiek uzskatīta kā tāda matemātikas apakšjoma. Patiesībā programmēšana ir inženierzinātne, kurā matemātika ir nozīmīga, bet tas ir tikai viens no instrumentiem! Olimpiādes parāda tikai matemātiskās un algoritmiskās domāšanas spējas, bet tas vēl nekādi nenozīmē, ka esi labs programmētājs. Latvijas augstskolās labā līmenī iemāca matemātiku un algoritmus. Nedaudz apgrābsta C++/C#/Java, SQL, datortīklus un kaut ko no web tehnoloģijām. Ak, jā - un sabāž čupām visādu projektu vadību, sistēmu modelēšanu, automatizētu koda ģenerēšanu un citu teorētiķu glupību. Toties daudz tēmu, kas būtu obligātas visiem programmētājiem, nemāca vispār. Piemēram:

  • C (nevis C++) programmēšanas valoda. Gan tādēļ, ka tā ir lielākās daļas aktuālo programmēšanas valodu sintakses māte, gan tādēļ, ka tā ir visur no 8-bit mikrokontrolieriem auto signalizācijas pultīs līdz superdatoriem. Faktiski "pasauli" darbina C.
  • Programmas koda arhitektūras un kārtīga koda veidošanas principi.
  • Operētājsistēmu kerneļu darbības principi.
  • Daudzpavedienu programmēšana.
  • Grafisko interfeisu programmēšana.
  • Lietotāja interfeisu ergonomika. (Windows 8..10 ir labs piemērs pie kā noved šīs jomas ignorēšana)

  • Lietotāja un ārēju sistēmu ievades apstrāde.

  • Tīkla protokolu un failu formātu veidošana un parsēšana.

  • Konfigurācijas datu glabāšana un pielietošana.

  • Datu integritāte, autentifikācija un šifrēšana.

  • Digitālā signālu apstrāde.

  • Datorsistēmu arhitektūra.

  • Atmiņu tipu īpašības un lietošana - SRAM, DRAM, EEPROM, flash, magnētiskie, optiskie u.c.
  • Draiveru izstrāde.

 

Tādiem speciālistiem diplomā varēs lepni rakstīt "programmēšanas inženieris", jo viņi būs spējīgi radīt reālus produktus. Bet tādiem, kādus augstskolas ražo tagad, var rakstīt tikai "proglameris".

Labots - Inspektors Caps
Link to comment
Share on other sites

Pirms 5 minūtēm , Inspektors Caps teica:

Toties daudz tēmu, kas būtu obligātas visiem programmētājiem, nemāca vispār. Piemēram:

  • (..)
  • Daudzpavedienu programmēšana.
  • (..)
  • Lietotāja interfeisu ergonomika. (Windows 8..10 ir labs piemērs pie kā noved šīs jomas ignorēšana)

  • (..)

  • Datu integritāte, autentifikācija un šifrēšana.

Pirms kādiem 10 gadiem RTU prof. bakalaurā daudzpavedieni bija kā izvēles priekšmets - vai nu lielās sistēmas, vai šitais. Ja atmiņa neviļ, tad Ada (sen tas bija, varbūt kļūdos). Jāatzīst gan, ka viss nenormāli izstiepts laikā - to, ko vajadzētu izkost nedēļas-divu laikā un pēc tam vairākus mēnešus nostiprināt, lēnām vilka visu semestri.

 

Par ergonomiku nepiekritīšu (Win 8, Win 10 sakarā).

 

Šifrēšana bija. Negribējās iet uz tām lekcijām (darbs bija ar to jomu saistīts) - uzrakstīju AES implementāciju iekš PHP, uztaisīju kaut kādu prezentāciju, tiku atbrīvots no lekcijām un pārbaudes darbiem.

Link to comment
Share on other sites

Pirms 9 minūtēm , binary teica:

Daudzpavedienu programmēšana.

Ko domā ar daudzpavedienu programmēšanu? Parastu multithreadingu?

Man universitātē bij modulis "Parallel computing", daudz teorijas par skalāriem processoriem, multi procesoru sistēmām, klasteriem utt. Kautkāda matemātiska analīze, lai noteiktu cik labi algoritms piemēram skeilojas, parallelizācijas pakāpe un punks kad tas jau ir bezjēdzīgi.

Labaratorijas darbos bij jātaisa kautkādi algoritmi izmantojot OpenMP, MPI, Cuda utt, vai vēl labāk visus kopā, un tad viss matemātiski jāanalizē.

 

Manliekas ka par šo jau tiek runāts vismaz kādu 3 reizi pēdējā gada laikā.

 
Labots - AndrisBB
Link to comment
Share on other sites

Vispār ja padomā, tad bij interesants modulis. Piemēram matemātiski analizēt, kas būs ātrāk, ja piemēram no auto datubāzes jāatlasa visus Fordus ražotus no 2002. gadā un ir pieejami 8 threadi.

Kā labāk darīt? Kurš no variantiem labāk skeilojas.

Sadalīt datubāzi 8 daļās un tad katram threadam iedot gabalu, no kura izlasa Fordus, no kuriem izlasa 2002 gadu, tad beigās visus rezultātus savieno gala rezultātā.

Vai arī 4 threadi meklē Fordus, otri 4 meklē 2002 gadu, tad beigās rezultātus "krusto", lai dabūtu gala rezultātu.

Vai arī ieviest kautkādu pipeline, kur viens threads ņem kautkādu gabalu, izlasa Fordus, padod tālāk nākamajam kurš izlasa 2002.gadu un padot tālāk threadam, kurs merdžo rezultātus utt.

Labots - AndrisBB
Link to comment
Share on other sites

pirms 10 stundām , Inspektors Caps teica:

Programmēšanas industrijā ir fundamentālas kļūdas un haoss gan globāli, gan jo īpaši Latvijā. 

Nez vai tikai te, es nespriežu par industrijas kvalitāti, bet ja cilvēks var iedot F# taisītu darba gabalu ar 60000 rindiņām bez neviena komentāra, kaut mācās mağistra programmā ne LV, turklāt labā augstskolā un pateikt; sīkums, tad.... kādas vēl tālākas diskusijas? 

pirms 9 stundām , binary teica:

Pirms kādiem 10 gadiem RTU prof. bakalaurā daudzpavedieni bija kā izvēles priekšmets - vai nu lielās sistēmas, vai šitais. Ja atmiņa neviļ, tad Ada (sen tas bija, varbūt kļūdos). Jāatzīst gan, ka viss nenormāli izstiepts laikā - to, ko vajadzētu izkost nedēļas-divu laikā un pēc tam vairākus mēnešus nostiprināt, lēnām vilka visu semestri.

ADA laikam tagad tur ir izvēles, turklāt diez vai tajā tas bija kā obl minimums.  Vispār tā par nožēlu diezgan nektuāla, bet ideja lieliska, ļoti patīkams striktums un noteiktība prasībās.

Kriptogrāfija, nuja, tur pat ja labi mācās labā skolā, darbā ir augstākas prasības un ļoti daudz jāmācās papildus. 

Fordiem, tur DB apstrāde ar vienu proci, kam tikai 8 threads diez vai praksē  notiek.

Link to comment
Share on other sites

pirms 1 stundas , rnxx teica:

Fordiem, tur DB apstrāde ar vienu proci, kam tikai 8 threads diez vai praksē  notiek.

Tas bij tīri teorētisks un mikroskopisks piemērs, threadu vietā vari iedomāties atsevišķus processorus, klasterus (datorus) vai kautkādu custom hārdwari. No analizēšanas viedokļa nekas nemainas, metodes tās pašas.

Link to comment
Share on other sites

pirms 1 stundas , rnxx teica:

Nez vai tikai te, es nespriežu par industrijas kvalitāti, bet ja cilvēks var iedot F# taisītu darba gabalu ar 60000 rindiņām bez neviena komentāra, kaut mācās mağistra programmā ne LV, turklāt labā augstskolā un pateikt; sīkums, tad.... kādas vēl tālākas diskusijas?  

Par F# nemācēšu teikt, bet ar komentāriem ir tāpat kā ar operētājsistēmām, proču ražotājiem, būvmateriāliem utt - ir dažādas nometnes. Vieni uzskata, ka kods bez komentāriem jau pēc definīcijas ir nekvalitatīvs, savukārt citi uzskata, ka kodam pašam par sevi ir jābūt labākai dokumentācijai nekā jebkuram komentāram (kurus, starp citu, ir grūtāk uzturēt nekā kodu).

 

pirms 11 stundām , AndrisBB teica:

Ko domā ar daudzpavedienu programmēšanu? Parastu multithreadingu?

Domāju, ka pē komentāra jau bija skaidrs, ko un kādā līmenī tur pasniedza :D

Link to comment
Share on other sites

Pirms 50 minūtēm , AndrisBB teica:

No analizēšanas viedokļa nekas nemainas, metodes tās pašas.

Atlasot konkrēto gadu ( 2002 ), pēc tam apstrādājamo datu daudzums būs mazāks, nekā atlasot visus Fordus. Līdz ar to manuprāt skaitļošanas resursus izdevīgāk sadalīt asimetriski, nevis 4 + 4 variantā. 

 

Labots - rnxx
Link to comment
Share on other sites

Jāskatās, kā sakārtoti dati.

Ja inidkatora ieraksts ir auto numurs, pēc tam pārējais ieraksta saturs, tad par periodu, piem 1992 - 2018 būs ļoti daudz datu ko analizēt. Tad resursu visu fordu atlasei vajadzēs vairāk nekā tikai konkrēta gada auto marku analīzei. 

Ja indikatora ieraksts ir gads, tad savādāk; gadā, piem reğistrēto auto atlase būs ātrāka, tālāka atlase lēnāka. Kaut kā tā. 

Tātad, vispirms, kā veidota DB ierakstu sistēma? 

 

 

Link to comment
Share on other sites

Tu tagad novirzies no tēmas un iedziļinies detaļās kurām, vairs nav sakara ar multiprocesu skaitļošanas analīzi. Tā 2002. gada vietā var būt kautkas daudz sarežģītāks vai tā vispār var nebūt nekāda datubāze, bet process kas kautko skaitļo un izdod rezultātus.

Tā virspusēji skatoties, te interesē tikai tas cik ilgi aizņems katrs process, cik ilgi aizņems datu padošana nākamajam procesam, cik ilgs laiks tiks zaudēts tā visa sinhronizācijai - kautkādi processi aizņems mazāk laiku, nekā citi un nāksies gadīt, vajadzēs noteikt "critical path", kā tiks šārēta atmiņa (abstrakta - nav obligāti RAM), katram processam sava vai kautkāds kopējs reģions. utt.

Datubāzes kā tādas struktūra un optimizācija jau ir cita zinātne.

Labots - AndrisBB
Link to comment
Share on other sites

Ir sakars, jo asimetriska resursu izdale problēmu risinājumiem ir ikdienas vajadzība. Viena lieta ir programmēt mikrokontrolierus, nedaudz cita ir datu analīzes zinātne. 

Ja mēs paņemam auto datus, kur, vienalga, 10% vai 30% auto būs Ford, par padsmit gadiem, tad ierakstu apjoma attiecības marka/gads būs svarīgas risinājuma ātruma matemātiskai analīzei PIRMS tērēt naudu programmētāju algošanai. 

Jebkura skaitļošanas procesu analīze ārpus teorijas vispirms atduras pret pasūtītāja vajadzībām un prasībām. Spēja izdalīt resursus TIKAI simteriski veicina tikai papildus ento kastu sakrāmēšanu servernīcās, lūk tāda nenovirzīšanās no tēmas.  

Apsveicami, ka vismaz Big Data pieņemts problēmu vispirms analizēt matemātiski un izmantot sistēmanalītiķus pirms sākt programmēt risinājumus. 

 


Pirms 19 minūtēm , AndrisBB teica:

 

Tā virspusēji skatoties, te interesē tikai tas cik ilgi aizņems katrs process, cik ilgi aizņems datu padošana nākamajam procesam, cik ilgs laiks tiks zaudēts tā visa sinhronizācijai

Jā, šim piekrītu. 

Link to comment
Share on other sites

Pirms 7 minūtēm , rnxx teica:

Viena lieta ir programmēt mikrokontrolierus, nedaudz cita ir datu analīzes zinātne.

Diskusija tak iesākās par multiprocessu, nevis datu analīzi, kas protams ir svarīga, bet šinī gadījumā nav tas kas tiek analizēts.

Es runāju par to ka tiek matemātiski analizēts tas, cik labi kopējā sistēma skeilojas, kāda ir parellizācijas pakāpe (kas ir viens no svarīgākajiem koeficientiem, ko parasti šeit rēķina), nevis datu optimizācija utt. Var jau optimizēt DB un analizēt tās struktūru, bet ne par to te iet runa. Kas notiek ja tu optimizēji to datubāzi, bet ar esošajiem resursiem vairs nepietiek, lai to apstrādātu un tiek pielikti vēl 8 processi? Te arī parallelizācijas koeficents pateiks cik tālu var iet un vai tas ir jēgpilni.

  

Link to comment
Share on other sites

Tik un tā kvalitatīva dokumentcija par DB un labi veikts darbs ievērojami  atvieglo izraces risinājumu izveidošanu. Jā, arī pašas izraces un tālākas analīzes risinājumus var optimizēt.

Paralelizācija, protams ir svarīga, to pareizi raksti. 

 

 

Link to comment
Share on other sites

Big Data ir tikai viena no nozarēm kur tas pielietojas.

Reku Wikipedijā ļoti īsi par pamatformulām, kuras pielietojas https://en.wikipedia.org/wiki/Analysis_of_parallel_algorithms

Protams Amazonā bezjēdzīgi daudz grāmatu par MPI, OpenMP, Cuda utt, lab darbos parasti jau izmanto kautādus praktiskākus algoritmus, kuri ir salīdzinoši CPU ēdoši, piemēram ģenerēt milzīgu Mandelbrot setu, tad izmanto tāspašas formulas, lai analizētu rezultātus.

 

Link to comment
Share on other sites

Inspektors Caps
pirms 15 stundām , binary teica:

Par ergonomiku nepiekritīšu (Win 8, Win 10 sakarā).

Nepiekrist ir Tavas tiesības, bet ergonomika ir objektīva un nomērāma. Kad mācījos, paņēmu priekšmetu "Cilvēka-datora interfeiss". Domāju, ka būs kaut kāda tufta, bet izrādījās viens no vērtīgākajiem priekšmetiem. Un tajā priekšmetā Windows 80 kā mājas darbs nedabūtu pat sekmīgu atzīmi! Ergonomikas feilu ir tik daudz, ka par to var sarakstīt bībeli. Īstenos ticīgos gan fakti tāpat nepārliecina, jo viņiem ir superarguments "dzīvot var". Varu tikai paturpināt, ka dzīvot var arī ar Windows XP, 95, 3.11, DOS, vispār bez datoriem, alā, kokā utt.

 

pirms 16 stundām , binary teica:

kā izvēles priekšmets

Tieši tas, ko es saku - svarīga lieta kā izvēles priekšmets, pie tam, izslēdzot ko citu, bet visādas tuftas kā obligātas. Šifrēšanu kā izvēles priekšmetu šur tur vēl drusciņ apmuļļā (lai gan vidējais koderis tāpat ir varbūt dzirdējis par AES, bet nezin pat to, kas ir ECB, CBC, GCM), bet no autentifikācijas un pat elementāras integritātes neviens nejēdz gandrīz vispār neko! Kas ir HMAC? Ar ko atšķiras CRC, MD, SHA? Fletcher-32 vs CRC-16? Pajautājiet šīs lietas un vidējais proglameris uz Jums skatīsies tā, it kā Jūs runātu ķīniešu valodā.

 

pirms 16 stundām , AndrisBB teica:

Ko domā ar daudzpavedienu programmēšanu? Parastu multithreadingu?

Jā, to pašu "parasto", kas dažādās operētājsistēmās ir pieejams jau gatavs no 90ajiem, bet 20 gadus vēlāk vēl ar vien to nejēdz pielietot pat ne 10% proglameru.

 

pirms 16 stundām , AndrisBB teica:

algoritmi izmantojot OpenMP, MPI, Cuda utt

MPI ir starpierīču paralēlā skaitļošana. Tas ir vajadzīgs ļoti mazai daļai - pārsvarā zinātnē un big data. Nedaudz lielākai daļai var noderēt OpenMP, OpeCL, CUDA, DirectCompute. Bet sākt varētu ar to, ka pilnīgi visiem obligāti iemācītu lietot vismaz SIMD instrukcijas, kas ir pieejamas jau no Pentium MMX laika.

 

pirms 16 stundām , AndrisBB teica:

skalāriem processoriem, multi procesoru sistēmām, klasteriem utt.

Tu domāji superskalāru (vairākas instrukcijas reizē)... :)Iepriekš minētie API un datu bāzes piemērs ir no matemātiskās apakšjomas un aktuāli tikai tad, kad ir vairāki kodoli/procesori. Bet vispār jau daudzpavedienu programmēšana ir aktuāla arī vienā atsevišķā ierīcē ar vienu procesoru ar vienu skalāru (pa vienai instrukcijai) kodolu bez matemātiski intensīviem aprēķiniem. AndrisBB, Tu taču zini, ka RTOS ir aktuāli pat mazos mikrokontrolieros. :) Un tāpat arī lielajos OS. Piemēram, pasen atpakaļ man bija jāuztaisa ne pārāk sarežģīta Windows programma, kas saņem datus no COM porta, saglabā tos failā un attēlo. Tikai attēlošanai ir jābūt formātā "slīdošais signāls" bez vizuāliem defektiem un vienmērīgi slīdošam. Tas izslēdza no spēles GDI un DirectDraw, jo tiem nav kadru sinhronizācijas un tad veidojas tearing defekts. Nācās iebraukt Direct3D, kam ir kadru sinhronizācija, kas realizēta kā bloķējoša IDirect3DDevice9::Present metode. Arī COM portam, gaidot datus ir jālieto bloķējoša WaitCommEvent funkcija. Tātad ir jāgaida šajās abās funkcijās plus kaut kam taču vēl ir jādarbina visa pārējā programmas loģika, GUI u.c. Vienīgais normālais risinājums ir datu saņemšanai no COM porta un renderēšanai ar Direct3D uztaisīt katram savu pavedienu. Uztaisīt pavedienu var arī pērtiķis, bet realizēt korektu starppavedienu sinhronizāciju spēj reti kurš. Lai to spētu, ir jāizprot muteksi, semafori, kritiskās sekcijas, eventi, pavedienu signāli, rindas, volatile mainīgie un, kā minimums, tādi jēdzieni kā race condition un deadlock. Velns, liela daļa nejēdz pat pareizi salikt pavedienu prioritātes! Rezultātā, ko mēs redzam apkārt? Pilns ar programmām, kam pie ilgākām operācijām GUI un viss pārējais sastingst, nestrādā Cancel, datu saņemšana notiek ar polling principu, kas lieki slogo CPU, tērē enerģiju un pie lielākām slodzēm sāk arī zaudēt datus.

Link to comment
Share on other sites

Pirms 16 minūtēm , Inspektors Caps teica:

Bet vispār jau daudzpavedienu programmēšana ir aktuāla arī vienā atsevišķā ierīcē ar vienu procesoru ar vienu skalāru

Es jau nesaku ka nav aktuāla, diendienā rakstu multipavedienu programmas (visādi d-bus dēmoni, lai no visādām python applikācijām, webesrveriem varētu kontrolēt hardwāri un saņemt eventus/datus utt).

Arī tagad priekš sava hobijprojekta (LoRaWAN geitvejs), kuram ir imx6ul vienkodola processors, lai maršrutētu paketes vajag kopumā kautkādus 6 paralēlus pavedienus (TCP, d-bus, GPS laika sinhronizācija, kurš laikam būs ķēpīgākais pasākums, jo uz radio muduļa cloks nedaudz drifto).

Labots - AndrisBB
Link to comment
Share on other sites

  • 1 month later...
2018.12.14. , 23:45, AndrisBB teica:

Piemēram matemātiski analizēt, kas būs ātrāk, ja piemēram no auto datubāzes jāatlasa visus Fordus

 

Ko tad viņi sacīja kā to var izrēķināt?


2018.12.15. , 09:34, rnxx teica:

 60000 rindiņām bez neviena komentāra

 

Tos komentārus praktiski neviens neraksta.  Varbūt vienīgi kādā "diplomdarbā" varētu būt tāda prasība.   

Link to comment
Share on other sites

pirms 10 stundām , MarisO teica:

Ko tad viņi sacīja kā to var izrēķināt?

 

Amazona daudz gramatas pieejamas par temu

Link to comment
Share on other sites

pirms 11 stundām , MarisO teica:

Tos komentārus praktiski neviens neraksta.  Varbūt vienīgi kādā "diplomdarbā" varētu būt tāda prasība.   

 

Studenti un frīlanceri varbūt var nerakstīt. Normālā kantorī par tādu izgājienu tīmlīds paņem bez vazelīna.

  • Kādas šausmas! 1
Link to comment
Share on other sites

Komentāri galīgi nav vajadzīgi, ja tu raksti normālus variabļu un funkciju nosaukumus, kas ir self-explanatory, nevis lieto a,b,c,a1,b1 u.t.t

Link to comment
Share on other sites

pirms 11 stundām , MarisO teica:

Tos komentārus praktiski neviens neraksta.  Varbūt vienīgi kādā "diplomdarbā" varētu būt tāda prasība. 

Es rakstu. Ne tāpēc, ka būtu tādas prasības, bet priekš sevis. Lai pēc kāda laika, atgriežoties pie programmas, lai kaut ko pamainītu vai uzlabotu, vai lai izmantotu konkrēto fragmentu kādā citā programmā, pats ātrāk atsauktu atmiņā savu tā brīža domu gaitu.

Link to comment
Share on other sites

Komentari noder, ja tiek veiktas kautkadas nesaprotamas darbibas.

Piemeram tagad kareiz darbojos pie protokola, kur dati tiek sutiti kopa ar video caur analogu signalu, tad digitalizeti.

Problemas rodas pie noteikta kabelu garuma (kautkur tuvu 50 metriem), pietam mainas, kad kabelis ir rulli vai taisni izstiepts (stradaju pie tada trubu inspekcijas aparata, kur kamera gala ljoti garam rullim), tapec nakas dinamiski mainit signalu treshholdus utt.

Bez komentarriem no iepriekseja koda autora man nebutu nekadu ceribu saprast kapec daudzas lietastur tiek daritas noteikta veida.

 

To visu dokumentet kautkada areja dokumentacija butu gruti, daudz logiskak ir pievienot izskaidrojumus tieshi vietas kur tas ir svarigi.

Labots - AndrisBB
Link to comment
Share on other sites

pirms 1 stundas , Pukinens teica:

Studenti un frīlanceri varbūt var nerakstīt. Normālā kantorī par tādu izgājienu tīmlīds paņem bez vazelīna.

 

Es nekad neesmu strādājis kantorī, kur cilvēki rakstītu komentārus,  kur nu vēl kāds prasītu , lai tos raksta.

Es tagad kodēju iekš clojure un visi var saprast, kas tur notiek.

 

 

pirms 2 stundām , AndrisBB teica:

Amazona daudz gramatas pieejamas par temu

 

kura?

Labots - MarisO
Link to comment
Share on other sites

Nu Māris kā parasti spridzina.

Self explaining vietās komentāri nav nepieciešami, bet ir tikai normāli, ka kodā ir komentāri. Tāpat, kā ir tikai normāli, ja projektā ir dokumentācija.

Bet nu ir jau mākslinieki kuriem visa pasaule ir idioti kas neko nesaprot.

  • Patīk 1
  • Atbalstu 1
Link to comment
Share on other sites

Pirms 3 minūtēm , MarisO teica:

 

Es nekad neesmu strādājis kantorī, kur cilvēki rakstītu komentārus,  kur nu vēl kāds prasītu , lai tos raksta.

 

 

A projekts, kur jāstrādā komandā un katrs ir atbildīgs par savu funkcionalitāti, ir bijis?

Link to comment
Share on other sites

Kodā taču viss uzrakstīts, kapēc tulkot no programmēšanas valodas uz angļu vai kādu citu? ?
Protams, ir reizes, kad kāds komentārs ir nepieciešams, tomēr tas ir samērā reti.
Komentāri noder, lai padarītu kodu skaistāku, strukturētāku vieglāk uztveramu, bet reti, kad tam atliek laiks.
Kaut cik nopietnu kodu, vispār bez komentāriem, nav gadījies redzēt.

Par tēmu: Lai kļūtu par labu programmētāju, ir jāsāk programmēt.

Labots - webi
  • Patīk 1
Link to comment
Share on other sites

1 stundu atpakaļ, TOoMoOT teica:

 

A projekts, kur jāstrādā komandā un katrs ir atbildīgs par savu funkcionalitāti, ir bijis?

 

Parasti taču strādā komandā,  vai tad nē?  

"katrs ir atbildīgs par savu funkcionalitāti"  -   tā jau gluži nav.   

Ja kāds kautko salaiž dēlī (kam negadās) neviens taču nepārmet to konkrētajam cilvēkam,  Kam ir laiks, tas to izlabo un viss OK  Savādāk tas būtu "toxic environment", kurā neviens negribētu strādāt.

Labots - MarisO
Link to comment
Share on other sites

Es esmu dzirdējis, ka komentāru rakstīšana ir "antipattern".

Viens no  "code smells"  ir "comments in code".    Tas ir uz vienas no šīm kārtīm    https://www.qwan.eu/shop    Es tās kārtis esmu redzējis. 

Iekš UK jums drīzāk varētu pārmest komentāru rakstīšanu un palūgt tos izdzēst.

 

Tāpēc man bija pārsteigums par to ka kāds varētu gribēt, lai kodā raksta komentārus.  ?    nu šeit ir cita valsts,  tas laikam to izskaidro.

tas ir "kultūršoks" , tikai iekš kodēšanas  LOL 

 

vai jūs to Test Driven Development praktizējiet?

TDD piekritēji saka ka nedrīkst rakstīt nekādu kodu, pirms nav uzrakstīts unit tests, kas to funkcionalitāti testē

Labots - MarisO
Link to comment
Share on other sites

1 stundu atpakaļ, MarisO teica:

ekš UK jums drīzāk varētu pārmest komentāru rakstīšanu un palūgt tos izdzēst.

Ko nu stasti mulkibas, varbut kautkada Banku/FinTech sectora, kautkadas strunta weblapas ta ir, bet ta it tikai neliela dalja no koda kas tiek rakstits.

Paskaties kas notiek kernelja, driveru, visadu sistemu, razoshanas iekartu limeni. Es rakstu kodu prieks ARM, Airbus, RollsRoyce un citiem lieliem un maziem klientiem, 70% gadijumu UK bazetu.

Komentari reizem tur ir nevis paris rindinjas, bet veselam lapam - 3 rindas koda un tad paris lapas ar komentariem, kapec ta, kautkadi tehniski skaidrojumi, kas pienjema lemumu un reizem pat nedaudz lemumu pienjemshanas vesture.

Pie koda strada pilnigi nesaistiti cilveki, tur nav variantu ka nodot savadak zinashanas no viena uz otru, ka ari citas problemas, kods medz but rakstis 20 gadus atpakal.

 

Tapat ari ieks ARM strada cilveki kuri specializejas ljoti saura lieta, piemeram cash optimizeshana uz noteikta procesora. Bez vinju komentariem uzzinat kautko ir bezcerigi. 

Labots - AndrisBB
  • Patīk 1
  • Atbalstu 1
Link to comment
Share on other sites

Izveido kontu, vai pieraksties esošajā, lai komentētu

Jums ir jābūt šī foruma biedram, lai varētu komentēt tēmas

Izveidot jaunu kontu

Piereģistrējies un izveido jaunu kontu, tas būs viegli!

Reģistrēt jaunu kontu

Pierakstīties

Jums jau ir konts? Pierakstieties tajā šeit!

Pierakstīties tagad!
 Share

×
×
  • Izveidot jaunu...