Lista de 15 exercícios para aprender uma nova linguagem de programação
É conselho recorrente em blogs voltados à programação de computadores que os programadores devem aprender uma nova linguagem de programação por ano, ao menos. O mercado de trabalho, muitas vezes, é responsável por essa necessidade. E, nestes casos em particular, o aprendizado precisa ser rápido.
Um artigo de Prashant Mhatre tratou recentemente com muita propriedade desta situação. O maior ponto de interesse do artigo é uma lista de 15 exercícios para desenvolver a habilidade em outra linguagem de programação.
A primeira dica de Mhatre é procurar alguma referência rápida da linguagem em questão. Este blog mesmo já publicou artigo com referências rápidas (Cheat Sheets) para linguagens como PHP, Javascript, Ruby, Ruby on Rails, Perl, Python e outras.
O segundo passo é familiarizar-se com o editor/compilador da linguagem. Por exemplo, no início do aprendizado de uma linguagem como Java, uma boa idéia seria aprender como trabalhar com o NetBeans. Para isto basta escrever algum “Olá, Mundo” (Hello World), compilá-lo e executá-lo. É aconselhável verificar como trabalhar com as principais funcionalidades de debbuging, ajustar pontos de parada (break points), observar valores de variáveis, mover para a próxima posição, para uma posição específica, interromper o debugger e etc.
Conhecendo o editor/compilador da linguagem o programador estará apto a executar os quinze exercícios para aprendizado da linguagem de programação. Convém alertar que esta lista é para que programadores com algum grau de experiência possam obter conhecimento em uma nova linguagem. Ou seja, esta não é uma lista plenamente recomendável a iniciantes em programação de computadores.
- Exibir uma série de números (1, 2, 3, 4, 5, … ) em um loop infinito. O programa deve encerrar-se quando for pressionada uma tecla específica, como um ESC.
- Série de Fibonacci, trocar os valores de duas variáveis (com ou sem variável auxiliar), encontrar os valores mínimo e máximo de uma lista de números.
- Obter uma série de números do teclado e ordená-las tanto em ordem ascendente como descendente. Fazer o mesmo com uma série de strings.
- Calcular o Coeficiente de Reynolds, recebendo os parâmetros nas unidades apropriadas. Indicar, em função deste coeficiente, se o fluxo é laminar (resultado inferior a 2.100), de transição (entre 2.100 e 4.000) ou turbulento (acima de 4.000)
- Alterar o programa anterior para, após sua execução, perguntar ao usuário se ele deseja realizar outro cálculo. Durante a execução do mesmo fornecer valor 0 (zero) para a viscosidade dinâmica e observar o resultado. Verificar como contornar esta situação de erro.
- Fazer uma calculadora que execute operações de adição, subtração, multiplicação, divisão, quadrado, cubo, raiz quadrada, seno, cosseno, tangente, fatorial, inverso e módulo.
- Exibir números em diferentes formatos como arredondados para cinco casas decimais, truncados com quatro casas decimais, completando com zeros à esquerda e à direita, alinhando à esquerda e á direita.
- Abrir um arquivo de texto e convertê-lo em HTML.
- Obter a data e hora do sistema e apresentá-lo em diferentes formatos como ’20-Jan-2009′, ’01-20-2009′, ’20-1-2009′, ’14:34′, ’2h24 a.m.’ e outros.
- Criar arquivos com parte do nome indicando a data e hora de criação.
- Ler um arquivo HTML com uma tabela, remover as tags e gravar em outro arquivo no formato CSV.
- Extrair palavras escritas em maiúsculas de um arquivo. Extrair lista de palavras utilizadas em um arquivo sem repetições.
- Implementar um recurso de quebra de linhas de um texto, com ou sem ajustes.
- Adicionar e remover ítens no início, no meio e no final de um vetor.
- Verificar e testar recursos da linguagem como sobrecarga de operadores ou de métodos, ponteiros, pacotes e outros.
Bom trabalho! Depois contem-me sobre seus progressos.
Lista de 15 exercícios para aprender uma nova linguagem de programação | Bl…
Este artigo apresenta uma lista de quinze exercícios para programadores aprenderem uma nova linguagem…
[...] uma nova linguagem qui, 29/01/2009 – 13:08 — bardo Em artigo recente no Blog Tecnologia e Educação você vê dicas para aprender uma nova linguagem de programação, incluindo 15 exercícios. Só [...]
LIXO. Niguém aprende a usar uma nova linguagem calculando o número de Reynolds.
Hi
Exercícios simples é que realmente ajudam,a melhor coisa a fazer para se aprender um linguagem e ser bom nela,é conhece-la e praticar,a pratica leva a perfeição.
[]‘s
@Anselmo, agradeço as críticas, mas espero suas sugestões para podermos melhorar esta lista.
Venho registrar aqui algumas sugestões. No futuro vou compilar uma listagem básica como a deste artigo. Por enquanto, vamos às sugestões como as recebi:
1. Jack Ripoff enviou as seguintes: Calcular o n-ésimo número de Fibonacci; calcular a n-ésima potência de um dado número real; dada uma matriz A e vários vetores b1,…,bn, resolver o sistema Ax = bi para cada vetor bi, com i entre 1 e n; dado um intervalo [a, b], calcular numericamente a integral neste intervalo de uma função à escolha usando a regra dos trapézios; “Torre de Hanói”; achar uma solução para o problema das oito damas. Tenho uma pequena restrição ao problema da integral, pois exige um conhecimento de matemática que nem todo programador possui.
2. O Jack Ripoff também enviou como sugestão uma lista de exercícios do IME-USP.
3. Fábio Ortolan indicou os problemas do Projeto Euler. Este projeto apresenta diversos problemas matemáticos. Muitos deles exigem mais a aplicação de conhecimento e criatividade em algoritmos do que seria necessário para um exercício que propõem-se ser um meio de aprendizado de uma linguagem de programação para quem já é programador. Entretanto, outros problemas na lista são bem adequados à esta necessidade.
Fico aguardando mais sugestões
Vcs fizeram faculdade ? Vcs não estudaram mto neh ? Eram da turma do fundão q matava aula e conversava ?
Basta pegar o material de Algoritmo / Estrutura de Dados (o nome depende do curso em questão) e confrontar… Pascal “nasceu para ensinar” (sem comentarios aqui hein?) a programar… basta continuar os passos dali…
Outra coisa… deem uma olhada sobre ortogonalidade de variáveis… escopo…geração (1a, 2a, 3a…) … paradigma… usos… em suma: leia antes de praticar…
Dentre outras…
ps: parece que este post foi uma vingança – vcs perderam tanto tempo fazendo coisas dificeis e aparentemente sem utilidade (sem comentarios aqui tbm) e querem q o resto dos “juniores” façam tbm…
De qqer maneira… uma idéia válida, mas com uma impl. fraquinha :)
@D
Particularmente, eu prefiro as sugestões que enriquecem as discussões. Agradeço as críticas, mas, sinceramente, não entendi exatamente quais foram suas objeções.
Quanto ao aspecto de fazer faculdade, eu sou professor universitário e vários dos meus leitores são estudantes ou estão no caminho para vir a ser. O material de algoritmo é voltado para quem vai aprender uma linguagem pela primeira vez e este artigo tem um propósito diferente. A idéia é oferecer tarefas simples para ver como uma nova linguagem implementa as características mais utilizadas.
Quanto ao resto, eu espero seus esclarecimentos.
Gente,
antes de se pensar em linguagem de programação, deve-se inicialmente estudar o paradigma que a mesma segue. Alguns paradigmas são mais indicados para certos tipos de modelo de aplicação, por exemplo não seria interessante tentar implementar uma máquina de inferência em uma linguagem de paradigma imperativo da mesma forma que não seria construtivo tentar implementar um algoritmo de ordenação clássico (merge sort por exemplo) em uma linguagem de paradigma lógico.
A meu ver, é importante, antes de começar a estudar alguma linguagem de programação, entender como funciona o paradigma o qual ela segue e ainda saber escolher o paradigma e a linguagem correta para cada tipo de aplicação a ser desenvolvida, pois não existe linguagem all-in-one.
Vocês estão somente criticando o post que, aliás, NÃO É PARA INICIANTES !
“Guri novo” em programação deve ir para a faculdade, escola ou cursinho … e não seguir este post …
Estes exercícios auxiliam a aprender os passos prioritarios que devemos saber sobre uma linguagem de programação, como controles de fluxo, string, numeros, operadores, variáveis, arquivos e outras coisas mais … Leiam o 3º e 4º parágrafo deste post e verão que deve-se primeiro conhecer a linguagem, editor e compilador… com isto saberemos o que precisamos para iniciar o estudo….
Gostei deste post Prof. Cid, achei bastante interessante e util.. é um bom passo-a-passo, que geralmente custamos a montar quando queremos aprender algo novo …
[]´s
@Sérgio, obrigado pelo apoio. Bons ventos impulsionem o “Open Knowledge”
Me desculpe se não me fiz entender, mas eu concordo com a proposta do artigo, achei legal e é justo isso que na prática se necessita na verdade, pelo menos inicialmente, de uma linguagem como o tratamento de arquivos, conexões tcp, udp, enfim.
Só toquei no assunto dos paradigmas pois julgo importante conhece-los e escolhe-los oportunamente.
Acho que todos seguem algo parecido ao aprender uma nova linguagem, mesmo que intuitivamente.
Então fica minha réplica!
@João, acho que o comentário do @Sérgio não foi direcionado para você. Seu comentário foi pertinente, embora não focado no tema central do artigo. Entretanto, inspirou-me a escrever um artigo tratando dos diferentes paradigmas
Fantástico, acredito q adicionaria alguma coisa do tipo, execute uma query em algum banco de dados e uma stored procedure apenas…
Acredito que esses exercícios exercitam uma gama bastante razoável de recursos pra quem foi apresentado à uma nova linguagem.
Opa @Sergio, só um adendo. Não limitaria o “Guri novo” às instituições como forma de aprender alguma linguagem de programação. Sabemos que os cursos (seja de qualquer área) dependem mais do aluno autodidata do que do tempo (ou muitas vezes disposição do professor em “ensinar”) para que o aluno “aprenda”. E nenhum curso “ensina” por ele somente.
Da mesma forma conheço muitos bons programadores que nunca colocaram os pés em uma universidade. Claro que dependendo do direcionamento e da complexidade do alvo do programador, será necessário muito mais matemática do que linguagem de programação. Mas isso é questão do interessado (em buscar) aprender (além de muita doutrina e esforço corrdenado do mesmo).
Existem muitos livros altamente didáticos (infelizmente nenhum deles completo) para as linguagens de programação e (infelizmente) desviando um pouco desse post, sugeriria aos mesmos que corressem atrás disso. Sugiro ao autor desse post (se for de interesse do mesmo) que publique aqui bons livros em cada área|linguagem para que o leitor (newbie ou hacker na linguagem) possa buscar em uma livraria mais próxima.
Outra sugestão minha seria lançar tutoriais (ou indicar bons) para que o usuário aprenda a programar corretamente. De que adianta o sujeito ter um “bom n[ivel” em uma linguagem de programação se o código “macarrônico” q
Quando eu disse que iria desviar um pouco (ou muito) do assunto do post, foi por ver uma grande presença de pessoas presentes nos comentários, as quais o mesmo não atende. Sugeriria que você continuasse a explorar tanto o hacker quanto o newbie em seus posts.
A Internet é vasta (e falha) no assunto, então quanto mais pessoas como você puderem abordar, na Internet, de forma didática e entusiastica o “Open Knowledge” (que no seu caso está voltado para programação) será válido.
Saudações a todos
@Júiio, @Rodrigo e todos os comentaristas
Estes comentários despertaram a inspiração para outros artigos, que serão produzidos no decorrer das próximas semanas. Obrigado pelas sugestões
Ixiiiiiii
Lembrei dos meus tempos de faculdade…. Lógica e construção de algoritmos…
Bons tempos…. ótimo post!
Mais um ótimo Post, professor!
Com certeza é de grande utilidade tais exercícios, pois há muitas ferramentas que automatizam o desenvolvimento, o que é ruim pelo lado do desenvolvimento humano, da real capacidade do indíviduo, que é sem dúvida superior ao da máquina, já que nós somos capazes de fazer algo incrível como a máquina não faz, sonhar!
Como o senhor mesmo disse em sala:
“Não há progressão sem crise”
Fique com Deus
Abraços,
Thiago Cantero Mari Monteiro
[...] que este post foi uma vingança – vcs perderam tanto tempo fazendo … Veja o post completo clicando aqui. Post indexado de: [...]
[...] referência: Blog Tecnologia e Educação [...]
Acho louvável a intenção do autor do post.
Mas tenho outra metodologia para aprender uma nova linguagem.
Sempre pego algo qua já programei e tendo passar para a nova linguagem, aprendendo assim os comandos/funções que eu uso.
No caso de alguns dos exemplos acima, eu teria que estudar matemática antes de fazê-los, o que retardaria um pouco o meu aprendizado :D
[]‘s
Gostei das dicas.
Mais como base tomo sempre o C, C++.
quando o programador no caso, domina e entende todas a funções e funcionalidades da linguagem, para migrar para outra linguagem é mais simples do que parece, pois a maioria (Se não, todas) linguagens utilizadas atualmente surgiram do C.
Logo o C++ foi adcionado novos comandos, e PHP, JAVA, JAVA SCRIPT dentre outras são linguagens que apesar de terem suas funções especificas são muito semelhantes.
Seu artigo é tudo de bom, e durante a digitação dos dados deste comentário, pensei… … porque não adicionar o rss deste site? É seus artigos vão ser lidos agora todo dia e certamente vou indicar no meu muita coisa publicada aqui. Parabéns!
Achei o post extremamente didático e válido. Trabalho desenvolvendo a vários anos e tive que migrar ou utilizar outras linguagens de programação em diversos momentos.
Este procedimento ajuda a ganhar tempo.
Obrigado pelo post professor!
Parabéns pelo artigo!
Muito bom mesmo.
Ridículo sim são os que debocham tecnicamente ou futilmente.
Garanto que estes esqueçem que aprenderam o que sabem através de muito suor e dedicação, futricando aqui e acolá desesperadamente.
Tudo na vida é complementariedade e aperfeiçoabilidade.
Portanto, é muito válido o programador iniciante ou intermediário “correr” atrás de quaisquer insights, sejam cálculos complexos de matemática ou outros métodos de aprendizado, porque é exercitando nos “dedões” das mãos e nos “muscúlos” neuróticos do cérebro, tenhamos certeza de que a retenção será fantástica.
Repito, são rídiculos aqueles que desdenham dos esforços mínimos de quem se propõe a motivar outrem para aprender.
Bom artigo em compensação muitos comentários ruins. (esperar o que dessa nerdaiada tosca?)