Programare - oferta/cerere pe piata romāneasca/straina
29 nov 2005
Referinta online:
P21439 - Programare - oferta/cerere pe piata romāneasca/straina
Locul 2, decembrie 2005

Problema
Am tot citit pe site-ul asta, dar nu am gasit un raspuns concret la cateva intrebari. Se spun multe generalitati, dar nu gasesc un raspuns concret.
Situatia mea e: sunt student la Poli in anul I, cred ca e timpul ca sa ma orientez concret spre un domeniu de programare, dar inca nu stiu care.
Īntrebarile ar fi urmatoare:
- 1. Se poate vorbi de saturatia pietei de programatori
peste 5-10 ani? Adica oferta sa fie mai mare decat cererea? (Desi stiu ca cei
buni oricum rezista)
- 2. Momentan, din cate am vazut, este o cerere mare
pentru programatori c/c++, visual c++, delphi, net frameworks, web developers
(php, mysql, java...). Am dreptate? Privind in ansamblu, la ce se poate
astepta la viitor? Adresez aceasta intrebare celor care sunt "implicati",
lucreaza in domeniu sau sunt foarte bine informati.
- 3. Care sunt diferentele in salarii/timp intre aceste domenii? Care cum se platesc si necesita mult timp pentru a se obisnui si a deveni bun in cea ce faci?
Īn final, o recomandare din partea D-voastra? Spre ce ar trebui sa ma orientez? (pro si contra). Mentionez ca in liceu am invatat Pascal-nu sunt un geniu :), dar am participat la cateva olimpiade, deci stiu ceva algoritmica; am invatat Visual Basic 6.0 cat de cat (pot sa fac o aplicatie simpla desktop, tcp, udp... chestii standard); html la nivel standard; m-am uitat si peste Javascript; la facultate se preda C intens, deci si asta e o optiune.
Multumesc anticipat!
Nagy Janos
Raspunsul meu
Daca esti pasionat de programare, te asteapta vremuri interesante.
Din informatiile pe care le am, toate companiile de software duc mare lipsa de programatori buni. Au multe idei de proiecte si n-au oameni pentru aceste proiecte. Acolo unde lucrez eu, cam 80% dintre cei care se prezinta la interviu nu reusesc sa raspunda la jumatate din intrebarile din test. Iar testul e destul de usor. Deci, invatati programare pentru ca e mare nevoie de voi. Īti spun ca e o mare placere sa lucrezi cu cineva cu care sa poti sa vorbesti despre teme avansate si omul sa inteleaga si sa poata continua ideile.
Functie de ce fel de software fac, firmele se impart in urmatoarele categorii:
- 1. aplicatii "serioase", pentru publicul larg, pentru
firme sau autoritatile statului. Acestea din urma genereaza cele mai mari
proiecte. Indiferent daca produsele sunt desktop sau web se foloseste .Net sau
Java. N-am auzit de nimeni sa mai foloseasca MFC. Java e preferat acolo unde
costurile mai mici de licentiere chiar conteaza. In principal, vorbim de fani
Linux. .Net (favoritul meu) pune la dispozitie unelte mai evoluate si elegante
(Visual Studio tinde spre ideal). Costurile mai mari de licentiere face sa fie
preferat de companiile mai puternice. Aici vorbim in principal de fani ai
tehnologiilor Microsoft. Tot aici se pune problema bazelor de date, unde la
putere sunt Sql Server, Oracle si MySql. Partea buna pentru programator este
ca daca stii Transact SQL (inclusiv proceduri stocate), te descurci cu oricare
din ele.
- 2. aplicatiile de divertisment si jocuri. Pentru PC si pentru consolele de joc se programeaza in C++, parte pentru ca se obtine cea mai mare performanta si parte pentru ca nu exista compilatoare pentru alte limbaje. Pentru jocurile pentru mobile se programeaza in principal in Java pentru ca este limbajul suportat de telefoanele mobile moderne.
Exista unelte de dezvoltare puternice pentru toate de mai sus. Un programator se poate distra lucrand in oricare din domenii. In plus, se mai intampla ceva. Programatorii sunt destul de mobili ca forta de munca. Fiindca esti la inceput, eu zic sa incerci din toate cate un pic, ca sa ai idee despre ce e vorba. Dupa ce-ti gasesti favoritul, perfectioneaza-te. Exista carti foarte bune de programare (majoritatea la editura Teora; nu e reclama mascata, majoritatea covarsitoare a "bibliilor" mele (numite asa din cauza numarului mare de pagini) sunt de la aceasta editura). Exista forumuri pe net. Ai de unde invata.
Īti recomand urmatoarele carti (si subiecte):
- Programarea Windows API in C++ (Charles Petzold,
Programare in Windows 95; cartea asta o sa-ti deschida ochii; o sa intelegi ce
se intampla in inima Windowsului la fiecare apasare de tasta sau la miscarea
cu un milimetru a mouse-ului)
- Programarea Windows cu MFC, ActiveX (Clayton Walnum,
Secretele programarii in Windows 98; cartea asta o sa te invete magia si
eleganta de a lucra cu lucruri avansate din Windows, pe care putini stiu sa le
aplice)
- Programarea Windows cu .Net (Richard Grimes,
Dezvoltarea aplicatiilor cu Visual Studio .Net; asta e o carte pe care o s-o
intelegi abia dupa ce o sa ai suficienta experienta cu .net si Visual Studio;
la capitolul eleganta, claritate si putere, nimic nu intrece .Net si C#. O
sa-ti placa. C++ Managed e puternic si flexibil, recomandat doar avansatilor).
Pentru limbajul C# exista o carte tot a lui Charles Petzold. C# se arata
foarte interesant unui incepator. Pe masura ce ajungi sa inveti mai multe,
descoperi ca lumea .Net e facuta sa inlocuiasca toate vechile metode de
programare. Īnchipuie-ti ca noul Sql Server permite proceduri stocate scrise
in C#. Poti face un joc in DirectX Managed care are aceeasi performanta ca un
joc scris in C++, doar ca este scris mai repede, mai elegant, cu mai putine
bug-uri si batai de cap. Ŗi in plus, aplicatiile .net nu crapa niciodata in
felul in care crapa un program C++.
- Proceduri stocate in SQL Server. XML, HTML (Ken
Henderson). Poti sa descoperi un intreg univers si in lumea procedurilor
stocate.
- DirectX. Din pacate n-am gasit o carte respectabila. Doar Clayton Walnum atinge cat de cat subiectul. Oricum, sa faci un joc cu DirectX e o placere si o incercare personala.
Dupa cum vezi, recomand tehnologiile Microsoft. Nici o companie nu are forta de a visa a lui Microsoft si forta de a implementa acele vise. In toate domeniile posibile.
Sper ca te-am indrumat cat de cat. E o lume interesanta si sunt destule companii care stiu sa recompenseze munca unui programator priceput.