Bootstrap - potrivit pentru incepatori?

Dupa cateva luni de la intrebarea mea initiala si cu un pic mai multa experienta, am revenit cu urmatoarea concluzie:

Bootstrap este o UNEALTA, la fel ca alte zeci care sunt pe piata, o unealta dezvoltata cu CSS. Acum consider ca nu este potrivit pentru un incepator care vrea sa devina dezvoltator de calitate**(long-term)**, pentru ca el nu intelege conceptele din spatele acestui framework, ci doar urmeaza niste reguli orbeste.

Daca intelegi insa codul, modul de organizare, motivul pentru care codul a fost scris/organizat astfel, iti va fi usor sa intelegi si sa folosesti orice alta unealta, nu doar una particulara, in caz ca un client vrea sa folosesti framework-ul X. Insa mi se pare infinit mai greu sa incep sa lucrez cu unealta X, cand eu toata viata m-am specializat pe unealta Y, fara sa inteleg conceptele din spatele acesteia.

Stiu ca a mai fost o discutie cu framework-urile pentru PHP sau JavaScript si concluzia asemanatoare: invata arhitectura, nu un anumit framwork, pentru ca ele se bazeaza pe acea arhitectura.

5 Likes

Ești în eroare, de mai multe ori:

Sigur, cum faci culori semitransparente în paint? :slightly_smiling: Canale? Path-uri? Smart objects? Cum exporți layere? Cum faci blend la mai multe layere? Curbe Bezier? Etc. etc. etc.

Ești începător, de unde până unde clienți?

Din nou, ești începător. Dar să presupunem că iei totuși un proiect stingher din când în când, să nu mori de foame: preferi să iei 20$ pe un proiect? Dacă da, preferi să iei 20$ pe un proiect tot timpul? Pentru că asta se va întâmpla: vei fi bun în bootstrap, nu în CSS. Să-ți aduc aminte cât de la modă era Prototype.js și Scritpaculous acum zece ani?

1 Like

Nu e pentru incepatori, nu stiu de unde ai luat impresia asta.

E pentru un concept numit rapid prototyping.

1 Like

uneori e mai simplu sa scrii CSS-ul de la zero.

Uneori. De cele mai multe ori, e inutil sa scrii CSS pentru un input de N ori.

Presupui ca cineva nu stie cum functioneaza bootstrap doar pentru ca il foloseste. Ceea ce e incorect.

Bootstrap e modular mai nou. Nu e overkill daca importi doar ce folosesti.

Nu ai vazut tu ce se poate in Paint :smiley:

Nu poti sa fii bun in bootstrap fara sa fii bun in CSS. Nu poti sa fii bun in angular fara sa fii bun in JS. Nu poti sa fii bun in WordPress fara sa fii bun in PHP. Intelegi?

Si? Asta a fost acum 10 ani! 10 ani nu e indeajuns sa inveti altceva?

Manual, deschizi 15 paint-uri si lucrezi (crezi ca acum 20 de ani se lucra alfel ?)[quote=“iamntz, post:22, topic:1959”]
Dacă da, preferi să iei 20$ pe un proiect tot timpul? Pentru că asta se va întâmpla: vei fi bun în bootstrap, nu în CSS. Să-ți aduc aminte cât de la modă era Prototype.js și Scritpaculous acum zece ani?
[/quote]
Odata ce ai intrat in hora te comuti pe ce este de actualitate si eficient la momentul acela… iar restu de CSS o sa il folosesti ca nu ai incotro, daca iti cere un buton roz, nu ai cum sa ii spui ca nu poti decat 3-4 culori si uite asa inveti.

Diferența dintre PS și CSS este că nu se va renunța niciodată la PS în favoarea unei unelte extrem de basic. Comparația ta cu PS nu a fost foarte bună.

Uncle Bob zicea la un moment dat: the only way to go fast is to go well. Chiar crezi că a învăța un framework înaintea limbajului este mai productiv decât a învăța întâi limbajul și abia apoi framework-ul?

A învăța lucruri de bază „pe banii clientului” este un pic cam… neprofesionit.

Să explic și de ce sunt un pic împotriva framework-urilor CSS: nu o dată mi s-a întâmplat să fie nevoie de puțină mentenanță la site-uri făcute de meseriași cu bootstrap. Doar anul ăsta am avut așa:

  • TOT BS inclus doar pentru butoane; (un proiect)
  • BS inclus dar se foloseau float-uri la greu, pentru că… de ce nu? (două proiecte)
  • BS inclus alături de un alt framework pentru grid-uri (al cărui nume îmi scapă acum) (unul din proiectele de mai sus).

Nu contest utilitatea BS, doar că NU e potrivit pentru un începător.

2 Likes

Am și eu o propunere: în clasa întâi, programa la matematică să înceapă cu ecuații de gradul 2, ce ziceți? Eu zic că le sunt foarte utile elevilor, iar pe parcurs pot învăța și adunarea, înmulțirea sau ridicatul la putere.

Sună stupid? La fel de stupid sună și cei care recomandă începătorilor Bootstrap sau orice alt framework înainte ca aceștia să stăpânească limbajul / limbajele folosit(e) de framework-ul respectiv.

Am impresia că mulți dintre voi sunteți prea tineri pentru a vă da cu părerea, așa că am să vă spun o poveste:


Se făcea că acum 10 ani, noi, cei ce făceam front-end, știam foarte bine HTML & CSS (pentru că trebuia, nu de alta, având în vedere că pe-atunci aveam plăcerea de a face site-uri pentru IE 6, 7, FF2 iar Chrome nu exista nici măcar în stare embrionară), dar asta ne mânca tot timpul și puțini am apucat să învățăm JavaScript / DHTML - pur și simplu JS nu făcea parte din cerințele obligatorii pentru un client-side developer[1]. Efectiv, pe vremea aia trebuia să luăm în calcul faptul că vizitatorul s-ar putea să fi dezactivat în mod conștient / intenționat JS-ul în browser-ul său, atât de opțional era JS-ul.

Apoi, prin 2006, s-a întâmplat una din următorele (gen ou VS. găină):

  1. A început să li se ceară oamenilor de pe front să facă JS și atunci a apărut jQuery pentru a le ușura munca
  2. A apărut jQuery și atunci le-a fost mai ușor oamenilor de pe front să scrie JavaScript

Cert este că mulți care abia aveau habar de JS au început să implementeze cod jQuery, în foarte mare parte sub formă de copy & paste sau plugin-uri. În felul acesta au apărut nenumărate capodopere de genul (printre multe altele, care mai de care mai stupide)

var someValue = $(this).val(); // <- într-un 'event handler'

în loc de mult mai naturalul și eficientul

var someValue = this.value;

pentru că oamenii nu prea înțelegeau de fapt ce voodoo face jQuery acolo. Adică, în loc să citești valoarea unei proprietăți de pe o instanță, trimiteai instanța unei funcții care determina ce tip de parametru a primit, apoi construia un obiect jQuery populat cu un singur nod într-un array privat, după care apelai o altă funcție de pe obiectul nou creat care extrăgea primul element din acel array, îi citea valoarea unei proprietăți pe care o returna în cele din urmă codului care a invocat-o… Mi se pare normal să alegi calea mai lungă, nu? E mai inginerește așa! Asta în niște browsere cu engine-uri JavaScript cât se poate de primitive…

Oamenii ăia se împart acum în 2 categorii:

  1. Cei care au învățat efectiv JavaScript, care înțeleg că nu-i ok ce s-a întâmplat și care în ziua de azi NU recomandă Bootstrap începătorilor
  2. Cei care s-au complăcut, nu i-a interesat, și trăiesc și-n ziua de azi cu impresia că ei sunt profesioniști în domeniu. Acei oameni zic DA, Bootstrap e soluția pentru un începător, la fel cum jQuery a fost pentru ei.

Există cel puțin o persoană din prima categorie care activează pe forum și care cred că-i sătul deja de câte ori l-am dat ca exemplu cu faza de mai sus :smiley: (wink, wink, tizule), dar este un exemplul concret și cred că mulți ar avea destule de învățat din experiența lui.

Zicea careva mai sus că el e de părere că e inutil să re-inventeze roata… Eu zic că-i mai bine să înveți întâi fizica ce stă la baza funcționării unei roți, să poți inventa o nouă roată dacă e cazul, decât să n-ai habar ce se întâmplă. Nu zic să nu folosești o roată existentă, zic doar să înveți destule despre ea încât să n-ajungi s-o folosești pe post de elice!



[1] client-side developer
Pe vremuri, încă mai foloseam denumirile corecte:

  • client-side - rulează pe client
  • server-side - rulează pe server
  • front-end - interfața publică
  • back-end - panoul de administrare, CRM sau orice altă unealtă internă
9 Likes

Îmi pare rău, dar după asta chiar că nu te pot lua în serios. În cel mai bun caz, ești încă doar un student care face siteuri pe 20$ pe zi, ca să-și plătească camera de cămin, folosind Dreamweaver în modul WYSIWYG. La combinații de genul nu te poți intitula mai mult de script-kiddie.

Nu-i bai! Sunt șanse mari ca clientul tău să vină dup-aia la mine sau la @iamntz să-i refacem totul așa cum trebuie, luându-i aceeași sumă de bani într-o jumătate de oră!

2 Likes

@Vilmos_Ioo
Am impresia că te faci că nu înțelegi doar pentru a ne trolla:confused:
Nimeni nu contestă utilitatea unui framework (Bootstrap în cazul de față) în procesul de devoltare; contestam doar recomandarea sa unui începător aflat în procesul de învățare. Nu cred că a zis cineva că nimeni din cei ce folosesc Bootstrap nu știe HTML/CSS/JS, ci doar că Bootstrap ar trebui evitat înainte de a învăța tehnologiile ce stau la baza lui.

@andreitelteu
Nu a zis nimeni că un începător trebuie să re-inventeze Bootstrap-ul, ci doar că e necesar să învețe mai întâi tehnologiile ce stau la baza lui și abia apoi să-l folosească.

Iti multumesc pentru partea cu student m-ai facut sa ma simt mai tanar si o iau ca pe un compliment(si nop nu sunt din afara, sunt nascut in Bucuresti, si nu stau in camin :)) )
Bun, hai sa lamurim “problema”, in primu rand si eu ma aflu in situatia in care invat, in al 2 lea rand am facut cateva cursuri platite de html, css, javascript, photoshop si php, ca si incepator mie imi usureaza munca avand in vedere ca nu sunt stapan pe partea de responsive (pentru mine), la cat am avut de invatat deja incepusem sa ma dau batut cand am vazut cat mai este inca de munca pentru responsive pana am descoperit o unealta care momentan pe mine ma ajuta. Exemplul cu 20$ si cu clientul care vine la voi nu se aplica in cazul meu, vreau sa le stapanesc si dupa aia(chiar daca fac asta de aproape 1an consider ca stiu 3%) sa ma arunc in domeniu asta. Iar daca esti o persoana inteligenta o sa intelegi ca exista un mod de abordare de a stranii cateva reacti si de a invia un topic pentru a scoate cateva informatii amarate, puteam sa scriu foarte frumos Iamntz are dreptate si asta era toata discutia :wink: .
O intrebare am si eu, de ce majoritatea “profesionistilor” au atitudinea asta aroganta ? Chiar nu inteleg si nu o zic cu rautate, dar majoritatea asa sunt.

Cred ca interpretezi gresit sentimentul pe care nu stiu sa il numesc, dar stiu cum sa descriu procesul prin care el este atins.
Se pune o intrebare / se ridica la fileu obproblema. Oamenii sar sa ajute, in timpul lor liber, pe care nu il folosesc sa se perfectioneze ci sa ajute pe altcineva.
Cel care a intrebat initial sau alti binevoitori minimalizeaza importanta path-ului corect, dar greu de urmat aratat de cei binevoitori si priceputi.
Se mai incearca o data explicatea, cu binete si ingaduinta, dar mai pe scurt ca doar e deja totul clar (dar greu de urmat).
Reapare umbra de indoiala si minimalizarea solutiei.

Frustrare oare sa fie? Cred ca e mult mai mult. Dar unii ii spun aroganta pentru ca lor le e mai usor sa ii reduca pe cei priceputi la nivelul lor.

5 Likes

Fiecare are o parere, uneori aceste pareri intra in conflict, se dezbat si se argumenteaza, apar cativa care ii dau dreptate unuia si se finalizeaza mica dezbatere. Atunci cand parerea ta ma face in mod direct “caminist” se schimba situatia si asta te face in mod direct sa arati “pricepere si inteligenta”, iar atunci cand mai apar si aparatori ai arogantei deja ne comutam in offtopic de tot (decat sa descurajezi si sa recomanzi 300 de carti mai bine nu mai ajuti chiar daca e in timpul tau liber).Le multumesc celor care totusi au dezbatut subiectul intr-un mod elegant asta m-a castigat de mebru pe aici.

Rezolvare simpla: media querry css si foloseste procente, in loc de pixeli, ori de cate ori nu e musai sa folosesti pixeli (gen o imagine de pana in 240x240, ca sa se vada bine pe mobile).[quote=“Bone_Mihai, post:33, topic:1959”]
puteam sa scriu foarte frumos Iamntz are dreptate
[/quote]Puteai sa scrii ca este posibil sa aiba dreptate, dar parerea ta este ca […] si astfel nu se termina discutia.

[quote=“Bone_Mihai, post:35, topic:1959”]
parerea ta ma face in mod direct “caminist”
[/quote]Mai bine sa te faca parerea ei spusa, decat parerea tuturor nespusa.

Ontopic deja nu mai am ce sa spun fara sa repet ce s-a spus deja. Poste cu exceptia faptului ca este posibil sa nu stii ca “o persoana este rezultatul asteptarilor celor mai apropiate persoane din jurul sau”. Asa ca iti sugerez (tot invatacel sunt si eu, doar ca umpic mai receptiv) sa cauti atat argumente pro, cat si argumente contra si sa vezi ce fel de persoane sunt prin zona (nu ma refer doar la persoanele care participa activ la discutii, ci si la persoanele care participa pasiv, de genul lui Uncle Bob, citat de suficient de multe ori incat sa merite mentionat si in acest post) si sa bagi la cap ca doar pentru ca o persoana nu este populara nu inseamna ca nu este posibil sa fie mai bine pregatit decat o(rice alta) persoana populara. Iar acest lucru l-am auzit initial intr-un video despre dating advice (am dat, fara sa vreau, si scroll, pe langa middle click si mi-a deschis un alt video decat vroiam initial; Stii cum se zice: Sfânta nimereală!), pentru ca, mai apoi, sa aud acelasi lucru (in cateva video-uri de business si un video despre secretul din spatele “open source effect”, probabil si in alte parti, dar nu l-am mai luat drept ceva nou) din mai multe surse care (judecand dupa contentul uploadat) par de incredere.

Huh? Nu e nimic trollish.

Nu cred că a zis cineva că nimeni din cei ce folosesc Bootstrap nu știe HTML/CSS/JS,

Ba da, eu exact la asta am raspuns.

Nu intelegi CSS-ul suficient incat sa stii ce face boostrap-ul, la o aruncatura de ochi peste CSS? Ok, poti folosi Boostrap la un site sau doua, daca esti in graba, dar fara a intelege CSS-ul cum trebuie, nu ajungi nicaieri, fiindca poate te ajuta pe termen scurt, dar pe termen lung iti pune multe piedici.

Apoi

ci doar că Bootstrap ar trebui evitat înainte de a învăța tehnologiile ce stau la baza lui.

Asta a fost primul meu coment din thread.

Scuze, nu stiu exact la ce ai raspuns sau ce incerci sa-mi zici, poate s-au incurcat firele pe undeva. Nu am avut intentia sa fiu un troll.

A vrut sa spuna ca CSS este suficient de slim de unul singur incat sa poti face aceleasi lucruri pe care le faci cu boostrap, cu doar 15 minute pe ora in plus. Si faptul ca nestiind CSS suficient de bine, nu doar ca atunci cand vei avea probleme in CSS nu vei stii sa le rezolvi, dar acelasi lucru se aplica si cu Boostrap (si alternativele).

Adica daca nu stii CSS suficient de bine, la prima problema cu Boostrap (sau Bulma, spre exemplu) te vei bloca si, in mod normal, in loc sa rezolvi problema in cateva minute, ori o ora sau doua, daca stii ce sa cauti pe net, vei sta 8 ore (cum s-a mentionat mai in acest post) sa rezolvi o problema ce poate fi gata in cateva minute.

De-asta se pune accent pe invatarea arhitecturii (CSS, in cazul de fata) inainte de invatarea unui framework (Boostrap, in cazul de fata). Si asta se aplica pentru orice pereche arhitectura-framework. Inclusiv in C++ trebuie sa intelegi cum se pastreaza variabilele in memorie (lucru facut practic de Assembler sau alternative), pentru a putea face chestii cat de cat complicate.