Inceperea unei cariere in domeniul IT


(Matei) #1

Salut!

Sunt un mandru absolvent al Facultatii de Drept a Universitatii din Bucuresti. Dupa diverse internshipuri in drept si dupa o actuala, aparent, viitoare fosta cariera de jurist la o multinationala, m-a lovit crudul adevar: nu as profesa in domeniu pe termen mediu-lung.

Nu o sa o lungesc cu textul ala clasic cu pasiunea de mic, pentru ca, in fapt, daca era cu adevarat, ajungeam sa profesez deja in domeniul IT si nu sa frec clauze contractuale.

Pe scurt, am terminat mate-info, in liceu am facut, pe latura de TIC, ceva html si javascript, evident, la nivel de amiba sclerozata, iar, la info, pseudocod, c++ si, surprinzator, SQL (unde am fost redus si nu am vrut sa iau certificat ORACLE). Problema e ca pe atunci nu urmaream sa fac un viitor din asa ceva si am invatat mecanic algoritmii. Pot da vina si pe profesori, pentru ca nu aveau vreo retinere ca noi sa fim niste imbecili care memoreaza secvente din alte probleme si incearca sa le aplice la una noua. Concluzionand, mi-am batut joc de ce puteam invata pe bune (degeaba aveam notiuni, daca nu eram in stare sa le aplic).

De cand m-a lovit realitatea, am inceput sa intreprind demersuri in sensul de a deslusi tainele programarii (stiu, ma refer in sens larg). Am cumparat cursurile unui anume Stefan Mischook (Killer Websites) de Web Dev. L-am descoperit pe YT si mi-a placut stilul in care abordeaza anumite subiecte. Cursurile presupun notiuni elementare de HTML, CSS, Javascript, PHP, SQL si inca ceva. Momentan mai am un capitol si termin modulul de HTML (cursurile nu sunt tocmai scurte, dar timpul liber este). Pot spune ca m-a luminat fata de cum eram cand am facut cursurile pe Codecademy, nu sunt in masura sa ma evaluez.

Nu stiu ce mi-ar placea sa fac mai exact (dev sau engineering). PS: Nu cred ca mi-ar placea sa lucrez pe parte de front-end, pentru ca nu sunt pasionat de grafica, dar vazand si facand. Macar sa am ocazia sa vad.

Stiu ca v-am plictisit, dar a sosit momentul sa intreb: Ce imi recomandati sa fac?

  1. Sa fac o facultate de profil, parca nu as vrea sa pierd un an ca sa ma pregatesc pentru admitere, ca apoi sa fac inca 3-4 ani de facultate, mai ales ca acum impozitarea este scutita doar daca am diploma de licenta, nu doar in domeniul IT. Ca sa scutesc un an din cei 4-5 care ar fi in acest caz, ar trebui sa ma duc la o facultate privata de info sau la Informatica Economica la ASE.
  2. Ma intereseaza sa invat sa gandesc. M-am saturat sa invat concepte si sa ma uit ca un dobitoc la ele. Asta este motivul pentru care luam o noua facultate in considerare. In schimb, sunt autodidact, dar imi place sa imi fie verificate cunostintele ca sa stiu daca sunt pe drumul cel bun.
  3. Sa ma duc la cursuri organizate de diverse firme? Am prieteni care au facut java pe la Telacademy si unii au reusit sa prinda un loc intr-o firma mica ca sa ii invete.
  4. Sunt dispus sa nu primesc niciun ban, dar macar sa invat ceva la o firma cat de mica, un internship, ceva, orice, doar ca, in cazul internshipului, nu te ia nimeni daca nu ai facultate in domeniu, din cate am inteles.

In rest, m-am tot jucat pe Codecademy si Solo Learn, citesc cat pot sa inteleg de pe forumuri, ma uit pe Youtube, dar nu am nicio schema pe care sa o pot urma.

PPS: Momentan lucrez aproximativ 10 ore pe zi si cam tot atat era programul meu de studiu in facultate. Nu am nicio problema cu intepenitul la birou (+multe multe ore de WoW, in tinerete)
PPPS: Am 23 de ani,


(Andres) #2

Stiu ca este un forum de developeri, dar de ce vrei numai pe programare?

Poti sa priveste si partea de Secuirty, Networking, etc.

Ca sa lucrezi in programare, si evident sa fii bun, parerea mea este ca trebuia sa-ti dezvolti de mai devreme putin o gandire.


(Matei) #3

Nu exclud in totalitate, doar ca, in mintea mea, si pentru ce ai mentionat ar fi trebuit o facultate in domeniu pentru a intelege conceptele fundamentale. In alta ordine de idei, CISCO ar fi un start pentru networking, nu? SysAdmin e cel care face mentenanta unui sistem de calculatoare, servere, networking din cate am inteles.


(Andres) #4

Eu pot spune despre domeniul in care lucrez si anume Networking.

Ai certificari care te iau de la zero (JNCIA, CCENT), si poti urca pana unde doresti tu (CCIE). Ai zis ca vrei sa lucrezi in IT, d-asta mi-am permis sa-ti recomand si Networking-ul, tot din IT face parte.

Plus ca in Networking poti incepe mai de jos, cu un Support, apoi un Support L2-3, NOC si abia poti spune ca poti face Architecture.


(cosmos) #5

sau poti experimenta partea de DevOps

DevOps este ceva destul de complex

Fara munca neplatita :slight_smile:
Sunt companii (marisoare) care au internship-uri in acset domeniu.

Poti sa iti cauti un curs la o “academie” cum ar fi Telecad, Crystal Mind etc. Stiu ca cei care se duc, de obicei se angajeaza destul de repede.

Cateva link-uri (utile sper)

Mai poti incerca si partea de testare software.


Ce am scris acolo reprezinta parerea mea. Vei primi mai mute si destul de diferite. Tu trebuie sa vezi ce este mai bine pt tine si ce ti se potriveste.

In the meantime. poti explora forumul. Gasesti subiecte bune de citit :slight_smile:


#6

Parerea mea este ca ai nevoie sa cunosti concepte fundamentale in ceea ce priveste algoritmii, structurile de date, manipularea datelor, cel putin un limbaj de programare si unul, doua framework-uri asociate, ca sa ai o sansa buna sa prinzi un job de developer.

Exemple de intrebari pentru care trebuie sa ai raspunsuri corecte la un interviu:

  • Exemplificati un algoritm de sortare cu complexitate O(1) sau O(log(n)).
  • Aveti un array cu 200 de numere naturale generate aleator. Ce algoritm ati utiliza pentru a putea gasi indexul la care se gaseste o anumita valoare? Ce complexitate ar avea algoritmul ales? Daca array-ul ar avea 200k valori, cum s-ar schimba solutia, asa incat rezultatul sa poata fi calculat cu eficienta maxima?
  • Ce este un Map? Dar un HashMap ?
  • Cum functioneaza un hasmap?
  • Ce este un “union”? Cum difera fata de un “struct”?
  • Ce este polimorfismul? Cum functioneaza?
  • La ce foloseste conceptul de “operator overloading”?
  • Ce este o clasa? Dar un obiect?
  • Ce este o interfata?
  • Ce este o variabila definita cu modificatorul “static”? Cum se comporta? Cand este initializata? Dar daca modificatorul este “protected”? Dar daca modificatorul este “static final”?
  • Ce este o functie care are modificatorul “virtual” in semnatura?

Evident sint multe intrebari de acest fel care sint folosite pentru a valida cunostintele teoretice macar ale unui candidat.

Dupa care vin intrebari specifice domeniului tehnologic pentru care aplici: Java cu Spring / SpringBoot / SpringCloud, JavaScript cu Node / Angular / React, SQL / NoSQL, etc, etc, etc.

Intrebarea fundamentala este cum ajungi sa achiziționezi aceste cunostinte.


#7

Eu m-am apucat de dezvoltare fix acum 10 ani. Aveam 24 de ani insa spre deosebire de tine nu aveam nicio baza din liceu(am facut economic). Am facut un curs destul de stufos de 350h unde am invatat de servere web, php si mysql, mi-a placut si am continuat sa invat pe cont propriu si dupa 2 ani(!) am reusit sa-mi gasesc job ca junior web dev facand 80% front end.

Ce as face eu in locul tau?

  • Nu m-as mai apuca de o alta facultate
  • m-as inscrie la una din academiile serioase care predau cursuri de programare. Eu recomand cele 2 cursuri de PHP de la Infoacademy. Poate si altele or fi bune, dar eu astea le cunosc si sunt foarte ok.
  • fa ceva tu singur si pune pe github, pe un url gratis undeva(Heroku maybe) ca sa ai cu ce sa te lauzi :slight_smile:
  • fa-ti cont pe linkedin daca nu ai, daca ai - actualizeaza-l. Trimite cereri de conectare oamenilor de HR si pune statusuri ca iti cauti job/intership in domeniu.

In 6-8 luni te invit sa ne povestesti aici cum ai ajuns sa lucrezi in IT. :slight_smile:


#8

Parerea mea este ca daca doreste sa ajunga sa lucreze in proiecte mari, complexe, PHP nu este o optiune reala.

Evident ca depinde si de ce vrea sa faca:

  • Web de complexitate redusa: HTML, CSS, JavaScript, PHP, MySQL
  • Web de complexitate ridicata: JavaScript cu Angular IO / React
  • Backend: Java sau Node cu DB Oracle sau Mongo / Cassandra
  • Low level: C/C++, Multi-threading, TCP
  • REST API

Daca, in schimb, vrea Networking, sau Security, sau BigData, evident ca subiectele de studiu vor fi cu totul altele.


(George Calianu) #9

Si de ce nu, limbajul Go mai ales pentru proiecte mari, networking, etc, fara sa mai spunem ca e mult mai acesibil decat gramada de tehnologii, servere si frameworkuri din zona de dezvoltare web :sunglasses:


(Red) #10

Algoritm de sortare de complexitate O(1)? WTF? O(log(n))? Double WTF. Adică nici măcar să parcurgă o dată șirul de elemente? What is that? Magic?


#11

Întrebarea este cate proiecte pe Golang sint in Romania.

Cred ca este mai intelept sa mearga pe ceva mainstream la inceput ca sa aiba acces facil in piata muncii si apoi sa treaca la tehnologij mai ezoterice in RO, cum ar fi Scala sau Go.


#12

Am pretins ca sint Mafalda si le stiu pe toate? Am gresit, scuze.

Mesajul era altul…

PS. Avand in vedere ca nu am mai scris cod de 14 ani, nu este de mirare ca mai dau cu bata in balta din cand in cand.


(Red) #13

Oh God, forum.computergames.ro all over again. Not another consultant that hasn’t written code in more than a decade that “enlightens” juniors as to what consists as serious software development®


#14

Exasperated much?

Consideri ca sfatul meu nu are valoare si este de aruncat la gunoi doar pentru ca nu am mai scris cod in ultimii 14 ani?

Pana una alta, poluarea discutiei vine din partea ta.

FYI, sint director de R&D, asadar nici nu mai am cum sa scriu cod, nor do I have time for it.


(Red) #15

Dude, tu ai început cu „algoritm de sortare de complexitate O(1)”, apoi cu „struct” and „union” și pe urmă cu „operator overloading” care sunt concepte specifice C+±ului, nicidecum generale.

Un începător când o să citească așa un text venit cu așa o autoritate o să caute pe Google și ce va găsi? Pwla. Că nu există așa ceva. Dar o va lua de bună, se va speria imediat și probabil va renunța instant. Pe când realitatea e că ai zis și tu o chestie să sune cool® Exact ca pe firul de discuții de pe computergames.ro unde niște consultanți care o ardeau pe câteva mii de lire pe zi, și care nu au mai avut de-a face cu scris cod de peste 10 ani (și apoi cine scrie cod? Doar niște maimuțe) ne dădeau lecții că ce e PHP-ul ăsta? E un kkt.

Știu și eu „consultanți” care scriu cod foarte bine și astăzi și în părerea cărora am încredere 100%. Pentru că sunt la curent și (ei) știu despre ce vorbesc.

Fundamental e bine omul să știe algoritmică (stive, cozi, dicționare, arbori, liste simple/dublu-înlănțuite, grafuri, algoritmi genetici și ce mai e). Dar pe urmă limbajul e fix pix. Că e PHP sau mult slăvitul C++, whatever. Un proiect nu e mai proiect că e scris în Go, Perl sau în Brainfuck.


#16

Esti cam arogant. Mi se rupe de ce crezi tu ca este bine sau nu.

Evident ca un inginer bun trebuie sa stie cate ceva din multe ei multe despre un domeniu de specializare. Motiv pentru care am exemplificat intrebari care ating multe elemente aparent disparate.

Si sint intrebari care sint curente in interviurile din grupul pe care il conduc.


(Florin Matincă) #17
  1. Ignora sfaturile de la cei care spun ca PHP sucks, probabil sunt genul de oameni blocati in tehnologii proprietare sau considera ca sunt mai buni doar pentru ca stiu sa schimbe 3 linii in React. Evita listele mari cu buzz words, mai mult te baga in ceata.

  2. Abordeaza altfel problema, cel putin la inceput. Ce aplicatie/site ti-ar placea sa faci ? Cauta sa vezi cum faci o aplicatie simpla, un Twitter/Instagram intr-o varianta lite. Pune aplicatia live sa vezi ce presupune, da-o si la cativa prieteni. Apoi vei avea cateva notiuni care te vor ajuta sa alegi o directie. Stii un limbaj dar sa nu poti construi o aplicatie e fix pix.

Succes :sunglasses:


(Alex) #18

nu te apuca sa intrebi pe forumuri. o sa dai de niste unii care-ti spun ca trebuie sa stii sa faci rachete pt programare.
cauta pe yt. sunt destule tutoriale care sa-ti dea o directie.


#19

Bun sfat. Cine are nevoie de algoritmi, structuri de date, protocoale, OOP, etc ? Cine are nevoie de arhitecti, la urma urmei ?

Reteta perfecta sa fii picat la interviuri. Bafta!


(István F.) #20

Daca ai o diploma in drept ar fi pacat sa o irosesti, parerea mea personala. Apuca-te de politica, proiecte europene, consultanta juridica-IT si probabil e mai bun ROI-ul decat investitia in dezvoltare de software. O fi greu, dar nici realizarea, mentenanta si intelegerea unei aplicatii serioase nu e o plimbare in parc, chiar e departe de fun stuff. Pana ajungi, daca ajungi sa lucrezi pe ceva cum iti cere tie sufletul va lua ceva timp.

Eventual ai putea cu putin talent sa iti faci marketing ca si business inteligence specialist, product owner cu diploma in drept.