Inițiere în web development - Care este parerea voastra?

Salutare tuturor :smiley:

Numele meu este Ionut si am 18 ani. Sunt in primul an la facultate, in orasul Baia Mare. Astazi m-am gandit sa caut un site pentru romani despre web development, am ajuns pe acest site. Am citit cateva articole si am observat ca aici fiecare incearca sa ajute, un lucru foarte fain.

De cateva luni am aflat despre domeniul Web Development. Am citit cate ceva despre acest domeniu, cum se creeaza anumite site-uri, ce limbaje de programare se folosesc, etc. Am inceput sa ma uit la cateva videoclipuri scurte pe Youtube pentru fiecare limbaj in parte, cred ca nu sunt foarte greu de invatat si poti face lucruri foarte interesante cu fiecare limbaj in parte. Am vazut ca cererea de locuri de munca in acest domeniu este foarte mare, + ca in acest domeniu exista si posibilitatea sa muncesc de acasa(super).

La inceputul acestui an, am cumparat 2 cursuri de pe Udemy(complete web developer course si web developer bootcamp), deoarece am vazut ca au un pret super bun si un rating foarte bun. Nu am apucat sa ma uit prin ele, din lipsa de timp, dar m-am gandit ca dupa terminarea sesiunii o sa am mai mult timp liber, o sa le vizionez. Eu as vrea sa invat cat mai multe limbaje de programare in urmatorii 2 ani, apoi la sfarsitul facultatii sa imi dau seaman ce imi place cel mai mult sa fac si sa incerc sa imi gasesc un loc de munca in acest domeniu.

Am cateva intrebari, astept cat mai multe raspunsuri din partea voastra, fiecare raspuns ma ajuta.

  1. Ce limbaje de programare sa invat pentru partea de Front-End si ce limbaje pentru partea de Back-End?
  2. Daca ati putea sa imi dati 1-2 dintre cele mai bune cursuri(link de unde sa il vizionez/cumpar) pentru fiecare limbaj ar fi super.
  3. Dupa ce am vizionat si aplicat lucrurile din cursuri, ce ar trebui sa fac in continuare pentru a deveni mai bun?
  4. E o idee buna sa incerc pentru inceput pe un site de Freelancing(freelancer/upwork)?
  5. In Baia Mare, sunt foarte putine firme care fac Intershipuri. Cel mai apropiat oras mare de mine este Cluj-Napoca, s-ar merita sa stau in Cluj pe perioada de vara si sa merg la un Internship?(daca nu gasesc in Baia Mare).
  6. Dupa ce am facut toate astea, ar fi un lucru bun sa incerc sa imi gasesc un job part-time?

Cam astea ar fi cateva dinte intrebari, multumesc foarte mult pentru timpul acordat si pentru raspunsurile voastre, salut :slight_smile:

  1. Din pacate pr. frontend exista un singur limbaj de programare, si este o mizerie. Oricat de mult s-ar schimba, oricat de mult ti-ar spune internetul, oamenii seriosi stiu ca este o mizerie.
    As for the backend, hmm, majoritatea aici, or sa-ti spuna PHP, nu as vrea sa comentez, sa nu supar oameni. Sunt un neica programator de prin 2006, au trecut anii peste mine, si parerile s-au schimbat. O sa scriu fix pix cu ce am scris cod, si aici ma refer peste 1000 de linii de cod
  • java. Verbose precum povestile vecinului despre ceausescu. scrii mult pentru putin. JVM este extraordinar. Sunt multe limbaje peste jvm acum, so java poate in ceva ani nu o sa fie singura solutie
  • C#/net. Microsoft, un java mai bun, tool-uri mai proaste, iarasi joburi in enterprise, the same as java.
  • C/C++ glumesc, aici a fost primul meu limbaj la alde gecad.
  • python. Hmm, pentru web, ai django, iar dupa cum stii putine lume stie despre django, si framework si musician. Un limbaj, corect, cu un oop dubios, funtional mai deloc.
  • ruby. Bad marketing, pentru ca lumea spune ca este slow, dar in recent years, acest lucru s-a schimbat. RAILS este the only framework for web. O sa scrii teste pana crapi, pana devii compilator. Aici iti pot da o grama de detalii, pentru ca asta fac de ~10 ani
  • grails/groovy Am scris groovy si am folosit grails, primul meu job in Berlin. Rails, pentru jvm, fara librarii, nu este rapid precum java si nici frumos precum rails. You will never be happy
  • php. Am scris cod foarte putin cand eram la okazii.
  1. Nu o sa inveti nimic din video tutoriale. Pierdere de timp si spatiu.
  2. Practice, learn and read code like there is no other day
  3. Poti incerca freelancing, desigur vei avea competitie si sanse zero. Second, vei primit proiecte DE CACAT. Si eu fac consulting, dar tre sa-mi dau 70-100 pe ora sa vb. Primesc desigur, dar rar si cand primesc, sunt de obicei proiecte incepute de indieni full stack :slight_smile: De obicei legacy este groaznic.
  4. pt. partime, de exemplu la compania unde eu sunt CTO, oferim salariu cam 1000 euro, si nu cer decat sa invete. Avem cursuri, carti, proiecte si teme care trebuiesc facute, altfel ne despartim. Toti interni pe care i-am pregatit lucreaza full time. Secretul este sa muncesti si sa inveti.

PS: Adevarul este ca nu toata lumea este pt. programare. Second, eu fac web dev de ceva ani, inainte am facut orice altceva dar nu web. In my spare time I do games with unity. Never label yourself as web dev
PS1: Scuze ca rup limba romana cu engleza, dar dupa o grama de ani, am inceput sa pierd din vocabular

spor!

5 Likes

O judecata foarte obiectiva, sustinuta de un argument foarte concludent:

pentru ca asta fac de ~10 ani.

And this:

eu sunt CTO

5 Likes

:slight_smile: fair. O sa consider ca nu esti troll, sau doar upset on me.
Sa vedem din trecut

  • java servlet
  • spring
  • spring mvc
  • java jsf
  • asp forms
  • asp.net mvc
  • rails
  • django*
  • just some admin apps, nothing serious.

Care dintre ele ti se pare minunate si utile?
Pentru ca eu amintesc de .xml, build, the error of logs and debugging. Beans, aspx forms etc

Rails, din pct meu de vedere, personal, are tot ce trebuie pentru a contrui aplicatii web. Plus comunicatea, plus limbajul ruby.
Sunt open pentru alte argumente, dar repet asta este parerea mea. Nu tre’ sa fii against me, pentru ce mi-am spus aici.

Faptul ca fac rails, ca am ajuns CTO, suna biased for rails, or what?

1 Like

De ce vrei să înveți web development ? Știi deja C++ sau Pascal ? Vrei să lucrezi doar pentru bani sau ți-a plăcut mereu photoshop/corel și ai făcut muncă creativă iar acum vrei să te extinzi? Ai avut 10 pe linie la informatică în liceu ? Ai făcut un joculeț?
Eu nu i-aș recomanda nimănui să se ocupe cu programare, ca un hobby da, dar pentru bani e un chin, în special dacă nu ai multe deaface cu calculatorul.
Iar dacă vrei frontend/design e și mai complicată treaba deoarece pe lângă programare trebuie să știi de animație, design, editare imagini și să ai un simț artistic, un stil specific. Domeniile ușoare se cam duc, dacă ești un consultant bun vei recomanda soluții gata făcute mult mai bune decât ai putea face tu vreodată pentru CRM, ERP, ecommerce și chiar webdesign. Rămân jocurile, grafica și sistemele complexe, altfel doar cu marketing și minciună iți câștigi clienți și mereu vei face o muncă sub o soluție deja existentă și mai ieftină.

Javascript este un limbaj foarte bun pentru un începător, dar te rog să citești cel puțin pe jumătate din http://eloquentjavascript.net (Îți explică foarte bine micile ciudățenii la JS) și după vezi ES6 http://www.youtube.com/playlist?list=PL57atfCFqj2h5fpdZD-doGEIs0NZxeJTX

Cel mai important program al tău va fi jsbin.com setat pe ES6/Babel.

Nu te interesează neapărat un limbaj, vei face același lucru în oricare o dată ce știi ce trebuie să faci, dar pe frontend ES6/Babel va fi baza anul acesta. Evită pentru început tot ce nu e ES6.

Eu îți recomand să înveți în general SĂ FACI următoarele lucruri: (chiar dacă țin și de backend)

  • copiază o pagină web cu bootstrap de la 0 sau simplu cu flexbox, folosește developer tools din chrome
  • modifică o temă de wordpress, modifică tema devforum cum crezi că ar arăta mai bine, etc.
  • proiectează o bază de date mysql pentru un magazin/orice, încearcă să îl faci în ceva program vizual, încearcă join-uri de pe un tabel pe altul. (Îți recomand microsoft access sau mysql workbench pentru început )
  • seteaza-ți un workflow cu visual studio code, powershell, webpack, babel, npm si yarn (învață npm-ul)
  • Scrie un API rest care să îți servească datele din baza de date cu express/sails (nodejs), laravel (php) sau akka (java/.net/scala),
  • încearcă o bază de date json, https://www.youtube.com/watch?v=_NFkzw6oFtQ&t=5s (fă ceva miniproiect din vreun fișier public de pe github) - acest lucru implică să înveți cum funcționează clasele, obiectele - vezi același playlist, explică super bine
  • un video foarte bun pentru php legat de obiecte https://youtu.be/w3XUG6oyINI (la început menționează că JS e diferit, nu ES6 e exact la fel, js-ul vechi e puțin ciudat dar nu e necesar să te atingi de el)
  • scrie un ceas care se actualizează pe secundă cu react sau vue.js
  • ia un api de pe net și afișează ceva date cu node sau php pe o pagină html
  • ia ceva informație din vreun api json de pe net și afișează-l cu react/vue, preferabil cu promises sau subscribe (rxjs)
  • o dată ce treci pe frontend cu react iți va trebui programare funcțională, vezi playlistul funfunfunction pe youtube
  • genereaza o factură listabilă dintr-o bază de date (un raport)
  • implementează plata bitcoin pe un site
  • un formular cu autocompletare și validare în timp real
  • aplică TDD pe un mic proiect, e foarte satisfăcător în js
  • fă un chat legat de un bot facebook (să trimiți un mesaj pe un site și să îți apară în facebook messenger)
  • Pe mobile Xamarin și. Net e în trend, .net e o alegere foarte bună dacă vrei un salariu de minim 2000 de euro. Dar iți trebuie și JS. Pe php în românia o să ai salariu sub 800 de euro cu program de 8 ore. Pe node/js nu prea găsești poziții în România. Pe .net în cel mai rău caz lucrezi la fosile enterprise pe stack-ul microsoft dacă nu ai muncă pe xamarin/web.

+ Un tip: dacă ești student faci un card isic la brd gratuit și îl activezi pe site-ul isic, după iei de la microsoft un pachet cu o grămadă de cursuri gratuite, 25$/lună pe azure pentru un an și o grămadă de facilități. Dacă trimiți un email la github primești student pack cu un domeniu gratuit, găzduire pe vps gratuită, github gratuit și cursuri pe un întreg an.

10 Likes

Mie mi se pare unul dintre cele mai bune sfaturi :slight_smile:

Păcat că vine o listă de exemple nu tocmai potrivite :smiley: Să explic: atunci când vrei să înveți, consider că e o greșeală să îți consumi energia pe lucruri efemere (ca react sau vue) sau mult prea complicate și efemere (webpack, babel). Mie unul mi se pare descurajant tot ecosistemul JS (în condițiile în care vrei să faci totul „bine”)…

Acum să răspundem la întrebările inițiale:

  1. JS pe frontend, ce știu prietenii tăi pe backend (să poți cere ajutor rapid cuiva);
  • „cel mai bun” este atât de subiectiv încât nu știu dacă te ajută cu ceva. Ce faci dacă te pricopsești cu 1-2 cursuri de la fiecare utilizator DevForum?
  • vezi lista lui @isti37
  • depinde de nivelul la care ești, dar s-ar putea să lucrezi pe alune;
  • este suficient să cunoști pe cineva care să te îndrume. Un mentor, dacă vrei.
  • la fel ca la 4.
2 Likes

In primul rand, vreau sa va multumesc tuturor pentru raspunsuri.

In liceu am studiat c++ 3 ani, bacalaureatul l-am luat cu nota 9 la Informatica, ma descurc bine in C++.deocamdata. Voi mai studia C++ si la facultate. Dar mi se pare ca acum nu se cauta C++, eu am vazut ca se cauta mult Java si Python, pe oricine am intrebat au zis ca sunt grele ambele ( eu am 0 experienta in ambele). Un coleg mi-a povestit despre web devolpment, mi-a aratat cum face si nu mi s-a parut foarte greu si am zis ca mi-ar placea sa fac si eu acest lucru. Nu am facut nici-un joculet, nu am experienta in photoshop/corel.
Nu vreau sa lucrez pentru bani, vreau sa fac ceva care sa imi placa.

Din cate am citit, e greu ca freelancer si e greu ca orice pentru un incepator in web development. Vad ca e mult mai complex acest domeniu, eu credeam ca e doar HTML, css , bootstrap, javascript si putin PHP, dar sunt si multe alte lucruri de care nu am auzit decat acum.

Ar fi mai bine sa incerc sa invat un singur limbaj de programare, foarte cautat ( Java / Python ) decat sa incep sa le invat pe toate acestea(html,css,javascript,php,wordpress,bootstrap,mysql,photoshop,ilustrator) ?

Tind să cred că va mai dura ceva timp până ce C/C++ nu vor mai fi căutate, dat fiind că sunt puținele (singurele?) limbaje ce rulează nativ pe orice platformă, de la desktop până la embeded & co.

Cred că am mai zis undeva pe forum: 20 e vârsta la care poți experimenta. Nu te fixa pe un anume limbaj; încearcă python, ruby, asm, go, java, php, clojure etc. Încearcă mysql, mongo, postgres. Cumpără un arduino și încearcă să faci mici automatizări în casă.

Nu învăța limbajul căutat azi; s-ar putea ca mâine să nu mai fie atât de la modă.

4 Likes

Mersi mult de sfat, si eu m-am gandit la asta, sa incerc sa experimentez orice limbaj. Multumesc mult tuturor pentru ajutorul acordat.

Ai mai scris si alte chestii dubiose, dar tutorialele video sunt ok pentru un incepator mai ales cele care duc un proiect de la cap la coada. In primul rand cel care invata poate vedea rezultatul final si stie la ce trebuie sa ajunga. Daca autorul este un pedagog bun, iti poate explica pas cu pas cum a gandit si implementat proiectul si poti vedea faptul ca lui ii merge codul, ceea ce nu se intampla in carti sau bloguri, acolo poti vedea doar imagini cu anumiti pasi…

De unde ai scos salariile?
Sa inteleg ca la PHP nu-ti trebuie si JS?

Acum ca sa-i raspund OP-ului.

  1. Poti sa te rezumi la JS (atat FE cat si BE) ca sa poti invata intr-un timp mai scurt, sau poti incerca alt limbaj BE - alege unul strongly typed, uita-te peste sintaxa fiecaruia.
  2. Cauta cursuri care iti prezinta un proiect complet realizat integral.
  3. Incearca sa te gandesti la un proiect si realizeaza-l - poti sa te gandesti ca la o lucrare de licenta.
  4. Nu incerca freelancing, cel putin nu pana nu o sa ai ceva experianta intr-un mediu mai profi.
  5. Daca iti permiti, da.
  6. Da, avand un job inveti cel mai repede.
1 Like

imi poti spune ce chestii dubioase am mai scris? Atlfe, ai report pt. offtopic si atac la persoana. Am uitat ce fericire este sa discuti cu romani. :expressionless:

De ce consideri JS-ul o mizerie?

2 Likes

Pozitia de CTO este relativa la cerintele companiei, nu spune nimic despre nivelul profesional. Si eu sunt pe post de CTO dar niciunul dinre noi nu se compara cu Adrian Cockcroft, ex. CTO Netflix.

Alegerile stack-ului technologic implica mai multi factori: economie, mediu, time to market, etc.

Ca ne convine sau nu, JavaScript este limbajul dominant cand vine vorba de Web Applications, in special cu dezvoltarea trend-ului spre PWA (Progressive Web Applications).

Abordarea mi s-a parut cam opinionata, chiar daca sunt eficiente alegerile tale in mediul in care activezi, consider ca trebuie sa le oferim celorlalti sansa sa aleaga singuri, mergand pe o abordare mai proactiva, argumentand de ce am ales ce-am ales, fara sa criticam alte tehnologii.

to achieve proactivity in simple terms, one must talk about the positive aspects of something not the negative aspects of something else.

:sparkling_heart:

12 Likes

Incearca C# si eventual .net dca ti-a placut c++ in liceu. Java e fain ca e bazat pe programarea orintata pe obiecte , te incurajeaza la mai bine.

Parerea mea este ca daca nu esti stramtorat cu banii , in sensul iti trebuie multi bani acum urgent nu invata html,css foarte mult mai bine bazeazate pe backend…

Cred ca avem vreo n-thread-uri pe acest subiect - nu ar fi mai util unul singur cu toate linked?

Inteleg ca aduc trafic si etc. dar se tot repeta same ideas in continuu si in plus IMO parca isi si pierd din substanta.

cc @iamntz et al.

In curand pe langa proactivity o sa sugeram si The Secret :sun_with_face:

2 Likes