Inceput de drum - Back-end (sau Full-stack)

Salut, ma bucur ca am gasit acest forum si am oportunitatea de a cere parerea unor oameni din domeniu:

Pentru inceput pot sa spun ca ma consider pasionat de informatica…

Sumar

mereu m-am intrebat cum functioneaza lucrurile in spate ( am fost genul ala de copil care desfacea toate masinutele sa vada cum si ce se afla in ele :grin: :grin: )
De prin 2013 poate, cand umblam prin forumul alliedmods cautand pluginuri de amxmodx ca sa imi fac propriul server de CS 1.6 ca ulterior sa ajung sa incep sa scriptez un server de Sa:Mp ( tot odata unde m-am indragosit de… chestia aia pe care o faceam, scriam niste… chestii… cam asta intelegeam pe atunci ) asta m-a determinat sa vreau sa lucrez in acest domeniu. In caz ca nu aveti idee Pawn are o sintaxa gen C.
Usor usor am inteles ce este o variabila apoi o functie, apoi o conditie, dar mai ales am ramas masca atunci cand am descoperit ce este un loop… Ma rog deja m-am dus prea departe cu toate astea.

Nu prea are legatura cu intrebarea ce am scris mai sus, doar o poveste scurta despre cum am descoperit ca imi place programarea.

Bun, acum un background pentru intrebarea propriu-zisa, pe scurt stiu cate putin din toate, nu are sens nici sa aproximez eu la modul “Stiu x% din y limbaj” si nici sa insirui tot ce imi vine pe moment si consider a avea destula importanta cat sa o trec pe lista, dar poate va faceti o idee:
Am habar de urmatoarele limbaje/tehnologii

  • HTML ( taguri semantice si am habar despre accesibilitate, adica stiu ca exista :laughing: :laughing: )
  • CSS (am cate o idee despre SASS si mai nou am rasfoit putin documentatia TailwindCSS)
  • Javascript, ( o idee despre DOM, discut mai mult imediat )
  • PHP (aici sa detaliez mai mult imediat),
  • MySQL ( inafara de ce este o tablea, un SELECT, INSERT INTO, ALTER, WHERE ORDER BY si LIMIT, nimic, stiu ca este mult mai mult de atat dar nu m-am lovit decat de astea )

Acum pe partea de teorie:
Algoritmica ( big O complexitate timp spatiu, foarte putin )
Stiu algoritmi de sortare si de ce bubble sort e ineficient, cautare liniara binara, recursivitate ( aici pot sa spun ca ma descurct ok )
Ce sa mai scriu? Structuri de date? Stack Queue… habar nu am nu mai imi vine nimic in minte.

Acum cateva saptamani am facut un mic proiect in javascript, in canvas un grid in care alegi un punct de plecare unul de sosire, si am implementat cat m-a dus capul o forma a algoritmului lui Dijkstra in distanta Manhattan, iar dupa am impementat un algoritm de Maze generator, recursive backtracker parca se numea, se bazeaza pe un stack.
De recursivitate am aflat si am inteles cand am reusit sa implementez Minimax pentru un joc de X si 0 in python in aprilie,

Partea de OOP: Chestiile de baza, mostenire, abstractie, polymorfism, encapsulare… Am aflat de design pattern-uri, am urmarit cateva video-uri, nu s-a prins de mine mare lucru, doar Singleton, dar pana atunci trebuie sa mai citesc despre SOLID GRASP si sa mai rasfoiesc Clean Code de uncle Bob.

Dar si aici am vrut sa ajung, in ultimele saptamani am luat de la 0 un forum, in PHP, pe un MVC inspirat din TraversyMVC, ca functionalitate am ajuns in puncul in care iti poti creea un cont, te poti inregistra, poti crea un thread, si poti raspunde unui thread (pe langa navigare intre forum sub-forum thread) Chestia interesanta si care mi-a dat cele mai mari batai de cap a fost ca am tinut neaparat ca forumurile sa poata avea un numar nelimitat de “sub-forumuri neasted” iar acelea pot avea sub-forumurie lor si tot asa, problema a fost cand am vrut sa arat cel mai nou thread al unui forum sau numarul total de threaduri pentru ca nu am vrut sa arat doar threadurile care se aflau direct sub el, ci, in mod recursiv, sa treaba prin toate sub-forumurile si sub-forumurile sub-forumurilor etc…

As putea discuta despre asta ore intregi, intrebarea mea este simpla, cat de departe de a deveni angajabil sunt? Vreau sa punctez ca nu am experienta, nici liceu de profil si inca nu am inceput o facultate, urmeaza din octombrie
Dupa ce termin ce am sa implementez ce functionalitati mai am in minte, vreau sa documentez, cat am sa reusesc, de ce am facut si cum am facut si unde am gresit, iar mai apoi sa fac o pauza pentru a invata JS si un framework precum Vue, OOP si design paternuri, inainte de a o lua de la capat cu un alt forum de la 0, dar cu cunostinte noi…

Ca si side-note: De JS nu m-am lovit decat atunci cand am vrut sa fac un editor WYSIWYG, eu tot incercand sa il evit, pentru ca nu am habar…

Daca ai ajuns pana aici mersi fain, si astept un feed-back, multumesc anticipat.

Angajabil ca intership poate, cred ca mai degraba o te-ar ajuta sa cunosti o tehnologie / framework foarte bine, ca junior nu te pune nimeni sa gasesti shortest path, sau sa faci cine stie ce algoritmi, mai incolo daca vrei poti te joci cu chestii din astea.

De ex am vazut ca se cauta pe PHP pt ca exista mult legacy si neffind cool anymore gasesti mai greu programatori, daca inveti bn o tehnologie te-ar ajuta sa intri.

E important sa lucrezi la un proiect real sa vezi presiunea de a scrie bug free code, cand scrii cod 15 min si testezi 2-3 ore, si scrii teste, si modifici teste, aici am vazut ca des se duce chestie cu pasiunea IT, cand nu mai e fun si e un job ca oricare altu si raspunzi pt ceea ce faci.

Fa-ti un cv bun si du-te pe la interviuri. Baga si un profil de LinkedIn si vezi ce job-uri sunt si pe acolo.

Bafta si Craciun fericit!


Acorda si 2-3 minute opiniei mele de pe aici

E greu de zis, cum zicea @konn mai sus, la angajare ai mai multe șanse să știi un pic dintr-un framework. Poți folosi asta ca și metodă de alege ce să înveți. Cauți prin anunțurile din zona ta, vezi ce se cere, și învață un pic din cele mai des întâlnit framework.

Cred ai foarte mari șanse la un intership (chiar neplătit). Spune-i angajatorului că vrei să înveți și că înveți repede și cere-i o lună-două de probă. În luna aia o să-nveți multe și la final o să ai o idee mult mai clară asupra direcției în care vrei să apuci.