segunda-feira, 16 de junho de 2014

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?

6 comentários:

  1. Cara, concordo totalmente com você que todos deveriam estudar um pouco dessa área (que seja no ensino médio). Não digo a programação em si, OO essas coisas, mas estudar a lógica, auxilia para muitas outras coisas fora da área da programação, como na resolução de problemas administrativos.
    Na empresa que trabalho ocorre direto, gerentes dos setores lá as vezes ficam batendo a cabeça tentando encontrar solução para algo, ou como chegar em determinado ponto, e quando falam com alguém da info (ou que conhece ao menos um pouco da área) resolvemos rapidinho.

    O interessante para quem trabalha na área de pentest de conhecer, principalmente o python como você comentou, é que as ferramentas como estão nem sempre vão lhe levar ao sucesso no procedimento, com certeza será necessário um dia modificar algo, criar algo para um processo novo que encontra no caminho, ou vai bugar a ferramenta por alguma besteira feita e terá de arrumar.

    Grande mas excelente texto Deivid
    Abraço

    ResponderExcluir
  2. Legal perceber o ponto de vista de alguém que não trabalhe com programação como fim.
    Normalmente são programadores que escrevem sobre a importância da programação.
    Os pontos que você mencionou são exatamente os mesmos que eu citaria para convencer alguém a testar Python.

    ResponderExcluir
    Respostas
    1. Valeu cara!

      Esses pontos foram os que me convenceram a testar o Python e finalmente perceber como é importante saber programar.

      Excluir
  3. O nível de simplicidade e abstração de Python é tão alto que várias universidades estão ensinando algoritmos com Python e não com aquelas pseudo-linguagens (só servem para o aprendizado), direto em C (que é um pouco complicado... tem programador "experiente" que não entende C) ou em Delphi (onde cara só aprende a arrastar componente, nem sabe de onde vem as coisas).

    ResponderExcluir
  4. python é uma boa linguagem para começar tem muita vantagem alem da sintaxe facil e direta, outra linguagem boa para começar que eu recomendo é perl que tambem é interpretada e muito facil tanto quanto python alem ter a sintaxe muito parecida com c/c++, java e php

    ResponderExcluir

Subscribe to RSS Feed Follow me on Twitter!