Cel mai bun mod de a învăța Rails. De ce Ruby on Rails este unul dintre cele mai bune limbaje de programare pentru designeri. De ce Ruby este cea mai bună alegere

Principalul atu al oricărui designer web este să poată înțelege – și chiar să organizeze – ce se întâmplă în culise.

Cel puțin, ar trebui să luați câteva lecții de programare. Nu vorbesc despre limbile front-end, tip HTMLși CSS - probabil că știți deja multe din aceste lucruri. Vorbesc despre chestii de back-end.

Dacă știți cum să puneți fundația, atunci puteți înțelege mai bine cum să proiectați restul site-ului. Ideea este că învățarea codificării te va face un designer mai erudit. În plus, cine nu și-ar dori să angajeze un designer care știe totul, de la design până la dezvoltarea site-ului web?

Trucul este să alegi de unde să începi. Învățarea programarii poate fi proces complex, mai ales dacă alegeți una dintre cele mai complexe limbaje precum C++ sau PHP.

Deci, care este cel mai bun loc pentru a începe? Există un singur răspuns: Ruby on Rails este unul dintre cele mai bune limbi programare și un cadru pentru învățarea elementelor de bază ale designului.

De ce Ruby este cel mai bun cea mai buna alegere?

Pentru începători, Ruby este una dintre cele mai multe limbaje simple de digerat, mai ales dacă aveți ceva experiență în scrierea HTML sau CSS, ceea ce fac majoritatea designerilor.

Unul dintre primele programe pe care le vei face atunci când începi să înveți o limbă este infamul „Hello World!”, care presupune tipărirea acelor cuvinte pe ecran.

Cu limbaje precum C++, ar putea exista de la cinci până la șapte linii de cod doar pentru a afișa acele două cuvinte. Dar dacă utilizați Ruby, va exista o singură linie și o singură comandă.

Pune „bună, lume!”

Asta e tot! Asta este tot ce ai nevoie pentru a tasta cuvintele „Bună, lume!” pe ecran. Destul de ușor, nu?

Ruby on Rails este, de asemenea, un limbaj foarte uscat. Ca unul dintre principiile de dezvoltare, DRY înseamnă „Don’t Repeat Yourself” – adică nu programa din nou un element când ai putea folosi unul pe care l-ai creat deja. Acest lucru face ca Ruby să fie un limbaj de programare foarte ușor și utilizat în mod obișnuit pentru dezvoltare, deoarece își propune să finalizeze un proiect rapid și eficient.

Ruby sau Rails?

Ruby este un limbaj de programare. Rails este un cadru care folosește Ruby pentru a face treaba. Cadrul Ruby on Rails este o colecție de cod prefabricat sau pre-scris care ajută la accelerarea procesului de creare a proiectelor noi. Inițial, a fost creat pentru a dezvolta instrumentul de management al proiectelor Basecamp. Pe lângă Basecamp, există și alte aplicații web populare construite cu Rails, cum ar fi 500px, ThemeForest și MyFitnessPal.

Odată ce ați înțeles cum să lucrați cu limbajul Ruby și cum să lucrați în cadrul Ruby On Rails, puteți începe să construiți aplicații web.

Ruby este în vârful popularității!

Datorită exploziei în popularitate a dispozitivelor mobile și tehnologiei mereu pornite, Ruby este incredibil de popular în acest moment. Și probabil așa va fi în continuare. Indexul TIOBE îl clasează pe Ruby drept al 13-lea cel mai popular limbaj de programare. În conformitate cu tendințele emergente, Ruby se confruntă și cu o cerere surprinzător de mare, potrivit Indeed.com.

Index TIOBE

Oricum, cerere sau popularitate, Ruby este destul de popular. Acest lucru îl face unul dintre cele mai bune locuri pentru a începe, deoarece odată ce ați înțeles limba, puteți obține un loc de muncă destul de repede. Și asta înainte de a începe să înveți o altă limbă pentru a-ți extinde abilitățile.

Ruby are o bază solidă!

Unele dintre celelalte limbi au existat mai mult, este adevărat, dar chiar și așa, suportul și documentația palidează în comparație cu ceea ce este disponibil pentru Ruby. Alte limbi, de asemenea, nu au coeziunea comunității în jurul unui cadru puternic susținut.

Datorită cadrului Ruby On Rails, există deja o mulțime de coduri preexistente pe care le puteți folosi în propriile proiecte. Ruby Gems, o bibliotecă de cadre Ruby, are peste 600.000 de biblioteci din care să alegeți.

De fiecare dată când înveți ceva nou, ai nevoie de multă documentație și suport. Există o mulțime de locuri de găsit materiale educaționale, tutoriale, ghiduri și chiar forumuri de întrebări și răspunsuri. Daca intalnesti problemă specifică, o simplă căutare pe web o va rezolva probabil. Este important.

Documentare simplă și acces usor este nevoie de sprijin atunci când studiezi Limba noua; limbaj nou- când înveți de fapt ceva nou.

Ruby „permite” mai mult control asupra designului

Dacă ești doar un web designer, crearea unui site web poate fi un proces lung și complicat. Când vă așezați cu un programator și discutați despre back-end-ul necesar pentru site-ul dvs., de multe ori trebuie să sacrificeți front-end-ul pentru ca totul să funcționeze corect.

În cele din urmă, acest lucru poate avea ca rezultat un produs care arată complet diferit de viziunea dumneavoastră originală. S-ar putea să nu-i pese programatorului, dar pentru tine probabil că va fi problematic.

Nu vei avea probleme acest fel, dacă te programezi singur. Nu va trebui neapărat să depindeți de alții pentru a obține un proiect finalizat și veți avea o înțelegere mult mai bună a ceea ce se poate realiza din perspectiva dezvoltării. Cu siguranță a existat o perioadă sau două când obiectivele proiectului tău au fost prea mari pentru un programator sau o echipă de dezvoltare? Când înveți o limbă precum Ruby, te poți bucura de ușurința de a înțelege nevoile și, pe de altă parte, capacitățile.

În esență, Ruby este conceput pentru a fi utilizat în aplicații web și dezvoltare web, ceea ce îl face un loc ideal pentru designeri web aspiranți. Odată ce înțelegi limba și înveți cum să folosești cadrul Ruby on Rails, vei avea mult mai mult control asupra proiectelor tale.

Unde să înveți Ruby?

Cel mai Cel mai bun mod a învăța o limbă înseamnă a te cufunda în ea și a lucra cu ea. Există multe ghiduri și tutoriale la care puteți consulta, de asemenea. Dacă te-ai dezvoltat memorie vizuală, și înțelegeți mai bine datorită prezentărilor vizuale, apoi accesați YouTube - există mare alegere videoclipuri de antrenament.

Dacă doriți formare tradițională în stilul clasei, puteți urma cursuri pe site-uri web speciale de programare. Nu trebuie să mergi la universitate sau la facultate pentru a obține o educație profesională.

Una dintre resursele mele preferate - și complet gratuită - pentru a învăța Rails este Tutorialul Rails al lui Michael Hartle. Vă duce de la proiecte simple la proiecte complexe în propriul ritm de învățare și puteți începe de la început fără nicio cunoaștere Ruby on Rails.

Indiferent de calea de învățare pe care o alegeți, amintiți-vă, practica este perfectă. Stabiliți obiective personale pentru a petrece o anumită perioadă de timp în fiecare zi lucrând cu Ruby. Rămâneți la aceste obiective și fiți perseverenți. Înainte de a înțelege pe deplin limbajul, vei fi deja un expert care poate crea proiecte fantastice.

Ruby a început dezvoltarea pe 23 februarie 1993 și a fost lansat în 1995. Numele este inspirat din limbajul Perl, multe dintre sintaxa și semantica din care sunt împrumutate în Ruby (perlă - „perlă”, rubin - „rubin”). Scopul dezvoltării a fost de a crea un limbaj de programare „adevărat orientat pe obiecte”, ușor de dezvoltat și interpretat.

Limba are un independent sistem de operare implementare multithreading, tastare dinamică puternică, colector de gunoi și multe alte caracteristici. Implementarea multiplatformă a interpretului de limbă este complet gratuită.

Ruby on Rails (RoR) este un cadru scris în limbaj Programare Ruby. El pune în aplicare șablon arhitectural Model-View-Controller pentru aplicații web și oferă, de asemenea, integrarea acestora cu serverul web și serverul de baze de date. Este deschis softwareși este distribuit sub licența MIT.

Pentru a vă ajuta să învățați aceste tehnologii, am compilat o selecție de cărți. Ca întotdeauna, dacă știți o carte care nu este inclusă în acest material, distribuiți-o în comentarii.

Această carte este pentru cei care doresc să scrie Ruby ca un profesionist. Vă spune cum să proiectați API-uri frumoase și să lucrați cu tehnici programare functionala. Cartea nu este potrivită pentru începători, dar pentru cei care înțeleg deja Ruby, va fi cu siguranță utilă.

Scopul acestei cărți este de a-i învăța pe cititori să folosească în mod eficient limbajul Ruby. Cartea acoperă Ruby 2.1. Publicația conține aproximativ 400 de exemple diferite, însoțite de o declarație clară a problemei și soluția acesteia cu comentarii detaliate.

Cartea are un prag de intrare destul de scăzut. Nu trebuie să cunoașteți elementele de bază ale dezvoltării web pentru a o învăța. Cartea acoperă Ruby on Rails, un cadru popular pentru dezvoltarea de aplicații web, de la zero. Autorul Michael Hartl, pe lângă Ruby on Rails, prezintă cititorului elementele de bază ale limbajului Ruby în sine, limbajul interogări SQL, CSS, HTML. Cartea acordă multă atenție uz practic capabilități cadru. Puteți citi și un fragment din carte.

Și această carte va fi utilă pentru începători. Complexitatea acestuia crește progresiv, iar fiecare secțiune ulterioară folosește abilitățile dobândite în cele precedente.

Cu „Learning Ruby” veți învăța în practică toate capacitățile acestui limbaj într-un mod ușor și distractiv, care a captat mai întâi rapid inimile programatorilor din California și apoi din Rusia.

După ce ați citit această carte, veți învăța cum să scrieți cod elegant folosind toate caracteristicile sale unice.

Această carte intră în detaliu organizare internă Limba rubin. Cititorul nu trebuie să cunoască Ruby în sine, dar cunoștințele despre C și, în special, principiile OOP vor fi un plus imens.

Această carte este excelentă pentru a începe cu Ruby. Acesta acoperă toate elementele de bază necesare, de la instalarea limbii până la gestionarea fișierelor și OOP. Fiecare subiect este oferit exemple clare.

Această carte vorbește despre una dintre cele mai interesante caracteristici ale Ruby - blocurile. Sunt similare cu închiderile și lambda și sunt folosite ca în structuri simple limbaj precum blocurile și în tehnici complexe.

Această carte este împărțită în mai multe secțiuni care variază ca dificultate. Mai întâi vorbim despre configurarea și caracteristicile de bază ale Ruby, apoi vorbim despre bibliotecă standardși subiecte avansate.

Această carte acoperă elementele de bază ale dezvoltării web folosind cadrul popular Ruby on Rails. Pentru a oferi cititorului o idee despre lucrul cu proiecte reale, cartea include exemple folosind Git, GitHub și Heroku.

Această carte este despre utilizarea principiilor OOP în proiectele web Ruby on Rails. Focalizarea sa mutat în lateral solutii practice, care iau tot ce este mai bun din „modul Rails” și abordarea orientată pe obiecte.

Învățarea unui nou limbaj de programare poate dura mult timp și poate fi extrem de plictisitoare. Dezvoltatorii .Net vor fi cu siguranță furioși acum și exclamă: „De ce trebuie să învăț asta, pentru că sunt un dezvoltator profesionist .Net, iar programul meu zilnic este puțin probabil să poată strânge în procesul de învățare a unei noi limbi! ” Dar aceasta ar fi o afirmație extrem de neplăcută, deoarece atunci când înveți noi limbaje de programare, înveți o mulțime de lucruri noi și utile, mai ales dacă acest limbaj este versiune actualizata o altă limbă preexistentă. Ruby este unul dintre aceste tipuri de limbaje. Sunt de acord că procesul de trecere de la un dezvoltator începător la unul profesionist într-un anumit limbaj de programare este cel mai dificil proces, dar experiența merită. Acum nu pot decât să vă aduc la curent și sunt sigur că cu siguranță nu veți dori să vă opriți. Ia-o ușurel!

Notă: Vă rugăm să rețineți că acest articol oferă doar o introducere superficială la Ruby (limbajul de programare) și Rails (platforma aplicației). obiectivul principal este să te pună la curent cu Ruby și să te motiveze să dai impulsul de care ai nevoie pentru a începe să înveți un nou limbaj de programare.

Ce este Ruby?

Ruby, așa cum sa spus deja, este o combinație actualizată de diferite abordări de programare. Ruby este o combinație excelentă între abordarea Python a fluxului de lucru ușor de înțeles, sofisticarea Smalltalk și stilul ușor care vine cu dezvoltarea Perl. Ruby este un nivel înalt de programare orientată pe obiecte (cum este cazul majorității celorlalte limbaje de programare în zilele noastre), care a început la mijlocul anilor 90 în Japonia. De-a lungul timpului, Ruby s-a răspândit în Statele Unite și Europa.

Ruby este cunoscut pentru sistemul său de tip dinamic și alocarea automată a memoriei. Sub tip dinamic Ceea ce vreau să spun este că majoritatea tipurilor verificate într-un program Ruby sunt făcute în timpul execuției, ceea ce înseamnă că nu trebuie să vă faceți griji cu privire la tipurile întregi sau șir. Ruby va face asta pentru tine. Vom vedea asta în un mic exemplu Mai tarziu.

Scopul principal la lansarea Ruby a fost acela de a face mai ușor pentru oameni să interacționeze cu mașinile și să înțeleagă codul. Fondatorul lui Ruby, Yukihiro Matsumoto, insistă asupra ideii că Ruby a fost conceput pentru a face programatorii mai productivi, nu pentru a optimiza aplicația din partea mașinii.

„Adesea oamenii, în special inginerii informatici, își concentrează atenția asupra mașinilor. Ei cred că în acest fel pot accelera funcționarea mașinii, pot crește eficiența acesteia, că pot îmbunătăți totul, totul, tot ceea ce privește mașina.” Sunt obsedați de mașini. Dar ceea ce trebuie să facem este să ne concentrăm asupra oamenilor, să avem grijă de ei și să ne fie mai ușor să lucrăm cu aplicații prin intermediul mașinilor. Suntem reali și vii, iar mașinile doar ne ascultă.

Ce este Rails?

Rails este o platformă de aplicații incredibil de productivă, scrisă în ruby ​​de David Heinemeier Hansson. Se estimează că dezvoltarea unei aplicații web pe Rails este de 10 ori mai rapidă decât pe o platformă bazată pe Java. Rails este o platformă bazată pe Ruby (desigur!) și open source distribuită. cod sursa, care poate fi folosit pentru integrarea rapidă și ușoară a bazei de date.

Rails este cunoscut pentru ideile sale excepțional de top, care au permis diverse abordări noi ale programarii și crearea de structura dinamica programare. Codul principal al aplicației și baza de date actualizată vor include întotdeauna toate proprietățile Ruby necesare pentru a rula programul de la început până la sfârșit.

Program obișnuit Ruby

Să vedem cât de simple și interesante vor fi lucrurile după asta:

Cod:
personal = „Nu îmi iubesc prietena”
pune personal
La iesire:
Nu-mi iubesc prietena
Da Da! Fără inițializare, fără punct și virgulă și fără metode.

Acum să încercăm să vedem diferența dintre PHP și Ruby folosind un exemplu în care trebuie să inversăm un șir:

PHP:
strrev(„șir”);
Rubin:
„şir”.revers
Voila! Practic nu pierdem timp și inversăm complet secvența înregistrărilor. Trebuie luată în considerare diferența de efort depus în ambele limbi. Un limbaj de programare bazat pe Ruby simplifică foarte mult procesul de scriere a unui program. Acest lucru amintește mai mult de scrierea în engleză decât într-un limbaj de programare. Acesta este viitorul pentru toate limbile.

Beneficiile utilizării Ruby (și șine)

Toată lumea știe că lumea Ruby este foarte mare, iar astăzi nu am acoperit nici măcar 1%, dar această intrare te va face sa simti puterea a acestei limbi programare și vă va încuraja să începeți să o explorați singur. Acum haideți să ne aruncăm în lumea beneficiilor Ruby:

* Disponibilitate. După cum am menționat mai devreme, acesta este unul dintre principalele avantaje ale Ruby. Ca limbaj de programare, Ruby este foarte rafinat și foarte asemănător cu Limba engleză. Asemănarea cu limbajul vorbit obișnuit face ca începătorilor să se simtă confortabil cu Ruby.

* Laconism și putere. Exemplul de mai sus ne arată cât de concis este codul Ruby. Este cât se poate de scurt. În plus, Ruby este un limbaj la fel de puternic precum pot fi alte limbi, deoarece este un limbaj de programare orientat pe obiecte. nivel inalt.

* Nu este nevoie să reinventezi roata. Rails (bazat pe Ruby) este o interfață de programare cu care nu trebuie să reinventați roata. Acesta generează cod care poate fi reutilizat în diferite cazuri.

* Testare încorporată. Rails este popular pentru securitatea și capacitatea de corecție. Platforma vă va furniza opțiuni posibile scrierea codului, ceea ce va facilita foarte mult procesul de dezvoltare. De asemenea, Rails oferă câteva teste simple care pot fi extinse la cererea programatorilor.

* Medii de dezvoltare, testare și producție. Rails vă permite să începeți proiectul în trei medii diferite numite Dev, Test și Prod. Toate cele trei medii se comportă ușor diferit.

Selecţie

Acum să aruncăm o privire la câteva site-uri web (populare) care au fost dezvoltate folosind instrumentul Ruby. Veți vedea cât de inteligent își gestionează designerii proiectele folosind Ruby.


02.


03.


04.


05.


06.

Autorul a fost îndemnat să scrie acest text studiind o serie de lucruri găsite în Retea globala materiale care ar putea fi bine desemnate sub același titlu/etichetă: Cum am învățat Ruby(sau Ruby on Rails, PHP, JS, C++ etc.) pentru trei zile.

Sau asa ceva. Autorul, la rândul său, a reamintit imediat (asocieri incontrolabile) o serie de anecdote, unite din nou printr-o temă comună, care constă în caracterizarea evaluativă a unor acțiuni care pot fi realizate cu prostie... limba rusă este puternică și incredibil de aforistă, dar , din păcate, nu pare posibil să cităm aici aceste capodopere; În consecință, nu mai rămâne nimic de făcut decât să oferim atenției cititorului o versiune scrisă personal a documentului din serie. Cum să înveți să lucrezi în Ruby on Rails cu plăcere și relativ repede.

Un exemplu de lucru al codului descris în articol, printre alte exemple de șine, poate fi întotdeauna găsit în blogul de testare al autorului pe herokuapp.com, bine ați venit.

Tehnica este simplă, iar autorul nu își pretinde deloc laurii unui descoperitor aici: este necesar să fie interesant, iar rezultatele nu vă vor ține să așteptați. Nu strică să încerci să joci cu propriile slăbiciuni, pentru că uneori vanitatea poate fi benefică cauzei; rezultatele dezvoltării ar trebui să fie de așa natură încât să poată fi prezentate cu mândrie cititorilor, prietenilor și colegilor de pe Internet, implementate undeva pe Heroku sau Amazon, de asemenea - ca să putem reveni la ele din nou și din nou, reconstruind și îmbunătățind, forumurile și StackOwerflow ne ajută pe toți. Așa că spun, de ce să nu scrii, mai întâi, blogul tău pe Ruby on Rails?

Vă sugerez să începeți de la excelentul dosar Noțiuni de bază cu șine sau adaptarea sa în limba rusă a lui Rails pentru începători, de asemenea, Build a Blog with Ruby on Rails, iar materialele acestui blog, link-uri către care sunt ușor de găsit în bara laterală din stânga, pot ajuta de asemenea. Și apoi - asta e, apoi magie, la început totul este așezat ca prin note, deschide consola - și înainte... autorul consideră că este de datoria lui să facă doar câteva explicații și recomandări tehnice menite să le ușureze pentru adeptul să găsească și să dobândească partea ușoară a forței și nu mai mult Togo. Aceasta este doar bătălia ta, mergi înainte cu îndrăzneală și întoarce-te învingător.

Asa de. Pasul cu pasul primului manual este perfect calibrat și, sper, să nu vă provoace probleme; tot ce ți se cere este să fii atent, repetând cu scrupulozitate pașii detaliați... iar după o oră primul tău blog este gata, poți să faci o pauză și să treci la al doilea, ceva mai interesant. Și aici, poate, câteva sfaturi de despărțire ne pot fi de folos, la care vom trece acum.

Să începem cu afirmația că aceste metode sunt destul de capabile (ca opțiune) să arate ca ceea ce este arătat mai jos, dar în niciun fel nu la fel ca în original:

app/controllers/posts_controller.rb

# Acțiunea de actualizare actualizează postarea cu noul information def update if @post.update_attributes(post_params) flash[:notice] = "Postare actualizată cu succes!" redirect_to posts_path else flash[:alert] = "Eroare la actualizarea postării!" render:edit end end # Acțiunea de afișare redă postarea individuală după preluarea id-ului def show end # Acțiunea de distrugere elimină postarea definitiv din baza de date def destroy @post = Post.find(params[:id]) if @post . destroy flash[:notice] = "Postificarea a fost ștearsă cu succes!" redirect_to posts_path else flash[:alert] = "Eroare la actualizarea postării!" sfârşitul sfârşitului

Dar încearcă asta și asta, de ce nu. Sa trecem peste.

Al doilea blog, deși mai complex (editor de articole adăugat CKEditorȘi concepe, un instrument flexibil de autentificare în aplicațiile șine), din anumite motive nu are capacitatea de a lăsa comentarii în original. Va trebui să completați singur această deficiență: procedați prin analogie cu descrierea creării primului blog, vor fi necesare doar modificări foarte minore: pur și simplu, în loc de articolȘi articole vei avea primul blog postȘi postăriîn al doilea blog, aceasta este practic diferența. Fii atent și totul se va rezolva.

Recaptcha De asemenea, va trebui să faci link către comentarii: da, da, acesta nu este Joomla pentru tine, obișnuiește-te. Cu toate acestea, nu sunt necesare eforturi titanice; procesul de conectare Recaptcha este descrisă în detaliu în articolul Conectarea Recaptcha în aplicația Rails. În continuare, nu este de prisos să ajustați concepeîn așa fel încât blogul să funcționeze (cel puțin la început!) în modul de utilizator unic, permițând numeroși dintre cititorii săi modul DOAR CITIRE, cu alte cuvinte, vom interzice de la început înregistrarea de noi utilizatori. Există destul de multe rețete diferite pe Internet despre cum să faceți acest lucru, dar, în opinia mea, cel mai competent hack de acest gen este în Wiki devise, în materialul numit How To: Set up devise as a single user system. Și anume: creăm un nou controler:

app/controllers/registrations_controller.rb:

Controller de înregistrări de clasă< Devise::RegistrationsController before_action:one_admin_registered?, only: [:new, :create] protected def one_admin_registered? if ((Admin.count == 1) & (admin_signed_in?)) redirect_to root_path elsif Admin.count == 1 redirect_to new_admin_session_path end end end

apoi îl suprascriem în routes.rb și asta este:

#devise_for:admins devise_for:admins, controllers: ( înregistrări: „înregistrări”)

CKEDITOR.editorConfig = function(config) ( // config.enterMode = 2; //dezactivat

Complet config.enterMode = CKEDITOR.ENTER_BR // apăsând tasta ENTER.
config.shiftEnterMode = CKEDITOR.ENTER_P; //apăsând tastele SHIFT + ENTER

Config.autoParagraph = false; // oprește inserarea automată a

Pe focus);

Poate, pentru început, asta e tot... la naiba, aproape că am uitat cel mai important lucru. Dacă implementați dvs blog nou merge la Heroku- adăugați aceste trei rânduri la

config/application.rb

Config.assets.precompile += Ckeditor.assets config.assets.precompile += %w(ckeditor/*) config.autoload_paths += %W(#(config.root)/app/models/ckeditor)

In caz contrar CKEditor va refuza să lucreze pentru tine în noul tău loc.

Astăzi am găsit o poveste pe internet despre cum cineva pe nume James Fend a învățat Ruby on Rails timp de 12 săptămâni. Mai jos puteți citi o traducere relativ exactă a acestei povești și, sperăm, să fiți inspirat să explorați acest cadru minunat (și limbaj minunat).

Înainte de a începe, aș dori să-l prezint pe Josh Crews (http://joshcrews.com) și să-i mulțumesc că m-a convins să învăț Ruby on Rails; fără el, ajutorul lui și fără orele pe care le-a petrecut fiind mentorul meu, nu aș scrie asta astăzi. Mulțumesc.

Pe 23 ianuarie am lansat ideea mea de vis, Freelancify.com. Cu exact 12 săptămâni în urmă, eram un antreprenor în tehnologie, cheltuind mii de dolari pentru a crea un MVP (produs minim viabil) decent, deoarece îmi lipseau cunoștințele. Unul dintre motive (credeam la acea vreme) a fost că antrenamentul era prea dificil pentru mine sau avea să dureze o perioadă exagerat de lungă. Am crezut (ca mulți alții) că programatorii sunt (și unii sunt) născuți cu un set de abilități magice de rezolvare a problemelor și matematică care îi fac genii în programare. Și exact acum 12 săptămâni Am acceptat Cea mai bună decizie de mult timp, pe bune pentru o lungă perioadă de timp . Niciuna dintre ideile mele nu va mai rămâne altceva decât o idee. Acum am ocazia să lansez versiuni de producție, cheltuind bani doar pe găzduire și depunând ceva efort. Astăzi, acest set de abilități este asemănător cu a trage o grămadă de tractoare în timpul goanei aurului din California, în timp ce toți ceilalți foloseau lopeți simple. Sugerez tuturor să învețe să scrie cod. Aici aș dori să adaug o precizare: mai devreme am numit postarea „Cum am învățat șine în 8 săptămâni”, totuși, mai exact, având în vedere data lansării, se dovedește a fi de 12 săptămâni. Cu toate acestea, în decurs de 8 săptămâni am simțit că știu destule, iar următoarele patru săptămâni au fost cheltuite mai mult pentru a pune în practică cunoștințele pe care le-am dobândit decât pentru a învăța.

Ce abilități aveam înainte de a începe să învăț Rails?

Am fost web designer cu cunoștințe de HTML și CSS și m-am concentrat în principal pe UI și UX design. Cel mai greu lucru pe care l-am făcut cu codul real (fără a lua în calcul HTML) este posibilitatea de a personaliza Wordpress. Pe scurt, nu aveam absolut nicio idee ce este un cadru MVC sau cum funcționează bazele de date în general. Designul, aspectul și HTML pentru Freelancify au fost create de mine în două săptămâni în iunie 2011.

De ce m-am hotarat sa studiez?

Revenind la iunie 2011, când aspectul era gata, am început să caut un codificator care să facă layout-ul funcțional. Aspectul era aproape gata: aveam câmpuri de text, meniuri derulante, formulare, butoane, linkuri care conduc acolo unde este necesar și așa mai departe. Am găsit un dezvoltator și, pe scurt, tipul nu mi se potrivea. Am rămas cu o tonă de datorii și nici un produs aproape de a fi finalizat. Așa că l-am contactat pe Josh Krius (l-am întâlnit la o întâlnire Ruby on Rails pe care a organizat-o în Nashville) și m-am întâlnit cu el să văd dacă pot face ceva din ceea ce mi-a mai rămas ca dezvoltator. Din păcate, repararea și modificarea codului ar dura nu mai puțin timp decât dezvoltarea lui de la zero de către un programator competent. Am devenit descurajat, realizând că nu îmi puteam permite să cheltuiesc din nou mii de dolari pentru dezvoltare de la zero. Și apoi Josh a spus... „ De ce nu înveți pur și simplu cum să gestionezi Ruby on Rails, acest proiect ar fi o modalitate grozavă" și apoi " Pot chiar să mă întâlnesc cu tine de două ori pe săptămână și să te ajut cu studiile" Am petrecut toată noaptea gândindu-mă la asta. Opțiunile mele au fost: găsiți lucru confortabil si platesc facturile SAU riscați totul pentru a învăța Rails și, în cele din urmă, savurați-vă cu cel mai bun ramen pe care Italia îl are de oferit. M-am decis. L-am sunat pe Josh a doua zi dimineață. am pus totul. Am alocat bani din economiile rămase și i-am împărțit pe trei luni (pentru un tip singur care trăiește singur și fără copii, o mie de dolari pe lună este suficient). E timpul să mă apuc de muncă, acum sunt ucenic cu normă întreagă. Ținând cont de faptul că căutarea Google, Stackoverflow, IRC #RubyOnRails și comunitatea Rails mă vor sprijini atunci când voi rămâne blocat, sunt sigur că vor fi o mulțime.

Următoarele mele trei luni - Misiune: Obțineți un MVP, ajungeți la muncă, dar nu „suficient” pentru a lăsa o primă impresie teribilă.

Săptămânile 1 - 3

Probabil a fost cea mai mare curbă de învățare, dar NU am renunțat.

Pereții sunt făcuți pentru oameni care nu prea vor să-i părăsească.

Configurarea unui mediu de lucru Rails pentru începător complet poate fi incredibil de enervant. Sfat #1: Obțineți un Mac. Sfat #2: Folosiți Homebrew, RVM, Git și Heroku (de fapt, asta este tot ce aveți nevoie pentru a începe). Am petrecut câteva zile instalând, apoi am dezinstalat totul și am instalat din nou. Repetați-o de câteva ori și vă veți obișnui să utilizați linia de comandă a terminalului (consolă) și veți înțelege de ce lucrurile funcționează așa cum funcționează. Apoi, primul lucru pe care l-am luat a fost TryRuby, Rails for Zombies și Tutorialul lui Michael Hartl Rails. Nu vă faceți griji că înțelegeți materialul 120%, nu se va întâmpla până când nu începeți efectiv să studiați. Am terminat Tutorialul șinelor și am creat asta similar cu aplicația Twitterîn aproximativ o săptămână, nu prea înțeleg ce făcusem. Mai târziu, pe măsură ce am progresat, am început să realizez că totul începea să aibă sens.

Săptămânile 3 - 6

Cu o aplicație Twitter creată folosind Tutorialul Rails, am câștigat puțină încredere. Tutorialul nu m-a făcut dezvoltator, dar acum cunosc pașii generali în crearea aplicațiilor, de la crearea aplicației în sine până la instalarea acesteia pe Heroku. Tot ce s-a întâmplat între ele a rămas neclar. Cum pot începe cu adevărat să studiez acum? Lucrul la un proiect real care înseamnă ceva pentru mine. Eu și Josh am decis că ar trebui să lucrez liber la Freelancify și să vedem ce aș putea face. Primul lucru pe care l-am făcut a fost să muți tot HTML-ul din cadru și să-l organizez în vizualizări și fișiere parțiale. Am creat platforme de șabloane schelete pentru utilizatori și proiecte. Apoi am început să învăț prima mea bijuterie adevărată, Devise. Apoi, capacitatea de a avea relații, de exemplu, fiecare Utilizator va avea un portofoliu. Dar Utilizatorii pot avea mai multe portofolii, în timp ce fiecare portofoliu poate aparține unui singur Utilizator. Odată ce înțelegi cum funcționează relațiile dintre modele și cum să apelezi/afișezi lucruri care aparțin altceva, viața va deveni mult mai ușoară. Dacă rămâneți blocat într-o piesă și nu vă puteți mișca, omiteți-o, sunt șanse ca în timp ce dezvoltați o altă caracteristică, să vă dați seama și cum să implementați ceea ce ați omis.

Săptămânile 6 - 9

Pas cu pas, am continuat să învăț, să copiez și să repet. Aș face unele lucruri să funcționeze, apoi - bam - și mă loveam de un perete și nu aveam absolut nicio idee ce să fac în continuare. Indiferent dacă merg pe Stackoverflow, chat IRC #RubyOnRails, RailsCasts sau trag de Josh, în cele din urmă mi-am dat seama cum să procedez. Faceți același lucru iar și iar și veți înțelege destul de repede. Este de fapt util să petreci ore enervante testând răspunsul cuiva pe Stackoverflow doar pentru a realiza că nu funcționează. Înțelegi ce să nu faci. Și când vei găsi răspunsul, vei începe să înțelegi DE CE acesta din urmă nu a funcționat. În această perioadă am început să realizez cât de mare era imaginea lucrurilor și să înțeleg cu adevărat DE CE totul funcționează exact așa cum funcționează. M-am simțit ca un idiot și m-am întors și am refactorizat codul pe care îl scrisesem mai devreme pentru a-l face mai eficient. Și la un moment dat am ajuns într-un stadiu în care totul a început să se pună la loc.

Săptămânile 9-12

Eram într-un mod incredibil de energie, ducând Freelancify la etapa de lansare. În această etapă am simțit că zbor, punând funcțiile în acțiune. Ultima săptămână a fost petrecută depanând diverse erori și gafe. Luni asta am lansat site-ul. Dar sunt încă departe de a-mi termina studiile... Asta e. Am omis (de dragul conciziei postării) mici detalii și puncte tehnice. Cu toate acestea, nu ezitați să puneți întrebări în comentarii, cu siguranță voi încerca să răspund. James Fend.

P.S. - Deși a ajutat foarte mult să am un mentor cu care mă puteam întâlni, cu siguranță poți învăța Rails fără unul. Sau încercați să vă găsiți o astfel de persoană, mulți dezvoltatori Rails adoră să contribuie la comunitate. Căutați conferințe și întâlniri locale.

Această intrare are deja mai bine de doi ani (publicată pe 27 ianuarie 2012), dar, cu toate acestea, nu și-a pierdut relevanța. În acest timp, James Fend a reușit să vândă Freelancify și să investească într-un nou startup, a lăsat o notă despre asta pe 27 februarie 2013. Cred că acest articol este un exemplu excelent al modului în care o persoană își poate atinge scopul. Tot ce trebuie să faci este să începi. :)