Jump to content
kame

Cum ati invatat programare?

Recommended Posts

Intai am invatat logica, apoi am mers pe visual basic, si dupa ce vreme de cateva saptamani imi era frica sa ma ating de partea de cod, am inceput sa imi fac tupeu, si am facut cateva linii de cod... Dupa o vreme, am vrut sa ma iau de C++, dar mi s-a parut un pic cam "profesionist", asa ca am inceput sa invat despre linux, si sa folosesc din linux: perl, apoi python, apoi m-am intors la c++, dar am regresat spre c#... apoi am ajuns sa invat assembly... si cam asta e tot... Deci incepi cu Visual Basic, ca sa iti formezi logica programarii.... si cauta un manual de liceu de programare :D Chiar daca e in c++, trebuie sa te invete mai intai logica, cu pseudocoduri :). Odata ce stii pseudocod, nu e greu sa inveti un limbaj de programare. Adica e ca si cum ar fi aceeasi gramatica pentru toate limbile.... :D

PS: nu folosesti "a-ti/ati" cum trebuie...

Link to comment
Share on other sites

Deci incepi cu Visual Basic, ca sa iti formezi logica programarii....

@adonisslanic: Logica programarii inseamna sa analizezi problema pe care o ai de rezolvat, sa o descompui in subprobleme/module care sa fie mai usor de rezolvat, sa le proiectezi si sa le implementezi corespunzator. NU se refere in niciun caz la limbajul cu care incepi

@kame: Odata ce stii sa proiectezi un algoritm pentru o problema, limbajul de programare nu prea conteaza. Din experienta mea iti recomand sa inveti C curat, apoi C++ si proiectarea orientata pe obiecte. Daca esti autodidact te sfatuiesc sa citesti teoria , sa incerci sa o intelegi, sa rulezi exemplele de la fiecare capitol/lectie, sa rezolvi problemele propuse de la fiecare lectie, si daca ai nelamuriri sa intrebi pe cineva care chiar se pricepe, nu pe bagatorii de seama care-si dau cu parere.

LE: Nu te incurca sa inveti nu stiu cate limbaje de programare ca o sa sfarsesti sa nu inveti niciunul.

Edited by Zamolxis666
Link to comment
Share on other sites

Am început cu programele mici in Visual Basic 6. Apoi am pus mana pe o carte de 900 de pagini (Visual Basic 6 - Manualul programatorului) si pe una de vreo 700 (Visual Basic 5 - 1001 de exemple, cam asa ceva) si am inteles limbajul.

Cu testele pe diferite API-uri Windows, citind documentatia de pe MSDN pe care initial nu o citeam ci doar banuiam ce fac acele functii, am inceput sa inteleg perfect cum sta treaba. Si cotrobaiam prin multe coduri sursa de unde am invatat multe.

Apoi am trecut pe PHP, am citit "Initiere in PHP 5" - Steve Holzner apoi "PHP 4 in imagini" si am invatat cam tot ce imi trebuia la inceput. HTML stiam deja partial, si din ce mai facusem la scoala... Iar MySQL din capitolele dedicate acestui SGBDR din cartile enumerate. Cu timpul am citit si documentatia multor functii de pe php.net si intreg capitolul dedicat PHP 5 - OOP, si multe alte lucruri de pe php.net. Si din coduri sursa am mai invatat cate ceva. Am trecut apoi si la o cartulie de JavaScript si vreau sa invat notiuni mai avansate de MySQL.

C++ am invatat din liceu, dar nu mare lucru. Abia anul acesta m-am apucat serios de OOP (facultate) si e singura materie care mi-a placut si la care am inteles cam toate prostiile, cat de marunte, de la mostenire virtuala la RTTI. Am citit "C++ manual complet" - Herbert Schildt, "C++ pentru incepatori volumul II" - Liviu Negreanu, am retinut multe idei din "Secrete C++" - Constantin Galatean...

Am citit si o carte despre Java si anume "Java de la 0 la expert" care mi s-a parut cea mai buna carte de programare citita, si o carte despre "Perl", dar nu m-au pasionat aceste limbaje si nu mai stiu mare lucru, nu prea le-am folosit.

Pe Linux, shell scriping nu stiu cine stie ce, doar idile de baza, citite intr-un articol, doua si din citirea si modificarea diverselor fisiere de sistem.

Eu nu pot citi carti pe calculator, nu suport, prefer formatul pe hartie. Si imi place sa citesc, citeam si literatura...

In fine, asta e ideea mea de baza: invatati din carti! Una e sa iti explice cineva care lucreaza de ani de zile in domeniu, alta e sa iti explice Vasile de 12 ani care a inteles si el dintr-un tutorial ca daca pui "echo 'Plm';" apare pe site "Plm".

Ca tot veni vorba: degeaba invatati un limbaj de programare daca nu lucrati des in el. Faceti proiecte! Cat mai multe si cat mai complexe. Va veti trezi ulterior ca vreti sa va angajati si... CV? Ce o sa treceti acolo? Conteaza proiectele foarte mult, cat de mici.

Ca sugestie: faceti-va acum un CV. Si o sa vedeti ca nu prea aveti ce trece acolo. Da, puteti spune ca stiti n limbaje de programare, dar la interviuri se intreaba:

- C: scrie in C o functie care inverseaza o lista simplu inlantuita

- C++: se da un exemplu cu o functie virtuala si upcasting, sa spui daca codul e corect sau nu (daca vreti sa vedeti cate rahaturi pot sa apara in programe OOP in C++ postati aici si o sa vedeti ca nu e atat de usor sa fii un compilator uman)

- PHP: se da o clasa, se serializeaza apoi se deserializeaza un obiect, cu __sleep si __wakeup de riguare. Ce se va afisa daca nu stiu ce...

- PHP: se da o clasa abstracta, se mosteneste dar nu se implementeaza toate metodele bla bla...

In fine, sunt foarte multe lucruri. Daca nu cititi o documentatie serioasa, gen CARTE nu aveti de unde sa le stiti. Sfatul meu: CITITI!

Link to comment
Share on other sites

@kame incepe cu limbajul de programare care iti place si citeste o carte care te ia de la 0 si iti explica pana al cele mai marunte lucruri despre el si dupa ce poti sa spui ca ai invatat acel limbaj poti trece la altul.

@Nytro la mine este lipsa de vointa, adica am apuc sa citesc o carte despre Delphi sa spun si am citit primele 4-5 zile ca nebul cam 100 de pagini mai am inca 900 de citit si dintr-o data nu mai am nici un chef,o tot las pe mine si plm...asta este singura problema,lipsa de vointa....

Link to comment
Share on other sites

1. Daca vrei sa inveti programare incepe cu partea de algoritmica si sa citesti o carte despre asta. Incepe cu algoritmi simpli, gen descompunerea unui numar in cifre, descompunerea in factori primi etc. Dupa ce ai inteles acesti algoritmi simpli uita-te peste structurile de date (siruri, liste simplu si dublu inlantuite, arbori, grafuri, tabele de dispersie etc), dupa ce ai facut cativa algoritmi de sortare, parcurgere al acestor structuri, si te-ai prins cam cum sta treaba treci peste cateva metode de elaborare a algoritmilor (backtracking, greedy, divide et impera, programare dinamica). Pentru aceasta parte eu iti recomand limbajele C sau Pascal. O data ce stapanesti aceste lucruri poti sa rezolvi aproape orice problema.

2. Dupa ce stii algoritmica si structuri de date calumea poti sa treci la treburi mai serioase, OOP. Pentru OOP eu iti recomand Java, C# sau Visual Basic. Eu unul sunt total impotriva C++ - lui cand vine vorba de OOP, asta in primul rand pt ca C++ nu e un limbaj pur OOP. C++ -ul nu este nici, nici (un hibrid).

Dupa ce stapanesti bine notiunile de OOP, ar fi bine sa inveti si un model de programare, recomandabil MVC-ul.

3. Cand stii primele 2 chestii, invata niste retelistica, ceva programare multithreading, paradigma client server, si baze de date.

Si lista ar putea continua... Dupa cum bine vezi sa stii programare nu e usor, trebuie invatat cativa ani buni pentru a deveni un programator decent. Oricum, o data ce vei stii cele din lista de mai sus, si vei vedea o bucata de cod scrisa in orice limbaj, iti va fi relativ usor sa il transcrii in oricare altul, va fi vorba doar de sintaxa.

Deci cel mai important sfat e: Invata sa programezi, nu invata un limbaj de programare! Daca stii sa programezi, eu iti garantez ca in maxim 2 saptamani stii sa programezi la un nivel decent in orice limbaj existent( ma rog aproape orice :) cei care au vazut prolog, lisp etc stiu despre ce vorbesc

Link to comment
Share on other sites

Eu am inceput cu limbaje antice: Turbo Pascal 7.0. Inca nu am skiluri prea bune de programator. In clasa a 9a faceam doar temele de la info in mai multe moduri de rezolvare. Cum zicea si Nytro am inceput sa caut prin biblioteca carti de programare. Acolo am invatat conceptele de baza ale programarii: loop-uri, backtracking, divide et impera, grafuri, matrice 2d,3d; OOP desi era implementat in pascal nu l-am invatat si acum imi pare rau. Dupa care am inceput sa despic o problema in subprobleme care sa le rezolv cu metodele astea simple. Trecerea de la un limbaj la altul nu mi se pare foarte grea atata timp cat stii astea de baza. In AutoIT(desi nu prea e limbaj) am reusit programe destul de bune in maxim o saptamana. In rest pot sa modific codul sursa in majoritatea limbajelor: perl,pyhton, C++. Totul e sa am un manual(preferabil pdf) unde sa pot cauta definitia functiei de care am nevoie, ca celelalte se recunosc destul de usor(for, while, repeat...etc). Cu scrierea codului de la 0 e mai greu. Parerea mea: Alege un limbaj, cauta documentatia pt el(carti nu tutoriale) apoi foloseste Google code search sa iei surse si sa le modifici dupa bunul plac.

Link to comment
Share on other sites

pe la 14 ani incepusem c/c++, neavand idee ce inseamna programare.

Am citit vreo 200 de pagini din pdf-ul "Totul despre c/c++" si m-am lasat ca era pre complicat pentru mine atunci.

Acum m-am orientat pe web, programez in HTML, CSS, PHP, Mysql, insa dupa ce prind ceva experienta in astea, ma mut pe visual basic.

Link to comment
Share on other sites

mult am invatat din "practica", bazele e important sa le cunosti, restu vine de la sine, daca nu... cauti, m-am documentat pe ce am avut nevoie si in mare parte ce am vrut sa "creez" am creat, mai un ochi pe la o sursa, mai gogu.... nu e o tehnica de invatare, cum iti pica mai usor asa inveti.

cu romana e mai greu, restu' e floare la ureche :D

ps: multi de e aici nu stiu programare dar se descurca :D

Link to comment
Share on other sites

daca ar fi sa o iau de la inceput... totul a inceput cand am fost la un var si am vazut minunatia... pe vremea mea minunatia se numea HC90 (clona de ZX Spectrum) si programele se incarcau de pe caseta audio si ca monitor era ecranul de tv...

cu prima ocazie mi-am luat si eu... desigur ca mult timp am pierdut jucandu-ma ...

apoi am prins niste reviste cu limbajul basic (asta stia acel "pc") si am inceput sa desenez linii pe ecran...

ulterior mi-am luat hc2000 care venea cu disketa de 5,25 externa si 2,5 interna si suplimentar avea limbajul CP/M unde am invatat sa creez primul meu virus... (tot asa din revistele ce apareau pe vremea aia - nefiind inca net decat pe dial-up care costa destul de mult)

ulterior a inceput nebunia cu 286, 386, 486, pentium etc si am inceput sa prind turbo pascal ci ceva C - am avut o comanda la un moment dat la un client de o alarma de casa si am scris programul in turbo pascal care monitoriza portul paralel si afisa pe ecran zona cu probleme (stiam si electronica pe vremea aia si am construit un sistem de intrerupatoare care se montau la usi si ferestre si in caz ca se activa unul din ele trimitea semnal pe portul paralel la program (daca ma intrebi ceva azi de aceste limbaje zici ca sunt paralel nu mai stiu nimic din ele nemai folosindu-le de ani buni)

ulterior prin 99 am creat primul meu site (pe vremea aia revista chip era la putere si din ea invatam lucruri noi - atunci cand publica ceva de programare, desi se intampla rar) si ulterior m-am axat doar pe programare web (invatand in timp html/xhtml/xml/java script/php/mysql/sqlite/mssql/ajax)

odata cu dezvoltarea internetului si la noi in tara am avut si eu resurse mai bune de documentare (w3c a fost una din ele)

asa ca recomandare e sa iti alegi un limbaj care iti place (sau care stii ca e destul de folosit cum ar fi java sau diferite variante C) si sa incepi sa inveti sintaxa lui.

in paralel trebuie sa studiezi tehnici si algoritmi de programare (astea se invata de obicei pe la liceu/facultate daca ai profil IT - desi majoritatea nu se prea aleg cu mare lucru de pe urma lor datorita metodelor proaste de predare) - odata ce intelegi tehnicile si algoritmii de programare si stiind sintaxa limbajului incepe sa iti fie usor sa faci ce ai nevoie dar asta nu e tot, urmatorul pas e sa inveti sa scrii codul la nivel profesional, studiind diferite tehnici de design pattern si alegand unul din ele (personal prefer MVC cu OOP mi se pare cel mai bun din toate) Odata ce ai inteles cum sta treaba cu MVC poti trece usor la alte limbaje de programare (MVC se aplica la orice limbaj fie el web sau sistem dependent) invatant sintaxa noilor limbaje (pentru ca restul deja stii, algoritmii si design pattern)

Nu stii ce inseamna termenii spus de mine mai sus? search wikipedia... o buna resursa de inceput...

Spor la studiu :)

Link to comment
Share on other sites

In clasa a V-a am inceput cu Pascal. Fara access la internet am fost nevoit sa invat din Help. In vacanta programam saptamani intregi pe un Pentium I care il aveam la bunici...

Apoi in clasa a VIII-a am invatat AutoIT. Au urmat multe proiecte in acest limbaj de scripting...

In clasa a IX-a am inceput sa invat programare web (PHP). Intre timp si HTML si JS... Imi placea acesta, am invatat si CSS.

Apoi in clasa a X-a am inceput cu Python, si deocamdata am ramas la el...

Link to comment
Share on other sites

Depinde, sunt unii alternative se axeaza pe un anumit limbaj si altii (ca mine) cate putin din fiecare...

Ralph Lauren Polo Shirts

Ralph Lauren Mens Jackets

Classic Polo Shirts

Da..inveti putin din fiecare si daca te pun sa codezi ceva simplu habar n-ai,mai bine inveti unul sa-l stii bine,dupaia urmatorul si tot asa nu cate putin din fiecare.

PS:Ce-s cu reclamele alea?

Link to comment
Share on other sites

hmm, eu am inceput deoarece eram fascinat de websiteuri :D si am cautat ce si cum, fara a avea prea multe cunostinte in domeniu si am vazut ca majroitatea siteurilor sunt facute in PHP si m-am pus sa caut lectii video si asa am inceput :D dupaia totul a venit de la sine, php fiind c/c++ like, mi-a fost usor sa inteleg c++ si tot asa :D

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...