Logo Hardware.com.br
intruso
intruso Tô em todas Registrado
1.8K Mensagens 41 Curtidas

Como aprender a programar?

#1 Por intruso 27/04/2007 - 18:39
Como aprender a Programar?

Como muitos usuários estão vindo até esta parte do fórum para perguntar “como faço para aprender a programar?”, eu vou fazer um pequeno “roteiro” com material didático (os links) sobre os principais assuntos para os iniciantes. Também vou colocar aqui algumas dicas e comentários sobre alguns tópicos.

Se eu sou iniciante, o que devo aprender para ser um programador?

Muitas pessoas pensam que programar é só saber a sintaxe da linguagem e não é bem assim, na verdade um programador “de verdade” estuda muitos conceitos que nem sempre estão ligados diretamente a programação, então, tenha em mente que é um caminho que exige o aprendizado de conceitos que no início não parecem ligados a programação.

Outra coisa, não adianta “pular” o aprendizado de um item, se quer aprender alguma coisa então faça direito. ;-)

Um tópico interessante sobre isso é esse.

Que já é um tópico fixo no subforum de programação, nele os usuários mais experientes falam a respeito das pessoas que querem fazer alguma coisa, mas, que não tem conhecimento básico para isso, ou seja, perguntam como fazer algo mas não tem conhecimento para entender a resposta.

Se puder dê uma lida nele, não faz mal a ninguém e se você é novato no fórum vai entender um pouco como funciona o aprendizado e a cultura do nosso grupo.

Agora vamos aos conselhos.

“Do you speak english?”

Se você quer programar bem, mesmo que por “hobby”, aprenda inglês. A maioria do material de qualidade está em inglês e mesmo algumas traduções para o português do Brasil são péssimas, então, antes de estudar qualquer coisa de programação seria interessante estar preparado para ler um texto em inglês.

Não vou recomendar nenhum link, pois acho que cada pessoa que ler esse texto terá de procurar referências nos melhores cursos de sua região.

Ai você pode perguntar: “eu não posso programar até aprender inglês?”, ora, mas é claro que pode!!! Basta ter bom senso e usar ferramentas como tradutores on-line e dicionários, mas, esteja preparado para traduções de termos que ao “pé da letra” não fazem sentido. Quando isso acontecer, veja se o termo que você está tentando traduzir não é um termo técnico já consagrado e portanto tem significado específico dentro da informática, procure nos dicionários de termos técnicos que estão espalhados pela net, um deles:

https://www.hardware.com.br/termos/

Caso a tradução ainda não dê certo, veja se o que você esta tentando traduzir não é uma expressão idiomática e portanto o significado depende do local, procure um amigo que saiba mais de inglês do que você.

Para os casos mais fáceis use e abuse do mestre google.

Outra coisa muito importante para aprender a programar é aprender a pesquisar, isso mesmo. Muitas pessoas não sabem usar o google!! Ora se eu quero aprender um determinado tópico então, antes de perguntar no fórum, vou pesquisar em algum site sobre ele, como eu não sei nenhum site sobre o assunto, então vou usar o google para achar um. ;-)

Algumas dicas para pesquisar melhor:

1) Use palavras significativas na pesquisa e não frases -> procurar por frases do tipo: “eu quero aprender a construir uma página na internet”, pode até achar algo útil, mas, geralmente não acha. Algo melhor seria: “aprender construir página internet” ou ainda “construindo página internet” ou muito melhor e mais específico “construir página html”.

2) Não tente uma pesquisa usando apenas o português, tente também o mesmo tema em inglês.

3) Dicas para usar no google.

Bom, agora que já sabemos “ler” e “pesquisar” vamos as dicas sobre programação.

A primeira impressão para quem quer aprender a programar é que deve aprender uma linguagem de programação, mas, não é bem assim.

O melhor é conhecer primeiro o “sistema” onde vai rodar seu programa.

Conhecer e usar bem o seu sistema operacional é muito importante para saber o que você pode fazer nele e como vai fazer. Isso inclui os recursos dele, as limitações, os “bugs”, os atalhos, etc.

Geralmente os usuários notam apenas as novidades nos recursos que eles mais usam e esquecem os requisitos e vantagens em diversas outras áreas.

Tenha em mente dependendo do que você vai programar, o código e as bibliotecas usadas vão depender do sistema em que você vai trabalhar.

Os principais sistemas usados no desktop são o Gnu/Linux e o Microsoft Windows, dê uma olhada nos requisitos da versão que você usa.

Como o computador usa o sistema binário para a representação de dados, então é bom conhecer esse sistema. Ai vai um link para um texto sobre ele.

Aproveite e use o google para pesquisar mais itens sobre ele.

Outra parte importante é o conhecimento sobre o computador de forma mais geral, ou seja, a arquitetura e o que é arquitetura de computadores, ao menos as noções básicas.

A arquitetura do computador é o modo como é organizado o aspecto físico dos computadores um material útil para que você treine a pesquisa no google é o que está nas notas de aula desse site.

Baixe a parte introdutória e tente fazer pesquisas no google sobre os temas contidos no pdf.

Não precisa aprofundar muito é só pra ter uma noção de como o computador é organizado.

Muita coisa nos programas é feita com testes comparativos, então, para entender como fazer esses testes de forma adequada e quais são as principais estruturas usadas nos testes você estuda “lógica de programação”.

Essa “lógica” usa palavras parecidas com a sua linguagem para tentar expressar os algoritmos (idéias usadas no programa) de forma fácil de entender e independente da linguagem.

Entenda o que são algoritmos.

Um pequeno programa para ajudar a aprender algoritmos.

Outro programa interessante que é usado para ensinar programação é o SuperLogo, esse software é usando inclusive na cadeira de Linguagem de programação imperativa na universidade onde estudo, é bem simples e serve como introdução para quem tem dificuldade de abstrair os primeiros conceitos de programação, tanto o de algoritmos como o de "linguagem".

Uma teoria interessante para quem esta começando é a lógica, não é nada do outro mundo, mas, ajuda a formalizar certos conceitos e também ajuda a organizar o pensamento de forma a ajudar na programação.

Mais algum material.

Não precisa ler todos, veja qual se encaixa melhor ao seu perfil e caso não goste de nenhum use o google.

Já conhecemos o básico sobre computadores, aprendemos a pesquisar na internet, vimos como adaptar a nossa “lógica” a “lógica” da programação e agora temos de escolher uma linguagem para aplicar nossos conhecimentos e o melhor, programar de verdade.

Uma pergunta muito comum no fórum é: “Que linguagem aprender primeiro?”

Bom, aqui temos a presença da individualidade, existem linguagens mais fáceis, outras mais difíceis, depende da pessoa.

Outro detalhe importante é orientar o aprendizado a algum assunto em particular que você goste, por exemplo, eu posso estar querendo aprender a programar para criar páginas na internet ou para criar jogos, então posso escolher uma linguagem que possa ser usada para desenvolver um dos temas depois que eu tiver prática.

Vou colocar aqui as minhas opiniões, veja se você se adapta a alguma delas.

Uma linguagem bastante comum para quem não tem nenhuma noção de programação é o Pascal, é fácil e tem justamente o propósito educacional, mas, geralmente não é usada em aplicações comerciais.

-> Um link sobre Pascal.

-> Onde aprender: link 2.
(indicação do usuário philix)

O software necessário (depende do sistema operacional que você usa).

Se você quer algo mais sofisticado (não é recente) e de uso mais geral só que um pouco mais difícil de aprender pode ser o C padrão Ansi. A linguagem C é “muito antiga” e é de uso genérico você pode criar praticamente qualquer tipo de aplicação usado C e os melhores programas geralmente são feitos em C ou em C++, na verdade é a linguagem preferida do pessoal da “velha guarda”. Mas, alguns iniciantes não se dão muito bem com ela.

O próprio Linux e o Windows são escritos em C.

Um link sobre o C.

Onde aprender: Link 1 e Link 2 (ótimo).

Se quiser saber algo sobre algum livro, eu aprendi C por este livro, mas, ele não é tão didático e por este motivo não é tão indicado para os iniciantes, porém ele trata não somente aspectos da linguagem, mas, do padrão e alguns conceitos que são importantes na programação (é praticamente a referência padrão).

O software necessário.

O Dev-c++ é uma IDE que suporta tanto C como C++ e é muito usado por iniciantes (esta com o desenvolvimento parado).

Mas, o que é uma IDE? Traduzindo seria, ambiente integrado de desenvolvimento, ou seja, para programar você geralmente usa um compilador (que traduz o código-fonte do seu programa para uma linguagem de máquina), um editor de texto (onde você escreve o programa) e um "debbuger" (um programa que serve para ajudar a descobrir erros no software). Um IDE nada mais é do que a junção de tudo isso, ou seja, o DEV tem um editor, o compilador e o "debbuger", além de outras facilidades.

Outro exemplo de IDE, com muitas facilidades é o Visual Studio (MS, suporta várias linguagens atualmente e possui versões pagas e outras "gratis"), ou mesmo o Eclipse (usado para java).

Um dos melhores compiladores é o GCC, um compilador que é padrão em distribuições GNU/Linux, se você é entusiasta do software livre, vai se dar bem com ele.

Tenha em mente que o software necessário para as suas aplicações vai depender do que você deseja implementar, muitas vezes o necessário não é padrão no compilador e você terá de instalar bibliotecas adicionais. Essas bibliotecas fornecem um conjunto de "funções" para uma determinada tarefa, pense bem, nem sempre você terá de desenvolver tudo nos programas.

Existem bibliotecas para programação de jogos, outras para redes, acesso a banco de dados, etc.

Outra coisa que vai influenciar na linguagem escolhida é a área onde você pretende atuar, se você vai desenvolver sites, então é bem provável que não use nem C nem Pascal, então o que aprender?

Antes os sites usavam apenas HTML, uma linguagem de marcação de texto que produzia facilmente paginas para a internet, hoje, o conteúdo das páginas é dinâmico e muda de acordo com o que for selecionado pelo usuário e por isso o HTML não pode atuar sozinho.

Então você vai precisar criar paginas dinâmicas usando geralmente uma linguagem que atua no servidor junto com um banco de dados e que retorna o que for solicitado em formato html.

Para criar esse tipo de aplicação você vai precisar aprender PHP, Perl ou Asp.

Vamos a cada uma delas:

Um link sobre o PHP.

Onde aprender: Link 1, Link 2 e Link 3.

Neste manual você encontra um local específico indicando o software necessário para cada sistema.

Alguns links sobre ASP: Link 1 e Link 2.

Software necessário:
Visual Studio (pago) ou Microsoft Visual Web Developer 2005 Express Edition (free).

Existem diversas opções para que você possa desenvolver aplicações para a web, não vou falar de todas pois não está no escopo deste documento listar todas as linguagens de programação.

Se quiser um lista deste tipo use.

Algumas mais importantes:
Java - Clique aqui.
Perl - Clique aqui.
Phyton - Clique aqui.

Repare que todos os links são da pesquisa do google. ;-)
Outro tópico importante é o “paradigma” usado em determinada linguagem, os mais comuns são Estruturado e Orientado a Objetos, para saber sobre eles.

Estruturadas - Clique aqui.


Orientado a objetos - Clique aqui.

Nem preciso lembrar do google, não é?

Cada linguagem tem suas vantagens, você pode começar com uma e depois “migrar” para outra que se adapte melhor as suas necessidades futuras.

Agora que já treinamos o inglês, a lógica, a pesquisa, aprendemos a sintaxe de uma linguagem e já estamos começando a andar sozinhos, o que falta?

Você percebeu como foi fácil ler esse texto? É simples, claro, direto, voltado para iniciantes e o mais importante: está em português claro e legível.

Quando você está aprendendo tem muitas dúvidas e vai começar a usar o fórum com mais freqüência, então, escreva em português e não com aquele chatíssimo “internetês”.

N@o CoNxIgO LeR eSe T3xT0 HorrÍv3L

Não use jamais essa linguagem alienígena para fazer suas perguntas, além de demonstrar preguiça, infantilidade e falta de conhecimento é muito desagradável.

Usar essa linguagem é o mesmo que pedir para não ter as dúvidas respondidas.

Não implore para ter ajuda, mensagens do tipo: “me ajude pelo amor de Deus!!” ou “Socorro!!” são geralmente descartadas.

Um texto que visa mostrar como fazer perguntas inteligentes na internet.

Use a pesquisa do fórum para não criar perguntas repetidas, muitas vezes a sua dúvida já foi respondida a outras pessoas.

Agradeça a quem te ajudou, ninguém tem obrigação de responder suas dúvidas.

Alguns tópicos sobre “como aprender a programar”: Link 1 e Link 2

Outros tópicos importantes:

-> Softwares mais usados.

-> Antes de postar código.

-> Antes de perguntar como fazer alguma coisa.

-> Quer aprender a programar jogos? leia os tutoriais de XNA.

-> Quer criar seu próprio sistema operacional? veja como montar um ambiente de testes com o Virtual PC. Eu escrevi um pequeno tutorial mostrando como testar um bootloader escrito em assembly em uma máquina que não tem Drive de disquete, escrevi inclusive um programinha bem simples que gera uma imagem para simular um disquete, partindo dos arquivos binários gerados pela compilação.

-> Quer mellhorar a performance das suas aplicações Web? então leia no meu blog. Esse link é direciondo a quem já tem um bom conhecimento sobre como as aplicações Web funcionam, já programa a algum tempo e quer melhorar a performance de front-end das aplicações. se quiser saber mais leia o site do Steve Souders ou esse link para desenvolvedores do Yahoo.

Uma coisa importante, ninguém gosta de fazer seus trabalhos, se você tem uma prova, um trabalho para entregar, um exercício ou algo parecido isso é problema seu e nem pense em pedir a resposta pronta, tente fazer algo e ai o pessoal do fórum vai ajudar a tirar suas dúvidas.

Bom, por hoje é só, se o pessoal do fórum gostar eu vou melhorando de acordo com as sugestões do grupo.

Abraço.
h0m3r
h0m3r Novo Membro Registrado
8 Mensagens 0 Curtidas
#16 Por h0m3r
25/03/2008 - 09:45
Alguns textos interessantes para praticar o inglês.

How To Become A Hacker

Eric Steven Raymond

http://catb.org/~esr/faqs/hacker-howto.html

OBS: No final desse texto tem como referência outros ótimos textos, como o citado a seguir.

How to be a Programmer: A Short, Comprehensive, and Personal Summary

Robert L Read

http://samizdat.mines.edu/howto/HowToBeAProgrammer.html
SPIDER TUX
Does whatever a SPIDER TUX does
Can he swing
From a web
No he can't
He’s a tux
LOOK OOOUUUTTT!!!!
He is a SPIDER TUX!!
Uhuuuuullll!! punk.gif
3dmaio
3dmaio Novo Membro Registrado
3 Mensagens 0 Curtidas
#17 Por 3dmaio
11/04/2008 - 02:33
primeiro procure um bom livro para iniciantes em programação,eu utilizo muito a programação G (labview),mas estou começando a entender melhor a programação em C/C++ para juntar com o labview....portanto uma boa dica...."aprendendo a programar - programando em linguagem C"...é um livro ótimo para iniciantes.....e claro utilize o DEV-C++...esquece os turbo C ou C++ .
Centaurusss
Centaurusss Novo Membro Registrado
15 Mensagens 0 Curtidas
#20 Por Centaurusss
18/03/2009 - 15:26
Perdoem-me por ressucitar o tópico; mas, eu também tenho dicas para iniciantes.

BASIC:
Para quem esta interesado em desenvolver programas para o Windows (e não sabe nada de programação) recomendo o QuickBASIC e o VisualBASIC; possue total compatibilidade com Windows já que o vBASIC é desenvolvido pela MS justamente com este fim.
A sintaxe é muito fácil de aprender e intuitiva. Por possuir menos comandos que o vBASIC, para o leigo é bem mais fácil procurar no 'help' do qBASIC por algum comando que faça o que se deseja. Para o leigo também é mais fácil fazer programas de teste de aprendizagem no qBASIC.
Além da vantágem de ser o qBASIC mais fácil de aprender que o vBASIC, tudo que foi aprendido com o qBASIC serve para o vBASIC; que incluir conceitos mais modernos como orientação a objetos, subrotinas disparadas por eventos, interface gráfica.
Também recomendo para profissionais de outras áreas que precisam apenas quebrar um galho; fazer rapidamente um programinha simples que atenda suas necessidades.

ILA:
Para quem é apenas curioso, quer não mais do que entender como são feitos os programas ou; apenas para fins didáticos, o ILA (Interpretador de Linguagem Algorítmica) é o melhor e mais aplicável; por ser totalmente em portugues (inclusive os nomes dos comandos) o que dispensa a necessidade de saber inglês.
Para professores que irão ensinar a alunos que não possuem o compromisso de serem programadores profissionais, mas apenas ampliarem o conhecimento de informática.
O ILA pode ser baixado na página do desenvolvedor:
www.inf.unisinos.br/~crespo ou www.exatec.unisinos.br/...crespo

Python:
Para iniciantes que querem aprender uma linguaguem que possa ser usada tanto no Windows quanto no Linux, o Python é uma boa.
Trata-se de uma linguagem moderna, com facilidades que tornam o código fonte fácil de ser entendido; por ser dependente de edentação e ter comandos que auxiliam na documentação de funções.
É uma linguagem que facilita o aprendizado, mas não deixa a desejar quando se quer uma linguagem poderosa; permitindo que mesmo após o programador se tornar experiente e ter maiores exigências, estas sejam atendidas pela linguagem Python, não sendo necessário aprender outras linguagens.

C:
Para uma pessoa leiga o C não é o inicio mais fácil e; presumo que a não ser que possua uma motivação muito grande irá logo desistir de aprender.
Porém é a linguagem mais padronizada, mais usada por profissionais e com maior número de códigos fonte que podem servir como exemplo. Também é a linguagem que mais evolue em inclusões de novas bibliotecas, sendo a que costumeiramente recebe inovações antes do que as outras; para entender melhor: coisas que não são possíves de se fazer em outras linguágens já são possíveis de se fazer em C ou C++.
Para fins de informação; a linguagem D foi criada em 1999 e lançada em 2007, promete ser a evolução do C++:
www.digitalmars.com/d

Além de aprender a formalizar um algorítmo e conhecer uma linguagem, é recomendavel olhar exemplos de outros programadores.
Mesmo os programadores antigos como eu ganhamos muito olhando os fontes dos outros. (Talvez eu até devesse dizer "principalmente os programadores antigos..." considerando que na época que eu aprendi programação não existia nem o conceito de edentação, quem conheceu o CP500 da Pro-lógica sabe do que estou falando)
E um ótimo lugar para baixar códigos fonte de outros e também postar os seus é :
www.planetsourcecode.com
intruso
intruso Tô em todas Registrado
1.8K Mensagens 41 Curtidas
#21 Por intruso
19/03/2009 - 16:32
Centaurusss disse:
Perdoem-me por ressucitar o tópico; mas, eu também tenho dicas para iniciantes.

BASIC:
Para quem esta interesado em desenvolver programas para o Windows (e não sabe nada de programação) recomendo o QuickBASIC e o VisualBASIC; possue total compatibilidade com Windows já que o vBASIC é desenvolvido pela MS justamente com este fim.
A sintaxe é muito fácil de aprender e intuitiva. Por possuir menos comandos que o vBASIC, para o leigo é bem mais fácil procurar no 'help' do qBASIC por algum comando que faça o que se deseja. Para o leigo também é mais fácil fazer programas de teste de aprendizagem no qBASIC.
Além da vantágem de ser o qBASIC mais fácil de aprender que o vBASIC, tudo que foi aprendido com o qBASIC serve para o vBASIC; que incluir conceitos mais modernos como orientação a objetos, subrotinas disparadas por eventos, interface gráfica.
Também recomendo para profissionais de outras áreas que precisam apenas quebrar um galho; fazer rapidamente um programinha simples que atenda suas necessidades.


Eu gostaria apenas de fazer um adendo, EU não aprenderia BASIC, nem VISUAL BASIC, mesmo ainda existindo muitos programas escritos nessas linguagens, ambas não são tão atuais, a versão mais recente é VB.NET, que roda sobre a plataforma de desenvolvimento mais atual da ms (.net). Como a sintaxe é parecida, recomendo VB.NET ou C#, ambas muito fáceis de aprender.
TerraSkilll
TerraSkilll Zumbi Moderador
4K Mensagens 1.2K Curtidas
#28 Por TerraSkilll
27/07/2009 - 09:42
Danielahortencio
Bom eu ja to aprendendo a programar eu quero o site que facilite isso.
Por exemplo quero alguem que me ajude em Estrutura de repetição e vetores.
Se souberem .
Desde ja grata.

Em que linguagem você está aprendendo? C, Pascal, Java? Isso faz diferença na hora de te indicar algum site.

Como não sei qual linguagem, indico estes:
http://www.devmedia.com.br/
http://www.apostilando.com/pagina.php?cod=1
http://www.guj.com.br/
http://www.javafree.org/

Sobre laços e vetores:
http://pt.wikipedia.org/wiki/Estrutura_de_repetição
http://www.guanabara.info/2008/08/c-parte-iii-estruturas-de-repetio-e-vetores/

E este, considerando que você temporariamente se "esqueceu" de que ele existe:
http://www.google.com.br/

carq
bem estou em duvida em começar a programar em c# ou Python
que vcs acham ?
qual a mais facil e mais usada no mercado ?
consigo um bom emprego se um dia eu quiser ?

É a primeira linguagem que você aprende? Se sim, as duas estão em pé de igualdade em termos de complexidade (acho eu, não sou especialista em Python pra afirmar com certeza), ou seja, não há entre elas uma mais fácil e outra mais difícil. Pelo que sei, Python é uma linguagem em ascensão (está crescendo no mercado), enquanto C# é uma linguagem mais consolidada. Uso delas no mercado eu não sei, mas quanto a conseguir um bom emprego depende mais de você do que da linguagem que você escolher. Se você for um bom programador, vai provavelmente ter um bom emprego. Uma coisa puxa a outra. Mas, pra você ter uma base:http://info.abril.com.br/professional/salarios/

Recomendo, se for possível, não se ater a uma única linguagem.

Abraço.
Contribua para um fórum melhor: pense antes de postar.
"It isn't a contest. Just enjoy the ride." -> Seth Vidal
Hardware.com.br no Youtube!
JOMARUMU
JOMARUMU General de Pijama Registrado
2.7K Mensagens 342 Curtidas
#29 Por JOMARUMU
27/07/2009 - 10:19
Ótimo tópico parabéns.
bem estou em duvida em começar a programar em c# ou Python

Entre essas 2 Python, C# é da M$ para Win, não é muito boa, Python pode ir para qualquer sistema, se tiver mais opções vá para C ou C++, é mais fácil, agora para começar o melhor é VB

Eu começei com o Flash, depois a professora que ensinou flash disse que eu só copiava códigos, ai resolvi mostrar quem copiava, começei a estudar C++, e mostrei quem realmente só sabe copiar com alguns sofwares que eu fiz.
Mas no começo que eu começei a aprender um pouco de programação for por uma coisa bem simples e que estava virando moda na minha escola: "fazer" virus, na verdade nem era fazer, era copiar um da internet, eu já fui pelo lado mais dificil, nunca consegui fazer um a não ser esses que só supostamente apagam o HD, mas acabei aprendendo um pouco de programação.
intruso
intruso Tô em todas Registrado
1.8K Mensagens 41 Curtidas
#30 Por intruso
28/07/2009 - 12:23
JOMARUMU disse:
Ótimo tópico parabéns.

Entre essas 2 Python, C# é da M$ para Win, não é muito boa, Python pode ir para qualquer sistema, se tiver mais opções vá para C ou C++, é mais fácil, agora para começar o melhor é VB


Valeu pelos parabéns ;-)

C# não é para Windows, é para qualquer ambiente que tenha um framework de .net instalado, exemplo, vide mono (coloque no google).

Se quiser ter conhecimento do que acontece, rapidez e não tiver medo de um pouco de complexidade, vá para C ou C++.

Eu não recomendo VB, se tiver necessidade de algo parecido, use VB.Net e sim, VB e VB.Net são coisas diferentes, só a sintaxe que é parecida.

Abraço.
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal