Ko reikia, kad taptum geru programuotoju?

PHP Elephant
Creative Commons License photo credit: Laughing Squid

Šis įrašas savotiškas komentaras į paskelbtas mintis nežinau.lt.

Perskaitytas straipsnis tikrai puikus ir vertas dėmesio, nors jis skirtas pradedantiesiems, norėčiau apie tai pakalbėti kiek daugiau. Kadangi pats esu ne vieną kartą aktyviai mąstęs apie programavimą, kokią kalbą rinktis ir kaip viską pradėti, turiu savo minčių šiuo klausimu.

Visų pirma, norėdamas tapti programuotoju vis dėl to turi suprasti matematiką, fiziką ar kitus loginius mokslus, nes jeigu tau iš matematikos išeina kiauras dvejetas, tu programuotoju net ir labai norėdamas netapsi. Kodėl? Tai tas pats atsakymas, kaip ir klausiančių, kodėl mokantis informatikos, reikia tiek daug dirbti ties matematika. Atsakymas paprastas, matematika tikriausiai vienintelis mokslas, kuris reikalauja visų žmogaus loginių mąstymo subtilybių, mokslas tiesiog verčia mąstyti, ko programavimui ir labiausiai reikia. Aš mėgstu sakyti, jog programavimas yra šiek daugiau už matematiką, nes reikia dar ir tas matematines ar kitokias logines žinias pritaikyti rašant programas. Todėl kaip tu parašysi programą, nemokėdamas mąstyti, nemokėdamas kurti algoritmų, nedirbdamas su savo galva.

Iš kitos pusės šie įgūdžiai yra nuolat tobulinami, todėl jeigu matematika sekasi neitin gerai, tačiau suvoki pagrindinius dalykus ir sugebi spręsti sudėtingesnius uždavinius, sunkiai dirbdamas gali pasiekti labai daug. Šiuo atveju tik reikės įdėti daugiau darbo mokantis nei tam, kuriam Dievas į galvelę įdėjo daugiau košytės – gabumų. Aišku viena – niekas negimė mokėdamas nei programavimo, nei matematikos – viskas yra dažniausiai išmokstama.

Antras aspektas siekiant tapti programuotoju tai charakterio savybės. Esu įsitikinęs, jog norint mokytis programavimo reikia daug kantrybės, nes kartais padarai klaidų tokiose smulkiose vietose, kad gali visą programą perdaryti iš naujo, o klaidos vis tiek nerasi. Kantrybės reikia ir ieškant informacijos, mokantis naujų dalykų ar tiesiog dirbant su klientais, kurių norams ne visada įtiksi iš pirmo ar net ketvirto karto.

Smalsumas, noras mokytis taip pat svarbūs elementai, tačiau juos nesunku sužadinti – pradėkit įgyvendinti savo svajones, tikėkite, kad kuriate naują Skype ar pradėkite dirbti už nors ir mažą, bet atlygį.

Trečia, Povilas, straipsnio nežinau.lt autorius, tinkamai suskirstė programavimo kalbas ir jų paskirtį pradedančiajam. Čia jau pačiam reikia atidžiai išsinagrinėti esamą rinką, pasirinkti širdžiai mieliausią programavimo kalbą ir pradėti su ja dirbti. Tačiau reikia atsiminti, kad programavimo kalba yra tik įrankis, tik galimybė perteikti viską kompiuteriui. Visi įgūdžiai įgaunami su bet kuria programavimo kalba, o pradžiai labiausiai vis dėlto tinka Pascal. Pascal puikiai išugdys jūsų algoritmavimo įgūdžius, nes čia nėra jokių funkcijų, tik kertiniai elementai – viską reikės daryti pačiam. Sintakse nėra sunki, nors kartais atrodo griozdiška.

Viską susidėliojus jau prasideda pats procesas ir nesvarbu, kad nesiseks, nes tikrai nesiseks, tačiau su laiku darysite vis mažiau klaidų, jeigu aktyviai mokysitės. Ir nereikia aiškinti, kaip komentaruose po straipsniu, kad savarankiškai mokydamasis nieko neišmoksi. Tie patys komentatoriai prieš kelis metus ar net dar dabar tebėra tokie patys – cituoju „šūdarankiai“, kaip dabar kitus vadina. Jie nebuvo nė kruopelyte geresni už šiuos, jų labiau mėgstamus epitetus, tik dabar savimeilė leidžia save vadinti šiek tiek geresniu, nors tikroji patirtis dar neaiški. Visi pradeda nuo mažų dalykų ir taip kaip vaikas išmokęs dėti pirmus žingsnius griūva iki kol išmoksta sklandžiai vaikščioti, taip ir visi besimokantieji iš pradžių daro daugybę klaidų.

Iš kitos pusės yra ir tokių, kurie savo kodą rašo bet kaip – svarbu veikia, tokio dalyko reiktų atsisakyti ir taikyti visus būdus savo kodo tvarkai ir aiškumui palaikyti. O mokslus reikia vis tiek baigti, nors galbūt jie nepasiūlys kažko labai daug programavimo srityje, tačiau ta pati matematika duos daugiau naudos. Apskritai, kartojuosi, mosklai niekam nepakenkė.

Kuo daugiau dirbsit ir programuosit, tuo geriau tai mokėsit, ir tai tikrai neatsiras per mėnesį ar du. Programavimo galima mokytis visą gyvenimą, nes vietų kur tobulėti yra begalės.

Temos: Programavimas žymės , , , . Išsaugokite nuolatinę nuorodą. Rašykite komentarą arba palikite trackback atsakymą Trackback URL.


18 komentarai (-ų)

  1. Posted Liepa 15, 2009 at 13:14 | Permalink

    Visiškai sutinku su tavo nuomone. Visos perskaitytos mintys visai atitinka mano apmąstymus apie programavimą.
    P.S. Ar nezinau.lt staripsnio autorius ne Povilas?

  2. Ričardas Š.
    Posted Liepa 15, 2009 at 13:23 | Permalink

    Paulius, Povilas – nedaug juk teapsirikau :D :) Juokauju. Pataisiau. Dėkui.

  3. Posted Liepa 15, 2009 at 13:34 | Permalink

    Geras, į mano parašytus straipsnius jau žmonės rašo atskirus straipsnius kaip atsakymus :) Malonu, kolega Ričardai, respektas už teisingas mintis straipsnyje ir šiaip už gerą tinklaraštį. Iš esmės pasakei tą patį ką ir aš, tik kiek kitokiu kampu ir kitais žodžiais.

    Beje, pirma nuoroda straipsnyje neveikia (httphttp gaunasi)

  4. Ričardas Š.
    Posted Liepa 15, 2009 at 13:53 | Permalink

    Rašydamas pastebėjau, kad kai kur kartojuosi, bet kai kur yra ir nepasakytų minčių arba perteiktų kitaip. :) Pataisiau nuoroda.

  5. q
    Posted Liepa 15, 2009 at 22:17 | Permalink

    Norint programuoti pastudijuoti reikia. As pats programavau be jokiu mokslu- bet viena diena pajutau, kad norint augti reikia pastudijuoti ir del savo sprendimo nesigailiu ne kiek.
    galiu dar pridurti kad nestudijaves gal ir sugebesi ivaldyti viena kalba. Gal dvi. Bet kad darysi ir suprasi kur koki progrmavimo modeli taikyti, kur kas veikia, kas kaip turi veikti iki galo tai ne.
    Studijuodamas priverstas isnagrineti viska kryptingai- pradedant paveldejimo aspektaism baigiant kokia masinu teorija.
    Realiam gyvenime patingetai – o universitet tenka. ir pavyzdiui koks duomenu strukturu modulis man oi kaip lengvina gyvenima.
    O tada jau nera didelio skirtumo kokia kalba programuoti- skiriasi aspektai, subtilybes- bet principai visose juose tas pats.
    Taip pat angliskoj literaturoj yra terminai skripting ir programing. Tai yra nebaiges mokslu skriptinsi- gal kokiai joomlai ar worpresso templatui to ir uzteks. Gal net kita karta ir greiciau tai darysi negu zmogus baiges mokslus.
    Bet tikram programinimui reikia programavimo teorijos butinai paragauti. Neisivaizduoju pvz zmogaus kuris nestudijaves suprogramuotu veidu atpazinimo algoritma. O ktu bakalauro darbuose pasitaiko.

    • Mantas
      Posted Liepa 15, 2009 at 22:50 | Permalink

      Norint būti daugiau nei TVS diegėju mokslų tikrai reikia. Tik bent puse etato mokantis, o dar geriau metus prieš mokslus visai neblogai būtų padirbėti(programuotoju). Atsirastų motyvacija giliau studijuoti. Aš daugelį dalykų labai paviršutiniškai praleidau, nors baigiau ir labai gerai. Su dabartine patirtimi daug labiau gilinčiausi, nors bakalaurą tik pernai baigiau :)

  6. Posted Liepa 16, 2009 at 01:41 | Permalink

    Aš paprieštarausiu, kad reikia matematikos būtinai programavimui. Mano patirtis sako, kad bent 80% visų Lietuvoje programavimų iš kurių galima užsidirbti neprašo jokios matematikos… na gerai prašo daugybos, dalybos, sudėties, atimties, suskaičiavimo… – bet tai kone ir viskas. Išesmės tai tėra paprastoji matematika. Kone visas programavimas būna: iš kur ir kaip paiimti kokią info, ką su ja padaryti ir kur bei kaip rezultatus išsaugoti ar atvaizduoti. Kitaip sakant daug labiau reikia loginio mąstymo nei matematikos. O loginis mąstymas paprastai yra išvystomas be galo bandant vieną ar kitą veiksmą pakartoti. Taip, visai kaip ir dauguma kitų dalykų šiame gyvenime… panašiai kaip ir tu minėjai… :) O sakau taip, kad matieka!=logikai, tik ne tik todėl, kad tas pats, bet ir todėl, kad nemaža dalis bijančių matematiką nebijo logikos… Vadinasi, jie gali tapti programuotojais… na nors bent dėl mažmožių nekankinti normalių programuotojų, kurie ir taip turi idėjų bei minčių, ką programuot… :)

    • Mantas
      Posted Liepa 17, 2009 at 20:44 | Permalink

      Teigti, kad “Kone visas programavimas būna: iš kur ir kaip paiimti kokią info, ką su ja padaryti ir kur bei kaip rezultatus išsaugoti ar atvaizduoti.” Tai tas pats, kaip vienam bloge mačiau – autorius parašė, kad yra nustebęs, jog php nėra plačiausiai naudojama kalba. Netgi jei tai būtų tiesa, kad duomenis reikia tik paimti ir padėti, viskas paprasta, kai vartotojų 100, o kai jų milijonas? Tada ir prireikia matematikos, ne tik tam, kad rastum efektyvesni algoritma, bet kad ir palygintum dviejų ar daugiau efektyvumą ;)

  7. Giedrius
    Posted Liepa 16, 2009 at 08:28 | Permalink

    Nenorėčiau sutikti, kad pascal yra geriausia kalba pradžiai (juolab kad autorius taip ir neargumentavo, kodėl pascal yra geriausia kalba pradžiai). Mano supratimu, tai yra rudimentas, nes bent prieš 10 metų, tai lietuviški vadovėliai buvo parašyti remiantis ja, ja programuodavo olimpiadose, netgi universitetuose pradėdavo nuo jos. Bet taip buvo prieš 10 metų ir lietuvoje, kur retas turėjo kompiuterį namuose, mokyklose stovėjo max 386 su dos, visi naudojo vogtą borland kompiliatorių ir niekas bėdos nematė. Realiai šiandienai siūlyčiau pradėti mokintis iškart šiuolaikinę objektinę kalbą (paskalis kiek prisimenu irgi kažkiek objektiškumo turėjo).
    Pythoon, Java ar C# yra geriausi variantai (Pythoon dėl savo švarumo, Java dėl paplitimo, o C# sintakse labai panaši į Java, bet lengviau konfigūruotis programavimo priemones pradedančiajam).

  8. Posted Liepa 18, 2009 at 14:16 | Permalink

    Mantas, mano patirtis sako, kad kai tenka dirbti jau su 10000 ar daugiau vartotojų tuomet dažniausiai pakanka sugalvoti kaip ir kada panaudoti įvairius cachinimo algoritmus. O tai dažniausiai yra tam tikras duomenų saugojimas ir rašymas į pasirinktą vietą. Vėlgi, matematikos nelabai daug. Kitavertus tu teisus, pvz. dirbant su verslo sistemomis tokiomis kaip Navision ir pan. greičiausiai matematikos jau prireiktų… bet vėlgi Lietuvoje dirbti programuotoju, kur to reikėtų mažai kam „pasiseka“. Deja, Lietuviškas programavimas gana vienpusiškas – remiasi iš esmės vien tinklalapiais ir visokiomis Oracle paremtomis duombazių sistemomis (bet ten irgi matematikos poreikis nesakyčiau, kad labai didelis)… Kitose srityse, kur išties jos reikėtų, darbo rasti bent kol kas netaip lengva. Man, atrodo tokias kompanijas, kur dirba tokie programuotojai, galima būtų net ant savo rankų pirštų suskaičiuoti čia Lietuvoje… Va todėl ir kyla klausimas: ar svarbiau remtis matematika norint programuoti ar ugdyti, kitus įgūdžius, kurie padeda greičiau surasti reikiamą informaciją ir ją pritaikyti sprendžiant įvairius programavimo uždavinius. Aš esu už antrąjį variantą.

    Teigdami, kad PHP yra populiariausia kalba pasaulyje žmonės galvoja apie tinklalapių kalbą, bet neapskritai apie populiariausią programavimo kalbą. Populiariausia kiek pamenu šiuo metu yra JAVA.

    Beje, aš visiškai sutinku su Giedriaus nuomone dėl programavimo kalbų pradedančiajam.

  9. Ričardas Š.
    Posted Liepa 18, 2009 at 19:52 | Permalink

    Matematika reikalinga nei kaip žinių šaltinis, tai vienintelis mokslas, kuriame tikrai daug reikia mąstyti. Matematika tam apskritai ir reikalinga, kad tu išmoktum logiškai mąstyti, o ne pritaikyti diskriminantą. Būtent dėl šios priežasties ir visokiems psichologams jos reikia. Programavimui reikia loginio mąstymo – reikia matematikos. Na, čia bent jau dalis, ko iš tikrųjų reikia.

    Toliau seka įgūdžiai, o čia jau kaip MekDrop sako, reikia sėsti ir daryti.

    Pascal gera tuo, kaip ir matematika, kad išmoksti algoritmuoti. Programavimui tai bene antras dalykas, na gal trečias. Reikia mokėti kurti algoritmus, juos pritaikyti. Tai praverčia kuriant ir lengvas ir sudėtingas programas. Iš esmės dėl to ir yra Pascal vis dar mokomas mokyklose.

    Iš kitos pusės sutinku, daug bereikalingo laiko iššvaistoma mokantis tą Pascal, bet ką darysi tokia mūsų švietimo struktūra.

  10. Posted Sausis 6, 2010 at 21:49 | Permalink

    Aš tai asmeniškai vidurinėje net ir nesimokinau paskalio, domėjausi PHP programavimo kalba, per du metus, įgudau prie jos, visko negaliu pasakyt, kad išmokau, nes bibliotekų joje vis daugėja, funkcijų taip pat. Aš manau geriausia mokintis tokia programavimo kalba, kaip sakant užčiupti už vadžių naują kokia programavimo kalbą, kas moką pagrindus manau greit ir išmoktų ją, kodėl verta, jei ji pagrindžiama tuo labiau kokiame tope, tai tuo greičiau reikia griebti tai, kuo ilgiau tempsi laiką, tuo daugiau funkcijų didėja, pažiurėkite, kiek yra php funkcijų, bei bibliotekų, išmokti visko neįmanoma. Tik jei prireikia, tuomet tenka pasižiurėti. Bet asmeniškai aš tai ne paskali mokinčiausi, o c# kalbą.

  11. Ričardas Š.
    Posted Sausis 7, 2010 at 19:40 | Permalink

    Pascal vis vien yra gera tuo, kad padeda išmokti tinkamos kodo rašymo praktikos bei struktūros. Čia visus kintamuosius reikia aprašyti, pačiam kurti algoritmus, o ne naudotis jau iš anksto sukurtomis bibliotekomis, kad pradedančiajam ypač svarbu:

  12. Andy
    Posted Sausis 31, 2010 at 00:44 | Permalink

    Dėl matematikos mokėjimo.. Na taip, programavimas ir matematika yra glaudūs dalykai. Tačiau mačiau puikių matematikų kurie, kad ir kaip dirbdavo ir vargdavo nesugebėdavo informatikos pamokose parašyti gana juokingai paprastų programėlių, ir atvirkščiai – atrodo beviltiškų ir su matematika susipykusių žmonių, kurie puikiai programuoja (aišku ne matematinius užd.). Pastarieji turėjo tokį kūrybingumą, kurio neturėjo pirmieji ir kuris juos ištraukdavo ir aplenkdavo pirmuosius. Žinoma geriau turėti abu sugebėjimus – kūrybingumą ir matematiškumą (:D), bet yra kaip yra. Visu tuo norėjau pasakyti, kad geras matematinis išsilavinimas visiškai negarantuoja lengvesnio programavimo (ir vėl, neturiu omeny konkrečių matematinių užd.)

  13. Arturas
    Posted Liepa 31, 2010 at 18:53 | Permalink

    Nu kažinau draugas savarankiškai išmoko ne vieną programavimo dalyką.Dabar įstojo y KTU informatiką,tai toliau tobulės.Ir čia priklauso nuo pačio žmogaus kiek norės tiek ir mokės.Aišku kaip sakė be matematikos programavime kaip be rankų.

  14. Teacher
    Posted Sausis 20, 2011 at 13:07 | Permalink

    Jei pradėsim diktuot ko programuotojui gali prireikt, tai turėtumėm išvardint ne tik matematiką, fiziką, bet ir lietuvių, anglų ir kitas kalbas, geografiją, biologiją, dailę ir dar daugybę visokių mokslų. Aišku visose rimtose firmose yra žmonių be programuotojo, kurie tai moka, tačiau bendras suvokimas padeda sukurt tinkamą algoritmą. Programuotojas yra iš esmės žmogus, sugebantis veiksmus išreikšti žingsneliais, kurie į mažesnius neskaldomi (tai reiškia sudaryti algoritmą). Taip pat jo pareiga stengtis išvengti klaidų realizuojant optimaliausią kodą tam tikroje programavimo terpėje. Taigi norint gerai programuot tereik išmokt sukurt algoritmą, jį optimizuot, užrašyt tam tikra programavimo kalba ir sukompiliuot :D Žodžiu skaitykit dokumentacijas, o ne tutorials, galvokit užduotis ir jas spręskit. Skaldykit ir valdykit :p Kūribingumo ir Dėmisingumo, Naujokai!

  15. Gintaras
    Posted Spalis 7, 2011 at 19:56 | Permalink

    Ir kas nori ismeginti savo jegas kuriant svetaine kuri butu panasi i: http://www.manodrabuziai.lt ( tik butu kitoks dizainas, isdestimas, kai kurios funkcijos) bet mintis ta pati.
    Lauksiu pasiulymu :)

    • Ričardas Š.
      Posted Spalis 7, 2011 at 20:49 | Permalink

      Konkrečioms užklausoms ar užsakymams yra pateiktos kontaktų formos kiekviename Informacijos ir kt. puslapiuose.

Vienas atsakymas

  1. Blogorama #629 Liepa 15, 2009 19:48

    [...] Kaip? Gal Microsoft žmonėms verta grįžti prie ištakų ir pradėti mokytis rašyti tvarkingą kodą? [...]

Rašyti komentarą

Jūsų el. paštas nėra viešinamas ar perduodamas trečiosioms šalims. Būtini laukai pažymėti žvaigždute - *

*
*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>


  • Apie mane

    Esu atsakingas, kruopštus ir kūrybingas programuotojas, kuris kiekvieną dieną ieško naujovių, optimalių sprendimų problemoms spręsti. Dirbu pagal individualius užsakymus įvairioms įmonėms ar asmenims, kurių lūkesčius stengiuosi pateisinti už tinkamą kainą. Šiuo metu dirbu su PHP, MySQL, HTML/CSS, jQuery technologijomis. Daugiausia dirbu su el. komercijos sistema PrestaShop bei turinio valdymo sistemų sprendimus pritaikau WordPress TVS. Konsultuoju įmones SEO, Facebook aplikacijų, AdWords reklamos klausimais.

    Susisiekti galite el. paštu pasinaudodami bet kuriame puslapyje esančia kontaktų forma