DEV Community

Lucas Matheus
Lucas Matheus

Posted on

Minha Jornada na Programação: Do Primeiro Contato aos 23 anos - Parte 1

Introdução

Olá, esse é meu primeiro artigo nessa plataforma e como o título sugere vou dissertar sobre minha jornada no mundo da programação aos 14 anos de idade até os tempos atuais onde estou com 23 anos e atuando profissionalmente como desenvolvedor. Meu objetivo com esse artigo não é vangloriar-se pelos meus atos e conquistas ou constatar conhecimento, mas sim servir como fonte de inspiração para aqueles que estão iniciando nessa área e também que seja um guia para aqueles que desejam saber quais dificuldades serão enfrentadas durante a jornada como desenvolvedor. O fato de eu ter começado relativamente cedo não indica sabedoria, portanto é importante destacar que não importa a idade para iniciar o crucial é justamente: iniciar

Image description

Influências, Documentários e Livros

Em 2014 o mundo estava passando por diversas transformações tecnológicas e uma delas era a fortificação das redes sociais em nossas vidas. Lembro-me que em anos anteriores (2012, 2013) diversos ataques hackers foram feitos a governos mundiais e para piorar a situação de alguns líderes das nações em 2013 Edward Snowden acabou vazando informações de programas espiões que eram utilizados pela CIA para que Estados Unidos bisbilhotasse o resto do mundo. Observando esse cenário eu me lancei a pergunta: Como? na minha mente de pré-adolescente parecia tudo muito complexo, coisa de outro mundo. Cada noticia que saia nas redes sociais eu ficava boquiaberto, achava que era magia ou que você deveria ser simplesmente um gênio para criar um site ou aplicativo mobile e que para invadir algo deveria ser 10x mais gênio do que a pessoa que criou.

Um documentário que passava na Discovery Channel esclareceu algumas dúvidas com relação ao desenvolvimento de software em um âmbito mais empresarial: "A Guerra dos Navegadores"(Link vai estar nas referências). O documentário conta, basicamente, como foi a disputa no mercado de browsers entre duas empresas a Microsoft e a Netscape. Alguns nomes que estão por aí até hoje são citados no documentário como Bill Gates, Mark Zuckerberg, Steve Ballmer, Larry Page e Sergey Brin. Durante o documentário também é simplificado o funcionamento dessas plataformas e quais eram seus objetivos. Na época, aos 12 anos, eu achei tudo aquilo incrível! antes disso, minhas referências eram alguns livros sobre Hacking que meu irmão tinha baixado, "A arte de Enganar de Kevin Mitnick" e também algum outro do Marcos Flávio Assunção o "O Guia Do Hacker Brasileiro" a qual não me recordo exatamente de algumas partes, mas trouxe casos interessantes das "caixas azuis" e termos relativos aquele mundo como Lammer, Hacker, Cracker... Todo contexto que o mundo estava vivendo naquela época, claramente foram fortes influências para mim ter o primeiro contato a Tecnologia da Informação.

Image description

Assim como todo apaixonado por tecnologia, em algum momento da vida, deve ter sido exposto a história do Bill Gates e do Steve Jobs e como esses dois foram de extrema importância para a utilização dos computadores pessoais. Comigo não foi diferente, pesquisei a história desses dois e como eles foram visionários ao entender a diferença que um computador faria na vida das pessoas. Por meio da história do Bill Gates pude ver como o conhecimento de compiladores, Sistemas Operacionais e linguagem de programação eram peças que faziam a composição em um software de computador. Com Jobs aprendi que você não precisa entender necessariamente de programação para construir algo na área basta convencer alguém que entende muito a fazer isso. Brincadeiras a parte, a história de Jobs é inspiradora em muitos pontos e os produtos da Apple impressionavam qualquer um com relação a Design e Software.

Image description

Pesquisar a trajetória desses dois foi de extrema importância para mim não posso dizer que serviram de inspiração na área da programação em sí, pois na época conseguia diferenciar seus feitos empresariais de o que realmente foi construído por eles. De qualquer com essas pesquisas alguns jargões da área aparecia constantemente: Compiladores, S.O, kernel, Linguagem de Programação.

Com toda essa pesquisa, aos 14 anos, acabei me interessante pelo desenvolvimento de software e eu tinha uma ideia por onde eu poderia começar, muitos acredito que iriam escolher um linguagem ou stack fácil de se aprender, todavia, no auge do meu amadorismo eu optei por C/C++(Ora, se o Bill Gates usou para construir algumas coisas eu posso tentar não é mesmo)

2014 - O Primeiro Contato: Dev C++, CodeAcademy, Pascalzim, Visual Basic e Compiladores online.

Como um jogo é feito? Como um sistema operacional é feito? como posso criar um software? Se eu deixasse meu navegador aberto em 2014 e você pudesse dar um CTRL + H seria esse o resultado. E em todas as minhas pesquisas uma linguagem aparecia com frequência: C ou C++. Aparentemente essa era a linguagem certa para aprender, eu conseguiria fazer qualquer sistema desktop com elas. Eu não cheguei a ver conceitos de C ou C++, mas queria entender o funcionamento de um programa e acreditava na época que esse seria um bom inicio. O conceito mais básico que aprendi foi o de compilador, toda aquela mágica, toda aquela bruxaria era apenas digitar comandos e esperar por uma saída? O mundo virou de cabeça pra baixo de forma positiva já que a partir daquele momento eu entendi que programar ou desenvolver algo, em um nível simplista, se tratava de digitar comandos para máquina para que ela fizesse uma determinada ação.

Parece que foi ontem, 2014, estava no meu quarto com meu notebook com de processador celerom observando a saída de um jogo a qual o código fonte eu tinha pego na internet e vendo seu funcionamento em uma IDE chamada Dev C/C++. Eu estava me sentindo um máximo fazendo aquelas coisas, por algum motivo passava horas digitando código e vendo suas saídas. Era mágico, algo que foi um amor a primeira vista e a partir daquele momento eu entendi fazer aquilo pelo resto de minha vida até que seria algo legal. Só que percebi que a linguagem C/C++ não era muito didática para um primeiro contato apesar de te dar bases sólidas para programação e que permitia que você observasse em qualquer outra linguagem derivada. Então, fui atrás de linguagens que poderiam ser mais confortável para que eu pudesse aprender mais sobre programação foi nisso que me dei de cara com Pascal e seu maravilhoso compilador chamado Pascalzim.

Image description

Uma pequena tangente aqui: Eu não tinha um computador muito bom, não consegui rodar compiladores mais pesados para desenvolvimento em outras plataformas como Mobile, por exemplo. Eu vim de uma Família humilde com meu pai sendo ASG de um Hotel e minha mãe trabalhando em uma fábrica de roupas. Apendi desde cedo a importância do trabalho duro para sobrevivência e utilizar os recursos que você tem para te proporcionar um ambiente confortável e feliz. Não foi diferente no mundo da computação eu reconhecia os limites do meu computador, vindo de escola pública com pouca ou nenhuma infraestrutura informacional tive que me adaptar a isso. Então não achem estranho se eu citar compiladores arcaicos e estranhos como esse, era a maneira que eu tinha de aprender.

Image description

O pascalzim era muito interessante, a tela azul e as várias opções de aprendizado que ele fornecia me fizeram entender conceitos primitivos como variáveis, estruturas de controle, inicio e fim de um programa. Acredito, inclusive, que ele possuía um módulo onde tinha o código fonte de alguns jogos e programas que você poderia ver o funcionamento e executar eles. Não me aprofundei muito na linguagem pascal, mas só de ver as possibilidades me deixaram bem animado para que eu poderia vir a aprender no futuro com outras linguagens que demandariam um tempo a mais para aprender.

Image description

Paralelamente, eu estava para que cada linguagem era mais adequada. Em um passeio da escola para um feira de ciências local, lembro que vi uma espécie de mão robótica e perguntei ao apresentador em qual linguagem eles fizeram se foi Assembly ou C++. Saber isso foi de extrema importância porque dessa forma eu conseguiria saber com qual linguagem eu poderia construir um determinado sistema e qual seria a mais adequada. Inclusive, parando para lembrar nesse momento, não lembro de ter visto Python durante minha pré-adolescência, não sei bem o motivo. acredito que sua massiva popularidade aqui no Brasil poderia vir em anos posteriores. Lembra da tangente que fiz? Ela vai se conectar aqui: Como meu computador tinha recursos muito limitados, caso eu quisesse aprender uma nova linguagem, eu não poderia simplesmente baixar o compilador e começar a codificar, foi ai que vim sobre os compiladores online. Eu necessariamente não precisaria instalar todo o Kit desenvolvimento para uma linguagem X, bastava eu ir em um compilador online codificar algo e ver o resultado. Como era uma fase experimental de conhecimento consegui ver o funcionamento de muitas delas, algumas nunca cheguei a utilizar no futuro: Prolog(Para robótica), Ruby(Não fazia ideia para que servia na época), PHP, Brainfuck(Sim, existem compiladores online para BrainFuck) entre outras. Com isso vi que para que construísse um site eu iria precisar de uma santíssima trindade chamada HTML, CSS e Javascript. A plataforma que caiu como uma luva para isso foi a CodeAcademy.

A CodeAcademy é uma plataforma online onde é possível aprender conceitos básicos relacionados a diversas linguagens de programação. Na época era possível aprender HTML, CSS, JS, Ruby, PHP e Python. A didática era bem interessante: eles explicavam em um quadro um determinada tag e um workspace do outro lado era possível ver qual ação essa tag fazia. Contava com uma série de exercícios e inicialmente consegui aprender HTML, CSS e um pouco de PHP bem como a ligação de cada uma dessas linguagens com o browser.

Image description

Se eu tivesse que definir os meus estudos em 2014 com uma palavra seria experimentação. Esse ano eu acabei não tendo um aprendizado muito sistematizado, tanto que cometi um erro grotesco para um iniciante que é se aventurar em mais de uma linguagem de programação. Mas, tudo aquilo foi experimental. eu observei como cada linguagem funcionava e aprendi apenas o básico sobre cada uma delas, não me aprofundei e não fiz muito programas relevantes, inclusive só que gosto de dizer que o conhecimento, assim como a energia, nunca é desperdiçado e sempre é transformado ou conectado em outros tipos de conhecimento.

2015 - Minidicionário de Informática e meu primeiro website

Sabendo que para produzir um website era necessário HTML, CSS e alguma outra tecnologia para interação mais significativa o usuário eu fui atrás de ferramentas que poderiam me auxiliar nisso. Eu sabia que eu poderia desenvolver apenas com um bloco de notas, mas é sempre importante o uso de IDE para aumentar a produtividade e até mesmo auxiliar no processo de desenvolvimento com sugestões de erros no código. Na época acredito que já existia o Notepad++ (Também cheguei a utilizar ele em meados de 2014). usei ele por um tempo para escrita de código e estudos, mas um acabei gostando muito de utilizar foi o Adobe Dreamweaver, pois ele já possui templates bem interessantes e que agilizavam o desenvolvimento a produção do site.

Ótimo, com as ferramentas e conhecimentos necessários só faltava de uma temática para o site. Na época era o auge para filmes de herói e cultura pop. Então decidi fazer um website que focasse ou em jogos ou em quadrinhos. Como iniciante meus sites não tinha muito apelo visual, então contei o auxilio de ferramentas como Wordpress e algumas outras. Como não tinha dinheiro na época para comprar um domínio fui atrás de um site que oferecia isso de forma gratuita o .TK que ajudou bastante. Fora isso eu sabia que um site precisaria ser hospedado em algum lugar e na época a hostinger tinha uma opção de hospedar o site de maneira gratuita por 30 dias se não me falha a memória: assim nascia o mundo HQ utilizando Wordpress. o mundo HQ era um site onde era possível ler historias em quadrinhos online; o catalogo não era muito grande, coloquei apenas histórias de sucesso com Watchmen, Era de Ultron, Piada Mortal.

Apesar de simples, foi muito satisfatório ter meu primeiro site no ar. Tentei fazer parcerias com alguns outros sites e, por ser algo iniciante, obtive muitas negativas. Um site chegou a até a questionar se eu tinha os direitos autorais para a publicação dessas histórias. Além desse site do MundoHQ, eu acabei produzindo alguns outros de jogos e conteúdos aleatórios. Nada de outro mundo, mas esse conhecimento foi essencial mais tarde para entender o fluxo de construção e publicação de um site para a internet. O ano de 2015 teve diversas práticas com relação HTML, consegui ver alguma coisa de interface gráfica com Visual Basic, mas nada muito técnico. Nesse ano acabei comprando um minidicionário de informática para ajudar a entender alguns conceitos.

Image description

Em 2016 eu acabei focando muito no vestibular que seria no próximo ano, no fundo eu sabia que precisava fazer um curso técnico ou algum curso para aprimorar as minhas habilidades. Então fiz uma prova para ingressar no curso técnico oferecido por um universidade federal aqui do estado. Vou pular para 2017 onde já tinha ingressado nesse curso e pude aprender lógica de programação e outras diversas matérias de suma importância para o mundo da programação.

2017 - The Crazy Years: Redes, Java, Arquitetura de Computadores e Lógica de Programação, Matemática.

Bom, o curso foi de extrema importância, após a gente completar mais um menos 1 semestre dele deveríamos escolher uma ênfase de conhecimento: Jogos Digitais, Eletrônica, Redes, Desenvolvimento Web, Automação Industrial. Lembram da minha influência inicial com os livros de hacking? eu queria me tornar um e para isso o conhecimento em redes era indispensável, sem contar as inúmeras possibilidade no futuro com o surgimento do IOT e outros tipos de redes. Nesse curso aprendi bastante sobre Java tanto de forma estruturada como orientada a objetos, a lógica de programação utilizando VisuaAlg foi de grande valia para entender o cerne de qualquer linguagem de programação que é a lógica. Arquitetura de Computadores me fizeram conhecer o funcionamento de um computador e como era interação com os programas de computadores: Arquitetura Von Neuman, Arquitetura Harvard, CISC, RISK. Na época, juntamente com um outro, aluno eu fui monitor da turma no primeiro semestre e ensinando consegui aprender algo que levo para o resto da vida que é "se você ensinar, você pode aprender bem mais". Nunca fui muito chegado a matemática, mas o curso me fez entender em relação a conceitos que antes eram bem distantes da realidade: Matrizes, Funções, Lógica Formal. Saber esses conceitos básico te ensinam como ser um programador mais ciente do que se está fazendo. Depois disso, veio a vez de aprender conceitos de essenciais de redes de computadores como Modelo OSI, Dispositivos como roteadores, Switches, Comutadores. Foi minha primeira experiência com o simulador de redes da Cisco e virtualização com Virtual Box.

Image description

O contato com Java foi bem tranquilo graças aos conceitos trabalhados em lógica de programação. Claro, exigiu um pouco de tempo para me adaptar com sintaxe da linguagem e com o Netbeans. Fiz diversos exercícios para fixar os conceitos de Laços, Estruturas condicionais, Registros. A Programação Orientada a Objetos foi um tanto quanto desafiador já que era um conceito novo para mim, com a prática alguns deles se tornaram mais leve. Na verdade, todo conceito muito abstrato naquela época foi complicado em um certo nível. O modelo OSI foi algo maçante para visualizar na minha mente e apenas com um vídeo no Youtube sobre eu consegui compreender melhor que aquilo era a base para internet. A parte de arquitetura de redes e tipos de redes de computadores são bem interessantes e com o auxilio das ferramentas certas você pode aprender a identificar e produzir coisas simples com poucas semanas ou dias.

Image description

Tudo estava indo muito perfeito, porém eu tinha que conciliar com os meus estudos para o vestibular e ainda lidar com os problemas financeiros em casa. Na época eu tinha 17 então de longe eu poderia conseguir um emprego, mesmo tentando algumas vagas meu conhecimento e feitos eram bem limitados. Infelizmente, fui rendido por crise de ansiedade que me fez parar por 3 meses. Foram épocas complicadas e bem dolorosas. Eu acreditava que não era útil para nada, parei de frequentar as aulas e só fui fazer o Enem 1 ano depois. Agradeço aos meus pais por não desistirem de mim, cuidarem de mim e me incentivaram a continuar o meu curso técnico em redes de computadores. Não se enganem, em qualquer trajetória você precisa ter alguém que você ama ao seu lado e te apoiar em suas decisões. Tudo que faço, nunca foi por mim de fato, mas sim por eles e para ajudar aqueles que sei que passaram pelo mesmo que eu. Esses 3 meses tiveram consequências, pois não fui a escola e parei de frequentar o curso. A boa notícia é que em Dezembro a escola me passou por um excelente desempenho acadêmico e eu poderia ter uma nova chance de concluir o curso.

Conclusão

Bom, incialmente estava pensando em condensar tudo e com certeza acredito que já tem bastante coisa dos 14 até os 17 anos. Então por que não dividir não é mesmo? todos os passos descritos aqui foram bem importantes para consolidação do meu humilde conhecimento na área e é importante ter mente que qualquer limitação pode ser facilmente superada quando se tem força de vontade e apoio. Acho que essas são as principais lições não técnicas desses 3 anos. Na parte técnica eu com certeza diria que lógica de programação foi essencial para fixação de muitos conceitos que são imutáveis quando se escolhe uma linguagem de programação ou quando você decide mudar de uma linguagem X para uma Linguagem Y. Matemática e Arquitetura de computadores são bem teóricas, mas essencial para entender mais sobre o funcionamento e detalhes mais profundos da interação software-hardware.

Por fim, meu conselho para as próximas gerações é sempre ariscar e nunca ter medo de falhar durante o processo de aprendizado por mais desafiador que algum assunto seja. Eu não sou especial, não sou um gênio ou superdotado nessa área. O que realmente vai te diferenciar de outras pessoas é a coragem de sair de sua zona de conforto para mudar a sua realidade e a das pessoas ao seu redor.

Referências

https://pt.wikipedia.org/wiki/Kevin_Mitnick
https://archive.org/web/
https://www.youtube.com/watch?v=_TW45Wctsmg&ab_channel=AMentiraemQueVivemos
https://www.codecademy.com/
https://tsilvestre.files.wordpress.com/2013/07/o-guia-do-hacker-brasileiro.pdf

Top comments (0)