Întrebarea mea este mai mult o rugăminte și se adresează celor care au finalizat o facultate de profil - nu contează (re)numele facultății. Puțin background ca scuză pentru cei care se simt excluși.
Am terminat ASE/Marketing și după câțiva ani de umblat prin acest deșert al profilului, m-am hotărât să mă reprofilez. Astăzi am împlinit 3 ani ca programator web, cu diverse proiecte custom la activ (ca freelancer) și angajat în același timp și la o multinațională. Nu mi-a fost ușor și am sacrificat numeroase weekend-uri și nopți pentru a recupera și pentru a ajunge la un nivel mediu. Însă simt în continuare că - oricât aș studia în profunzime OOP și în general design patterns - îmi lipsesc bazele sau anumite noțiuni pe care le dobândești odată cu finalizarea unei facultăți de profil.
Întrucât vreau să acopăr acest lacune, vă întreb, ce materie/curs din facultate considerați că v-a ajutat cel mai mult în cariera de programator / developer?
Niciunul, facultatea m-a făcut să urăsc tot ce ține de C, C++, ASM și Java. Stai liniștit că dacă nu înțelegi singur probabil și la facultate ai fi copiat pe rupte în sesiune sau aveai restanțe, să nu crezi că sunt cine știe ce buni profesorii români.
Eu nici macar n-am facut o facultate, am doar liceul. Totusi, desi nu am o educatie formală, ma consider programator in adevaratul sens la cuvantului, pentru ca toata viata mi-am dedicat-o studiului acestui domeniu. Sigur, n-as putea sa scriu un compilator, dar sa fim seriosi, cati dintre absolventii de facultate ar putea face asta?
Putine lucruri din facultate mi-au fost intr-adevar utile. Insa unele materii m-au fortat sa imi formez o gandire si intelegere diferita. Dupa 2 facultati in IT si un master, tot in IT, cred ca cel mai valoros curs a fost cel de limbajul C (nu C++).
Daca te pui sa programezi in pur C, te lovesti de tot felul de aspecte ale sistemului si al calculatorului care te fac sa vezi lucrurile diferit. Cum ar fi alocare de memorie, intelegere de referinte, pointeri, adresari diferite, si in final de fapt ce inseamna OOP (pentru cei curios, OOP poate fi inteles ca pointeri la functii din punct de vedere tehnic).
Deci eu iti recomand sa te pui sa sa iti faci un mic proiect in C pur. Acum sigur te intrebi ce ai putea face in C? Daca esti programator PHP ai putea sa faci un modul de PHP. Probabil exemplul se poate aplica si la alte limbaje. Interpretoarele si limbajele sunt scris in marea majoritate a lor in C sau C++.
O alta idee ar fi sa faci un program ce este similar cu un alt proiect opensource mic. Ai putea sa faci un mini editor de text care ruleaza in consola, ai putea sa faci ceva similar cu comenzile de Linux/Unix “cat” sau “grep” care sunt relativ simple dar suficient de complexe incat sa te bage in conceptele de sistem.
Toata experienta din aceasta aventura nu te va face un programator C, dar te va ajuta sa te gandesti altfel si probabil sa ai multe momente de “Aha!” in umplerea lacunelor mentionate de tine.
Nu pot zice ca am avut vreun curs care sa ma ajute direct in cariera (sincer cred ca in cariera te ajuta mai mult atitudinea), insa exista cateva cursuri care mi-au luminat(mi-au dat o perspectiva inedita a lucrurilor)
Bazele informatii ( o materie ce acopera: automate, masini turing, gramatici, expresii regulate)
FAI (Fundamente Algebrice ale Informatii) si FLP (Fundamente Algebrice ale Programarii) (desi era sa nu termin facultatea din cauza lor) - Tot Gramatici, Teoria Categoriilor, etc
Structuri de date ( cozi, stive si arbori )
Data mining
Imi pare rau ca nu am dat atentie cursului de Criptografie. Curs misto, materie super - cam multa materie (pentru acea vreme pentru mine)
Structuri de date. Materie la care am picat, am luat 9.5 la examen in restanta, iar la primul interviu am avut de scris parcurgerea unui arbore (whiteboard).
Limbaje formale si automate + continuarea lui cu compilatoare, tehnici avansate de programare (cele mai interesante probleme le-am rezolvat la materia asta), calcul numeric, regasirea informatiei, lingvistica computationala.
La Arhitectura Calculatoarelor am lucrat pe fpga-uri. La finalul lab-ului aveam implementat un procesor cu arhitectura x86 pe acel fpga. Procesorul putea sa execute instructiuni de asamblare simple
PS: Scuze ca reinviu un subiect vechi !
Topicul este interesant si ar fi pacat sa se piarda
Am facut si eu in anul 2 metode numerice. Rezolvare de sisteme, calcul de valori si vectori proprii, SVD
Pt mine facultatea a fost un mix de experiente pozitive si negative (materi prost preda, dar unele interesante si utile pt ceea ce fac acum).
O alta materie care materie care mi-a placut a fost “Traductuare si sisteme de masurare”, unde am studiat cum functioneaza tot felul de senzori (temperatura, presiune, forta etc) + partea de achizitii si prelucrare a semnalului. O intreaga teorie, dar foarte interesanta.
O alta materie ca m-a ajutat in cariera a fost uso - utilizarea sistemelor de operare. Acolo am studiat linux + scripting. As mai putea aduga si cursul de master legat de securitatea sistemelor de calcul. As mai putea adauga si programarea calculatoarelor, structuri de date si algoritmi, poo et company
Am terminat automatica industriala, dar toti algoritmii se implementeaza pe calculator + avem implementare in diferite biblioteci.