RadiatorZ Ierakstīts Decembris 17, 2009 Share Ierakstīts Decembris 17, 2009 Kā domājiet, šis citāts ir patiesība vai meli? vai varbūt daļēji paties? vai varbūt pilnīgas muļķibas. Vislabākā valoda ar kuru sākt mācīties programmēt it Java , vai cita līdzīga. Īpaši kaitīgi ir sākt ar paskālu, jo tad topošais students noķer tā saucamo "Paskal sindromu" - peec kura ir ļoti grūti pārslēgties no strukturālās uz objekt orient programēšanu, grūtāk izprast objektus. C++ manā skatījumā ir vē bīstamāks, ja students mācās pašmācības ceļā. JO šeit ir iespējams kodēt gan OOPiski , gan strukturāli un cilvēks pašam to neapzinoties sāk kodēt strukturāli, tanī pašā laikā iedomājoties ka kodē objektorientēti. Ko es gribu pateikt. Tas ka no sākuma ir jāiemācās un jāizprot objektorientētas programmēšanas principi un idejas, tikai tad jāķeras pie kādas konkrētas valodas. Tāda pieeja ir daudz labāka un efektīvāka. Daudzas grāmatas sāk ar datu tipiem, mainīgajiem loopiem utt. manuprāt tas ir nepareizi. Link to comment Share on other sites More sharing options...
NormaalsCilveeks Decembris 17, 2009 Share Decembris 17, 2009 tas viss ir [slēpts] jo jāsāk ar semantiku (sajēgu) - algoritmiem un blokshēmu pamatiem un tad pie pilnīgas pakaļas būs kādu valodu (sintaksi) lietot kaut SDL kaut Qbasic Link to comment Share on other sites More sharing options...
Programmētājs Decembris 17, 2009 Share Decembris 17, 2009 Paskals vai Beisiks ir vajadzīgs. Jo parasti tiem, kas apgūst programmēšanu nav pietiekams priekštats par programmēšanas iespējām. Tas ir kā valodu mācoties vispirms jāiemācās burti, tad vārdi un tikai kaut kad vēlāk pieturas zīmes. Nav iespējams cilvēkam pateikt, ka vajag veidot jaunu objekta instanci, ja viņam nav nekāda priekštata par to kas tas ir. Ar definīciju nepietiek. Līdz tam ir loģiski jānonāk. Tā kā es domāju, ka revolūcija programmēšanas mācīšanā nav nepieciešama, lai paliek kā ir Link to comment Share on other sites More sharing options...
japets Decembris 17, 2009 Share Decembris 17, 2009 Vispirms saprotam, kas ir mainīgais, kas ir funkcija, kas ir nosacījums un cikls. Tad to visu var sakārtot pa objektiem. Manas domas, tā pat, noprotu arī, kā iepriekšējo komentētāju - pilnīgs sviests tas citāts. Link to comment Share on other sites More sharing options...
fest Decembris 18, 2009 Share Decembris 18, 2009 Nav ko vainot pascal vai basic pie tā, ka programmētājs ir neizdevies- ja nav tai kazai piena, ta nav. Strukturālā programmēšana vs oop- arī tas īsti nav galvenais. Palasi šo ierakstu: http://thread.gmane.org/gmane.comp.version-control.git/57643/focus=57918 un diskusiju, kas tai seko. Link to comment Share on other sites More sharing options...
HIGH-Zen Decembris 18, 2009 Share Decembris 18, 2009 NC taisnība. Un runājot par valodām, ja man būtu iespēja atgriezties pagātnē, tad es sāktu ar Python un Think Python: How to Think Like a Computer Scientist. Link to comment Share on other sites More sharing options...
paulis Decembris 18, 2009 Share Decembris 18, 2009 piespļaušu, visam kas te teikts, klāt līdzību, ka sākt apgūt programmēšanu jau objektorientēti, ir tas pats kas mācīt bērnam lasīt izmantojot valodas gramatikas mācību grāmatu Link to comment Share on other sites More sharing options...
Ronalds Decembris 18, 2009 Share Decembris 18, 2009 Šie izteikumi ir pilnīgi aplami. Un tiešām cilvēks kas viņu teicis ir teorētiķis - programmēt visticamākais pats nemāk... (To teicis kāds skolotājs vai pasniedzējs. Bet pasakiet kurš normāls cilvēks par skolotāja algu ies beigt nervus klasē, ja viņš māk programmēt un ar šo darbu nopelnīt vismaz 2x vairāk....) Īpaši kaitīgi ir sākt ar paskālu, jo tad topošais students noķer tā saucamo "Paskal sindromu" - peec kura ir ļoti grūti pārslēgties no strukturālās uz objekt orient programēšanu, grūtāk izprast objektus. Kopš kura laika paskālā nav objektu?????? Piemēram delphi - paskāla bāzēta grafiska izstrādes vide - vieni objekti vien! C++ manā skatījumā ir vēl bīstamāks, ja students mācās pašmācības ceļā. JO šeit ir iespējams kodēt gan OOPiski , gan strukturāli un cilvēks pašam to neapzinoties sāk kodēt strukturāli, tanī pašā laikā iedomājoties ka kodē objektorientēti. Nu i pateica ... Ilgi bija jādomā... Bez tam objekta metodes jebkurā gadījumā strukturālas programmas. Ko es gribu pateikt. Tas ka no sākuma ir jāiemācās un jāizprot objektorientētas programmēšanas principi un idejas, tikai tad jāķeras pie kādas konkrētas valodas. Tāda pieeja ir daudz labāka un efektīvāka. Daudzas grāmatas sāk ar datu tipiem, mainīgajiem loopiem utt. manuprāt tas ir nepareizi. Kļūda - sākumā ir jāsaparot kas ir algoritms - darbību secība lai sasniegtu rezultātu (izrēkinātu kaut ko). Tad jāsaprot kas ir mainīgais, IF operātors, cikls, utt - programmēšanas pamatelementi Šīs ir programmēšanas pamatnostādnes bez kurām nevar programmēt. Ne objektorientēti, ne strukturāli! Tāpēc nevajag jaukt iesācējam galvu ar objektiem, mantošanām un citām grūti saprotamām lietām. Vajag sākt ar vienkāršu valodu, bez liekiem navarotiem, ieteicams teksta vidē kur ievades/izvades operācijas vieglāk programmējamas. Link to comment Share on other sites More sharing options...
usver Decembris 18, 2009 Share Decembris 18, 2009 (labots) Nu bet pastāstiet, cik labi programmētāji ir radušies savādāk, nekā sēžot caurām naktīm pie koda un izslimojot visas bērnu slimības - samežģītu kodu, pārspīlētu klašu lietošanu, un pieeju "visa-programma-vienā-blāķī", līdz pašam aizlec, kas ir labi,uzturami un kas slikti,ka pašam neērti skatīties un labot pēctam? Ir jāpadara vispirms strukturālā, un tikai pēc tam OOP, lai rodas sajēga, kas ir kas. OOP ir tikai rīks, kur labu kodu var uztaisīt vēl labāk organizētu. Piemēram, Javā čata serveri uztaisīt, bez OOP ir daudz-daudz sarežģītāk, tātad cilvēks uz savas ādas izbaudīs, ka taisot visu procedurāli sanāk aplauzties un apmaldīties savā kodā. Ir muļķīgi mēģināt lietot OOP, kamēr cilvēks tikai sper pirmos soļus un neprot organizēt savu kodu vai vispār izmanto galvenokārt pieeju "nokopējām kodu, mazliet palabojām, nodevām". Java ir laba valoda, un to vajadzētu apgūt pēc C/C++ pamatiem, izmantojot augstskolu kursu uzdevumus, piemēram, "uztaisīt kalkulatoru". Lielā problēma ir, ka cilvēki nemēģina iegūt sev praksi, bet jau atsperas uz lietām, kuras nav nekad pamēģinājuši. Tjipa - atnāk cilvēks uz galeriju, saka "krutas gleznas, pieņemiet mani darbā, es uzgleznošu tādas pašas - lai gan iepriekš tik akvareļus bērnudārzā esmu pamēģinājis". Un iedod viņam darbu, sēž tāds, eksperimentē uz kodu, kas citiem pēc tam jālasa. Taisa lietas, ko vajadzēja mājās eksperimentēt vispirms. Ja programmētājs raksta samežģītu kodu darbā, tad tikai priekšnieka aizrādījums der - "klau, tava koda uzturēšanā aiziet vairāk laika, nekā uz citu kodu - nedari vairs tā, kā tu izdarīji tur-tur-unvēltur, taisi labāk vot-šitā". Jo slikts kods rodas tieši no redzesloka šauruma. Labots Decembris 18, 2009 - tt2t 1 Link to comment Share on other sites More sharing options...
Aleksejs Decembris 18, 2009 Share Decembris 18, 2009 (labots) Kā saka Pēteris Kārkliņš atvainojos Krūmiņš savā blogā - http://www.catonmat.net/blog/about-this-blog/ ...So I have really good understanding of programming and have found two great approaches to software development. These approaches seem to be pretty well known and someone might say that they are wrong but I am going to show that they are not wrong and are efficient. One of them I call “the hacker’s approach” which basically means you just create cool stuff quickly that works by using anything you have available. And if something doesn’t work you just get it working asap without getting into much details why it didn’t work. Might sound pretty lame but I am going to demonstrate in some of my posts that you can quickly create cool tools and software with little effort. The other approach is what the title of this blog says “good coders code, great reuse“. This approach is similar to “the hacker’s approach” but it does not require that you create your software quickly and dirty. It just means you reuse existing libraries and spend little effort writing stuff that has already been written. Software reuse so to say. There are so many libraries and code available on sourceforge, code.google, freshmeat and many other sites that most of all the solutions to problems are there. By using these two approaches I will create some great free software and will try to monetize it so I can make enough money for MIT Es domāju, ka nav tādas universālās receptes. Attiecibā uz OOP - tā ir tikai viena no programmēšanas paradigmām, kura, protams, ka īstam programmētājam ir jāapgūst, taču tās apgūšana nekādā ziņā nav svarīgāka par citu paradigmu apgūšanu. Jā - ir iespējams programmēt neiepazīstoties ar visām paradigmām - tieši tāpat kā var naglot kopā parka soliņus neiemācoties visu par galdniecību (instrumentiem, materiāliem, metodēm). Jā - OOP apgūšana ir svarīga - taču vēl svarīgāka ir pašu "patternu" apgūšana un māka saredzēt šīs sakarības problēmu risināšanā ("Thinking in patterns" grāmatas). Piemēram, mikrokontrolieru programmēšana (kas starp citu ar Arduino utt kontrolieru iziešanu tautās kļūst aizvien svarīgāka aizvien plašākam ļaužu lokam) tehnisku ierobežojumu dēļ ir ekonomiski pamatoti efektīvāka nevis OOP paradigmā bet gan tieši procedurāli. Labots Decembris 18, 2009 - Aleksejs Link to comment Share on other sites More sharing options...
Vilx- Decembris 18, 2009 Share Decembris 18, 2009 Es arī pievienojos tiem, kas uzskata, ka ar Pascal vajag sākt. Pirmkārt jau Pascal tika radīts tieši tāpēc, lai mācītu programmēt. Otrkārt, tieši tā - cilvēkam vispirms jāapgūst pamati; koda organizēšana ir nākamais solis. Un ir ļoti veselīgi jau pašā sākumā apgūt to, ka atmiņa nav "par brīvu" kā Javā, bet par to arī ir jādomā. Tāpat ar daudzām citām lietām. Man šķiet, ka vissliktāk ir mēģināt sākt mācīties programmēt ar PHP. Šajā valodā pat pieredzējušiem programmētājiem ir grūti uzrakstīt elegantu kodu, kur nu vēl iesācējiem. Pie tam defaultās iespējas ļauj ļoti vienkārši uzrakstīt ļoti sarežģītas darbības, radot maldīgu iespaidu, ka šādas operācijas patiesībā ir ļoti vieglas un ātri izpildāmas. Rezultātā iegūstam spageti kodu, kurš uz jaunākā CPU velkas kā gliemezis. Un tam visam klāt vēl programmētājam ir viegli izveidot kaitīgus ieradumus. C++ arī nevajadzētu būt pirmajai valodai, bet vairāk tāpēc, ka tā ir ellīgi sarežģīta. To ir grūti apzināties sākumā, kad saskare ar šo valodu ir bijusi minimāla. Es arī kādreiz domāju, ka protu programmēt C++. Tagad tā vairs nedomāju. Tur ir dafiga visādu knifu, speciālgadījumu, viltīgu konstrukciju, u.t.t. Apzināt šīs valodas iespējas vien nav viegli, un es vēl nespēju iztēloties, kādi ir principi, pēc kuriem vajadzētu vadīties, lai varētu uzrakstīt elegantu C++ kodu, nevis neveiklu spageti. Tajā pašā laikā man jāatzīst, ka tad, kad ir jau mazliet programmēšanas pieredzes aiz jostas, es silti iesaku iemācīties C++. Pats to arī mēģināšu darīt, kad būs vairāk brīvā laika, un kompis salabots. Šī valoda saturēja daudzas savam laikam revolucionāras idejas, un tajā ir iespējams uzrakstīt ļoti labu un efektīvu kodu - ja māk. Kā sacīt saka - with great power comes great responsibility. C++ ir great power. Java un .NET arī ir jaapgūst, bet jau vēlāk, kad programmēšana kā tāda ir saprotama. Šīs valodas jāapgūst tad, kad jaunas valodas apguve jau ir dažu nedēļu/mēnešu jautājums. Šīs ir valodas, kuras mūsdienās ir vispraktiskākās. Tās ir labs zelta vidusceļš starp efektīvu kodu, un viegli uzrakstāmu kodu. Bet, lai mācītu programmēt... nu, tās ir tādas, ne šis - ne tas šajā ziņā. Daudzas lietas (atmiņas pārvaldība, kolekcijas, primitīvie algoritmi) ir jau iekļauti defaultajās iespējās, kas nav īpaši jauki mācību nolūkiem. Tu arī ir daudz kur nogrieztas iespējas nomudīties un izdarīt aplamas lietas, kas arī mācību nolūkos reizēm ir lietderīgi. Tas viss ir labi, kad vajag ātri uzrakstīt strādājošu softu, kuru pēcāk viegli uzturēt, bet tas nav tik piemēroti mācīšanai. Link to comment Share on other sites More sharing options...
Aleksejs Decembris 18, 2009 Share Decembris 18, 2009 Runājot par mācīšanos no 0 - kā cilvēks, kas ir 2 gadus mācījis informātiku un kuram siltas atmiņas par "Pēci Beisikāni" - iesaku šo grāmatu: Hello World! - Computer Programming for Kids and Other Beginners Programmēšanas mācīšanās šajā grāmatā notiek Pythonā. Link to comment Share on other sites More sharing options...
Vilx- Decembris 18, 2009 Share Decembris 18, 2009 Par Pythonu neko daudz nezinu, bet pa ausu galam dzirdēts, ka tur tabulējumam ir nozīme. Tas, protams, ir bonuss. Link to comment Share on other sites More sharing options...
Aleksejs Decembris 18, 2009 Share Decembris 18, 2009 Leshij - saderam, ka pat neatvēri URL! Kņigu ņe čital, no mņeņije imeju. Link to comment Share on other sites More sharing options...
eMDiiPii Decembris 18, 2009 Share Decembris 18, 2009 Par Pythonu neko daudz nezinu, bet pa ausu galam dzirdēts, ka tur tabulējumam ir nozīme. Tas, protams, ir bonuss. Pitonā koda indentācija aizstāj klasiskos begin end un { } resp tā vietā lai rakstīt if(count > 5){ std::cout << "WTF LOL " << endl; } Pitonā if count > 5: print 5 Atstarpēm jābūt vienāda lieluma (var izmantot tabus). Link to comment Share on other sites More sharing options...
Aleksejs Decembris 18, 2009 Share Decembris 18, 2009 Nu pag - tad nepieredzējušam koderim būtu jādod nepareiza valoda? Pitons tika izvēlēts tādēl, ka tas atbilst: Everything should be made as simple as possible, but no simpler Pitonā ir svarīga glīta koda struktūra, kas ir ļoti labi tieši iesācējiem priekš mācīšanās. Ok - tas jau ir offtopics. Par pašu pirmo jautājumu - visā visumā nepiekrītu, taču, protams šajos izteikumos ir arī ļoti daudz domu, kam piekrītu. Link to comment Share on other sites More sharing options...
Aleksejs Decembris 18, 2009 Share Decembris 18, 2009 Es tev aizsūtīšu to grāmatu Un tad izdomā, vai iesācēji māk vai nemāk Link to comment Share on other sites More sharing options...
Mr. Nejēga Decembris 18, 2009 Share Decembris 18, 2009 Nūs, te jau aizgāja atkal, ka katrs maļ savu. Seit atkal ir tā pati instance, par ko jau tika minēts, kāpēc sākt ar Paskālu un tad tikai C++. No pašiem sākumiem, kad jaiemāca domāt pareizi, nav svarīgs galu gala, cik sarežģīta vai advanceta ir valoda, svarīgi ir, lai pamata lietas ar to būtu izdarāmas vienkāršā, saprotamā veidā [dļa asobo tupih]. Ja ar pitonu var uztaisīt smuku, ērtu Hello World programmu, un ir saprotams, ka IF palaiž to koda daļu pie tāda nosacījuma, un tas izpildīsies tad, ja ...., tad nav nekāda problēma. Neviens no iesācēja negaida, lai viņš pilnvērtīgi rakstītu pitonā/c++ā/perlā/paskālī kautvai. Pilnvērtīga rakstīšana ir kas tāds, uz ko tiecās, nevis ar ko sāk. Un valodai te ir ļoti maza nozīme, it īpaši jau sākumā. Tāpat kā sākumskolā nesāk Analītisko Geometriju vai lineāro algebru, bet vienkārši - matemātiku. un matemātiku principā var sākt mācīties ar visām grāmatām, kur ir "Ievads". Neviens neliek sīkajam šķirt uz beigu nodaļām. Link to comment Share on other sites More sharing options...
MarisO Decembris 18, 2009 Share Decembris 18, 2009 Kopš kura laika paskālā nav objektu?????? Tajā, ko māca skolā, nav. Strukturētā programmēšana, protams, ir vajadzīga, bet, kas es studēju LU, tad bakalaura programmā vispār nekā cita praktiski nebija. Turbo Pascal no rīta līdz vakaram. Link to comment Share on other sites More sharing options...
Rik0 Decembris 18, 2009 Share Decembris 18, 2009 Nezinu, man liekas, ka nav jēgas mācīties valodu, kura nav pieprasīta. Ieteiktu sākt ar C++ vai Javu. Jo ātrāk vai vēlāk pie šīm valodām vajadzēs tik un tā nonākt, tad kāpēc sākt ar kaut ko citu? (C++ ļauj izveikt visādus "eleganuts vipendronus", bet bez tiem sākumā mierīgi var iztikt). Ir tikai jāuzmanās, lai neuzrautos uz grāmatām, kas domātas cilvēkiem, kas jau māk programmēt tikai nezin attiecīgo valodu. Vajag dabūt tādu grāmatu, kura labi izskaidro programmēšanas pamatus uz attiecīgās valodas bāzes. Diemžēl man jau tiem laiki kad lasīju šādas grāmatiņas sen aiz muguras, tāpēc nevaru šobrīd neko konkrētu ieteikt. Link to comment Share on other sites More sharing options...
Vilx- Decembris 18, 2009 Share Decembris 18, 2009 Tāpēc sākt ar kaut ko citu, ka ar citām lietām ir vieglāk mācīties. Jā, pēcāk visticamāk Tu izmantosi citu valodu. Bet, common - kad Tu māki programmēt, tad jaunas valodas apguve ir dažu nedēļu (augstākais mēneša) jautājums. Nafig sev čakarēt dzīvi pašā sākumā, ja pēc tam no tā tāpat nav labuma? Link to comment Share on other sites More sharing options...
japets Decembris 18, 2009 Share Decembris 18, 2009 RikO, mācīties programmēt un mācīties programmēšanas valodu ir divas ĻOTI dažādas lietas. Pie kam otrā ir ārkārtīgi triviāla, ja zin' pirmo. Link to comment Share on other sites More sharing options...
Rik0 Decembris 18, 2009 Share Decembris 18, 2009 RikO, mācīties programmēt un mācīties programmēšanas valodu ir divas ĻOTI dažādas lietas. Pie kam otrā ir ārkārtīgi triviāla, ja zin' pirmo. Es to ļoti labi saprotu. Tas arī bija tas, ko es gribēju teikt par tām grāmatām - vajag tādu, kas māca programmēt izmantojot Javuun nevis tādu, kas māca Javu. Bet neredzu kāpēc sākt vajadzētu ar paskālu un vai pitonu, lai vēlāk pārietu uz javu/C++. Link to comment Share on other sites More sharing options...
MarisO Decembris 18, 2009 Share Decembris 18, 2009 Nezinu, man liekas, ka nav jēgas mācīties valodu, kura nav pieprasīta. Es tur saredzu citu problēmu - tikai vienas paradigmas izmantošana, OOP un funkcionālās pieejas atstājot tikai pašu studentu ziņā. Un ir redzēti gadījumi, kad cilvēki visu laiku pēc tam programmē strukturēti - piem. Javā uztaisa vienu gigantisku klasi, kur viss kods procedūru veidā sarakstīts. Un neizprot funkcionālo programmēšanu tai pašā javascriptā. Iekš LU studenti kodē turbo paskālā līdz ģībst Ir labi, ja tas neatstāj nekādas sekas.... bet varbūt visādi :| Link to comment Share on other sites More sharing options...
malinens2 Decembris 18, 2009 Share Decembris 18, 2009 Mums LU tagad c++ kaa pirmo prog. valodu maaca Link to comment Share on other sites More sharing options...
serioussam909 Decembris 25, 2009 Share Decembris 25, 2009 Pascal ir galīgi nekam nederīgs - nesaprotu tos kas tērē savu laiku veidojot tos Free Pascal un citus tooļus. Sintakse tak tur ir garām ar visu to liekvārdību - if blabla then begin end if(blabla){} vietā. Tik kaitinoši bija kodēt delphi (skolā vajadzēja) pēc tam kad biju jau c# apguvis. Link to comment Share on other sites More sharing options...
paulis Decembris 25, 2009 Share Decembris 25, 2009 @serioussam909, ja cilvēks nekad nav programmējis, tad "liekvārdība" viņam palīdz vieglāk saprast koda darbību. nu nav jēga cilvēkam likt saprast ko katrs no "{}()[]" simboliem nozīmē, ja viņam jau "i++;" izskatās pēc ķīniešu ābeces. bet iekš pascal uzreiz viss ir skadrs - ja ir "begin", značet sākās un pie "end" beidzās vēl viens piemērs .. uzjautā kādam ne-programmētājam, kura rindiņa viņam šķiet saprotamāka: a: "for(i=0; i<10; i++)" b: "for i:=0 to 10 do" Link to comment Share on other sites More sharing options...
serioussam909 Decembris 25, 2009 Share Decembris 25, 2009 ja cilvēks nekad nav programmējis, tad "liekvārdība" viņam palīdz vieglāk saprast koda darbību. Kad es sāku programmēt C-stila sintakse man nesagādāja nekādas problēmas. Bet laikam jau pascal ir tiem kas nav tik slinki kā es un netaisa šitādas funkcijas lai tikai nevajadzētu daudz rakstīt: public static int getW() { return Engine.GraphicsDevice.Viewport.Width; } Link to comment Share on other sites More sharing options...
Recommended Posts
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 kontuPierakstīties
Jums jau ir konts? Pierakstieties tajā šeit!
Pierakstīties tagad!