Care sunt posibilele trasee pe care le pot urma absolventii unei facultati de IT. Tipuri de joburi, cerinte, domenii si tipuri de companii. Trasee propuse pentru un student din anii mici
Ce mă fac când o să fiu mare - optiuni pentru o cariera in IT
1. Ce mă fac când o să fiu mare?
Vlad Posea
vlad.posea@stagiipebune.ro
14/1/2014
1
2. mituri și legende
• dacă termin facultatea de automatică și
calculatoare o să fiu
a.
b.
c.
d.
14/1/2014
programator
project manager
administrator de rețea
[cercetator stiintific]
2
3. Ce joburi există pentru absolvenți?
•
•
•
•
•
•
•
•
software engineer (software developer)
QA engineer
architect
network engineer
business analyst
researcher
data scientist (NEW!)
DB admin/developer
14/1/2014
3
4. Software developer
• cea mai frecventă poziție de pe piață
• diferențiatori între poziții
– limbajul de programare
– domeniul de activitate
14/1/2014
4
5. Software developer - web
• web
– frontend – dezvoltă acea parte a aplicațiilor web care
interacționează cu utilizatorul
• tehnologii: HTML(5), CSS3, javascript
• foarte dinamică, tehnologiile evoluează extrem de rapid
• necesită cunoștințe de – programare, structuri de date, protocoale
de comunicație, interacțiune om-calculator
– backend – dezvoltă acea parte a aplicațiilor web care
prelucrează datele utilizatorului
• limbaje: PHP/Java/C#/Python
• necesită cunoștințe de: programare, structuri de date, algoritmi,
baze de date, protocoale de comunicații, arhitectura sistemelor
(ASC), design patterns.
• ex de companii: cam toate au astfel de poziții
14/1/2014
5
6. Software developer - mobile
• mobile
– frontend – dezvoltă interfața cu utilizatorul pentru
aplicații pentru platforme mobile (telefoane,
tablete)
• limbaje de programare: ObjectiveC/Java și/sau
tehnologiile de la web frontend
• necesită cunoștințe de: programare, structuri de date,
protocoale de comunicație, interacțiune om-calculator
– backend – v. web backend
14/1/2014
6
7. Software developer –
networking/embedded
• networking/embedded
– dezvoltă aplicații low level pentru dispozitive dedicate
(echipamente de rețea, procesoare dedicate, telecom,
...)
– limbaje de programare: C/C++, scripting bash, Python
– cunoștințe necesare: sisteme de operare, protocoale
de comunicație, retele de calculatoare, compilatoare,
arhitectura sistemelor de calcul, proiectare cu
microprocesoare, programare paralela, electronica
• exemple de companii: Ixia, Bitdefender, Intel,
Luxoft, Freescale
14/1/2014
7
8. Software developer - gaming
• gaming
– dezvolta jocuri pe diferite platforme (mobile, console,
PC)
– limbaje de programare: C/C++, Java/ObjectiveC –
mobile
– cunoștințe necesare: programare, mecanică, grafică
pe calculator, sisteme de prelucrare grafică,
arhitectura sistemelor de calcul, inteligență artificială
• ex de companii: Ubisoft, Gameloft, EA, Namco
Bandai
14/1/2014
8
9. Software developer - evoluție
• evoluție
– junior (1-3 ani exp), medium (4-5 ani), senior (5 ani +)
• experiență = autonomie+eficiență crescută, cunoașterea mai
multor tehnologii caracteristice domeniului
– team leader/manager
• asigură legătura cu celelalte departamente (marketing,
product)
• asignează taskuri echipei
– arhitect
• proiectează aplicații, propune soluții, alege tehnologii
14/1/2014
9
10. QA engineer
•
•
•
•
elaborează planuri de testare
realizează testare manuală și automată
[participă la debugging]
tehnologii: limbaje de scripting pentru testare
automată, un limbaj de programare, instrumente de
testare specifice domeniului
• cunostinte necesare: programarea calculatoarelor,
testarea sistemelor de calcul, arhitectura sistemelor de
calcul, scripting (sisteme de operare), cunostinte
specifice domeniului in care se face testarea
• ex de companii: toate
14/1/2014
10
11. System(s)/Network Admin/Engineer
• proiectează/configurează o rețea, asigură securitatea,
proiectează/verifică/implementează/testează
protocoale ...
• cunoștințe necesare: rețele de calculatoare, sisteme de
operare, protocoale de comunicație, programarea
calculatoarelor, arhitectura sistemelor de calcul
• pozițiile curente evolueaza în admini care acum au
nevoie de cunoștințe de programare ca sa
dezvolte/mențina feature-uri; se ajunge la ceea ce se
cheama sysops (sys + ops) sau sysdevops (sys + dev +
ops).
• ex de companii: Romsys, Bitnet, Omnilogic,...
14/1/2014
11
12. Business analyst
• analizează cerințele clientului, propune soluții,
elaborează specificații, comunică cu echipa de
implementare
• trebuie să aibă cunoștințe tehnice bune
(programare, arhitecturi de calcul), cunoștințe
specifice domeniului în care lucrează,
[management]
14/1/2014
12
13. Researcher
•
•
•
•
cercetează, face prezentări tehnice
licență/master/PhD
lucrează în universitate/institut de cercetare
necesită: programare, matematică, statistică,
sisteme de operare, arhitecturi de calculatoare,
metode numerice, fizică, algoritmi, ...
• ex de angajatori: UPB, INCAS, ANM, INFP, ICF,
IAAR, Intel, INMH, etc
14/1/2014
13
14. Data scientist
• analizează folosind algoritmi și instrumente
specifice cantități mari de date, oferă suport
departamentelor de business, extrage informații
”ascunse”
• necesită: programare, baze de date, algoritmi,
inteligență artificială, învățare automată,
matematică, arhitectura sistemelor de calcul,
sisteme distribuite
• ex de companii: bănci, IBM, Google, Facebook,
Amazon, Yahoo, Twitter, SAP, companii telecom,
servicii de informații
14/1/2014
14
15. DB Admin/developer
• proiectează baze de date, optimizează
proceduri și interogări, utilizează software de
analiză, business intelligence, ...
• necesită cunoștințe de: baze de date,
arhitecturi de calculatoare, algoritmi, rețele de
calculatoare, sisteme de operare, structuri de
date
• ex de companii: bănci, orice companie ce
gestionează cantități mari de date
14/1/2014
15
16. Product manager
• dezvoltă un produs, alege features ce vor apărea
în fiecare versiune, înțelege cerințele utilizatorilor
și le transmite echipei de dezvoltare
• necesită: interacțiune om-calculator, cunoștințe
de front-end, cunoștințe de business analyst
• ex de companii: BitDefender, Adobe, Ixia, Intel,
4PSA (companii ce dezvoltă produse proprii)
14/1/2014
16
17. Antreprenor
• creează o companie de IT ce face dezvoltare
de produs/outsourcing
• necesită: curaj, cunoștințe de business,
product management (v. slide-ul precedent),
cunoașterea f bună a pieței, marketing,
human skills
• ex de angajatori: voi :)
14/1/2014
17
18. Unde pot să lucrez?
• tipuri de companii – după domeniul de activitate
– de produs
• dezvoltă produse proprii
• stabilitate a tehnologiilor folosite și a proiectelor
– outsourcing
• dezvoltă produse pentru terți
• pot schimba mai des tehnologiile/proiectele în funcție de
cerințe
– departamente de IT din companii nonIT
• dezvoltă/întrețin aplicații interne
• nu prea schimbă tehnologiile
• echipe mai mici, tehnologiile mai puțin dinamice
14/1/2014
18
19. Unde pot să lucrez? (2)
• tipuri de companii – după dimensiune
– corporații/multinaționale
• proceduri foarte bine definite, tehnologii mature
– small/medium size
• echipe dinamice, oportunități de învățare
– startups
• tehnologii foarte noi, all-rounders – șanse mari să faci toate
tipurile de job
– freelancer
• cauti proiecte, lucrezi când vrei/cât vrei, ești plătit în funcție
de cât ai lucrat
14/1/2014
19
20. Traseu recomandat
• anii 1-2
– cursurile de la facultate
– școli de vară – pentru a identifica în ce domeniu v-ar plăcea să
lucrați
– [cursuri tehnice de limbaje de programare –
Java/C#/Web/Mobile sau networking – CCNA]
• anul 3
– cursurile de la facultate – focus pe traseul ales
– stagiu de vară în domeniul ales
• anul 4
– cursurile de la specializarea aleasă (corelată cu domeniul ales)
– lucrare de diplomă (opțional efectuată în colaborare cu o
companie din domeniul preferat)
14/1/2014
20
21. Școli de vară/stagii
• școli de vară – aprox. 3 săptămâni iunie-iulie.
– se învață tehnologii, arhitecturi si aveți ocazia să
descoperiți domenii/faceți experimente noi
• stagii – cca 3 luni – iunie/iulie – septembrie
– se lucrează full-time pe proiecte reale în companii
• lucrări de diplomă în co-tutelă – anul 4
semestrul 2
– se efectuează un proiect în domeniul ales
14/1/2014
21
22. Unde găsesc stagii?
• stagii/școli de vară în România –
www.stagiipebune.ro – se aplică 1 martie – 1
mai.
• stagii la companii din afară (Google, Facebook,
...) – se aplică la companiile respective
octombrie-decembrie
• Google Summer of Code - program finanțat de
Google prin care se lucreaza la proiecte opensource
14/1/2014
22
23. În loc de concluzii
• ”Choose a job you love, and you will never
have to work a day in your life.” (Confucius)
• "I advise students to learn the fundamentals,
invest in a solid base of mathematics and
learn to write well. Explore as many things as
you can and try to find a project you have a
deep passion for." (Jack Dongarra)
14/1/2014
23
24. Multumiri pentru feedback si
completari
•
•
•
•
•
Răzvan Deaconescu
Andrei Pitiș
Traian Rebedea
Răzvan Rughiniș
Emil Slușanschi
14/1/2014
24
Editor's Notes
INCAS – Institutul National de CercetariAeroSpatialeANM – AgentiaNationala de MeteorologieINFP – Institutul National de FizicaPamantuluiICF – Institutul de Chimie-Fizica al AcademieiRomaneIAAR – Institutul Astronomic al Academiei de RomaneINMH – Institutul National de MetorologiesiHidrologie