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

FabioM

Tempo de aprendizagem de uma linguagem de programação

30 mensagens neste tópico

Só agora me tou a iniciar nestas lides da programação e devo dizer que estou a gostar. Já aprendi algumas coisas de HTML, CCS, Javascript, C#, ASp.Net no curso que tou a tirar mas nada de ser pro ainda  :confused:

È bom criar algo diferente e ter um trabalho que nao seja sempre o mesmo, ou seja penso que muitos de voces exercem a profissão de programador e tão sempre a criar coisas novas. No meu caso gostava de dominar estas linguagens que mencionei mas tb gostava de dominar Java e talvez C++ mas penso que já é pedir muito.

Quanto tempo demora (e isto tendo alguma dedicação,2 horas por dia nao  :cheesygrin:) a dominar uma linguagem de programação? 5 anos? 10 anos? 20 anos? :P

E so me tou a referir a uma linguagem. Ou é perfeitamente possivel conhecer uma miriade de linguagens em 4, 5 anos?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Quanto tempo demora (e isto tendo alguma dedicação,2 horas por dia nao  :cheesygrin:) a dominar uma linguagem de programação? 5 anos? 10 anos? 20 anos? :confused:

Isto na programação não existe nenhuma regra que indique quanto tempo é necessário para dominar uma linguagem ou tecnologia, depende das capacidades de cada indivíduo, da sua determinação e do tempo que dedica para treinar. Eu diria que em meia dúzia de meses, se treinares 2 horas por dia e não perderes o interesse pelo meio, já consegues fazer coisas bastante engraçadas.

E so me tou a referir a uma linguagem. Ou é perfeitamente possivel conhecer uma miriade de linguagens em 4, 5 anos?

É possível e é o que acontece! Neste momento não existe interesse em aprender uma determinada linguagem, mas sim os conceitos teóricos por trás de cada linguagem de programação e os seus diferentes paradigmas. Basicamente recomendo-te que aprendas uma linguagem procedimental (C / Pascal), uma linguagem com orientação a objectos (Java / C# / C++), uma linguagem de scripting dinâmica (Python / Boo / PHP) e uma linguagem funcional (Haskell / Scheme). Basta aprender uma linguagem em cada categoria que depois facilmente adaptas os teus conhecimentos e competências para outra linguagem que suporte o mesmo paradigma.

Também te recomendo que faças este percurso em sistemas baseados em UNIX, como o Linux e com as ferramentas existentes relacionadas com programação: debuggers, profilers, sistemas de gestão de projecto e de controlo de versões.

Espero que te tenha dado umas luzes sobre o assunto, qualquer dúvida não hesites! :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Lá está, aprender a programar é diferente de aprender linguagens.

Aprende os conceitos, a linguagem é uma questão de sintaxe :confused:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Obrigado pelas respostas.

Por agora vou dando uns toques nas linguagens de internet porque é isso que ensinam na universidade. Mais tarde inicio-me em outras.

Lá está, aprender a programar é diferente de aprender linguagens.

Aprende os conceitos, a linguagem é uma questão de sintaxe :(

E também fazer coisinhas engraçadas que só pela criatividade do individuo se consegue.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

r4k4t4, andas a fazer thread digging, lol na boa, esta nem era assim tão velha.

Os livros são quase todos americanos. Livros portugueses só há sobre assuntos com no mínimo 3 anos, e são escritos por gajos que "têm uma vaga ideia" sobre o assuntoa  abordar, por isso fazem-no para os tótós... ops... já há uma coleção de livros com esse nome.

Anyway, eu não sei bem responder a esta pergunta, como eu fiz foi assim:

aprendi C++ na faculdade, foi uma grande ajuda pois o C++ permite aprender conjuntamente com a linguagem uma carrada de conceitos teóricos que são super importantes.

Depois a partir daí aprender uma linguagem foi uma questão de iniciativa propria ou necessidade, tipo... "camarada, agora programas em hubahubahubaahahaha", ok, bora ler o manual do hubahubahubaahahaha e ter a referencia das várias APIs à mao e bota a bater código.

Ou seja, tendo conceitos teóricos bem apreendidos e pratica numa linguagem, usar outras é uma questão de ler a documentação, coisa para poucos dias.

Eu sou gajo para aconselhar C ou C++ para começares pela sua importancia histórica, muitas linguagens se influenciaram nelas a vários niveis, desde a sintaxe ao proprio desenho da linguagem.

Por outro lado... PHP tem tudo pronto a usar, é super simples, corre em todo o lado e permite fazer coisas interessantees desde inicio.... tambem aconselharia PHP...

pa... nao sei... começar por scheme, python, haskell não acho lá muito boa estratégia... qdo muito basic um pouco pelas mesmas razões que o C

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Por outro lado... PHP tem tudo pronto a usar, é super simples, corre em todo o lado e permite fazer coisas interessantees desde inicio.... tambem aconselharia PHP...

pa... nao sei... começar por scheme, python, haskell não acho lá muito boa estratégia... qdo muito basic um pouco pelas mesmas razões que o C

haskell é super simples (embora isto seja relativo, parece-me muito mais simples do que PHP), corre em todo o lado (e normalmente de forma mais fácil que o PHP), e é bem mais fácil de fazer teste com as funções individualmente do que com PHP. além disso, o facto de ser fortemente tipada (mesmo sem ser necessário indicar os tipos, tal como acontece com PHP), permite detectar erros facilmente.

a única vantagem do PHP é mesmo a sintaxe, que é mais próxima das linguagens vulgares, mas por alguma razão, o Haskell é bastante usado nas universidades.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O tempo de aprendizagem depende de pessoa para pessoa, a sua motivação entre outros factores.

Eu comecei a pouco tempo em C++ (antes dei um pouco de C, só para fazer a transição para o C++) e estou a gostar, embora não saiba ainda muita coisa, mas da paa "brincar" um pouco. Ainda ontem, após uma semana e tal quase duas sem tocar nisso, decidi refazer os exercícios todos que fiz até agora, isto para não ficar um pouco "enferrujado".

A compra de livros pode ser boa ideia, mas porque não dar uma volta na secção da devida linguagem aqui  no fórum? Com essa voltinha ficávamos com uma luzinha ao fundo do túnel e depois talvez partir para a compra do livro.

Eu cá continuo no C++ e recomendo.  ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Por agora vou dando uns toques nas linguagens de internet porque é isso que ensinam na universidade.

não me parece que ensinem muito linguagens de internet na universidade... eu, em 4 anos, não dei nenhuma.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

corre em todo o lado (e normalmente de forma mais fácil que o PHP),

O PHP só tem problemas nesse ponto caso recorras a APIs de um determinado SO ou recorras a programas específicos de cada SO (o clear em linux e o cls em windows por exemplo).

e é bem mais fácil de fazer teste com as funções individualmente do que com PHP.

Como assim?
além disso, o facto de ser fortemente tipada (mesmo sem ser necessário indicar os tipos, tal como acontece com PHP),
Em PHP não tens de indicar o tipo.
permite detectar erros facilmente.
Também o PHP.

a única vantagem do PHP é mesmo a sintaxe, que é mais próxima das linguagens vulgares, mas por alguma razão, o Haskell é bastante usado nas universidades.

Acrescenta a isso as funcionalidades que ele tem: http://pt2.php.net/manual/en/funcref.php
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

acho que não percebeste metade do que eu disse...

corre em todo o lado (e normalmente de forma mais fácil que o PHP),

O PHP só tem problemas nesse ponto caso recorras a APIs de um determinado SO ou recorras a programas específicos de cada SO (o clear em linux e o cls em windows por exemplo).

aquilo que é mais fácil é ter o software necessário a funcionar... eu não disse que o PHP não corria, apenas que dá mais trabalho testar.

e é bem mais fácil de fazer teste com as funções individualmente do que com PHP.

Como assim?

qualquer interpretador permite testar cada função e criar elementos dos tipos de dados complexos para testar cada função é fácil (isto é, definir valores para testar as funções).

além disso, o facto de ser fortemente tipada (mesmo sem ser necessário indicar os tipos, tal como acontece com PHP),
Em PHP não tens de indicar o tipo.

e o que é que eu disse?

permite detectar erros facilmente.

Também o PHP.

não compares o sistema de tipos do PHP com o do Haskell. nem o C, que já é bem mais rígido do que o PHP, é uma linguagem fortemente tipada... uma linguagem com tipagem dinâmica limita logo a capacidade de detectar erros sem ser em execução.

a única vantagem do PHP é mesmo a sintaxe, que é mais próxima das linguagens vulgares, mas por alguma razão, o Haskell é bastante usado nas universidades.

Acrescenta a isso as funcionalidades que ele tem: http://pt2.php.net/manual/en/funcref.php

fixe, é a usares funções já definidas que aprendes a programar... não me parece que isso seja um argumento para indicar o PHP como linguagem para se começar.

não tenho conhecimento de nenhuma universidade que ensine PHP (não quer dizer que não exista!!!), já te perguntaste por que é que o PHP não lá muito popular no meio académico?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

corre em todo o lado (e normalmente de forma mais fácil que o PHP),

O PHP só tem problemas nesse ponto caso recorras a APIs de um determinado SO ou recorras a programas específicos de cada SO (o clear em linux e o cls em windows por exemplo).

aquilo que é mais fácil é ter o software necessário a funcionar... eu não disse que o PHP não corria, apenas que dá mais trabalho testar.

e é bem mais fácil de fazer teste com as funções individualmente do que com PHP.

Como assim?

qualquer interpretador permite testar cada função e criar elementos dos tipos de dados complexos para testar cada função é fácil (isto é, definir valores para testar as funções).

Esclarecido.
além disso, o facto de ser fortemente tipada (mesmo sem ser necessário indicar os tipos, tal como acontece com PHP),
Em PHP não tens de indicar o tipo.

e o que é que eu disse?

Oops. ;)
permite detectar erros facilmente.

Também o PHP.

não compares o sistema de tipos do PHP com o do Haskell. nem o C, que já é bem mais rígido do que o PHP, é uma linguagem fortemente tipada... uma linguagem com tipagem dinâmica limita logo a capacidade de detectar erros sem ser em execução.

Got it.

a única vantagem do PHP é mesmo a sintaxe, que é mais próxima das linguagens vulgares, mas por alguma razão, o Haskell é bastante usado nas universidades.

Acrescenta a isso as funcionalidades que ele tem: http://pt2.php.net/manual/en/funcref.php

fixe, é a usares funções já definidas que aprendes a programar... não me parece que isso seja um argumento para indicar o PHP como linguagem para se começar.

Para iniciantes, é tão válido como o argumento "VB é bom se queres ter alguma coisa palpável rapidamente", ou seja, muito válido.

não tenho conhecimento de nenhuma universidade que ensine PHP (não quer dizer que não exista!!!), já te perguntaste por que é que o PHP não lá muito popular no meio académico?

Talvez porque não te ensina a fazer algoritmos mas motiva-te a procurar aprendê-los, usando para aprendizagem linguagens como C.
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Para iniciantes, é tão válido como o argumento "VB é bom se queres ter alguma coisa palpável rapidamente", ou seja, muito válido.

e que, para mim, é um argumento ridículo para aconselhar uma linguagem... típico de quem acha que programação é cria janelinhas...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Para iniciantes, é tão válido como o argumento "VB é bom se queres ter alguma coisa palpável rapidamente", ou seja, muito válido.

e que, para mim, é um argumento ridículo para aconselhar uma linguagem... típico de quem acha que programação é cria janelinhas...

Diz-me, como é que motivas mais depressa um puto a programar? Obrigando-o a escrever C ou VB? Eu não tou a dizer que tecnicamente PHP é melhor, tou a dizer que para newbies, é a linguagem mais motivadora das 2.
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pois, é uma questão importante. Nisso não podem tirar o "mérito" a linguagens ou tecnologias como o PHP ou o matlab. O pessoal que começa gosta de fazer coisas que se vejam para ter algum gozo em retorno, ou mesmo para mostrar aos amigos.

Devo dizer que sempre fui contra a aprendizagem demasiado académica, tipo, mandar fazer 50000 programas que façam o que outras bibliotecas muito desenvolvidas fazem. Por exemplo, a mim, depois de aprender a usar classes em C++ seguimos para as implementações de pilhas, listas e afins. Uma completa estupidez. Eu preferia ter-me familiarizado mais com a STL do que perder não sei quanto tempo a escrever código do mesmo tipo, super extenso, para depois no fim ter uma implementação que não deixa de ser feita por um aprendiz, má politica mesmo.

Quem diz isso diz programas para calcular área de quadrados. Ouo típico: "escreva a classe POLIGONO" epa.... não tem outro nome: m****. Até porque dá uma ideia enganosa do que é a  necessidade de criação de classes.

Mas eu respondi foi por causa da questão do tipo de dados. Oh roi carlos, não posso concordar com isso de forma alguma. A conversão automátic de tipos de dados não é não é uma característica que surge ao calhas. O C existe há uns 30 anos oi coisa que o valha, na altura o panorama era bem diferente, tinha-se que poupar cada byte possivel e optimizar a performance estritamente até ao máximo. O C foi criado de forma a oferecer controlo completo sobre os dados e a permitir optimização plena processamento e de dados. Isso hoje é completamente diferente.

Não olhando à questão da resolução,até porque nem me lembro agora dos detalhes, imagina que ao escrever um programa usas sempre longint onde podias usar um int. Alguem no fim te vai cobrar a meia duzia de bytes ou ciclos de processador que usaste a mais? Na esmagador maioria dos casos isso não tem qualquer impacto a nenhum nivel.

A conversão automatica de variaveis deve ser usada e é uma utilizadade. E a questão de melhor detecção de erros tambem não faz grande sentido. É que estás a falar de erros que só existem porque não existe conversão automatica de tipos. É o mesmo que dizeres que determinado marca de automóveis é melhor porque tem uma assistencia mais assídua, ora se um carro de outra marca nunca se avariar...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
se um carro de outra marca nunca se avariar

o "se" é muito importante, e se calhar até era desnecessário, pois sabes que o carro algum dia vai avariar.

como já referi, em Haskell não precisas de indicar os tipos de dados. apesar disso, o Haskell (ou melhor, o lambda-calculus, em que o Haskell se baseia) tem um mecanismo de inferência de tipo, que torna a linguagem fortemente tipada, sendo capaz de determinar o tipo de dados mais genérico que uma função pode ter.

digam o que disserem, os tipos permitem detectar muitos erros na compilação, que em PHP só se vão manifestar na execução.

é claro que isto não é útil se o código que criares não tiver erros... só alguém que não trabalha na informática é que acredita que se faz código sem erros à primeira (os programadores são humanos)... é como acreditar que temos um carro que nunca vai avariar...

do conhecimento que tenho da área dos métodos formais e de programação verificada, não se usa PHP, mas sim linguagens como Haskell ou VDM. nestas áreas, a única coisa que interessa é que os programas não tenham bugs, mas quem usa PHP, a única coisa com que se costuma preocupar é com a facilidade que a linguagem lhe oferece.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

mas quem usa PHP, a única coisa com que se costuma preocupar é com a facilidade que a linguagem lhe oferece.

Olha que não, olha que não. ;)
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Primeiro post do Triton foi uma obra-prima, e responde duma excelente forma à tua pergunta. Tudo depende de como começares a interessar-te pelas linguagens. Concordo que aprender um PHP ou um VB ao ínicio seja muito mais aliciante, e depois vais progredindo para conceitos mais avançados.

mas quem usa PHP, a única coisa com que se costuma preocupar é com a facilidade que a linguagem lhe oferece.

Olha que não, olha que não. ;)

Concordo com o djthyrax.. Já houve demasiadas batalhas no fórum e quem acha que o PHP é para brincar.. não vai mudar de opinião, portanto são discussões sem jeito.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Bom,finalmente arranjei tempo para me dedicar á programação e começei com C mas li agora este artigo de Aprenda a programar em 10 anos e reparei que em alguns comnetáiros mencionavam que deveria primeiro aprender Logica de programação e Algoritmos e só depois iria para uma linguagem.

È melhor fazer isso ou continuo com o C? Que livros ou sites recomendam para aprender Logica de programação ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Bom,finalmente arranjei tempo para me dedicar á programação e começei com C mas li agora este artigo de Aprenda a programar em 10 anos e reparei que em alguns comnetáiros mencionavam que deveria primeiro aprender Logica de programação e Algoritmos e só depois iria para uma linguagem.

È melhor fazer isso ou continuo com o C? Que livros ou sites recomendam para aprender Logica de programação ?

Podes usar C para aprender lógica e algoritmos. :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Olá a todos, apenas agora vi este tópico e não quis deixar de dar a minha opinião. Como muitos de vocês sabem eu sou da área de VB (não pretendo mudar) mas isso não influencia a minha opinião.

Acho que uma das coisas que ainda não foi aqui abordada é “o que é programar bem?” e “o que se pretende fazer no futuro”. Existe uma grande diferença entre programação Web ou Windows Forms (ou como já chamaram “janelinhas”) e existe ainda uma coisas importante: para se programar bem é necessários dominar várias tecnologias.

Existem diversas linguagens que fazem mais ou menos a mesma coisa e o que muda é essencialmente o sintaxe e a mais rapidez/facilidade de aprendizagem. Hoje em dia as linguagens disponíveis são muito capazes de fazer “quase” tudo, dentro da sua área.

A minha opinião é que as linguagens mais visuais são mais simples de iniciar e mais fáceis de se conseguirem resultados = motivação.

Por isto acho e aconselho a todos as linguagens VB.NET/C# para Windows Forms e ASP.NET/PHP para Web.

É mais uma opinião ...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

É mais uma opinião ...

Uma opinião que só toma em conta o Windows.
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