E ai pessoal! Meio deserto por aqui hehehe. Andei meio ocupado mas agora liberou um pouco e venho com um post sobre o assunto que manteve ocupado, programação.
Todos as pessoas que um dia estudaram, estudam ou irão estudar alguma coisa relacionada a computação vão cair na programação, e sem dúvida boa parte vai odiar. Mas porque todo mundo odeia programação? A maioria das pessoas que eu convivo respondem algo como: "Eu vou trabalhar com segurança e não ser programador". Esta resposta se estende para outras áreas como por exemplo gerencia de TI, manutenção e por incrível que pareça, desenvolvimento de jogos. Na verdade toda área que não tem como objetivo primário o desenvolvimento de sistemas acaba caindo nessa resposta, eu mesmo odiei programação por um bom tempo, e hoje ainda não gosto, mas aprendi a respeitar e valorizar sua importância. Num futuro próximo eu provavelmente goste de programação.
Hoje em dia eu sou a favor de que desde pequenos as pessoas tenham contato com programação e algoritmos, poderia ser uma matéria regular da escola como português e matemática, mesmo que no fim das contas a pessoa não venha a utilizar isso para nada, se tudo que aprendemos na escola fosse útil hoje seriamos todos físicos, filósofos, sociólogos, químicos e etc. As pessoas não precisam ser programadores experientes e desenvolverem sistemas complexos ou a próxima rede social de sucesso, mas é bom saber como um computador funciona, como pode funcionar, e quem sabe até resolver problemas um pouco mais complexos.
Um ponto positivo de saber o mínimo de programação (e ser forçado a estudar isso) é o aumento na capacidade de raciocínio lógico, isso quer dizer, programar incentiva a pensar, coisa rara hoje em dia. Quem trabalhou com suporte e/ou assistência técnica sabe como pensar poderia fazer a diferença, quem sabe até acabar com os terríveis chamados idiotas...
Agora, aos que tem boa vontade, que estão começando a estudar ou querem aprender programação, por onde começar? Simples, primeiro de tudo pegue algumas aulas de lógica de programação, matemática para programação (talvez não tão necessário) e algoritmos. Após isso recomendo que procure, pratique e teste diversas linguagens de programação. Eu por exemplo sempre odiei programação, e em todos os contatos foram sempre as mesmas linguagens, Delphi, C e derivados, e Java. Onde ia dava de cara normalmente com esses três. Depois de muito tentar e por algum motivo não aprender de modo nenhum a programar nessas linguagens resolvi procurar outras. Neste momento conheci PHP, Perl, Objective-C, Shell Script (é considerado uma linguagem de programação?), Python e outras. Tudo deu muito errado até Python, onde estou conseguindo aprender algo.
Obviamente aqui você já percebeu que eu vou fazer propaganda do Python, mas veja aqui o porque de Python ser uma boa linguagem de programação
para começar.
A grande pergunta, porque estudar Python? Porque é simples e incrível! Pronto, já pode parar de ler e sair programando. :)
Agora, caso queira saber um pouco mais sobre leia até o final.
Além de ser incrível, Python é simples, isso quer dizer que você tem menos coisas para se preocupar e pode focar em "pensar como um programador". Por ser simples você não precisa perder tempo de estudo lendo e decorando a função de cada caracter, de cada estrutura. Python é bem legível, praticamente como ler um texto (em inglês, obvio).
Depois que você entender como programação funciona pode migrar para outra linguagem que atenda melhor seu uso, mas Python é um bom modo de começar,
tanto é verdade que a NASA usa.
Pela estrutura ser mais simplificada, a curva de aprendizado é muito maior do que as outras linguagens, com um dia focado de estudo pode-se desenvolver um joguinho simples (ta, talvez um pouco mais de um dia). Mas para ilustrar o que eu estou tentando dizer vamos a um exemplo prático. Vamos fazer um simples programa que mostra na tela a frase "Hello World", a propósito, se você programa em qualquer linguagem e este não foi o seu primeiro programa você já começou errado :).
Em uma linguagem com uma estrutura um pouco mais robusta como C++ teríamos que fazer algo assim:
#include stdout
int main()
{
std::cout << "Hello, world!\n";
}
Já em Python podemos fazer assim:
print "Hello World"
Simples, não?
Outra coisa interessante do Python é que você não necessita aprender a usar uma IDE, você pode escrever seu código em um arquivo de texto e executar ou simplesmente digitar diretamente no terminal interativo do Python.
Agora mais focado no pessoal que estuda segurança, você já usou o Backtrack ou alguma outra distro para pentest, forense e etc? Já parou para olhar a quantidade de ferramentas com o sufixo ".py"? Então, são todos desenvolvidos em Python. Ai você me pergunta, se já ta tudo lá, pra que eu preciso aprender Python? Simples, você pode contribuir com os projetos, alterar algo para seu uso, ou até criar suas próprias ferramentas. Como alguém uma vez me disse, "você nunca vai ser um profissional completo se não desenvolver suas próprias ferramentas para resolver seus próprios problemas."
Termino esse post com a seguinte situação, você precisa atacar/auditar uma certa máquina mas não tem nenhum exploit para ela, vai sentar e esperar sair um ou vai desenvolver seu próprio?