How do I get started in IT/Software? (Romanian)

How do I get started? Do you have any advices/recommendations?

Stiu ca inceputul e greu, imi aduc aminte cat de tare m-am bucurat cand am fost angajat in august 2006 la firma MCR, ca programator, dar pe o pozitie de tester de jocuri Java pe Mobil(asta aveau ei nevoie atunci)

Insa asta a fost acum 14 ani, iar lucrurile s-au mai schimbat…

Acum mi se pare ca
1. sunt atatea oportunitati si cai de a invata,
2. Acum, cererea e mai mare in Software si deci acum as zice ca e mai usor in prezent…

Acum, mi se pare ca daca esti cu adevarat interesat si determinat, ai putea sa inveti sa te descurci singur, cu ajutorul netului,
De ce spun asta?
– de exemplu, sunt atatea programe si canale de youtube in care se dau retete si sfaturi de cum sa ajungi sa te poti angaja/cum sa reusesti la un interviu de angajare…

1. Keep in touch with valuable influencers who can inspire you

Eu urmaresc pe:

Found a new cool guy:

TechLead
https://www.youtube.com/channel/UC4xKdmAXFh4ACyhpiQ_3qBw
De aici, de exmplu uita-te la:

Cristian Dascalu
https://www.youtube.com/channel/UCTP1PGV-piW-tsUYXlHmvGw
De aici, recomand:

Mai este WellCode – pe astia nu-i stiu, dar ii recomanda Cristian Dascalu

My Absolute Favorite:
https://codewithmosh.com/
De aici am facut si eu cateva cursuri.
Vezi ca majoritatea cursurilor sunt partial graturite pe youtube, cel putin partea introductiva. Le gasesti aici: https://www.youtube.com/user/programmingwithmosh

Acestea sunt doar cateva resurse, pe care poate le stii deja, ideea este ca sunt multe informatii valoroase, si as vrea sa le parcurgi pentru a-ti face singur o idee, pentru a invata sa te orientezi

2. Ce crezi ca te-ar atrage? – choose a path

High Level Languages/OOP?

Eu sunt pe Java, si in zona asta am experienta.
Aplicatii Web, Aplicatii de business, CRM, ERP, Aplicatii Mobile?
Aici, ca Limbaje am avea: Java, C#, Kotlin, Groovy, Scala, Python, etc…
– FrontEnd?
– BackEnd?

Lower Level/Embedded

– C/C++, Microcontrollere, etc…
Industria AutoMotive, ceea ce face Conti, Marquardt, etc..
Aici, nu stiu prea multe

3. Build a Portofolio

Ai cont de LinkedIn? Poti sa iti pui bazele unui CV, cu Trainingurile pe care le faci de exmplu de la codewithmosh.com
– arata-mi ca esti pasionat, arata-mi ca esti bun,
– ai cont de GitHub? ai acolo cateva priectele/repo-uri cu code scris de tine?
Build a portofolio,
– adica sa ai cont de GitHub in care sa ai tu niste proiectele/aplicatii la care ai lucrat
– Un potential angajator, poate ar fi curios sa vada cod scris de tine, sa vada cum scrii cod, cum ai inteles si jonglezi cu conceptele… etc…

4. Sign up into a Code Academy

Vad ca Visma au finantat un laborator in ULBS, https://www.facebook.com/visma.romania/photos/a.543295925846069/543295949179400/?type=3&theater
De obicei, firmele care au colaborari cu ULBS deruleaza si programe de internship prin care isi pot selecta studentii cei mai talentati

Parca auzisem ca si Continental au genul asta de programe in care selecteaza anumiti studenti si ii invata

Eu zic sa te interesezi sa vezi cum poti sa faci a.i sa aplici pentru un internship la o companie din asta de top

MySQL Clients for Dev

When I was on Windows I loved Heidi SQL.

But now I use Linux  and Mac.

Linux:

https://valentina-db.com/en/valentina-studio-overview

one thing that I don’t like about it is autocomplete, it doesn’t fills in table columns 😦

Mac:
sequelpro

What’s the Best Client Application for MySQL (on Linux/Mac)? – IntelliJ !

Better than MySQLWorkbench, SequelPro, Heidi, DBeaver, etc…

  • unparalleled autocomplete, it is almost as if it is writing the queries by itself

  • run just part of the queries,

  • easily switch between various DataBases,

and many others

Test Driven Development is overrated

I highly recommend this post:
https://levelup.gitconnected.com/test-driven-development-is-overrated-ad9f0491c11d

“It’s slow”
The developers who say this are usually the ones who have tried TDD out for a little while and then they went back to writing tests post-development. Regardless, this is the reason most often given as to why a developer does not do TDD.
I can understand why people think that too. Thinking about code before it’s written, and spending extra time writing tests for everything that is implemented, even for the methods which may even have not had tests anyways, can take extra time. Figuring out how to stub and mock effectively for the given case can also be frustrating sometimes.
It also doesn’t help that most business units in companies only use speed and time taken to deliver as a measurement of efficiency and effectiveness, which means teams have pressure to be faster

It also doesn’t help that most business units in companies only use speed and time taken to deliver as a measurement of efficiency and effectiveness, which means teams have pressure to be faster
When looking at the Four Key Metrics (I like to reference these a lot) from Accelerate, two of the metrics are Change Failure Rate, and Deployment Frequency.

When looking at the Four Key Metrics (I like to reference these a lot) from Accelerate, two of the metrics are Change Failure Rate, and Deployment Frequency.
With TDD, as I mentioned above, assuming the system was built exclusively using TDD, a team will know instantly whether or not a change to the code has broken functionality elsewhere in the system and also increase the speed with which they find a Bug. The locality of the tests also allows developers to know where the problem is very quickly. This results in broken functionality getting to the customer less often, decreasing the team’s Change Failure Rate.
Having high confidence in the resilience and functionality of the software means the team can decide to deploy whenever the tests are passing. Deploy on Demand anyone?
When looking at the Four Types of Work from The Phoenix Project, one of the types of work is “Unexpected”. This is whenever developers have to stop what they are doing in order to work on something else, usually as the result of a bug. Self Tested Code means minimizing bugs. Minimizing bugs means minimizing unexpected work. Minimizing unexpected work means maximizing developer happiness. Happy developers are good developers.