Post on 25-May-2015
description
1
Ce mă fac când o să fiu mare?
Vlad Poseavlad.posea@stagiipebune.ro
14/1/2014
2
mituri și legende• dacă termin facultatea de automatică și
calculatoare o să fiua. programatorb. project managerc. administrator de rețead. [cercetator stiintific]
14/1/2014
3
Ce joburi există pentru absolvenți?
• software engineer (software developer)• QA engineer• architect• network engineer• business analyst• researcher• data scientist (NEW!)• DB admin/developer14/1/2014
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
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ții14/1/2014
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
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
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
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
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: toate14/1/2014
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
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
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
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
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
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
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
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
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
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
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
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 open-source
14/1/2014
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
24
Multumiri pentru feedback si completari
• Răzvan Deaconescu• Andrei Pitiș• Traian Rebedea• Răzvan Rughiniș• Emil Slușanschi
14/1/2014