• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

djthyrax

Teach Yourself Programming in Ten Years - Por onde começar

35 mensagens neste tópico

Estava numa de Googlar e fui parar à página do Peter Norvig na Wikipedia onde encontrei um link para aqui: http://www.norvig.com/21-days.html

Este pequeno texto, na minha opinião, diz o essencial sobre os livros que dizem ensinar X em 3 dias e diz-nos basicamente que não se aprende a programar em 2 ou 3 dias, é algo que demora tempo, tal como tocar piano ou outras coisas. Para finalizar, dá-nos como sugestão de primeira linguagem Python ou Scheme, o que, na minha opinião, só prova o quão bom é Python para quem inicia. :(

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ai prova? Vou fazer um site em que digo as mesmas coisas mas no fim digo que Brainfuck ou código binário é que é bom para programar... Também fica provado na tua opinião que o que digo está certo?

Bahaha :(

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Estava numa de Googlar e fui parar à página do Peter Norvig na Wikipedia onde encontrei um link para aqui: http://www.norvig.com/21-days.html

Este pequeno texto, na minha opinião, diz o essencial sobre os livros que dizem ensinar X em 3 dias e diz-nos basicamente que não se aprende a programar em 2 ou 3 dias, é algo que demora tempo, tal como tocar piano ou outras coisas. Para finalizar, dá-nos como sugestão de primeira linguagem Python ou Scheme, o que, na minha opinião, só prova o quão bom é Python para quem inicia. :(

É pá dizer que scheme é bom para começar ?? pá peço que dêem uma olhadela em um exemplo de código e depois digam se acham aquilo bom para começar.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

lol.

Esses titulos sao colocados porque vendem mais...não é que eles queiram mesmo que as pessoas aprendam a programar em 10 dias.

Se entrares numa loja e vires um livro de 1000 paginas que diz "Introdução à programação" e vires um de 300 paginas que diz, "Aprenda a programar em 10 dias" acho que o impacto é diferente...logo a escolha também será.

Quanto à linguagem para começar...não creio que nem uma nem outra sejam ideais...mas isso, o que mais ha sao opinioes. É natural que cada um defenda a linguagem com que trabalha.

Na minha opinião, deveria-se começar por C/PASCAL. Isto porque são duas linguagens que obrigam a saber programação a sério. E eu digo isto, tendo passado grande parte da minha aprendizagem em VB.NET. E agora, apenas com uns meses de C, sinto que sei muito mais do que com 1 ano de VB.

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Para os iniciantes mesmo, TheDark, o que achas mais fácil? Python ou C? Para os que já sabem alguma coisa (Pascal, por exemplo), o que achas mais fácil? Scheme ou C? No IST dão Scheme ao primeiro ano, no Minho dão Haskell, e lá fora há quem dê Python. Será sensacionalismo do gajo que escreveu isto?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Para os iniciantes mesmo, TheDark, o que achas mais fácil? Python ou C? Para os que já sabem alguma coisa (Pascal, por exemplo), o que achas mais fácil? Scheme ou C? No IST dão Scheme ao primeiro ano, no Minho dão Haskell, e lá fora há quem dê Python. Será sensacionalismo do gajo que escreveu isto?

No IST dão C no primeiro ano e na UE davam Haskell agora mudaram para Java.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Para os iniciantes mesmo, TheDark, o que achas mais fácil? Python ou C? Para os que já sabem alguma coisa (Pascal, por exemplo), o que achas mais fácil? Scheme ou C? No IST dão Scheme ao primeiro ano, no Minho dão Haskell, e lá fora há quem dê Python. Será sensacionalismo do gajo que escreveu isto?

Não sei qual é a melhor para começar, e não foi isso que pus em causa. Até porque não prestei atenção suficiente a Python para poder falar. E Haskell e Scheme só conheço de nome. Apenas acho que é demasiado inferires que porque um tipo diz uma coisa certa, outra coisa dita por ele também é certa :(

Que a opinião dele coincida com a tua, tudo bem. Agora isso não prova nada...

Quando entrei para a faculdade, a cadeira de Programação era em C++. No ano seguinte passaram para Javascript (o que me rendeu a melhor nota que já tive simplesmente pela facilidade de uso e dificuldade de fazer asneira). Agora dão Java. Das 3, acho que Javascript era a que melhores resultados dava.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

TheDark, o que prova não é apenas o ele dizer, é o ser usada com esse propósito, o que ele diz só vem comprovar o que já está provado. :(

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não digo que não sejam (pessoalmente não me atraem), mas onde está a prova?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Quando entrei para a faculdade, a cadeira de Programação era em C++. No ano seguinte passaram para Javascript (o que me rendeu a melhor nota que já tive simplesmente pela facilidade de uso e dificuldade de fazer asneira). Agora dão Java. Das 3, acho que Javascript era a que melhores resultados dava.

Bem não sei que raio de programa eles davam mas JS no meio de C++ e Java é muito estranho lol.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não digo que não sejam (pessoalmente não me atraem), mas onde está a prova?

No IST dão Scheme ao primeiro ano, no Minho dão Haskell, e lá fora há quem dê Python.

Bem não sei que raio de programa eles davam mas JS no meio de C++ e Java é muito estranho lol.

Nem por isso magician, JavaScript não é só para usares num browser. :(
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu sei com um interpretador podes usar JS a nível de desktop mas não tem grandes recursos para além disso a comprar com C++ e Java é muito muito mais limitada.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu sei com um interpretador podes usar JS a nível de desktop mas não tem grandes recursos para além disso a comprar com C++ e Java é muito muito mais limitada.

Not really. Podes usar JavaScript como linguagem server-side (as in, fazer o trabalho de PHP) e até podes compilar. Não é nada limitado, precisa é de ser um pouco mais desenvolvida e divulgada fora do browser.
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

estou um bocado curioso pelo que voces falam de js, sera que podiam dar alguns exemplos de como fazer tais coisas ?

boas programacoes

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

o tais coisas seria a utilizacao de javascript fora de um browser.

obrigado pelos links :)

boas programacoes

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

DMDScript é D não JS e é completamente D mas ao invés de compilado é interpretado. nada a ver com JS

DMDScript é uma implementação do ECMA Script (vulgarmente conhecido como JavaScript) em D e C++, logo tem tudo a ver. Eu não linkei por sei feito em JavaScript. Aliás, a página deixa bem claro:
DMDScript is Digital Mars' implementation of the ECMA 262  scripting language. Netscape's implementation is called JavaScript, Microsoft's implementation is called JScript. DMDScript is much faster than other implementations, which you can verify with the included benchmark.

DMDScript is implemented in the D Programming Language. (A C++ implementation is also available.)

Note: DMDScript is not the D Programming Language, nor is it Java.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Bem não sei que raio de programa eles davam mas JS no meio de C++ e Java é muito estranho lol.

Não era no meio. Foram alterações ao programa da 1ª cadeira de programação do curso.

E sim, usávamos JS no contexto browser. O trabalho final (no meu semestre) foi um jogo do galo.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ora viva!

então aqui vai a minha opinião!

Não se aprende a programar nada em meia dúzia de dias, nem semana.. programar, programar mesmo.. saber analisar um problema.. dividi-lo em partes e estruturar uma solução, um programa (software) ou um conjunto de rotinas para chegar a um determinado objectivo, é algo que não se aprende assim com um livrozeco qualquer. A análise/programação é uma arte, e só se chega a dominar essa arte com muito trabalho, muitas cabeçadas, muitas noites em volta de código que teima em não dar os resultados esperados... e vemos depois que trocamos um ; por uma ,  ou um == por um = 

... é tramado.. mas acontece!!

por isso, o meu conselho é.. comecem por engenharia de software + estruturas de dados + normalização + base de dados e depois.. escolham uma ou duas boas linguagens (C#, Java, C, C++, JavaScript, etc etc)  e treinem muito. Comecem com bons livros mas básicos.. e depois passem para bons livros.. mais completos e avançados. !!Não comecem pelos mais avançados.. porque provavelmente vão se sentir frustrados.. e sem obter resultados.. e encostam logo o livro e a linguagem!

Eu pessoalmente, comecei a programar à muito.. e foi mesmo em Basic no meu Spectrum 128K! era altamente!! :) claro, que agora não aconselho isso a ninguém!! LOL

Mas, não comecem por JavaScript.. é melhor começarem em C ou Pascal. O JavaScript é uma linguagem de script muito poderosa.. pode ser usada em web e fora da web em praticamente qualquer SO.. mas é uma linguagem demasiado permissiva.. e por isso, não é a melhor para começar. Alguém que comece por JavaScript, vai com certeza cometer imensos erros de programação sem dar por isso.. há demasiadas coisas que deviam dar erro.. e que os interpretadores de JavaScript ou VBScript deixam passar. Por isso, na minha opinião, devem começar por C.. depois passar para C++.  tendo experiência em C e C++, vão poder saltar com facilidade para JavaScript, Java, C#. O Pascal também não é mau.. mas tem mais diferenças que as linguagens mais usadas hoje em dia.. e por isso considero melhor o C. Mas comecem pelo básico!! não se metam logo a querer programar OOP e ponteiros e cenas assim.. devagar!!

inté! ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

... muito trabalho, muitas cabeçadas, muitas noites em volta de código que teima em não dar os resultados esperados... e vemos depois que trocamos um ; por uma ,  ou um == por um = 

... é tramado.. mas acontece!!

Isso é porque não usas Haskell :)

por isso, o meu conselho é.. comecem por engenharia de software + estruturas de dados + normalização + base de dados e depois.. escolham uma ou duas boas linguagens (C#, Java, C, C++, JavaScript, etc etc)  e treinem muito.

Isso discordo. Acho que começar por engenharia de software é mau. Acho que é melhor começar por uma linguagem simples, tipo C. E começar mesmo a programar a padeiro, coisas simples, maioritariamente apenas ciclos e ir evoluindo ao pouco. Focar a aprendizagem depois em estruturas, complementar com mais 1 ou 2 linguagens, noutros paradigmas, pelo menos 1 sendo OOP. E então quando já tiver uma noção mais ou menos do que é programar, aí sim ir aprender engenharia de software, ver técnicas que antes ele resolvia de uma maneira mais complicada podem ser simples e por aí a fora. Acho que aprender engenharia de software ainda sem saber programar, não funciona. Uma pessoa tem de ter já uma certa noção, para quando estiver aprender isso, constatar porque de facto se recomenda e é útil, se ainda não programou, ou não tem ainda tal noções, ao aprender questiona-se porque é tal coisas necessárias, e fica sem saber porque. Antes de aprender engenharia de software tem de se sofrer um pouco primeiro, raciocinar por si próprio. Essa é a minha opinião.
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

A potência do C ou do JavaScript, vem, não só mas também, de se poder usar um = onde normalmente se usaria um == ou mesmo ===

Realmente, nunca fiz nada em Haskell, mas um dia, se o tempo permitir.. vou ver isso.

Começar "à padeiro".. não acho boa ideia... este mundo está cheio de "padeiros".. e depois, muitas vezes.. os programadores a sério, têm de andar às voltas para resolver as maluqueiras que um ou vários padeiros "cozinharam".. e disso não gosto eu.

acho preferível tentar aprender bem ou mais ou menos bem de inicio.. do que andar a escrever código sem perceber porquê.. nem ter bases. Claro que é preciso usar a cabeça e raciocinar por si próprio.. mas com as bases para o fazer da melhor maneira.. é que programar não é filosofia. E quanto a OOP.. não me parece que um novato que ande a tentar descobrir a programação se deva meter com OOP.. primeiro programação "a direito".. depois procedimentos e funções, depois talvez uns algoritmos vais "giros" e recursividade e assim.. e só depois.. muito depois OOP. Para dominar, entender e tirar toda o partido e potencial de programação OO é necessário ter já um pensamento "programático" algo calejado. Não é assim.. zásssssss.. vamos lá programar umas classes e métodos e heranças e polimorfismos, etc....... é preciso ter calma! tudo a seu tempo.

Mas cada um com a sua opinião.. esta, é simplesmente a minha.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Claro, e eu concordo totalmente com o que disseste. Eu só estava a referir que a etapa de aprender engenharia de software era a seguir a isso e não desde o inicio. Como da mesma forma disseste, e bem, que não fazia sentido estar a aprender OOP antes de ter a mente calejada, o mesmo se aplica à engenharia de software, em que na minha opinião, os "requisitos" mínimos são superiores à da OOP, ou seja, deve-se entrar nessa aprendizagem numa fase mais avançada e não logo desde o inicio.

Em relação a programar a padeiro. Obviamente que é mau, e acho que ninguém deva trabalhar com um nível de conhecimento tão baixo. Mas acho que aí a culpa não seja do programador mas sim dos empregadores. Eu quando disse que deve-se começar a programar à padeiro, é do ponto de vista, que no inicio o aprendiz deva-se abstrair o máximo da teoria da computação. Limitar-se a aprender uma linguagem básica (como tu aprendes-te BASIC, que foi o mesmo comigo, só que num 386), ou seja, teoria zero. Um gajo programar mesmo à martelada, e depois quando já estiver mais ou menos familiarizado com a sintaxe e semântica de uma linguagem então ir juntando teoria ao seu conhecimento. Acho que o facto de uma pessoa ver como se faz uma coisa em condições quando antes fez-la mal aprende muito mais do que aprender como se fazer as coisas em condições logo no inicio. Acho que daria um valor menor ao conhecimento adquirido, para além que muita da informação adquirida seria descartada porque para o aprendiz não fazia sentido. Por exemplo, imaginemos que uma pessoa vai começar a aprender a programar, e começa por aprender teoria, imaginemos que ele começa a ler sobre boas técnicas de programação e deparasse com o MVC. Ele olha para aquilo, e para ele não faz sentido nenhum. Mesmo que ele adquira a informação e comece a programar segundo a filosofia do MVC, porque foi assim que aprendeu e no livro diz que se deve programar assim e toda a gente diz o mesmo. Isto é só apenas conhecimento de livro, na prática ele não dá nenhum valor real ao MVC. Agora se fosse uma pessoa que já foi desenvolvendo aos poucos e adicionado aos poucos teoria à sua base de conhecimento, na altura que se depara-se com o MVC iria crescer muito mais. Para além de compreender totalmente o MVC, saberia (ao contrário da 1ª pessoa) quando deveria aplicar o MVC e quando não o aplicar, porque a sua experiência "errada" anterior permite-lhe uma maior introspecção da informação adquirida.

Mas prontos, é apenas a minha opinião.

Apenas como uma nota. Não vejo qual é a potência de se poder usar = no mesmo sítio que ==, são lógicas diferentes. Se uma pessoa engana-se e estivesse a usar a errada, o compilador/interpretador deveria imediatamente notificar o programador a dizer que a operação não fazia sentido.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

No IST dão C no primeiro ano e na UE davam Haskell agora mudaram para Java.

No IST primeiro ano é Scheme, no segundo é que é C.

Mas de qualquer forma, djthyrax, já percebemos que tu adoras python. Mas torna-se chato estares sempre a insistir que Python deve ser o primeiro a ser ensinado, só Python deve ser usado para fazer sites, só Python deve ser usado para fazer programas...

Epá.. modera-te. Pronto.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

No IST primeiro ano é Scheme, no segundo é que é C.

Mas de qualquer forma, djthyrax, já percebemos que tu adoras python. Mas torna-se chato estares sempre a insistir que Python deve ser o primeiro a ser ensinado, só Python deve ser usado para fazer sites, só Python deve ser usado para fazer programas...

Epá.. modera-te. Pronto.

Not the point. Não sou fanático por Python, pelo pouco que vi (não do que fiz) não aconselho para a fazer sites, não é o melhor para todo o tipo de programas, nem é necessariamente o mais simples de aprender. Simplesmente tem uma sintaxe simples que incute bons hábitos (indentação), montes de bibliotecas (motiva-te quando começas), e em uma linha transformas completamente seja o que for, o que a torna uma linguagem bastante apetecível para quem vai começar. Se for para mexer com coisas mais "complexas" tipo mexer com memória, fazer programas super eficientes, etc, tens linguagens "mais sérias"/"menos académicas" como C(++/#), Assembly (para a eficiência, tá claro), Java, etc. Mas o tópico fala sobre começar a programar, não é sobre "que linguagem usar para mexer na memória directamente" nem nada do género, e nesse campo (começar a programar), Python um tem grande potencial. Simple as that. :P Da mesma forma que o Betovsky gosta de Haskell, eu gosto de Python, e nenhum de nós leva essa "paixão" ao extremo.

PS: Prefiro PHP sobre Python, em muitas muitas coisas. E não sou Python fanboy.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora