Jump to content
Patrunjel

Ce-ar trebui sa stie un programator perfect?

Recommended Posts

Posted (edited)

Topicul asta nu isi are locul neaparat la offtopic, insa va include (daca iese cum vreau eu) mai multe domenii, deci nici nu poate fi bagat in programare, sau webdesign, sau orice altceva.

Din experienta proprie am aflat, la fel ca multi incepatori, ca e nevoie de informatie din mai multe domenii pentru a invata ceva mai avansat. Si eu, personal, mor de ciuda cand gasesc ceva fain, investesc 2-3 zile sa-mi caut material de studiu, si sa incep umpic sa citesc, si ma lovesc de lipsa cunostintelor matematice (de obicei asta e problema).

De asta vreau sa iasa de-aici un topic de referinta, omu' sa intre, sa caute domeniul care il intereseaza si sa se uite, sa vada ce cunostinte ii trebuie, ca sa priceapa ceva. Daca postati, va rog sa postati ordonat, si sa fiti precisi (sa nu ziceti simplu "matematica", ci sa spuneti o anumita arie de interes).

Vreau sa postati doar chestii pe care le stiti, nu ce-ati vazut pe internet/ pe la tv/ ati auzit pe la scoala

Vreau sa postati linkuri spre carti care acopera subiectul X (macar pe amazon, ca-i simplu de gasit, dupa aia fiecare isi cauta).

Puteti sa acoperiti si alte domenii (gen fizica cuantica, si sa ziceti chestiile care trebuiesc stiute, atat din fizica, cat si din matematica, pentru a pricepe ceva

Incep eu direct, fiindca mi-e greu sa dau exemplu cum ar trebui sa fie tot :

Lucruri generale, care trebuiesc stiute pentru a pune bazele mai multor discipline:

-- Matematica --

Algebra 1(link) si 2(link) (predecesoare pentru Calculus)

Calculus 1 Link

--Programare in C/C++ --

O lista mare de carti care trebuiesc urmate in ordine (chestiile pe care le invatati din lista asta se repeta cam prin toate cartile din categoria respectiva)aici.

-Carti din lista de mai sus care chiar merita citite-

C++ Primer Link

Effective C++ Link

Thinking in C++ Link

C++ -Programming Principles and practices Link

C Unleashed Link

-- Algoritmica --

Materia din clasele 9-11 mate-info intensiv (manuale relativ bune se gasesc pe toate drumurile)

Programming pearls Link

Bineinteles, Introduction to Algorithms Link

Edited by Patrunjel
Posted

Da, stiu ca exista chestii mult mai interesante, da n-am vrut sa ma bag peste subiecte pe care nu le-am acoperit (si nici n-am zis ca lista pentru Matematica, de exemplu, e definitiva, se mai poate adauga, doar ca eu nu stiu, de exemplu, criptografie, si atunci nu m-am bagat in matematica necesara criptografiei )

Posted

pe langa cartile din lista aia care ar cuprinde sa zicem toate nivelurile de cunostinte tehnice de la incepator la avansat in ce priveste C++ , pentru cine lucreaza in domeniu ar fi necesare si carti precum

Amazon.com: The Clean Coder: A Code of Conduct for Professional Programmers (Robert C. Martin Series) (9780137081073): Robert C. Martin: Books

sau carti de test driven development, unit testing....

Posted

pe parte de programare web, sunt mai multe tipuri de joburi si o sa le iau pe rand

1) web designerul

- trebuie sa cunoasca foarte bine design-ul (o scoala de arte e recomandat, ai avantaj la angajare)

- trebuie sa cunoasca foarte bine un program de grafica vectoriala (gen corel) si photoshopul (sau alternativele de pe mac). Tin sa precizez ca firmele mari de media si publicitate nu fac design doar pentru web ci si pentru offline (tv si print) si de aceea designerul trebuie sa stie programul vectorial la fel de bine ca photoshopul.

- sa stie care sunt diferentele de culoare dintre pc si mac (cele 255 culori comune)

- sa stie sa foloseasca un program de grafica 3d (optional)

- sa stie sa taie un layout pentru web/print

- sa cunoasca destul de bine css (in special css3 care e din ce in ce mai cerut)

- sa cunoasca destul de bine sintaxa html4/5 si xhtml (sa stie care sunt diferentele si cand i se cere sa stie sa faca cu doctype-ul specificat)

- optional sa stie si ceva javascript (pentru animatii) sau flash

2) web programming client side

el de obicei primeste layoutul/template-ul de la designer si daca nu e taiat se apuca sa il taie el deci trebuie sa stie

- html4/5 si xhtml si xml (preferabil si wap)

- css

- javascript/jquery

- optional ajax/php

- pe langa astea ar trebui sa cunoasca structura interna la diferite cms-uri de pe piata ca sa poata implementa layoutul/template-ul pe acel cms (wordpress, drupal, joomla, phpbb etc)

3) server side programming

- aici pe langa cele de la punctul 2 ar ma itrebui sa stie si php sau asp sau rubi sau alte limbaje server side

- sa cunoasca cel putin o sintaxa SQL (mysql, sqlite, mssql, oracle, postgree etc)

- javascript/jquery/mototools/ajax

- sa aiba notiuni de matematica

- sa aiba notiuni de algoritmica

- sa aiba notiuni de design patterns (sistemul mvc e cel mai folosit si il poate aplica in orice limbaj de programare)

- sa cunoasca cel putin un framework (cachephp, codeigniter, zend etc)

- sa cunoasca un sistem de template engine (cel mai folosit e smarty)

- sa fie o persoana logica si analitica (fara astea nu vei fi niciodata un bun programator)

- sa aiba notiuni de securitate (fara asta nu va scrie niciodata un cod sigur)

- sa aiba notiuni despre sistem (cum functioneaza tot sistemul de la client la server si intern la server ce se intampla cu datele de la interpretare pana la afisarea lor) fara asta nu va putea niciodata scrie un cod optimizat

- optional sa stie java sau .net (pentru a putea face aplicatii gen jocuri online sau antivirusi online sau alte chestii cerute de firma) care ruleaza in apleturi java sau activex

4) database designer

- pentru postul asta e necesar sa fi expert in baze de date, sa stii cum sa faci cele mai optime interogari si sa construiesti o baza de date care chiar si la miliarde de interogari sa functioneze optim si rapid

- ar fi bine sa cunosti baze de date de tip oracle, mssql, mysql si sa stii sa faci legaturile intre tabele, sa creezi functii sql in functie de situatiile cerute si sa intelegi structura interna a unei baze de date si cum se fac legaturile intre tabele si date (lasa inner join, foreiwen keys si alte chestii similare, astea sunt mici copil pe langa ce trebuie sa stii)

- ar fi bine sa stii si cum e tehnologia cloud si cum se comporta o baza de date distribuita (in cloud)

5) software project mananger

- pe langa toate cele de mai sus, project managerul trebuie sa aiba cunostinte despre analiza pietei,

- sa stie sa faca specificatiile unui proiect in urma discutiei cu clientii (care clienti habar nu au ce vor de obicei),

- sa stie cum sa aloce parti din proiect echipei in asa fel incat sa nu existe timpi morti sau intarzieri,

- sa fie un bun psiholog si orator (fara asta nu poate comunica prea bine cu clientii si cu echipa, nu se poate face inteles)

- sa poata estima corect riscurile unui proiect (se fac contracte pe termen fix si pe bani multi si in caz ca nu isi cunoaste echipa sau nu a estimat bine proiectul scoate bani din buzunar ca sa plateasca daunele)

- sa poata estima corect preturile proiectului (de la analiza, specificatii, implementare, testare pana la livrare si intretinere)

- sa poata intervenii rapid si sigur in cazul unor conflicte (cand lucrezi pe svn si ai probleme chemi project managerul sa descalcesca ce e acolo ca doar el stie ce a facut fiecare din echipa si care linie de cod e ok si care nu)

putem discuta pe rand fiecare parte de aici doar sa ma intrebati (si sa stiu sa raspund)

  • Upvote 2
Posted (edited)

Am vazut undeva ca pe un post de game developer ajunge la 75000$ /an, asta inseamna 217589.97375 lei, dupa cursul de azi. Deci e destul de profitabil :D (asta in State, si nu garantez ca-i suma asta, da' stiu ca am vazut-o pe undeva )

Oricum, daca stii sa-i faci ies bani frumosi, nustiucare de pe rst (nu-mi vine acuma nicku, se certase el cu pax) a zis ca scotea 600$ dintr-un xss pe yahoo. Tot dupa cursu de azi asta vine 17 milioane si ceva, asta (cel putin in oras la mine) e mai mult decat un salariu primit pe 8ore de munca. Deci important e sa stii sa-i faci, si ei vin singuri :P

Edited by Patrunjel
Posted

^ ^ Era un articol in Phrack in care un individ zicea "If you are seeing the light at the end of the tunnel, you're probably looking in the wrong way". Si oricum, chestia cu programatorul perfect era o metafora :P

  • Upvote 1
Posted

^ a Knuth book. For most programmers, that means: "It's by this old Comp Sci guy that everyone raves about but nobody has actually read." Am I right, or am I right?

Pentru hardcori?ti, zic

(*)

Posted
^ a Knuth book. For most programmers, that means: "It's by this old Comp Sci guy that everyone raves about but nobody has actually read." Am I right, or am I right?

mda...

...daca nu citeam ceva scris de el nu postam doar de dragul de a posta....

Revenind, un prof ca si Knuth sa tot ai.Stanford bitches were damn lucky!

Posted

Foarte bine c? ai postat. Cine pricepe chiar ?i 30% din ce-i în The Art of Computer Programming e foarte tare.

De aia eu recomand încep?torilor ni?te c?r?i la fel de bune/clasice, dar mai u?or de digerat.

Cum ar fi: Concrete Mathematics: A Foundation for Computer Science de Ronald L. Graham, Donald E. Knuth, Oren Patashnik

*bump*

Romanca la Facebook: Nu conteaza ora la care vii sau pleci, ci doar cum merge proiectul

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...