Beautiful Engineering – povestea mai multor povești în curs de scriere

Salutare, cititori! Numele meu este Mihaela și sunt pasionată, printre altele, de fotografie și scris. Așa că m-am gândit să-mi așez laolaltă aceste două hobby-uri într-un nou proiect pentru Codette. Beautiful Engineering va fi o carte fără copertă, fără pagini (fizice), dar plină cu poveștile mai multor doamne și domnișoare ce au ales o carieră în zona tehnică. Iar pentru că vrem să și vedem, nu doar să citim despre fața frumoasă a ingineriei, ne transformăm invitatele în fotomodele pentru câteva ore și asortăm și poze pe măsură deliciosului ghiveci de cuvinte și inspirație pe care acestea ni le vor oferi.

Motivația pentru un astfel de program este adânc înrădăcinată în experiența mea de student, trainer, asistent universitar (undergraduated) și, mai nou, inginer software.

Pe parcursul celor patru ani de facultate am avut multe îndoieli, întrebări și suficientă nesiguranță cât să mă tragă-n jos din unele puncte de vedere. Nu de puține ori m-am simțit singură în toată treaba asta. Am simțit că-s slabă și că toți cei din jur pot mai mult și mai bine, că poate nu sunt făcută pentru meseria asta (programator cu o tentă de inginer), că poate programarea este un drum pe care o să tot merg fără țintă și că poate-ar trebui să mă întorc de unde am plecat și să schimb direcția.

În ultimul an am auzit povești asemănătoare de la tot mai multe persoane; oameni pe care i-am admirat mereu în sinea mea pentru forța extraordinară și pentru realizările lor din mediul academic și nu numai. Am început să mă întreb cum ar fi stat lucrurile dacă aș fi discutat cu astfel de oameni încă de pe atunci, dacă m-aș fi deschis în fața lor, dându-le încrederea de a-și lăsa la iveală slăbiciunile. Cu siguranță aș fi văzut altfel lumea. Aș fi învățat să-mi văd propria nesiguranță ca pe un lucru normal și aș fi încercat să conviețuiesc cu ea, mai degrabă decât să lupt, să consum energie încercând s-o cuceresc. Căci atunci când două părți din tine se luptă, într-un fel, tot tu ești cel care pierde.

_DSC0772_ed4
This is me 🙂

Acuma… nu știu dacă temerile mele au avut ceva de-a face cu genu-mi feminin. Cu siguranță există o contribuție ce vine din felul de a fi al nostru, al femeilor. De-atâtea ori aud de la fetele cărora le sunt trainer pe la workshop-uri și în diverse programe educaționale: “Nu pot să rulez acum programul… Sigur am făcut ceva greșit.”. Descumpănirea și, de multe ori greutatea cu care se întorc înapoi la a încerca și altceva și la a descoperi de unde vine eroarea, se unesc într-un alt indicator (cum că <in>existența unor așa temeri vine <și> din psihologia genului) pe care l-am căpătat tot din zona de teaching (unde am fost de aceeași parte a baricadei cu trainerii). Puse cap la cap toate aceste cugetări au dus la un alt segment introspecțional: am început să mă autoanalizez pe mine cea de-acum 3-4 ani (căci în mine cea de astăzi sunt ameliorate mult genul acesta de slăbiciuni). Am făcut aceleași greșeli: dorința de a face lucrurile perfect din prima încercare, greutatea cu care am acceptat că nu poți și nu trebuie să excelezi mereu, kilogramele pe care le-a adăugat fiecare notă mică în sacul cu depresie… Sunt lucruri care m-au determinat să mă gândesc la un proiect precum Beautiful Engineering.

Nu există o rețetă universală a succesului și nici prea multe ingrediente general-valabile în a scoate pe oricine dintr-un impas dat. A învăța din greșelile altora este un basm și nu funcționează aproape niciodată. Marele lucru de care avem nevoie este inspirație și indentificarea cu sursa acesteia. Iar genul acesta de inspirație nu zace cu câteva secole în urmă și nici într-o reședință cu N dormitoare din Monaco. Filozofia mea de viață spune că cele mai eficiente modele dpdv motivație sunt acelea cu care ai șanse mari să te întâlnești în metrou într-o zi toridă de vară sau la cel mai apropiat Starbucks într-o dimineață monotonă de luni.

Oameni obișnuiți pe care poate că-i știi dar a căror poveste, care poate-ți era străină până ca aceasta să apară-n proiect, ar putea schimba câțiva pixeli din imaginea pe care o ai despre lume.

Identificarea cu situația prezentată este și ea destul de importantă căci nu prea ai cum să te prinzi de o funie dacă aceasta este aruncată în afara pereților prăpastiei tale.

De aceea mi-am propus ca invitatele Beautiful Engineering să vină cu povești și personalități cât mai diverse în așa fel încât să acoperim cât mai multă suprafață într-un același decor tehnic.

Pe urmă, nu te vei prinde niciodată de funia ce stă pe marginea prăpastiei în care te afli, dar care nu este aruncată niciodată, deci n-ai cum să afli de existența ei. De aceea Beautiful Engineering își propune să arunce cât mai multe frânghii adânc ancorate în realitate și în poveștile pline de tâlc ale invitatelor noastre. Iar tu… cititorule, poate că nu te afli întro prăpastie. Dar crezi ca strică să localizezi punctele de sprijin? Poate nu te vei afla niciodată. Dar oare ți-ar strica identificarea unei frânghii care să te ridice un pic mai sus?

Pe lângă asta, sunt multe întrebări cu prea puține răspunsuri despre ingineria la feminin. Cum se vede o carieră în zona tehnică din pantofii sexului frumos? Ne vor spune doamnele și domnișoarele care ne vor accepta invitația la o cafea și un mini photo-shooting. Pe baza răspunsurilor primite în cadrul fiecărui interviu, voi încerca să construiesc o poveste, din care să reiasă drumul profesional (și chiar mai mult decât atât) parcurs de către acestea până acum. Greutățile întâmpinate de ele și soluțiile aplicate ne pot deveni indicatori de cum să continuăm cu capul sus în orice situație (indiferent de domeniu sau de gen).

Fiecare dintre participante are un mod unic de a vedea lumea și ne va inspira cu principii și goal-uri proprii care au determinat-o să nu renunțe nici chiar în cele mai dificile momente.

În plus, așa cum am spus, fiind pasionată de fotografie, voi face tot posibilul să obțin portrete cât mai faine cu invitatele din acest proiect. Îmi doresc ca voi, cei de dincolo de monitor să puteți nu doar citi o poveste frumoasă despre o femeie tehnică ci să-i înțelegeți frumusețea exterioară de asemenea. De câțiva ani trăiesc într-un decor tehnic înfrumusețat nu doar de creiere admirabile ci și de aspectul exterior fermecător și plin de naturalețe al doamnelor și domnișoarelor incredibile răsfirate pe ici pe colo la scaunele din fața monitoarelor sau lipind cu grijă vreo plăcuță de prin laboratoarele de electronică.

Dar destul cu vorbăria și haideți să începem adevărata poveste. Iar în încheiere am să vă lansez următoarea invitație: dacă aveți vreo cunoștință din zona tehnică pe care o admirați sau dacă aveți voi însevă o poveste de spus, dați-mi un ping la adresa de email mihaela.gaman@codette.ro sau pe facebook https://www.facebook.com/mihaela.gaman.1 . Haideți să ne cunoaștem, să facem câteva poze și să povestim la o ceașcă de ceai undeva prin București și nu numai.

Py@Codette – bazele programării and more

Dacă ar fi să vorbesc despre cele mai fresh momente din acest an, cu siguranță mi-ar zbura gândul la cele 3 workshop-uri Py@Codette.

De ce spun asta? Pentru că fiecare ediție m-a încărcat cu energie, mi-a oferit oportunitatea de a cunoaște persoane creative, cu o sete incredibilă de cunoaștere și cu o atitudine de luat drept exemplu. Pentru că aici am câștigat prieteni, am descoperit și redescoperit oameni talentați și pasionați.

Conștientă că am început cu concluzia, am să merg către cursul normal pe care ar trebui să-l aibă povestea și am să vă explic ce este Py@Codette. Scurt și la obiect: un workshop unde învățăm să programăm (în Python), mâncăm plăcinte, legăm prietenii și ne distrăm cât cuprinde.

Motivația pentru un astfel de workshop a venit dintr-o observație pe care eu am făcut-o din discuțiile cu copiii de liceu și școală generală cărora le sunt sau le-am fost trainer. Mai mult decât atât, eu însămi am venit în capitală direct de pe băncile unui liceu de informatică. Întotdeauna am considerat că motivul pentru care atâția elevi ocolesc zona tehnică atunci când aleg o universitate stă cumva în inaccesibilitatea pe care aceștia o văd în materia numită informatică. Acest lucru se întâmplă deoarece programa școlară își structurează orele de informatică în jurul struțo-cămilei C/C++: nici C (“chior”) pentru că folosim particularități ale C++ – ului, dar nici C++ pentru că nu prea te învață nimeni OOP în liceu și nici de ce este atât de awesome acest limbaj(C++). Asta face ca elevul să fie ușor confuz încă de la început despre ce limbaj de programare folosește el de fapt. Pe urmă, C este un limbaj cu extreeeem de multe subtilități și hop-uri de stăpânit. Deeeci… ce-o să poți să faci cu el în cele câteva ore pe săptămână? Păi… calculăm niște sume, un Fibonacci, o înmulțire de matrici. Really? Cum poate asta să atragă atenția unui licean “average”? Ca să nu mai zic că dacă ești un pic mai slab de înger, după primele 2-3 seg fault-uri depui armele fără ezitare și pui mâna pe o carte de drept (nu zic… și de avocați e nevoie! Dar eu acum pledez pentru tabăra mâncătoare de pizza și făcătoare de bug-uri so.. am să continui fără scrupule).

Acestea fiind spuse, m-am gândit la un format de workshop în care programarea să fie transmisă într-o formă accesibilă unui începător. Mai mult decât atât, pentru a spori motivația de a descoperi mai multe și pe cont propriu, ar trebui, ca la finalul zilei să avem și un rod practic al muncii depuse și al celor învățate (un joc, o aplicație, etc. – ceva palpabil, vizual). Ideea o aveam. Mai rămâneau doar 100 de lucruri de făcut și stabilit pentru a-i da viață. Astfel.. M-a lovit prima întrebare: “Ce limbaj de programare vom folosi?” Răspunsul a venit rapid, căci știam că e ușor de învățat și totuși extrem de puternic și foarte folosit: Python. M-am gândit că eu, dacă aș vrea vreodată să discut despre programare cu un începător, aș alege Pyhton(eza) ca și limbaj în care să ne înțelegem. De ce? Pentru că nefiind complicat ca și sintaxă, și oferind o flexibilitate destul de mare, focus-ul nu mai pică pe cum scrii codul ci pe logica pe care urmează să o dezvolți în program, pe arhitectura produsului final.  Ba chiar mai mult: există foarte multe API-uri scrise în Python și care se integrează minunat cu acesta care-ți pot ușura considerabil munca de dezvoltare a unei aplicații scutindu-te de reinventarea semi-inutilă a unor roți. De la funcții ajutătoare optimizate pentru calcule matematice stufoase și până la funcții ce permit dezvoltarea unor interfețe grafice complexe, tu trebuie doar să gândești aplicația și să știi ce rotițe deja creeate să folosești pentru a face ca lucrurile să meargă. Saaau, dacă totuși nu-ți sunt încă familiare rotițele astea după nume… poți oricând să le cauți pe net :))

Odată ales limbajul, am încropit câteva materiale pentru un episod “Pilot” de workshop de Python – bazele programării plus două jocuri-proiect. Nu știam cât de potrivite sunt acestea pentru un licean (cineva care vede pentru prima dată sintaxă de Python). Așa că îmi trebuiau niște adolescenți la început de drum gata să-nvețe ceva (nou) într-ale programării. Și aceștia nu au întârziat să apară: trei elevi de clasa a noua mi-au acceptat invitația de a participa la câteva ședințe în acest scop. Programa făcută de mine a trecut testul. Nu cu notă maximă ce-i drept, dar am îmbunătățit-o împreună cu cei trei “minioni” și am decis să facem ceva cu ea la o scară mai mare; la urma urmei.. aveam material cât de-un workshop! Am propus formatul discutat până acum în cadrul unei întâlniri Codette, iar ideea a primit feedback pozitiv so… am continuat prin a căuta o mână de omuleți puși pe treabă, pentru a pune în scena realității povestea asta cu workshop-ul de Python care momentan era doar o înșiruire de cuvinte pe o bucată de Google Doc 🙂

Așa le-am cunoscut pe Diana Marusic, Irina Bulgaru și Mirela Bou – serioase, puse pe fapte mari și dornice să ajute și să învețe (mai mult) Python pentru a da o mână de ajutor. Între timp, ca o dovadă a muncii depuse și a seriozității lor, cele trei au ajuns și speakeri în cadrul proiectului.

Apoi ni s-au alăturat senioarele Georgiana Chelu, Giorgiana Vlăsceanu și Daniela Chivu. Acestea din urmă au făcut o treabă excelentă (și era știut încă de la început că așa avea să fie, dată fiind experiența lor de teaching/vorbit în public). La junioare am avut emoții pe motiv că nu le cunoșteam și poate și pentru că erau și mai mici ca vârstă/poate chiar și ca experiență. Dar s-au ridicat peste nivelul așteptărilor și au făcut o treabă foarte bună. Ca și traineri juniors, deși nu au fost (încă) puse în postura de speakeri le-am mai avut pe Maria Anca Băluțoiu, Iuliana Brânzoi, Bianca Iancu, Corina Tudorache, Silvia Bălan (trainer și participant), Andreea Bobe și Ștefan Haiducu (aceștia doi din urmă fiind și participanții la ședințele de testare și îmbunătățire a programei). Silvia Stegaru și, în rest, cam toate persoanele amintite mai sus au ajutat și cu partea de organizare.

Acum că am cunoscut povestea și echipa să vedem cum a decurs, de fapt, primul workshop Py@Codette? Aș spune mai bine primele workshop-uri, căci am avut 2 întâlniri și discuții pe aceleași materiale. De ce? Fiindcă numărul de înscrieri la workshop-ul “pilot” a depășit cu mult numărul de participante pe care le puteam accepta și am dorit să oferim o a doua șansă și să ne cunoaștem cu încă pe atâtea liccene și studente-n primii ani cu aceeași sete de cunoaștere care ne-a inspirat la prima ediție. Primul workshop din serie își propune să prezinte bazele programării într-o manieră (Python-ească) cât se poate de accesibilă. Sunt 3 “speakeri” cu moduri diferite de predare, de a transmite informația și de a îmbrăca niște concepte generale din știința “scrisului de cod” în pielea de șarpe a limbajului de programare ales. Odată stabilit un punct de sprijin, urmează lucrul la proiect: în primul workshop  – x&0, iar în cel de-al doilea Hangman. Astfel, ne asigurăm că le trezim interesul pentru a descoperi și pe cont propriu ce alte lucruri interesante se pot face în Python/folosind cunoștințe de programare. Un adaos la acestea ar fi pauzele în care mâncăm pizza, sandwich-uri, fructe, plăcinte (semnătura worksop-ului – am fi vrut ca Py@Codette să  aibă și un pic de Pie@Codette :)) deci am adus asta la workshop) și alte bunătăți.

Py@Codette - Aprilie 2017-194

Py@Codette v2 a venit cu materiale și mai interesante și interactive concepute de către Georgiana Chelu, Irina Bulgaru și subsemnata cu mâinile pe taste în timpul “conceperii” acestui articol 🙂  Scopul acestei ediții a fost acela de a exemplifica utilizarea unui API și boost-ul de putere oferit unui limbaj de programare de existența a cât mai multor API-uri implementate folosindu-l sau care se pot interfața ușor cu acesta. Astfel că, la Py@Codette v2, participantele au învățat cum să folosească Facebook API-ul pentru Python. Mai pe românește: au căpătat skill-ul de a-și posta pe propria pagină de Facebook sau de a comenta fără ca măcar să deschidă browser-ul sau aplicația de pe telefon… ci rulând un simplu script de Python. Aici partea de hands-ons cât și cea de proiect se concentrează pe exersarea diverselor task-uri ce se pot automatiza ușor în Python: de la a descărca poze de pe xkcd sau Pinterest și până la a-ți spama grav prietenii de pe Facebook :)) Asta este partea amuzantă. Dar să ne gândim la utilitate: vrei de exemplu să share-uiești/faci reclamă la un post/eveniment al organizației din care faci parte în toate grupurile de care aparții, sau vrei să automatizezi procesul de a face urări prietenilor sărbătoriți în fiecare zi, sau să prelucrezi date obținute de pe profilul prietenilor tăi. Folosind un pic de automatizare totul devine mai fun și mai simplu. Partea a doua a Py@Codette v2 ne-a introdus în arta de a da click-uri, deschide aplicații din GUI și a le utiliza cu ochii-nchiși și mâinile legate la spate.

Gândește-te cum te pot ajuta acest gen de cunoștințe! Ai un job plictisitor care implică acțiunea repetitivă de a testa o aplicație GUI și ai de dat click-uri după un anumit pattern. Well… enjoy a coffee and let the script do that for you. Apoi, partea a treia a aceluiași workshop ne-a oferit o vedere de ansamblu asupra a ceea ce putem face dpdv procesare de imagini folosind funcții deja implementate în PIL – un modul de Python optimizat pentru astfel de task-uri. Vrei să “brand-uiești” toate imaginile dintr-un folder cu un logo și nu vrei să faci asta “de mână” sau nu ai un profil de Lightroom sau licență de Photoshop? Noi am oferit soluția. Cum să-ți reunești pozele  în orice format de colaj? Do a script in Py și n-o să mai depinzi de aplicațiile online care nici nu-ți oferă cine știe ce flexibilitate la partea asta. Saaau… think big: fă-ți propriul tău tool de editare de imagini!

_DSC0411

Despre Py@Codette v3 pot să vă spun doar că este work in progress, iar tematica sa o veți descoperi atunci când vom avea totul pus la punct.

Dar pot încheia acest articol cu atmosfera generală de la workshop-urile de Py de până acum pe care o puteți descoperi imortalizată în pozele din albumele de pe pagina noastră de facebook, pentru care puteți accesa URL-urile de mai jos:

Un insight în ceea ce privește programa și materialele puteți descoperi pe repo-ul Py@Codette din git-ul Codette: