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.
Responder
jofrelscalvet
jofrelscalve... Veterano Registrado
1.3K Mensagens 51 Curtidas
#2 Por jofrelscalve...
27/04/2007 - 20:49
Adprei o post, intruso.Parabens.
Falarei um pouco sobre a parte de programação para internet.

O Básico é o HTML. Como ele não foi projetado pensando na internet ele é incompleto. Além disso ele tem uma falha grave, mistura conteúdo, estrutura e formatação.
A estrutura+conteudo pode ser representada em XML
A formatação pode ser representada via CSS.
Para complementar o html inventaram o javascipt

Na minha opinião para aprender a desenvolver páginas web o melhor caminho é aprender HTML ou XHTML. Para começar recomendo que se procure tutoriais de html na internet, quanto mais simples melhor. Quando as coisas pararem de parecer estranhas o melhor lugar pra aprender é no www.w3c.org , que tem a documentação oficial dessas linguagens, que é muito boa e tem alguns poucos exemplos (só das coisas + complicadas e que podem gerar dúvidas), outro site que é interessante é http://www.w3schools.com/ , ele não é tão completo e tem muita coisa que é cópia deslavada do w3c, mas tem alguns exemplos a mais e alguns te levam a uma "area de testes" onde você digita o código num campo á esquerda e vê o resultado num campo á direita, entre outros recurso interessantes.

O passo seguinte é aprender CSS. É possivel formatar páginas sem usar o CSS, mas a parte realmente interessante do CSS é que com ele você pode por toda a formatação do site em 1 unico arquivo, assim para mudar a cor de todos os titulos do site basta mudar 1 linha (lindo, não?). As referências aqui são as mesmas citadas pro (X)HTML

Pra terminar o básico é necessário aprender javascript. O javascript é produto direto da guerra entre o internet explorer e o netscape, talvez por isso é o que mais sofreu com essa guerra. Não conheço nenhuma referência realmente boa pra aprender javascript, embora eu conheça dezenas de referências uteis. O jeito que conheço pra aprender javascript é olhar os códigos prontos e brincar com eles, ter dúvidas e tentar saná-las na internet.


Supondo que você sobreviveu ao javascript a pior parte já passou. Alguns diriam pra você aprender uma linguagem de servidor, eu acho que ainda não é o momento. Eu acho que a hora é para aprender a mecher com SQL.
Uma referencia é a http://www.w3schools.com/ , novamente, outra por incrivel que pareça é o Access, pois quando você cria consultas alem do modo de exibição e do de design há tambem o modo sql, no qual ele mostra o código SQL que ele usa internamente, esse código tem pequenas diferenças pro padrão, mas dizem as lendas que nunca houve um programa que seguisse o padrão á risca, então prum primeiro contato está bom.

Depois de aprender um pouco de SQL (este aprendizado é o mais curto de todos) eu diria que há 2 caminhos: aprender sobre as formas normais para bancos de dados, ou aprender 1 linguagem de servidor.

A parte da linguagem de servidor é delicada pois diferentemente dos conhecimentos anteriores pode ou não ser-lhe útil diretamente, pois há servidores que tem apenas ASP, outros que tem apenas PHP, etc....

Se você quer não apenas fazer sites mas criar sistemas web, você precisará de uma base sólida de programação, ela pode ser adquirida depois de todo o resto, no entanto esse é o caminho longo e dificil, o ideal pra quem quer trabalhar com sistemas web seria começar aprendendo como programar pra desktop (lógica de programação, principios e desenvolvimento de algoritmos, etc...)

E o AJAX?
Ajax é uma daquelas coisas que a gente tanto ouve falar que acaba tendo uma idéia sem saber o que é.
AJAX (acrônimo em língua inglesa de Asynchronous Javascript And XML) é o uso sistemático de tecnologias no lado do cliente, para tornar páginas mais interativas com o usuário.
Sendo apenas tecnologias do lado do cliente pode ser aprendida em qualquer ponto do aprendizado depois do javascript. Com o que se sabe nesse ponto já é possivel fazer algumas coisas de ajax.
Alem das tecnologias já citadas ((X)HTML, CSS e Javascript (aqui eu considero que está um tal de DOM, que em algum ponto do aprendizado de javascript vocês vão ouvir, e que originalmente era parte do javascript (mas era diferente pra IE e pra NN) e que portanto já vai estar meio assimilado quando vocês "descobrirem que ele existe")), deve-se aprender XML, XSL e XPath. todas elas podem ser aprendidas no mesmo http://www.w3schools.com/


Espero que este post ajude. Caso eu tenha dito alguma besteira ou não tenha sido claro, podem reclamar, pois minhas intenções foram boas, e só poderei melhorar se souber onde errei.
Melhore o futuro do fórum: Diga se a dica funcionou ou conte-nos como conseguiu resolver a sua dúvida!
Se eu errar ou for pouco claro, reclame! Quando possivel eu tentarei melhorar.
intruso
intruso Tô em todas Registrado
1.8K Mensagens 41 Curtidas
#3 Por intruso
28/04/2007 - 13:44
jofrelscalvet disse:
Adprei o post, intruso.Parabens.
Falarei um pouco sobre a parte de programação para internet.

O Básico é o HTML. Como ele não foi projetado pensando na internet ele é incompleto.


Obrigado, eu fico grato em ajudar uma comunidade que sempre me ajuda.

Ficou ótimo o seu texto, se alguém tiver mais alguma sugestão seria interessante e pode ser sobre qualquer área de desenvolvimento (associada a programação claro) assim, cada um que vier aqui pode procurar o que precisar e ter uma idéia a respeito e depois pode escolher como começar.

abraço.
Erlyson
Erlyson Novo Membro Registrado
36 Mensagens 0 Curtidas
#7 Por Erlyson
31/05/2007 - 13:44
Também acho que esse tópico deve ser fixado. Agora quanto a procurar no google antes de vir aqui, não concordo muito não porque como alguém disse aqui "A sua dúvida pode ser a dúvida de outra pessoa, deixe-a aqui" (mais ou menos assim). Isso é uma comunidade de programadores que estão aqui para se ajudar, então pq mandar o outro procurar no google?
intruso
intruso Tô em todas Registrado
1.8K Mensagens 41 Curtidas
#8 Por intruso
31/05/2007 - 13:55
Erlyson disse:
Também acho que esse tópico deve ser fixado. Agora quanto a procurar no google antes de vir aqui, não concordo muito não porque como alguém disse aqui "A sua dúvida pode ser a dúvida de outra pessoa, deixe-a aqui" (mais ou menos assim). Isso é uma comunidade de programadores que estão aqui para se ajudar, então pq mandar o outro procurar no google?


Realmente, isso é uma comunidade, mas, cada um tem que aprender a pesquisar, tem um monte de perguntas repetidas aqui no forum que podiam ser facilmente respondidas com uma pesquisa no google. trabalho_duro.gif

Além do que, é muito mais prezeroso responder uma pergunta de quem se esforça pra resolver seus problemas do que de um cara preguiçoso que vem aqui pra que nós façamos seus trabalhos.bravo.png

Sem falar que se o cara não pesquisar antes, ele pode nem entender a resposta.bravissimo.gif

Outro fator é que as pessoas mais experientes gostam de dúvidas interessantes e se todo mundo vier aqui fazer as mesmas perguntas, perde um pouco da graça.

abraço.
HigorC
HigorC Veterano Registrado
1.3K Mensagens 34 Curtidas
#12 Por HigorC
31/05/2007 - 17:41
Faltou a dica principal:

Nunca peça por programas prontos ou que façam seu trabalho por você.
Seguindo a mesma linha, sempre poste um tópico com uma parte do seu código ^___^.

No mais, ficou muito bom sim. Bem completinho e muito bem feito. Agora, quando você tiver um tempinho, poderia organiza-lo melhor.

Uma dica, seria incluir uma parte de programação de jogos neh wink.png

Parabens!
Pensamento de um usuário: Estou com problemas. O que fazer?
[ ]Procurar no google?
[ ]Procurar no forum?
[X]Postar no forum sem procurar no google e pesquisar no forum.
Java write once, debug anywhere.(Eu gosto de java tah.)
intruso
intruso Tô em todas Registrado
1.8K Mensagens 41 Curtidas
#13 Por intruso
31/05/2007 - 18:12
HigorC disse:
Faltou a dica principal:

Nunca peça por programas prontos ou que façam seu trabalho por você.
Seguindo a mesma linha, sempre poste um tópico com uma parte do seu código ^___^.

No mais, ficou muito bom sim. Bem completinho e muito bem feito. Agora, quando você tiver um tempinho, poderia organiza-lo melhor.

Uma dica, seria incluir uma parte de programação de jogos neh wink.png

Parabens!


Atualizado, aproveitando que eu estava devendo a perte de jogos, um link para para o meu blog onde eu falo sobre programação de jogos usando o XNA Game Studio Express.

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