Olá, seja bem vindo ao FullCheats.

Aqui você encontrará diversos Tutoriais e hack's
e muito mais

Para ter acesso a todo o conteúdo do Forum, registre-se.
É Fácil, rapido e não demora nem 2 minutos.






    [FAQ] Tornando-se um Programador

    Compartilhe
    avatar
    Stylish
    Administrador
    Administrador

    Masculino
    Mensagens : 613
    Inscrição : 24/11/2010
    Idade : 430
    Data de nascimento : 12/03/1587
    Emprego/lazer : sagsgtfasga

    [FAQ] Tornando-se um Programador

    Mensagem por Stylish em Ter 22 Mar - 12:18:08

    [FAQ] Tornando-se um Programador

    Atenção: Se você se sentir ofendido por este tópico:
    0) Isto se aplica apenas àqueles que nunca programaram de verdade;
    1) Entenda que isto é a realidade;
    2) Aprenda a não levar as coisas pro lado pessoal;
    3) Derrube suas barreiras emocionais;

    O primeiro passo ao querer se tornar um Programador é perguntar a si mesmo se é isto que você quer. De verdade, se pergunte. Porque se você realmente quisesse, não estaria se perguntando isto, mas estaria investigando, seja por curiosidade ou admiração. Mas já que esta aqui, se pergunte:
    "Eu estou mesmo preparado para aprender?"
    Não, isto não quer dizer "Nah, eu vou no Google e aprendo tudo!!", isto significa:
    Estudar, estudar, estudar, estudar... e estudar!!

    "A só um pouco né? Tipo assim, uma hora ou duas quando eu tiver livre...".
    Se você acha isto, então esqueça, você nunca irá aprender. É melhor gastar seu tempo em atividades mais construtivas, como assistir TV ou jogar Tibia.

    A Realidade é: Ser um programador de verdade (Ser capaz the escrever seus próprios programas, e não só poder mudar algumas linhas em algum código base) necessita de tempo, muito tempo.

    Outra realidade: Você provavelmente não é 1/4 tão experto quanto eu. Isto não é um insulto, isto é um fato. Eu gastei horas e horas incontáveis, semana após semana, mês após mês para aprender programação e entender como computadores funcionam (Eu digo, como eles Realmente funcionam). Como em todos os estudos sérios, eu fiz isto sózinho. Quando algum problema aparece ou alguma pergunta nova se estabelece, não é difícil de eu acabar 10 horas tentando achar a solução. Não há professor para segurar a sua mão. Apesar de que você não precisa de um Mestrado em Ciência da Computação, você precisa se preparar para gastar a mesma quantidade de tempo se quiser se tornar um Programador de verdade.

    Se você ainda se sente realmente motivado, continue.
    Caso contrário, se você acha que eu sou apenas um convencido, que é muito mais esperto que isto, e que pode aprender tudo na sua hora vaga, então, em todos os sentidos, boa sorte.

    P: Oie!?
    R: Ah.. Oi?

    P: Que programa você usa para fazer estas coisas? Eu também quero!!
    R: E eu quero voar.. Caraca! Eu não tenho asas!... Ah, droga!

    P: Eu estou perplexo com esta incrível 'magia', e quero fazer tudo o possível para aprender os segredos dela. Mas eu ainda não consigo entender direito por onde começar, todos me vêm com uma resposta diferente!
    R: Este é o espírito! Se você tiver tempo e cuidado de expressar seus pensamentos em frases claras, as pessoas iram lhe levar a sério.

    P: Como eu posso saber se estou pronto para isto?
    R: Uma pergunta honesta. De fato, isto é sua decisão, mas, uma boa dica seria o quão bom você é na escola, especialmente em Física ou Matemática. Se você realmente olhar para si próprio e notar que a escola é um lugar difícil para você, então programação pode não ser bem uma boa idéia. Se você acha entediante (não porque você não gosta da matéria, mas porque elá é muito fácil para você), então você tem um caminho promissor pela frente. Em suma: Você realmente precisa ser inteligente, criativo e bastante curioso.

    P: Mas eu sou tudo isto, eu apenas não sei nada sobre programação.
    R: Surpresa! Eu também não sabia quando comecei Razz. Afinal de contas, todos precisamos começar em algum lugar, não é mesmo?

    P: Eu realmente sou tudo isto! Agora me diga, o que diabos é Programação?
    R: Programação é o processo pelo qual você gera uma combinação lógica de instruções para o computador executar independentemente. Geralmente, isto envolve pensamento abstrato e solução de problemas como "Como levar A até B de uma maneira consistente?". A coleção de instrções específicas embutidas na UC (Unidade Computacional) e a sintaxe usada para relacionar estas instruções é chamada Linguagem.

    P: Então, que linguagens eu posso aprender?
    R: Muitas para apenas uma vida. Existem varias linguagens planejadas e revisadas, cada uma com seu público alvo ou para suas próprias áreas. Existem três categorias reconhecidas:
    Linguagens de Baixo Nível (Low-Level Languages), Linguagens de Alto Nível (High-Level Languages) e Linguagens Interpretadas. O nível de uma linguagem é relativo ao seu nível de abstração (O quão distante a linguagem está das instruções atômicas do computador, chamadas de "Linguagem de Máquina"). Uma linguagem de baixo nível pode sempre ser convertida para linguagem de máquina atravéz de uma ferramenta chamada de Compilador. Devido ao fato de que muita informação é perdida neste processo, decompilar um programa é geralmente impossível, exceto por pequenos bits, e só pode ser feito atravéz de muito 'hacking'.

    Linguagens de Alto Nível são mais abstratas e tendem por se distanciar mais da linguagem de máquina. Por isto, estas são mais difíceis de serem dominadas eficientemente e requerem um pensamento mais abstrato.

    Linguagens Interpretadas não podem ser diretamente convertidas em Linguagem de Máquina, porém utiliza um interpretador ao vivo para executar as funções uma por uma. Porém, algumas destas liguagems são consideradas Linguagens de Programação perfeitamente válidas em seus próprios direitos, como Perl, Phyton e Lisp. Sua natureza 'interpretada' as fazem imcompatives com o 'hacking', por não poderem acessar diretamente recursos de hardware.

    P: Legal! Então, que linguagem eu devo aprender primeiro?
    R: Muitos (Na maioria, não programadores) diriam C++. Eu discordo completamente. Talvez hajam casos onde começar com C++ possa ser um benefício, mas provavelmente não se você pretende criar 'hacks'.

    A primeira linguagem que você deve dominar é C. Esta antiga linguagem está sentada em cima do CPU, e suas instruções quase sempre tem uma corresondência direta com os blocos de macro da linguagem de máquina. Em quanto você estiver estudando C, você vai acabar precisando aprender a como 'debugar', que vai lhe fazer estudar códigos compilados em C e sua correspondência com o código de máquina.

    Enquanto é verdade que C++ é um 'superset' de C, usar isto como um argumento para começar logo com C++ é um sério erro de julgamento. É como pensar que só porque um balão também voa, você deve aprender a maneja-lo para poder virar um piloto de Airbus.

    O fato é que, C++ é uma linguagem OOP confusa. Você não só precisa saber bastante de C, mas também precisa de uma porrada de pensamento abstrato e de paradigmas. Então começar com C++ não é o caminho mais rápido a se seguir.

    P: Há linguagens que eu devo evitar de qualquer maneira?
    R: Muitas, porém as mais abundantes são (Visual) Basic e derivados. Além do pequeno benefício que elas trazem na maneira de lhe ensinar uma sintaxe de programação rudimentar, elas lhe ensinam todas as coisas erradas que vão levar mais tempo para desaprender que para aprender alguma linguagem séria que dê para fazer 'hacks' com. Acredite ou não, eu comecei com Delphi e Basic, então eu sei do que eu estou falando.

    Fique longe da praga .NET. Não deixe o C# lhe tentar porque ele tem um 'C' no nome. Apesar de todas as aparências superficiais, C# não passa de um Basic disfarçado.

    P: Ta, eu entendo que C é ótimo. Qual a melhor forma de aprender C?
    R: "C: Completo e Total" de Herbert Schildt. Vai do macaco até o homo sapiens do C. Eu recomendo fervorosamente a passar longe dos cursinhos de 24 Horas ou de qualquer coisa que prometa lhe ensinar C num curto periodo de tempo, que não utilizam o tempo necessário para que você realmente aprenda. Também tenha cuidado com os vários "exemplos" que tem por ai. A maioria esta aí por fins lucrativos. A menos que prefira morrer de tédio, evite estes.

    P: Qual a diferença entre fazer programas e fazer 'hacks'?
    R: Escrever 'hacks' é bastante diferente de escrever programas. Se você escreve um programa, você terá total controle sobre ele. Quando você escreve um 'hack', você deve ter conhecimento abrangente sobre como o programa a ser manipulado funciona, quais são os pontos de entrada, e o que fazer sobre isto. Existem certos procedimentos que você pode seguir, porém, na real, você deve se concentrar na sua própria ingenuidade para descobrir como o jogo funciona. Este tipo de analise longa e paciente do código hostíl é parte integral para se escrever 'hacks' completamente isentos de programadores regulares.

    P: O quão bom eu posso esperar ser?
    R: Presumindo que você tenha a capacidade e a aptidão necessária, isto é diretamente proporcional ao tempo que você investe estudando. Após um mês estudando uma hora por dia, você deve estar apto para escrever seus primeiros 'programinhas'. O tempo gasto estudando não é bem a própria linguagem, e sim o que há por traz dela. Começar ter a real sensação de programar é o que leva tempo. Quando eu tenho uma ideia, minha mente automaticamente me manda a lógica de computação para fazer ela acontecer sem muito esforço. É curioso, pois até a pouco tempo atraz eu tinha dores de cabeça para resolver até pequenas coisas. O cérebro é uma coisa bastante flexível, se você treinar constantemente, você poderá fazer coisas alucinantes!

    Creditos: fogote

      Data/hora atual: Qui 23 Nov - 2:54:31