Cum arata cariera ta ca junior software developer?

Cum arata cariera ta ca junior software developer?

Industria IT este una dintre cele mai profitabile sectoare economice din Romania datorita ascensiunii rapide, cererilor tot mai mari de pe piata si inovatiilor curente. Dezvoltarea software este printre cele mai provocatoare arii din IT&C, datorita complexitatii si cererilor ce apar in cadrul diverselor proiecte.


 
Spre deosebire de alte locuri de munca cu acelasi profil, unde abilitatile tehnice pot fi de mai multe feluri sau se pot incadra in mai multe categorii, ca software developer principalele competente tehnice necesare sunt formate din buna cunoastere a unui limbaj de programare sau de imbinarea cunostintelor de software cu cele de hardware. De cele mai multe ori diferenta dintre un junior software developer si un senior o reprezinta experienta personala de lucru cu diverse limbaje de programare: cati ani a programat, cat de des a folosit acel limbaj, cum poate folosi tehnologii împreuna, cat de mult invata pe cont propriu si se mentine la curent cu ce apare nou in domeniu. Conform articolului ,,Cele mai raspandite limbaje de programare" din ArenaIT, 2014 reprezinta al treilea an consecutiv in care Python este considerat cel mai dorit si utilizat limbaj de programare, distantandu-se tot mai mult de Java Script si C++ . Cele mai utilizate 5 limbaje de programare de catre companiile IT&C din Romania sunt:
 

JAVA

Java este un limbaj de programare dezvoltat de JavaSoft, companie in cadrul firmei Sun Microsystems, si este complet orientat pe obiecte si ofera posibilitatea reala de refolosire a codului. In acelasi timp Java este neutru din punct de vedere arhitectural, reprezentand un limbaj independent de platforma de lucru, aplicatiile ruland, fara nici o modificare, pe sisteme diferite cum ar fi Windows, UNIX sau Macintosh, lucru care aduce economii substantiale firmelor care dezvolta aplicatii pentru Internet.
 

C++

C++ este un limbaj de programare general, compilat si urmasul uneltei C. Este un limbaj multi-paradigma, cu verificarea statica a tipului variabilelor ce suporta programarea orientata pe obiecte. Acest limbaj de programare ocupa cererile de pe piata in proportie de 13%, fiind in general des folosite chiar si de companiile din prezent.
 

PYTHON

Python pune accentul pe simplitatea codului, iar sintaxa sa le permite dezvoltatorilor sa exprime unele idei programatice intr-o maniera mai clara si mai concisa decat in alte limbaje de programare, ca C. In ceea ce priveste paradigma de programare, Python poate servi ca limbaj pentru software de tipul object-oriented, dar permite si programarea imperativa, functionala sau
procedurala.
 

PHP

PHP este un limbaj de scripting de uz general, cu cod-sursa deschis (open source), utilizat pe scara larga si care este potrivit in special pentru dezvoltarea aplicatiilor web si poate fi integrat in HTML. PHP se remarca prin simplitatea pentru un incepator, dar totodata existenta multor facilitati avansate pentru un programator profesionist.
 

RUBY

Ruby este un limbaj de programare generic, reflexiv, dinamic si orientat pe obiecte: fiecare tip de date este un obiect, inclusiv clasele si tipurile pe care multe alte limbaje le considera primitive (cum ar fi tipul intreg, boolean si “nil”). Fiecare functie reprezinta o metoda.
 
Variabilele desemneaza referinte la obiecte, nu obiectele in sine. Ruby suporta mostenirea, dar nu mostenirea multipla, totusi clasele pot importa module. Sintaxa procedurala este acceptata, dar toate metodele definite in afara scopului unui obiect particular sunt de fapt metode ale clasei obiect. Pentru formarea unei viziuni mai clare asupra limbajelor de programare folosite, putem sa observam top 10 cele mai folosite site-uri, ca numar de utilizatori unici, si tehnologii folosite, conform articolului ,,Programming languages used in most popular sites” al Wikipedia.org.
 
 
 

CE URMARESC RECRUTORII LA ANGAJAREA UNUI JUNIOR SOFTWARE DEVELOPER?

Obtinerea unui job de junior software developer depinde de limbajele de programare cunoscute si de aptitudinile de tip softskills specifice pe care le cauta fiecare firma angajatoare in parte. Nu exista o fisa a postului generala care sa cuprinda o lista standard de abilitati pe care daca le intrunesti te poti considera angajat!
 

HARD SKILLS

Pentru selectia potentialilor candidati recrutorii urmaresc experienta candidatului cu respectivul limbaj de programare cu care a lucrat de-a lungul timpului, fie in cadrul unui job, in proiecte la scoala, sau pe cont propriu. Asigurarea potrivirii cu cerintele jobului a noilor angajati se realizeaza pentru aceasta etapa prin 
testari practice. Candidatului ii sunt testate abilitatile in diversele limbaje de programare cat si capacitatea de rezolvare a problemelor de algoritmica, iar in functie de corectitudinea cu care acesta a completat sarcina, persoana este admisa sau respinsa.
 
 ,,Am observat de-a lungul timpului ca managerii prefera candidati cu abilitati bune de comunicare, flexibilitate si abilitatea de a lucra în echipa. Ca hard skills, as mentiona cunostinte de programare (ex. in Java, SQL), dar si limbile engleza si germana la nivel avansat. Unele dintre acestea pot fi obtinute prin proiectele din facultate, dar incurajam puternic participarea la programe de internship in timpul studiilor sau la inceperea unor proiecte pe cont propriu (de exemplu, crearea unei aplicatii web sau mobile). Cel mai mult apreciem candidatii care sunt flexibili: se pot adapta rapid la noi tehnologii, la cerintele clientilor, programul si volumul de lucru, la necesitatea de a calatori. Acest aspect poate face diferenta intre a obtine sau nu jobul. Desigur, este de dorit ca aceasta flexibilitate sa fie completata de: abilitati excelente de comunicare, experienta solida in dezvoltare software sau consultanta SAP." Raluca Baicu, HR Manager, BearingPoint România
 

SOFT SKILLS 

Cele mai des analizate atributii personale sunt: rezolvarea eficienta a problemelor, capacitatea de a asimila rapid noi informatii, comunicarea eficienta, orientarea spre rezultate si gandirea logica.

,,Atunci cand experienta lipseste, ne dorim ca tinerii aflati la inceput de cariera sa compenseze prin entuziasm, un nivel
ridicat de energie, seriozitate si dorinta de a invata. In ceea ce priveste hard skills, cautam oameni care sa detina cunostinte minime de programare. Ele difera in functie de specificul fiecarui job ex : PHP, MySQL, JavaScript, Hadoop sau Java." Elena Nastasa, HR Manager, Avira

CUM SA ITI IMBUNATATESTI APTITUDINILE DE CODARE

Ca sa ai succes in industria IT&C trebuie mereu sa te autodepasesti si sa iti imbunatatesti in mod constant aptitudinile de scriere de cod. De asemenea, nivelul de experienta si usurinta cu care tu poti coda in anumite limbaje de programare reprezinta unul dintre factorii care iti pot asigura sau nu un job.
 
                                    
 
Printre cele mai bune modalitati prin care iti poti imbunatati abilitatile de codare se numara:
  •  Participa la un eveniment IT. In cadrul conferintelor din zona IT&C poti sa cunosti profesionisti din domeniu si sa faci networking cu acestia. Acest aspect conteaza destul de mult pentru ca poti primi sfaturi utile pentru dezvoltarea ta ca software developer sau te poti chiar angaja.
  •  Implica-te in proiecte extracurriculare ce presupun scriere de cod. Prin participarea la acest tip de activitati si proiecte iti poti imbunatati abilitatile de programare. Ai sansa sa te dezvolti intr-un mediu profesional in care sa iti rafinezi competentele de codare si sa primesti feedback constructiv pentru munca depusa.
  •  Invata de la profesionistii din domeniu. La un search pe Google, poti gasi o multitudine de persoane care isi împartasesc modalitati si sfaturi de redactare a codurilor personale. Totodata, poti cere ajutor de la persoanele cu care faci networking ca sa iti imbunatatesti abilitatile de codare si in acelasi timp sa primesti sfaturi utile in acest sens.