:::: MENU ::::
Posts tagged with: invata

UGSI2DPDIT – Partea 2-a – Unelte

Ok, să începem cu începutul – sculele și sistemul. Preferința personală e Linux dar o să scriu totul aici pentru Windows, strict pentru a fi mai ușor (și în principiu se poate aplica foarte ușor tot ce e aici și pentru Linux).

Uneltele

  • Visual Studio Code – un editor de text versatil și eficient
  • Git – o unealtă pentru versionare (un fel de backup și stocare pentru codul pe care îl scriem)
  • Terminal/Command Prompt/Powershell – o interfață text care ne permite să interacționăm cu calculatorul
  • Python 3 – un limbaj de programare (și mai exact un interpretator pentru codul scris în limbajul acesta) – în timpul instalării o să aveți un prompt cu “ADD TO PATH”, alegeți opțiunea aceea.

Click pe fiecare dintre cele 3, descărcați și instalați, apoi reveniți aici pentru a ne acomoda cu fiecare dintre ele.

Visual Studio Code

În primă fază când pornim editorul o să vedem imaginea de mai jos, unde vom da click în partea dreapta pe “Install support for …”, urmat de click pe “Install” în dreptul lui Python – în bara din stânga care apare după primul click.

De aici putem crea un fișier nou cu un click pe “New File”, apoi vrem să îi spunem editorului că vrem să scriem cod in Python cu un click in dreapta jos pe “Plain Text”, urmând să completăm în câmpul ce apare “Pyth” și enter, pentru că avem un autocomplete acolo care ne face viața mai ușoară. Apoi putem să dăm un click pe Explorer în lista din stânga, loc de unde vedem ce alte fișiere mai avem în folderul în care lucrăm.

Shortcut-uri utile

Ok, mouse-ul e foarte ineficient în general când lucrăm cu un calculator, dar e mult mai intuitiv – mai departe o să înșir niște shortcut-uri foarte utile pentru parcursul ăsta.

CTRL+C -> COPY (Copiază text)
CTRL+P -> PASTE (Lipește text)
CTRL+SĂGEATĂ STÂNGA/DREAPTA (Sari la sfârșitul/începutul cuvântului)
SHIFT+SĂGEATĂ STÂNGA/DREAPTA/SUS/JOS (Selectează text, câteva litere sau multiple linii)
CTRL+SHIFT+SĂGEATĂ STÂNGA/DREAPTA/SUS/JOS (Selectează text, în principal cuvinte/linii)
CTRL+X -> CUT (Taie text dintr-un loc pentru a-l lipi în alt loc)
CTRL+S -> SAVE (Salvează fișierul)

Spre exemplu dacă aș vrea să selectez un cuvânt și să îl copiez aș folosi CTRL+SĂGEATĂ STÂNGA pentru a ajunge cu cursorul la el, apoi aș folosi CTRL+SHIFT+SĂGEATĂ STÂNGA pentru a-l selecta, iar în cele din urmă CTRL+C pentru a-l copia.

Ok, acum că am scos asta din ecuație să continuăm.

Python

Python este un limbaj de programare interpretat (spre deosebire de cele compilate), adică avem nevoie de interpretatorul Python instalat pe mașină pentru a rula codul (limbajele compilate nu au nevoie de un interpretator și le poți rula cu un simplu binar – cum ar fi .exe).

În următoarea parte o să intrăm în detaliile programării, pentru moment ar trebui să avem un ecran gol, editorul știe că vrem să scriem Python (putem verifica în dreapta jos dacă scrie “Python” în loc de “Plain Text”) și știm câteva shortcut-uri utile.

Scrieți (nu copiați) în editor print("Salut patroane!") și apoi apăsați CTRL+S pentru a salva undeva un fișier cu numele ceva (de preferat într-un folder gen C:/learning/ pe care îl puteți crea direct din ecranul de salvare).

Acum putem să dăm click pe butonul “Play” din dreapta sus, un terminal se va deschide în partea de jos și ‘programul’ va rula, prima linie cu săgeată din terminal ne arată cum am rula programul folosind terminalul (python C:/Users/numeuser/ceva.py, practic python si apoi calea către fișierul pe care python să îl citească). Dacă dăm click în terminal și apăsăm săgeata în sus, vom avea ultima linie rulată din nou afișată – putem să apăsăm Enter și comanda va rula din nou (spunând “Salut patroane!” din nou).

Pe linia următoare vedem rezultatul a ce am scris. Felicitări, ai scris prima linie de Python care a avut ca scop salutarea sinelui!Acum că avem un fișier Python putem să trecem la următoarele două unelte:

Git și Terminal/Cmd/Powershell

Git este o unealtă care ne permite să salvăm codul pe care lucrăm, și să păstrăm un istoric al modificărilor asupra sa, astfel încât dacă peste 3 versiuni ceva nu mai funcționează – ne putem uita în istoric, sau sări direct la momentul de acum 3 versiuni când totul era în regulă, de asemenea ne permite să lucrăm în echipe pe același cod fără să ne suprapunem munca. Toate la timpul lor.

Dacă deschidem un PowerShell și navigăm în directorul unde am salvat fișierul (calea subliniată din exemplul de mai sus – o să difere la voi) folosind cd <CALE-AICI> și Enter vom putea scrie

git init pentru inițializarea unui repository (un fel de cutie care ne va ține codul) iar apoi git add ceva.py pentru a adăuga fișierul într-un commit – echivalentul unei modificări salvate. Dacă scriem git status Git ne va arăta ce modificări au fost marcate pentru salvare – odată ce avem fișierul dorit dăm comanda git commit -m "<MESAJUL DESCRIPTIV AL MODIFICĂRII>" și apăsăm Enter.

Modificarea a fost acum salvată/înregistrată (local, doar pe calculatorul nostru, în “episoadele” următoare o să le urcăm pe GitHub și o să vorbim și despre alte feature-uri ale sale), putem să vedem istoricul modificărilor folosind git log. Aveți un exemplu mai jos.

Ok, acum ar trebui să aveți instalat Python, Visual Studio Code, Git și să aveți o vagă idee despre ce face fiecare dintre ele.

Încă n-am făcut Patreonul, e ok, bani de bere mai târziu – dar aștept comentarii și înjurături.


Un ghid subiectiv în 20 de părți despre IT – Partea 1

Pentru că m-am săturat să văd mulți păcălici cum iau bani de la oameni ca să devină “IT-iști” m-am hotărât să fac eu asta minus partea în care vă iau obligat-forțat banii, ținând cont că momentan am câteva ore în plus libere pe zi(hahahaha asta scriam acum vreo doi ani, de atunci stă draftul ăsta nepublicat). Tot ce urmează e un ghid subiectiv, construit după imaginea, imaginația și experiența mea, și nu trebuie urmărit foarte strict și nici nu se pretinde a fi un ghid exact, științific sau util.

Totul o să fie moca, pentru că altfel ar fi degeaba, în schimb o să am un buton să dați de-o bere dacă vă ajută ce găsiți aici.

Ca un mic disclaimer: n-am făcut matematică mai avansată decât a = b + c, n-am făcut o facultate în domeniu, dimpotrivă, am absolvit un liceu umanist și am plecat spre Facultatea de Drept – înainte să îmi dau seama că nu-i de mine (sau să mă lovească scârba).

În primul rând trebuie să discutăm despre ce înseamnă IT-ul mai exact – și trebuie să știi că există multe subdomenii, și dintre ele o să amintesc foarte superficial:

  • programare
  • infrastructură
  • rețelistică
  • support

sau combinații de 4 luate câte vreți.

Programare

În partea asta te poți aștepta să fii un code-monkey – să scrii cod toată ziua bună ziua în diverse limbaje (la întrebarea “ce limbaj ar trebui să învăț” revenim mai târziu), dar și aici avem câteva sub-domenii din care o să amintesc partea de frontend și partea de backend. În principiu dacă ai un ochi pentru design ar fi ok să mergi spre front-end, partea de programare care ține de display/UI și aranjat lucruri frumos în pagină, nu sunt un mare fan dar e ok să ai o vagă idee despre cum să așezi niște lucruri în pagină. Tehnologiile foarte des întâlnite aici sunt HTML/CSS/PHP/Javascript și ca framework-uri o să întâlnești Vue/React/Laravel/Bootstrap. Nu o să intru în detalii (încă), dar un search rapid pe Google vă lămurește ce-i cu fiecare dintre ele.

Partea de backend e locul unde găsim mai multă logică și mai puține impresii despre cum arată ceva, se ocupă de logica efectivă a unui website/aplicații/website – partea în care introducem date, le verificăm, arătăm o anume imagine utilizatorului, etc. Aici ai șanse la fel de mari ca mai sus să găsești tehnologii precum Javascript cu frameworkurile sale cele mai folosite – Vue/React, dar și altele precum Python, Go, Ruby etc.

Infrastructură

Aici o să fie niște diferențe majore în funcție de tipul de infrastructură (on-premise, adică ai servere fizice într-o cameră versus Cloud – adică ai servere virtuale/fizice undeva în dormitorul lui Jeff Bezos), în același timp intrăm într-o zonă mai vag definită, dar de principiu aici intră totul de la a decide de câte servere ai nevoie, la cât spațiu de stocare ai nevoie pentru ceva, până la a crea mașinile (serverele) respective, administrarea lor, orchestrarea, update-urile, securitatea, stabilitatea, arhitectura (vreau două servere în clădirea asta și două servere în clădirea de pe cealaltă parte a globului), etc. În zona asta găsim (câteodată) iar programare dar mai light – sub formă de scripturi în principal (bucăți mici de cod care fac lucruri specifice pentru a face viața mai ușoară, și serverele mai stabile/impactul mai mic asupra clienților în caz de probleme), de cele mai multe ori vei scrie cod pentru a completa anumite unelte, dar în realitate nu este “cod” ci o listă de instrucțiuni pentru programele care orchestrează serverele. Știu că pare mult/complicat/complex, dar răbdare și ajungem să vă arăt și ce înseamnă fiecare chestie de aici.

Rețelistică

Se ocupă de interconectarea sistemelor sub orice formă ar fi ea – de la WiFi până la cabluri, routere, switchuri, datacentere. Mai puțin întâlnită în Cloud (datorită unor unelte mai specifice cloud-ului) dar principiile rămân aceleași și sunt bine de știut (sunt multe, nu le înșir, ajungem mai târziu la părțile de care ne pasă).

Support

Foarte foarte important e să poți să ajuți clienții cu toate probleme pe care le vor avea inevitabil – oamenii de aici sunt eroii din linia întâi, sunt maeștri ai tuturor artelor, de la comunicat cu clientul până la rezolvat probleme de complexitate variabilă  – de la o problemă reală a produsului până la o problemă de ne-găsire a unei opțiuni într-un meniu. În principiu programarea lipsește din domeniu dar foarte mulți oameni din zona asta își scriu scripturi pentru a-și face viața mai ușoară.

Acum, pragmatic vorbind – indiferent în care domeniu o să ajungi vei regăsi bucăți din celelalte în el, fie că vorbim de rețelistică în infrastructură sau suport în programare – în mod ideal nu s-ar întâmpla dar idealul nu există.

Ce limbaj ar trebui să învăț?

Nu ar trebui să înveți un limbaj în sine – diferențele între limbaje sunt minore, logica în sine rămâne aceeași, așa că ar trebui să înveți un limbaj de programare în primă fază doar pentru a te obișnui cu sintaxa (modul de scriere al codului, cuvintele folosite pentru a-i spune calculatorului să facă ceva anume), sintaxă care mai târziu poate fi aplicată în orice alt limbaj de programare. Pentru început o să recomand să înveți Python 3, și asta doar pentru că e foarte ușor de folosit și o să îți dea un boost de încredere de care vei avea mare nevoie. Resurse pe care le recomand sunt “Python Crash Course, 2nd Edition” (Eric Matthes), video-ul acesta de la freeCodeCamp.org. Pe HumbleBundle.com ocazional găsiți pachete cu cărți de la NoStarchPress (cei care au publicat cartea de care spun mai sus) pentru sume foarte mici ($1-$5), sau mna – metodele mai clasice.

Sfaturi utile

Nu te da bătut, nu-ți pierde încrederea, și când se întâmplă asta caută ajutor pe forumuri, pe Google, prieteni, GitHub, absolut oriunde, toți avem întrebări cretine și devenim mai puțin cretini după ce aflăm răspunsul, toată lumea trece prin asta și e absolut normal. Dacă perseverezi o să ajungi unde vrei, și în ciuda a ceea ce spun unii – chiar oricine poate să programeze fie că vorbim de o automatizare de o linie sau un website personal.

Cumva aș vrea să transform chestia asta într-un curs mai lung, puțin mai organizat în care ne ocupăm de tot de la scrierea unui website până la punerea lui online undeva, așa am putea să trecem prin partea de programare, infrastructură, rețelistică și să existe și un exemplu real cu toate cele. Nu o să fie îndeajuns pentru un job în IT, dar ar trebui să fie îndeajuns pentru a-ți deschide apetitul, mai departe practica individuală, proiectele personale și skill-urile de Google-Fu o să facă diferența între job și no-job.