I have begun to programming wanting creating games, dreaming about building the games I ever wanted with innovators systems and great mechanics for the players. To do that, I searched on the internet looking for the "best" programming language to achieve it, and I found many people talking C and C# mainly, and I decided to study one of it...
The C# power with Unity enchanted me a lot, but I had not a good machine for run it... yet I really wanted to make my one, so I go to C and find the Unreal; powerful, but also needed a "good" machine. However, before I keep going in my search, I discover a lib called SDL2, and it saved my dream. Lol.
Beginning to study about C and C++, variables, functions, paradigms, objects, points and many other things I have learned, but ever looking for basic tutorials about SDL to verify my understatement. When I felt I could begin creating my game, the feeling was amazing... but I had another problem... English. I only saw English on the school, and It was not a master level, if you know what I mean.
So, here I am again, starting a new subject to create this blessed game. English was the next step, searching for content online, playing games, forcing myself into anything what had English as an option of language, everything, so.
Especial thanks go to Tia do Inglês, Gavin from SmallAdvantages and many others channels on YouTube and Blogs. Of course, I still need learning much more thing, fix errors, but I am trying.
While I have had learning English, I had other change on mind, I wanted to create sites, so I went to the source of almost all my learning material, YouTube and I have faced for the first time a site built inside many tables and wrote inside windows Blocknote. Looking back... It was insane !
I am telling my history here... my god lol
So, what a programmer do when He/She wants to create a site? He/She begins "programming in HTML and CSS". Thus, I did, looking for tutorials of "How to make a site" or better, "How to create a site in Blocknote", everything in Portuguese due to my English level.
Through this noob adventure, I found new tools like Notepad++ and Dreamweaver what have made me get a better feeling about what I was doing.
Another special thanks to Curso em Vídeo from Gustavo Guanabara who have pulled me out from the crazy world of table inside table with his course of HTLM5. Now I know how to organize me HTML with more sane and modern tags, yet an HTML site was too tough, nothing dynamic. If I had to create a register/login system? I thought.
Let's back to Google and looking for that. PHP, a truly programming language this time. Again, as my personal teacher, the YouTube have helped me to learn it. There was I, 15 years-old making queries to a MySQL database through mysql_query function; super happy!
Curso em Vídeo saving my again, it has launched other course about PHP, the most complete and professional free course I have ever seen on YouTube. There I was introduced to POO and its power. It was said to me: Cast it on the fire and I said: No.
From this course, I could say, I initiated my career as a programmer. My English level was better, and now I could read a blog post with the Google Translator help in some phrases This fact makes me explore new areas like: Good practices, Design Patterns, UML, GoF and others.
As I thought I have had to become a "truly" programmer, I rejected someone else code; I wanted making my version. The first one attacked was composer and its autoloader.
PSR-4; I remind until today, I read a lot of that thing to create my own, taking a lot of time due to my "noobness". But in the end, I had success, I think. I was a simple system that had to have got the HTTP method, a class and a method according to URL what comes from Apache. It was magic.
After that, a thing inside me makes I begin to search others programming languages. I was what I did. Almost a year leaping from one to another: Java, Python, Ruby, Perl, Lua and C#. I could prove a bit of each one, now I know I like from one, and I do not from other, but in general, It was not a smart choose. Doing that, I did not deepen in anything, making me just a programming language learner, and it does not a programmer.
Being a programmer should be about solves problems, and it does not about what is the best language. Programming languages should be tools what can be interchangeable according to needs
The first time I have heard someone talking about it was Diego from Rocketseat, with a simple phrase. I do not remind exactly what he said, but the main meaning I think have got. Be a specialist could be better to your learning process and employability, at least It was what I understand. A generalist too has space in the IT area, but It is more effective when you have experience in the area.
Thank you reading this huge blog and I hope you do not make what I did, to be a specialist in the beginner of you should be better to you.
If someone has opinions about this, feel free to comment, as I'm a ""beginner"" too, tips from expert devs are so welcome.
Other disclaimer, my English is still poor, so... sorry :D