Spre ce sa ma indrept?


(Tiberiu) #21

Dupa ce termin cu bacul, o sa fac tot de pe freecodecamp si inca vreun curs pentru Web. Apoi cursul de mai sus cu Android, imi pare interesant. Altceva ce as mai putea face? Stiu ca informatica din liceu e aproape nimic, dar am facut algoritmi destul de calumea, si ma descurc foarte bine la variantele de bac, la algoritmi, cum am spus, stiu ca e mic nivelul,dar ma descurc pana acum.


#22

Tibi, lasa povestile si treci la invatat! :slight_smile:


(aion) #23

In primul rand felicitari pentru faptul ca intrebi. Altii nu intreaba pentru ca ‚Äústiu deja‚ÄĚ.

Cred ca majoritatea raspunsurilor pe care le-ai primit deja se aplica. As vrea sa-ti atrag atentia asupra altui fapt care nu-l vad mentionat de altii. Care deja il poti observa la tine.

Te plictisesti repede. vrei rezultate.
Asta fiind diametral opus cu : vrei sa intelegi in profunzime cum functioneaza lucrurile.
Tu vrei sa mearga, rapid, usor… nerabdarea aceasta este normala, si sanatoasa pana la un punct…

Te va pune automat in fata altora dezinteresati, lipsiti de energie, lipsiti de directie.
Este un mare avantaj.

Cel mai important lucru pe care il poti face este sa-ti administrezi corect asteptarile… timpul si energia.

Majoritatea iti vor spune sa: inveti matematica, algoritmica, statisitica … in general fundamentele a ceea ce inseamna stiinta informatiei. Si asta este perfect valid. Doar ca acest sfat nu tine cont de modul cum functioneaza mintea umana. Functioneaza doar in teorie.

Doar intreaba cativa absolventi pe care ii stii sa-ti faca un depth first search, un path finder ceva… Vezi cati stiu. Toata lumea a invatat abordarea. Doar ca sa sters din memorie pana in anul 4…

In practica… singurlul mod in care vei invata profund conceptele importante este prin acumulare de experienta. Trebuie sa faci multe multe proiecte… va dura ani… vei citi carti … vei urmari best practices… vei participa la keynoteuri… vei lucra 10-16 ore pe zi… si oricum vor dura ani pana ajungi la un nivel ce se considera expert. Asa se formeaza expertii. Se merita sa ajungi acolo. Eu inca nu sunt. Dar vad la altii.

Deci nu poti, nu vei iesii din facultate invatat. Tot ce poti vedea cand termini facultatea e varful icebergului.

Spre exemplu:

Unul dintre primele lucruri ce se studiaza in a CS course este elemente de logica in programare. Nu vei intelege de ce este util sa-ti pierzi timpul cu asa ceva. Nimeni nu intelege. Este o pierdere de vreme! Toti colegii vor fi de aceeasi parere… si va veti baga pixu in course’ul lu profu’

Doar ca defapt nu este inutil. Este extrem de util. Cand ajungi sa ai o problema gigantica… pentru care trebuie sa inventezi un limbaj de programare specializat … ca faci programming language design… nu poti misca nici un deget fara sa intelgi concepte profunde din Predicate Calculus, Set Teory, Type Teory, Cateogry Teory … etc. Concepte din matematica dicteaza ce poate si ce nu poate exista in CS. Matematica este extrem de importanta. Dar nu-ti dai seama de asta decat cand e prea tarziu. Multi nu-si dau seama niciodata.

Ceea ce incerc sa-ti arat este ca administrarea propriei energii mentale… este esentiala.
Deci nu te axa : pe teorie… ori pe practica…
Fale pe amandoua.
Vrei sa faci bani? Sa fii frelancer? Super!
Invata android, si javascript. Bagate pe react… elm … ceva. Invata si unity ca environment. In backend vezi elixir sau pyton sau chiar node.js ca-i tot javascript. Vei avea o viteza mare la proiecte… vei dobandi experienta reala … te vei izbii direct de probleme reale…

Pe parcurs vei lua proiecte din ce in ce mai mari si mai dificile. Incet incet iti vei da seama ca nu pot sa faci nimic faca o intelegere profunda a paternelor de design. (Design Patterns) + multe alte concepte importante.

Nu trebuie sa-ti bage ceva profesor pe gat nimic … o sa te strofoci sa le intelegi singur. Yotube, Coursera, Udemy… internetul in general - geme de tutoriale.

Avand o problema reala de rezolvat in minte … invatand un anumit patern de design / o noua paradigma in programare … va avea acum context. Nu ti se va parea ca pierzi timpul degaba… sau ca asa vrea profu’ . Oamenii au nevoie de context. De ce x? De ce y? De ce nu z?

Ve intelege exact de ce anumite lucruri sunt necesare…
Asta functioneaza pentru ca oamenii au diferite tipuri de personalitate. Cei teoreticieni … nu le pasa de implemnetarea practica … vor sa inteleaga concepte complexe doar pentru frumusetea lor matematica.

Tu nu ma izbesti ca fiind un teoretician.
Pari sa fii un practician/ action type … orientat pe rezultate.

Trebuie sa inveti conceptele importante daca vrei sa supravietuiesti ca programator.

Doar ca, foloseste o abordare dinspre practica inspre teorie … asta opus fiind to o abordare dinspre teorie spre practica (ce se face in facultate este o caruta de teorie si prea putina practica … si e practica dinaia lesinata, neinteresanta… plus nu te plateste nimeni. ).

Vestea buna e ca le poti face pe amandoua. Fa lucrurile la timpul lor.

Cand te observi ca-ti priezi o buna portiune din timp clickuind butoane intr-un gui ‚Äď vei intelege de ce terminalul (caseta urata ce o folosesti in C++) este necesara si paradoxal frumoasa :slight_smile:

Cunoastete pe tine, cum inveti, ce te motiveaza.
Aceasta profesie este mai mult personal development decat codding.
In timp, ajungi sa-ti creezi propriul raspuns la intrebarea ta. Oamenii find diferiti … nu pare sa existe un raspuns universal valid.


#24

Imi da o lacrima cand citesc raspunsuri cu atat bun simt.
Pe tema raspunsului recomand o carte: Computer Science Distilled


(Florin MatincńÉ) #25

Simplifica un pic abordarea.

Cauta o aplicatie web sau mobile care ti se pare interesanta, incearca sa faci una la fel. Fa un Twitter pe web sau un Instagram pe mobile, vezi ce presupune, te convingi daca asta iti place sa faci sau nu.

Sa inveti un limbaj fara sa il aplici practic duce fix unde nu-ti place, o consola de C++ care rezolva ecuatia de gradul 2.

Lucrurile se schimba oricum, in urma cu 5 ani toata lumea scria Objective-C si Java pe mobile, acum totul se muta pe Swift si Kotlin. Si peste alti 5 ani nu stim ce va mai fi.

Foarte important, nu incerca sa fii Jack of all trades, master of none.


(Tiberiu) #26

Iti multumesc enorm pentru tot comentariu. Chiar ai fost foarte explicit si m ai puse ganduri. Oricum cam pe practica ma axez. Avand in vedere ca voi incepe sa invat singur de dupa bac


(Tiberiu) #27

Voi incepe cu ceva web. Voi incerca sa rec un site ceva. Dupa voi urma cursul oferit mai sus pe udemy in java. Si voi incerca o aplicatie. O sa vad care mi place mai mult. Daca ar fi sa imi placa la fel. Pe ce sa raman? Android sau web? Multi au spus ca pe web sunt foarte multi deci concurenta mare


(Istv√°n F.) #28

Concurenta e mare, dar daca depui efortul sa lucrezi BINE, adica sa te specializezi pe cod scris cu teste, cu documentatie, dupa pattern-uri si standarde stricte stai linistit ca poti sa cauti in tot clujul si nu gasesti 5 oameni care sa faca acest lucru nici daca ii luam in considerare pe cei care programeaza de 15-20 de ani. (bine gasesti, dar nu de pe o zi pe alta, adica sunt cautati)

Problema e ca pana iti intrii in mana catusi de putin in acest mod riguros o sa iti pierzi tot cheful de a lucra si invata, in special daca nu esti platit. E o munca foarte grea sa respecti la sange bunele practici, in special daca nu le stii si trebuie sa le inveti pe parcurs. E practic munca pe care o simti , o munca foarte grea de multe ori fiindca in mod paradoxal rezultatele nu se vor vedea instant. Iar daca esti singur te vei bloca mai mereu.

Ca si incepator nu vei atinge aceste puncte in primele 2 ani de invatat, dar cum dai de scris teste pe frontend pentru fiecare lucru pe care il faci o sa zici ca ai dat de iad pana te obisnuiesti. (adica nu stiu daca e cineva care se poate obisnui cu ele, necesita un mod de gandire, multa strategie pentru ceva mai complex)

Eu n-as zice ca e o diferenta intre android/web/ios etc., in 2-3 ani toate platformele vor fi la acelasi nivel.
Web-ul va fi mereu mai confuz, in fiecare zi inveti ceva nou oricat ai invata sau lucra.


#29

Poate n-ar trebui sa te indrepti spre programare. Pana la urma e un job ca oricare altul.

Mai sunt si alte oportunitati pe piata muncii.


(Tiberiu) #30

Chiar pe asta vreau. Ideea e ca nu mi a placut ca bu am stiut ai nici nu am cautat sa fac c++mai atractiv. O librarie grafica ceva. Dar pr programare sunt sigur ca vreau sa fac in viata. O sa incerc si o sa vad eu pe ce ramura raman


(Istv√°n F.) #31

Hai sa revenim la un test putin mai simplu si mai fun :

Daca nu iti plac jocurile astea la nebunie dupa ce inveti bazele, nu te apuca de programare, daca nu dai bac-ul din cauza lor, apuca-te de orice.
Un sfat ‚Äėprietenesc‚Äô: NU TE APUCA DE ELE DACA TREBUIE SA INVETI PENTRU BAC


(Eduard-Dan Stanescu) #32

Vorba lunga, saracia omului.

Da BAC-ul, ia-l si discutam pe urma. Acu visezi la cai verzi pe pereti.


(Tiberiu) #33

O sa le incerc dupa bac cu siguranta