Home - qdidactic.com
Didactica si proiecte didacticeBani si dezvoltarea cariereiStiinta  si proiecte tehniceIstorie si biografiiSanatate si medicinaDezvoltare personala
referate stiintaSa fii al doilea inseamna sa fii primul care pierde - Ayrton Senna





Aeronautica Comunicatii Drept Informatica Nutritie Sociologie
Tehnica mecanica

Calculatoare


Qdidactic » stiinta & tehnica » informatica » calculatoare
Ce sanse am sa devin un bun programator? (tehnica, experienta, abstractizarea)



Ce sanse am sa devin un bun programator? (tehnica, experienta, abstractizarea)



Aceasta intrebare apare deseori in discutiile sincere dintre profesori si studentii lor descurajati de intirzierea aparitiei unor rezultate care sa certifice buna lor calitate ca programatori. Vom incerca in rindurile ce urmeaza sa raspundem cit mai clar la aceasta intrebare oferind, in plus, o perspectiva prospatata asupra acestui subiect, prin luarea in considerare a unei serii de factori mai putin utilizati in procesul didactic contemporan.

Mai intii sa vedem ce s-ar putea intelege prin sigtagma bun programator”, insisitind in continuare doar pe aprofundarea adjectivului bun, fara a mai defini sau detalia ce se intelege printr-un programator. Vom cita cuvintele recente ale lui Timoty Budd (profesor la Oregon State University) care da urmatoarea definitie: “Un bun programator trebuie sa fie inzestrat cu tehnica, experienta, capacitate de abstractizare, logica, inteligenta, creativitate si talent . Intru-totul de acord cu aceasta definitie vom trece in cele ce urmeaza la explicitarea fiecarei calitati.

Inainte vom deduce urmatoarea consecinta imediata - deosebit de importanta - ce rezulta din definitia de mai sus cele sapte calitati trebuie sa fie prezente toate pentru a se obtine calificativul de bun programator. Deci, prin lipsa sau prin prezenta atrofiata” a uneia, sau a mai multe din “ingredientele retetei” de mai sus, acest calificativ nu mai poate fi atins.




Tehnica – este desigur o calitate ce poate fi, si este, dobindita doar prin aplicarea asidua (conform proverbului: “exercitiul il face pe maestru ) in activitatea concreta de programare a tehnicilor de programare invatate si asimilate de catre programator in timpul formarii sale profesionale. Nu este exclusa aici posibilitatea obtinerii tehnicii de programare inafara unui cadru specializat (intr-o facultate de profil), ci chiar exista posibilitatea obtinerii ei prin studiu individual si formatie proprie (autodidact ).

Experienta – este perechea geamana a calitatii de mai inainte, fara insa a se exclude una pe cealalta. Nu vom mai repeta cum si in ce conditii poate fi ea obtinuta ci vom deduce urmatoarea consecinta imediata : nici un programator incepator nu poate fi numit bun programator intrucit el nu a avut cind (adica timpul necesar) sa  dobindeasca ambele calitati. Este binecunoscut faptul ca o rubrica importanta ce se cere completata la angajare sau la schimbarea locului de munca este experienta de programare in ani. Se considera in general ca experienta apare abia dupa minimum doi ani de programare. Acest fapt nu trebuie privit ca o descurajare pentru cei mai tineri programatori ci mai degraba ca pe un motiv de ambitionare si ca o invitatie la rapida autoperfectionare.

Abstractizarea – este o trasatura a intelectului uman si constituie un dat al oricarui om normal, dar din pacate (!) este o insusire prea putin dezvoltata si prea putin folosita de oamenii obisnuiti. Ea consta din capacitatea de a extrage din context, de a vedea dincolo de suprafata imediata si de a putea sesiza structura – scheletul ce sustine intreaga retea de detalii ale unei probleme generale. Pentru a fi un bun programator acesta calitate trebuie sa fie net amplificata fata de “normal” intrucit sta la baza oricarui proces de analiza si modelare a problemelor, cit si la baza procesului de proiectare a solutiilor generale. Absenta sau mai exact atrofierea acestei capacitati se constata practic la studenti prin incapacitatea de a intelege sau de a asimila explicatii, demonstratii sau modele abstracte (simplu spus, o acuta si permanenta “lipsa de chef” atunci cind sint atinse anumite subiecte ce nu mai au contact direct cu realitatea concreta, imediata – adica subiecte abstracte). Metoda pentru a recapata sau a amplifica aceasta capacitate este de a face cit mai des uz de ea, adica de a o exersa mereu (conform zicalei functia creeaza organul”)  intr-un domeniu particular, sustinut de o motivatie personala puternica. Altfel spus, capacitatea noastra de abstractizare se va amplifica daca vom incerca gasirea de solutii la problemele dintr-unul din domeniile noastre preferate, pentru ca rezolvarea acestora va fi automotivata, facuta “cu chef” si va prezenta o doza sporita de atractivitate.


Logica – este o alta calitate intrinseca a oricarui intelect sanatos. Ea este absolut necesara atit pentru a putea folosi mecanismele mentale de deductie si inductie logica, cit si pentru a putea intelege usor, dar in acelasi timp corect, cursul – firul rosu al unei demonstratii sau al unui rationament intins pe mai multe pagini. Asemenea tuturor calitatilor intrinseci existente in stare potentiala, antrenarea si amplificarea acesteia se face prin exercitiu repetat, prin folosirea ei in mod curent.Din pacate, doar prin rezolvarea de integrame nu se ajunge la amplificarea logicii .

Inteligenta – este una din cele mai de pret calitati intrinseci ale intelectului uman. In citeva cuvinte, fara a avea pretentia de a da prin acestea o definitie, prin inteligenta intelegem capacitatea de a face (de a stabili) conexiuni sau legaturi noi si folositoare (din latinescul inter-legere) intre idei, cunostinte sau informatii aparent fara legatura”. Fata de logica, pe care o consideram ca fiind o calitate bazala, inteligenta este o calitate ce se “intinde pe verticala” intelectului si are in plus trasatura de a fi mult mai dinamica si mai mobila (chiar fulgerator de rapida) in actiune. Pentru cultivarea, amplificarea si cizelarea acestei calitati este nevoie de “punerea ei la lucru” cit mai des si pe durate tot mai mari de timp. Insatisfactia obtinerii unor rezultate rapide sau chiar imediate este un obstacol ce poate fi depasit relativ usor prin antrenarea inteligentei pe un “teren” cunoscut si accesibil, adica in domeniul preferat de interes. In acest fel exista siguranta de a fi sustinut de atractia sporita pentru acel domeniu particular ceea ce va conduce prin efort perseverent (dar sustinut de aceasta data cu pasiune !) la aparitia rezultatelor asteptate si, implicit, a satisfactiei.

Creativitatea – este o calitate intrinseca nu numai intelectului uman ci insasi vietii in general. Ea consta, in ultima instanta, in capacitatea de a face (de a produce) ceva cu adevarat nou si original. De aceea am putea afirma ca toate organismele vii, prin capacitatea lor de a se opune entropiei, creeaza mereu ordine din dezordine aducind in acest fel ceva nou, neasteptat. Ceea ce se asteapta insa de la un bun programator nu este doar acest tip de creativitate (gen: adaptare inconstienta si instinctiva) ci o creativitate constienta, responsabila, reflectata in adaptarea solutiilor existente sau chiar inventarea altora noi. In acest sens trebuie sa mentionam ca exista o legatura strinsa, dovedita si verificata in practica (chiar daca pare oarecum inexplicabil la prima vedere), intre creativitate – inteligenta fluida – curiozitate – sublimarea impulsurilor erotice - umor si pofta de viata. Cultivarea si amplificarea controlata a oricarora dintre aceste patru trasaturi va conduce in mod automat la amplificarea si dinamizarea creativitatii intelectuale.

Talentul – este singura calitate ce nu poate fi cultivata si amplificata. In acceptiunea sa obisnuita, prin talent se intelege o suma de inzestrari native sau o predispozitie personala pentru un anumit domeniu. Existenta talentului este perceputa de cel in cauza ca usurinta – abilitate - dexteritate de a invata, asimila si aplica toate cunostintele domeniului respectiv, abilitate ce este simtita de cel 'talentat' ca un fel de “ceva in plus in comparatie cu capacitatile celor din jur. Din pacate, in acceptiunea comuna se crede ca talentul este calitatea suficienta care permite oricui atingerea cu siguranta a calificativului bun programator, conceptie este infirmata de orice programator cu experienta. Asta nu inseamna ca lipsa talentului in programare este permisa pentru atingerea acestui nivel, insa efortul, tenacitatea si rabdarea existente in “cantitati” mult sporite intr-o asemenea situatie de ne-inzestrare cu talent vor permite o apropiere sigura de acest calificativ. Din pacate, lipsa talentului va aparea la inceput sub forma unei insatisfactii interioare si ca o impresie acuta ca lipsesc rezultatele. Reamintim ca insasi cuvintul facultate are la origine sensul de capacitate, potentialitate, inzestrare. Deci, normal ar fi ca alegerea unui student pentru frecventarea cursurilor unei Facultati sa fi fost facuta tinind cont de aptitudinile si abilitatile celui in cauza, descoperite in prelabil, adica sa se dovedeasca talentat pentru domeniul ales. Acest lucru este cu atit mai important in cazul optarii pentru invatarea programarii, cunoscuta fiind ca o specializare complexa si solicitanta.


Reluind in sinteza ideile prezentate, putem spune ca:

Pentru a fi un bun programator trebuie sa fie prezente urmatorele sapte calitati intr-o forma activa, dinamica: tehnica, experienta, capacitate de  abstractizare, logica, inteligenta, creativitate si talent.

Dintre toate cele sapte calitati necesare programarii de inalta calitate, numai una – talentul - nu este inerenta unui intelect sanatos. De altfel, prezenta talentului nu este absolut necesara pentru a deveni programator, dar in timp ce absenta lui ingreuneaza apropierea de calificativul bun programator, prezenta lui si amplificarea celorlalte calitati este o garantie a succesului, ce va fi cu siguranta obtinut, insa nu fara efort, rabdare si perse­verenta !

Toate celelalte sase calitati excluzind talentul, prezente fiind intr-o forma potentiala, trebuiesc doar cultivate si amplificate. Am prezentat mai sus in detaliu modul de amplificare a fiecareia.

Cheia secreta“ ce conduce cu siguranta la declansarea procesului de dinamizare si amplificare a fiecareia din cele sase calitati inerente este de a avea mereu o motivatie puternica (de a invata “cu chef sau “cu tragere de inima” !). Acest fapt este posibil daca se tine cont de necesitatea adaptarii efortului la domeniul preferat al celui in cauza. La modul concret, este necesar ca toate aplicatiile, problemele, exercitiile, intrebarile, curiozitatile, inovatiile, descoperirile, “sapaturile”, etc., sa fie facute sau sa fie  alese, la inceput, din domeniul preferat (hobby-ul), chiar daca acesta nu are la prima vedere legatura cu programarea. Scopul ce se atinge cu siguranta in acest mod in aceasta prima faza este acela de a pune “la lucru” inteligenta, creativitatea, logica, etc., ceea ce va conduce cu siguranta la trezirea si amplificarea rapida a acestor calitati. Acest fapt va permite apoi trecerea la o a doua faza in care, pe baza acumularilor calitative obtinute, se poate trece la programarea propriu-zise “inarmat cu forte proaspete”.


Incheiem raspunzind intr-o singura fraza intrebarii din titlu Ce sanse am sa devin un bun programator ? :

daca ma simt inzestrat cu talent pentru programare (adica nu ma simt inconfortabil la acest subiect) atunci, mobilizindu-mi vointa (motivatia) si amplificindu-mi capacitatea de abstractizare, logica, inteligenta si creativitatea (ce exista in mine intr-o forma potentiala), prin practica de programare voi acumula in timp tehnica si experienta necesare pentru a deveni cu siguranta un bun programator , insa nu fara efort, rabdare si perseverenta.



Contact |- ia legatura cu noi -| contact
Adauga document |- pune-ti documente online -| adauga-document
Termeni & conditii de utilizare |- politica de cookies si de confidentialitate -| termeni
Copyright © |- 2024 - Toate drepturile rezervate -| copyright