Discussão - qual a melhor forma de aprender a programar

Status
Fechado a novas mensagens.

Gurzi

Power Member
boas malta

Considero-me um programador de nivél básico /médio , sei as coisas básicas, como ciclos, variaveis, arrays, blabla etc.

A minha questão é , qual a melhor forma de ganhar experiência e aprender a progamar numa forma mais avançada ?

Seguir livros capítulos a capitulos ? Inventar maravilhas para fazer ??

digam da vossa justiça e experiência!
 
Depois de teres noções básicas sobre os conceitos teóricos acho que o melhor é mesmo inventares pequenas coisas onde se apliquem esses conceitos.

Se não te lembrares de nada, então aí arranja um livro qualquer que tenha "exercícios" práticos no fim de cada capítulo.
 
Aprender todas as linguagens quanto puderes e inventar, inventar muitas aplicações, basei-te em algumas aplicações open-source.

Se puderes compra um livro de uma linguagem em que tenhas experiencia.
 
Última edição:
Aprender todas as linguagens quantas puderes

E depois fica todo baralhado :D

Para aprender, que se dedique a sério a uma linguagem de programação, quantidade não é qualidade.

Sabendo dominar os conceitos, não é a sintaxe e a semântica que vão ser obstáculo.

Dicas para aprender a programar? Praticar.

Livros? Pede MUITAS sugestões, há livros que só servem para uma coisa, derrubar árvores e acumular pó. Um livro é um investimento, não compres à toa.

A forma de praticar já varia consoante a orientação da linguagem, se é mais para a web, é fazeres aplicações web, podes começar por simples homepages (mas eu sei que isso já dominas bem), se forem orientadas para aplicações em desktop, inventa coisas que te sejam ÚTEIS, pelo menos o tempo não é perdido apenas para aprender.

Fazer pequenos jogos (galo e afins) também é uma forma de aprenderes, vais-te divertindo conforme crias a aplicação, e sempre dá para ires sempre melhorando a mesma, novos níveis de dificuldade, IA, etc.

Ou seja, tudo se resume a praticar.

HecKel
 
C, C#, C++ são excelentes recomendações para começar (C# não conheço bem)..., agora se ele se mete com 3 linguagens, acaba por não aprender nenhuma.

Se quer aprender, que comece por uma linguagem decente, nada de VBs, Pascais e afins.

HecKel
 
Eu sei que são :p, e era por aí que gostava de ter começado a programar, mas lá tive que "gramar" com Pascal, sei que é bom para aprender o básico da programação (por exemplo os if's, to do's, and so on).

Também aconselho JAVA, quem passa por C, C# e C++ também é boa aposta passar por esta.
 
C, C#, C++ são excelentes recomendações para começar (C# não conheço bem)..., agora se ele se mete com 3 linguagens, acaba por não aprender nenhuma.

Se quer aprender, que comece por uma linguagem decente, nada de VBs, Pascais e afins.

HecKel

C++ é a pior linguagem para se começar. Ninguém deve passar a C++ sem saber C. É como aprender a andar de bicicleta numa bicicleta de ciclismo num dia de chuva.

Na minha opinião claro.

Para mim o ideal é Python para começar, ou então se se tiver a ideia de que se quer começar logo pelas linguagens mais "conhecidas" deverá ser C->Java->C++/C#

Isto para mim claro.
 
Por acaso não acho que C++ seja mau para começar, mas não falamos de qual é a melhor linguagem para começar, para isso já existem alguns tópicos iguais :D Apenas referi aqueles exemplos em contra-argumentação à sugestão de aprender várias linguagens.

Sobre o tópico, sinceramente não acho que tenha muito mais a dizer, como tudo na vida, o que se quer é prática. Agora convém saber praticar ;)

HecKel
 
Se quer aprender, que comece por uma linguagem decente, nada de VBs, Pascais e afins.

o Pascal não é decente? porquê?
para projecto de grande dimensão, poderá não ser a linguagem mais indicada...

--------------------------------------------------------------

a melhor maneira de aprender a programar (ou pelo menos, de saber quais as falhas que ainda temos), é pegar em problemas reais, e aplicar aquilo que aprendemos ao ler livros, tutoriais, etc. e a fazer pequenos exercícios.

é extremamente importante (pelo menos do meu ponto de vista) aprender os conceito da POO. dependendo da área, aprender Bases de Dados (e aprender BD não é só SQL!!!), UML, e outros conceitos mais abstractos da programação, também dá jeito.

acima de tudo, o importante é adquirir uma metodologia de trabalho, que vamos melhorando de forma a evitar erros anteriormente cometidos e a optimizar o nosso desempenho. mas para isso, parece-me indispensável pegar em problemas minimamente reais.

quanto às linguagens, cada vez mais aconselho o Java. apesar de ser adepto do C/C++, por todas as funcionalidade de baixo nível que disponibiliza, permitindo programas com níveis de desempenho muito bons, obriga-nos a perder tempo com coisas que o Java já faz sozinho. para além de em Java ser fácil de encontrar bibliotecas para tudo e mais alguma coisa e que funcionam em todo o lado.
 
eu aconselho java tambem, tem muita simplicidade comparada a x++ e é puramente orientada a objectos. para um utilizador a aprender se sabe fazer em c++, faz em java e vice versa

o que eu acho mais complicado em c++ é mesmo os apontadores, ha 2 anos que uso c++, mas ainda me fazem a cabeça em agua os mesmos, tenho que arranjar um tempo pra um brainstorm sobre o assunto

e para quem quer começar a programar o meu conselho é TERMINAR SEMPRE O K SE INICIA, a fase final é a fase mas complicada, onde mais problemas aparecem, mas onde se tira realmente ensinamentos
 
Eu comecei recentemente a aprender a sério qualquer coisita.

Decidi começar por java. Há certas coisas relacionadas com a POO que me custam a entrar, mas de certo modo até gosto disso, dá mais pica :P
Eu tenho vindo a seguir sempre o mesmo modelo a aprender, vou seguindo tutorials/livros, comecei pelo Java for Dummies, depois a meio achei que aquilo não era para mim, explicava demasiado o simples e o complexo omitia, então passei para os tutorials da Sun http://java.sun.com/docs/books/tutorial/ , mas tive alguma dificuldade em assimilar alguns conceitos da POO, então comprei um livro barato "Programação Orientada aos Objectos em JAVA 2" que me ajudou a compreender muita coisa. E agora vou aprendendo simultaneamente com o livro e com os tuts da Sun.
Mas quando eu digo seguir livros, não é lê-los como se fosse um romance, normalmente, no fim de cada "matéria" invento sempre alguns programas funcionais para aplicar tudo o que aprendi até esse momento.

Mas ás vezes falta ideias de coisas para fazer :/ , dava jeito assim algum site só com exercicios de várias dificuldades ou parecido heheh.
 
offtopic
o Java não é uma linguagem OO pura, pois tem tipos que não são objectos (int, float, char, ...).

salvo erro, isso pode ser ultrapassado com wrapper classes e salvo erro a partir da versão 1.5 é tudo automatico, faz boxing e unboxing automaticamente, isto é conversão entre tipos primitivos e wrapper classes

ja agora mais um offtopic, uma linguagem orientada a objectos so trata objectos, ha alguma que possa ser considerada puramente orientada a objectos?
 
salvo erro, isso pode ser ultrapassado com wrapper classes e salvo erro a partir da versão 1.5 é tudo automatico, faz boxing e unboxing automaticamente, isto é conversão entre tipos primitivos e wrapper classes

ja agora mais um offtopic, uma linguagem orientada a objectos so trata objectos, ha alguma que possa ser considerada puramente orientada a objectos?

o que é certo é que podes ter coisas em Java que não são objectos. se uma linguagem tem tipos primitivos, normalmente não se considera uma linguagem OO pura.

quanto a linguagens OO puras, o exemplo mais conhecido talvez seja o Ruby, mas, segundo a wikipedia, ainda tens o Smalltalk e o Eiffel (e certamente mais algumas).
 
Última edição:
boas..

eu também secalhar encontro me em pé de igualdade contigo em programação, pois quando andava a tirar o meu curso aprendi a fazer umas coisitas engraçadas em C e mais tarde interessei me por VB.net e comecei a estudar um pouco aqui outro ali e aos poucos e poucos vou aprendendo.
O que eu costumo fazer para treinar é ir aos livros de C e cadernos das aulas e ver os enunciados dos programas que faziamos nas aulas e tento adaptar para VB e quando tenho alguma duvida, procuro pela net até lá chegar.

Agora não sei se é a melhor estratégia mas é apenas uma opinião para tentar ajudar-te
 
C, C#, C++ são excelentes recomendações para começar (C# não conheço bem)..., agora se ele se mete com 3 linguagens, acaba por não aprender nenhuma.

Se quer aprender, que comece por uma linguagem decente, nada de VBs, Pascais e afins.

HecKel
Dou-te razão nisso. Começar a aprender VB foi bom para fazer coisas bonitas a curto prazo, mas agora tentar perceber linguagens como C, tá quieto. Agora, só com persistência é que se percebe alguma coisa.

No entanto, acho que Pascal até é uma boa linguagem para começar. Está no meio entre o C++ e o VB.

E também concordo com o xtr3me - C antes de C++. Sim, eu cometi os erros todos :P comecei por VB e segui para C++. Resultado - é-me complicado distinguir funções C de C++.

Para começar a programar... a minha opinião é a de que se devia começar por C ou Pascal, e NUNCA por Visual Basic. Se bem que mais tarde pode vir a dar jeito.

Não aconselho a começar por OOPs nem Perl/Python, talvez porque os vejo a ambos mais ligados ao desenvolvimento para a web do que para EXEs. Pessoalmente, gosto muito de Perl, mas não começava por aí.
 
Qualquer dia ainda me chamam o vendedor de livros, mas como um bom livro vale muito, cá vai:

51aukquzeFL._AA240_.jpg


Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development - Craig Larman
Ensina metodologias de engenharia de software, tais como reconhecimento e aplicação de padrões de desenvolvimento (GRASP e GoF), desenvolvimento modular e iterativo, planeamento de projectos, distribuição de trabalho num grupo, construção de frameworks, etc. Foi uma pedra basilar para mim. É aplicável a qualquer linguagem orientada a objectos, embora reconheça que não encontrasse dificuldade a adaptar as metodologias apresentadas a outros paradigmas, como os que Haskell ou C usa.
Tem dois case-studies: Monopoly e um software para um POS (Point-Of-Sale, aquelas maquinetas que processam as compras num supermercado).
Ensina a notação UML, embora o livro não seja sobre UML. Todo o UML é construido paralelamente durante a actividade de análise de requisitos, etc.
Ensina técnicas de desevolvimento, tais como XP (Xtreme Programming) e Agile Modeling.

Resumindo: dá uma excelente bagagem; recomendo para quem quer começar a programar a sério.

PS: é bastante acessível. Bastante mesmo. Só requer conhecimentos mínimos de orientação a objectos (o livro usa exemplos em Java, embora seja aplicável a outras, tais como C# ou C++). Recomendo mesmo.
 
Última edição:
Não aconselho a começar por OOPs nem Perl/Python, talvez porque os vejo a ambos mais ligados ao desenvolvimento para a web do que para EXEs.
Longe disso, o Python é muito bom para "EXEs", alem de que é crossplataform, para mim o unico problema de começar em python é o facto de não teres de "tipar" e declarar variaveis, como no C. Uma das vantagem de começar em Python é os erros, não é preciso andar dois dias para corrigir um erro.

(acho que desenterrei um tópico :P)
 
Última edição:
posso falar um pouco do meu caso específico :)

nunca tive formação em informático, sou caloiro de Medicina mas sempre tive um bichinho da programação. Já rodei várias linguagens e de longe a que mais me agradou foi Python. É simples, é versátil, é multi-plataforma. Penso que para aplicações não-críticas em performance é perfeita.
 
Status
Fechado a novas mensagens.
Back
Topo