Neste artigo vou tentar dar caminhos que segui durante minha carreira como programador. Hoje, naturalmente devido a uma série de outras atividades que a vida me impõe consigo me dedicar menos a atividade de forma prática, mas, ao longo dos anos aprendi algumas lições sobre o que fazer e o que não fazer. Então, se na sua mente está a pergunta “Quero programar. Por onde começar?”, você já deu o primeiro passo.

Quero programar. Por onde começar?

Experimentar faz bem

Para você ser um bom profissional em alguma coisa primeiramente deve buscar entender se aquilo te encanta de alguma forma. E a única maneira para isso é realmente experimentando as coisas. Até existem os famosos testes de aptidão, mas, não te darão a certeza que se tem com a experimentação.

E, no mundo da tecnologia, principalmente em se tratando de desenvolvimento de sistemas a experimentação começa por gostar da informática em si, apreciar computadores, ter interesse e um certo encantamento pelo que eles proporcionam, enfim, olhar com outros olhos a máquina que está na sua frente.

Isso não significa que gostar de games vai te tornar um bom programador de jogos, mas, seguramente vai te dar as noções necessárias e a vontade (que é o combustível) de aprender mais sobre aquilo.

Quando este desejo de aprendizagem estiver em suas veias, ai sim, você está definitivamente no rumo e a caminho de ser um bom profissional.

Olhar o que está pronto

Depois que você já usa algum programa, por mais simples que pareça ser, como um Notepad da vida busque saber como ele foi feito. E para saber como foi, você precisa entender um pouco da história da computação e o que aconteceu durante os anos e sobre o próprio amadurecimento das linguagens. Pra você não ter que ir em outro lugar vou falar rapidamente aqui mesmo:

  • Assembly: Linguagem mais primitiva. Praticamente um código escrito nela tem capacidade de conversar diretamente com endereços de memória, processador e até localizações específicas do HD ou outros periféricos. Dificil de se escrever códigos nela, mas, necessário para os desenvolvedores de Sistemas Operacionais, programadores que trabalham com sistema embarcados (softwares que rodam em um relógio digital, no rádio do carro ou no controle de sua televisão por exemplo).
  • Linguagem C: Da pra dizer que depois de cansarem escrevendo códigos em Assembly um sujeito chamado Dennis Ritchie em 1972, quando em nem era nascido, desenvolveu esta linguagem para parar com tantas repetições de código, bem como, realizar um bem para a humanidade e uma verdadeira revolução na forma de escrever sistemas, pois até hoje, muitas referências de linguagem e forma de desenvolvimento são baseadas nela.
  • C++: Então, nada mais é do que uma evolução natural de C. Com mais poder, modernizações e evoluções (de bibliotecas) que ocorrem até hoje.

Bom, a partir daí a coisa melhorou muito e começamos a ter linguagens cada vez mais práticas e fáceis de se utilizar, com mais bibliotecas e ferramentas desenvolvidas por outros programadores.

Na medida em que evoluímos no tempo vemos surgir termos como Tabelas, Bancos de Dados, Mouse, Portas Seriais, Portas USB e muitos outros periféricos que passaram a sustentar e enriquecer o computador com suas capacidades.

Linguagens de alto nível

Depois da evolução de Assembly e C surgiram então as linguagens chamadas de alto nível, pois, conversam menos com os periféricos e mais com o programador, tornando o processo de desenvolvimento mais intuitivo e dinâmico. Vieram então coisas como orientação a objetos e outras parafernálias que ouvimos falar até hoje.

O importante disso é saber que quando estamos falando de um software final, que usa o mouse e interage com o usuário, muito provavelmente seja um software desenvolvido em linguagem de alto nível caso seja software que faça tarefas de forma mais invisível e necessite de velocidade, muito provavelmente seja feito em linguagem de baixo nível (Assembly e etc).

Mais facilidade para os programadores

Depois destas evoluções, como gente nasceu pra querer, e o mercado para fornecer cada vez mais coisas a algum preço, começaram a surgir os conceitos RAD (Rapid Application Development), como Visual Basic, Visual Objects (extinto), Delphi e muitos outros. Neste mundo novo os programadores deixaram de criar botões via código e passaram a arrastar os objetos pela janela.

Isso gerou velocidade no desenvolvimento de aplicações aos usuários finais. Logo, criar aplicações e ferramentas para os computadores começou a ser algo totalmente segmentado, onde os programadores de baixo nível passaram a criar ferramentas para os desenvolvedores de alto nível criarem softwares para os usuários finais.

Então, hoje, é possível com pouca ou sem nenhuma experiência com linguagem de programação, fazer sistemas inteiros, com funcionalidades muito superiores aos que eu fazia em 1995 e numa velocidade 1000x maior.

Digo isso, porque, eu consegui me desenvolver como programador usando ferramentas de alto nível numa época em que nem Google existia, então, você tem o mundo a seus pés, basta olhar o que está sendo feito.

Definir o que deseja

Agora você precisa definir o que deseja. Se fazer aplicativos para usuário final e eu escolhi isso, porque gostava de ver as pessoas usando minhas criações. Essa era e ainda é meu combustível. Então, essa tarefa cabe somente a você.

Saber o que você acha mais incrível, ver algum rodando um software seu ou saber que em algum lugar tem um relógio no pulso de alguém que funciona graças a algo que você fez.

Presente e Futuro

Hoje, estamos num caminho mais evolutivo ainda, e isso começou no inicio dos anos 2000, quando começamos a separar e aplicar mais linguagens para programar e resolver um mesmo problema. Foi então que surgiram os programadores de linguagens de alto nível, mas, divididos em dois grupos FRONTEND e BACKEND.

Mas, saiba, se a empresa for sua ou se for pequena, você aprenderá os dois.

Design

O importante sobre isso é saber que os softwares passaram para um nível de elegância muito superior, pois começamos a ter então especialistas em cada área. Experimente as duas e você acabará por si só se identificando mais com uma ou outra.

Internet das coisas

Com a internet das coisas (IoT) e Cloud Computing batendo a nossa porta de forma cada vez mais contundente será um processo natural saber várias linguagens para se programar uma aplicação.

Uma sugestão que dou para quem está começando é o uso de alguma linguagem de propósito múltiplo como C++ com uso de uma interface visual (RAD) como Delphi, Visual Studio e etc.

Se você abrir o Delphi e apertar F9, pronto, você já tem seu primeiro executável, que pode ser comercializado e instalado em computadores no mundo todo. Difícil achar mercado para um software que não faça nada, mas, o mundo tem cada coisa.

Se você gosta de aplicativos Android, baixe ferramentas para desenvolvimento nisso e futrique sem medo de errar. Porque você cometerá erros, mas, não se preocupe, eles também nos dão direções inéditas e muitas vezes melhores do que as de antes.

Programar para internet, qual o caminho?

Se você simpatiza com a Internet e suas aplicações, sites, blogs, Youtube, Facebook e outras coisas, não deixe de instalar um XAMPP no seu Windows ou um LAMP no seu Linux e explorar PHP, uma linguagem amplamente usada no mundo (BACKEND) e que fornece uma documentação, tutoriais e exemplos incomparáveis com qualquer outra.

Mas, lembre-se, aprenda HTML, CSS e JavaScript para ter o desenvolvimento para internet a seus pés.

E, seguindo as sugestões anteriores, explore o que já foi feito.

Pegue o WordPress, Drupal e outras aplicações já feitas e explore um pouco dele. Pegue o CodeIgniter e explore algo sobre ele e faça isso até conseguir pelo menos ter uma noção sobre o que elas fazem e como os seus desenvolvedores fizeram para programar certas funcionalidades. Mas, comece com sistemas pequenos. Alguns códigos da internet ou sites que ensinam sobre como programar.

Mas, se você gosta do design, esqueça isso e busque informações sobre HTML, CSS, Bootstrap, Materials, AngularJS e outras frameworks e ferramentas visuais. Olhe também para as ferramentas RAD que são voltadas para design e vai ver que são muitas.

Por fim, saiba procurar

Procurar a informação é uma coisa simples, o difícil é saber o que está certo ou errado. Mas, não se preocupe, logo, você entenderá e confiará mais em algumas pessoas ou conceitos do que outros e ai você estará finalmente preparado para trilhar o próprio caminho.

Não se assuste com fatalismos que vão lhe impor, como essa linguagem está morrendo ou aquilo é ultrapassado, porque isso pouco importa na caminhada, pois, se você for um bom programador a linguagem será apenas um meio. Saber programar é mais ou menos como aprender a dirigir ou andar de bicicleta, se você conseguir em um veículo, fazer o mesmo em outro é só uma questão de vontade, pois o conhecimento fundamental já estará em você.

Espero sinceramente que você se encante como eu me encantei há 22 anos atrás pelos computadores e pela possibilidade de fazer algo que outros pudessem usar e se vai seguir este caminho ou conhece alguém que tem este desejo, compartilhe informações como esta e seja feliz. Sucesso sempre.

Posted by Gabriel Moraes

Criador e mantenedor do blog. Atuo na área de suporte à 4 anos e curso Análise e Desenvolvimento de Sistemas.