LusoRobótica - Robótica em Português

Software => Software e Programação => Tópico iniciado por: MAntunes em 22 de Fevereiro de 2016, 19:19

Título: Aprender uma nova linguagem de programação
Enviado por: MAntunes em 22 de Fevereiro de 2016, 19:19
Boas pessoal, sou estudante de Eng. Electrotécnica de Computadores, e no curso apenas ensinam a programar em C/C++ e gostava de aprender mais alguma, para alargar o meu leque de conhecimentos. O que recomendam?
As linguagens Web são uma boa opção?
Cumprimentos!
Título: Re: Aprender uma nova linguagem de programação
Enviado por: jm_araujo em 22 de Fevereiro de 2016, 20:53
Eu recomendo Python. Excelente linguagem para "desenrrasques", e ao mesmo tempo poderosíssima.

Linguagens web é demasiado vago, PHP, Javascript, Ruby são algo diferentes. Mas se queres ir por essa via, não te esqueças de complementar com SQL.
Título: Re: Aprender uma nova linguagem de programação
Enviado por: TheDeadLives em 22 de Fevereiro de 2016, 21:38
Boas pessoal, sou estudante de Eng. Electrotécnica de Computadores, e no curso apenas ensinam a programar em C/C++ e gostava de aprender mais alguma, para alargar o meu leque de conhecimentos. O que recomendam?
As linguagens Web são uma boa opção?
Cumprimentos!

O jm_araujo disse tudo o que eu ia referir. Python é utilizado para n funções e é uma das linguagens mais utilizadas (java também...).
As aplicações de c/c++ são diferentes das de web...mas se quiseres web aprende php e completa com sql (mysql) e javascript.
Título: Re: Aprender uma nova linguagem de programação
Enviado por: senso em 22 de Fevereiro de 2016, 21:51
Python é engraçado, mas tem um bocado a doença do Chrome, haja RAM lol.
Não sendo o melhor exemplo, a fazer plot de um fractal(Julia) com 1500x1500 a cores estava a usar sensivelmente 8GB de RAM, e não sabe lá muito bem o que é threads, que cola-me sempre só um core e os outros ficam a olhar.
Título: Re: Aprender uma nova linguagem de programação
Enviado por: jm_araujo em 22 de Fevereiro de 2016, 22:05
"horses for courses"
Queres fazer fractais, mete Cuda ao barulho com uma boa gráfica, é para isso que serve. E há uma lib PyCuda, descobri agora : https://developer.nvidia.com/pycuda. Mais uma vez a versatilidade do Python a exibir-se :D
Título: Re: Aprender uma nova linguagem de programação
Enviado por: senso em 22 de Fevereiro de 2016, 22:16
A minha gráfica do portatil é do tempo da pedra, uma GT630M, Fermi com 96 shadders, mais depressa o processador dá conta do recado que a gráfica..
Não disse que era mau, mas como é interpretado nem tudo é perfeito, mas em meia duzia de linhas faz-se muuuuuuuuuuuuuuuuuita coisa.
Título: Re: Aprender uma nova linguagem de programação
Enviado por: Njay em 23 de Fevereiro de 2016, 00:21
python tb é uma boa escolha. Como já sabes C/C++, o que tu queres aprender a seguir é uma linguagem "canivete suiço", de desenvolvimento rápido, interpretada e preferencialmente independente da plataforma. E depois aprende uma biblioteca para GUIs, como Tk ou algo do género.

Não sendo o melhor exemplo, a fazer plot de um fractal(Julia) com 1500x1500 a cores estava a usar sensivelmente 8GB de RAM, (...)
Pá, se tavas a criar a imagem em memória, 1500 x 1500 x 3 bytes (RGB) dá logo ~6.5GB, e se internamente o gajo usar RGBT são 8.7GB.
Título: Re: Aprender uma nova linguagem de programação
Enviado por: Kristey em 23 de Fevereiro de 2016, 00:29
ando a dar uns toques em pyton, e aquilo é interessante, embora como o Senso diz, precisa de ram.
Contudo aquilo parece quase pseudo codigo, e sempre dá para inventares umas coisas com o rapsberry.
Título: Re: Aprender uma nova linguagem de programação
Enviado por: jm_araujo em 23 de Fevereiro de 2016, 00:40
Pá, se tavas a criar a imagem em memória, 1500 x 1500 x 3 bytes (RGB) dá logo ~6.5GB, e se internamente o gajo usar RGBT são 8.7GB.
Saltaste 3 ordens de magnitude, com essas contas dão MB e não GB.
Título: Re: Aprender uma nova linguagem de programação
Enviado por: senso em 23 de Fevereiro de 2016, 00:52
São pixeis grandes  8)
Título: Re: Aprender uma nova linguagem de programação
Enviado por: Njay em 23 de Fevereiro de 2016, 01:23
[smiley-do-gajo-com-a-mão-na-cara] :)

São pixeis multicor, ou então voxels :p
Título: Re: Aprender uma nova linguagem de programação
Enviado por: jm_araujo em 23 de Fevereiro de 2016, 11:39
===== OFFTOPIC =====
Python é engraçado, mas tem um bocado a doença do Chrome, haja RAM lol.
Não sendo o melhor exemplo, a fazer plot de um fractal(Julia) com 1500x1500 a cores estava a usar sensivelmente 8GB de RAM, e não sabe lá muito bem o que é threads, que cola-me sempre só um core e os outros ficam a olhar.
Partilha esse código :)
Estranhei esses valores, porque lembro-me de calcular fractais no PC quando um Giga era quase inimaginável (era tudo medido em MHz e MB), experimentei este exemplo: http://code.activestate.com/recipes/577120-julia-fractals/ (http://code.activestate.com/recipes/577120-julia-fractals/) (primeiro resultado do google), e ronda os 25MB de ocupação de memória durante a execução.

E aparentemente suporta threading: http://www.tutorialspoint.com/python/python_multithreading.htm (http://www.tutorialspoint.com/python/python_multithreading.htm) , mas está nas mãos do programador (há outra maneira?)
Título: Re: Aprender uma nova linguagem de programação
Enviado por: MAntunes em 24 de Fevereiro de 2016, 00:45
Obrigado a todos pela ajuda até agora!
Já tinha pensado em Python sim, já tive um primeiro contacto com a linguagem há uns tempos.. Fiz um twitter bot que tweetava a cada hora "São X horas.". Esteve ligado durante dias no meu RPi.

Eu sei que quando falei em linguagens web fui um pouco vago, mas também não percebo grande coisa do assunto. HTML, CSS, PHP, Javascript e ainda SQL é tanta coisa! Nem sei bem o que cada uma faz..
Cumprimentos!
Título: Re: Aprender uma nova linguagem de programação
Enviado por: jm_araujo em 24 de Fevereiro de 2016, 10:50
Obrigado a todos pela ajuda até agora!
Já tinha pensado em Python sim, já tive um primeiro contacto com a linguagem há uns tempos.. Fiz um twitter bot que tweetava a cada hora "São X horas.". Esteve ligado durante dias no meu RPi.

Eu sei que quando falei em linguagens web fui um pouco vago, mas também não percebo grande coisa do assunto. HTML, CSS, PHP, Javascript e ainda SQL é tanta coisa! Nem sei bem o que cada uma faz..
Cumprimentos!
HMTL - O "conteúdo" da página. Texto e links, indicações de formatação, botões, é onde está "tudo" o que vês numa página. NÃO é uma linguagem de programação, apesar de muitas vezes por ignorância ser indicada como tal.

CSS - Define o estilo dos componentes da página: Margens, cores, tamanho de texto, visibilidade, etc. No HTML cada elemento (texto, botão) leva uma "etiqueta" que depois podes definir o estilo por CSS. Não tem de ser um ficheiro separado, pode estar incluído no próprio ficheiro html.

PHP - Uma linguagem de programação interpretada, relativamente simples, que corre no servidor WEB e é normalmente usada para gerar HTML. Tipo abres um tópico de um fórum, o PHP vai às bases de dados e tira os textos, e gera o HTML com tudo direitinho para veres a página como deve ser. Serve de "barreira" entre o lado web e o armazenamento de informação.

Javascript - Linguagem de programação interpretada que corre no browser (por quem está a ver  a página). Permite dar interatividade às páginas Web sem teres de pedir uma nova página ao servidor. Muito poderoso quando bem usado, pode criar elementos dinamicamente nas páginas (aparecer ou desaparecer coisas conforme o que estiveres a fazer), e mais engraçado permite buscar ao servidor informação para mostrar ao utilizador sem ter de recarregar a página toda (isso é o AJAX que já deves ter ouvido)

SQL - É uma linguagem, mas não considero que seja de programação. É como interages com bases de dados. Adicionar elementos, consultar, pesquisas, ordenar, cruzar dados, permite fazer quase tudo que te possas lembrar e ainda mais. Tens normalmente um servidor de BD que fala SQL, com o que comunicas a partir de um programa. No caso da web essas chamadas (querys) são feitas nos programas que suportam o site, sempre do lado do servidor (quer dizer no PHP e  não no javascript). Se quiseres consultar do lado do Javascript (para conteúdos dinâmicos), tens de fazer a interface por um PHP no lado do servidor (para evitar ataques à BD, que mesmo assim podem ser possíveis se tiveres erros).


Mais dúvidas? :D
Se queres ver html, javascript e CSS (o que é usado no lado do cliente), usa o botão direito do rato numa página qualquer e clica no "inspecionar". Podes mexer à vontade, editar o que te apetecer, que se fizeres um refresh volta tudo ao normal. O que estás a ver está tudo no teu browser, não "estragas" nada no servidor.


Para brincares com PHP e SQL em ambiente web, instalas um AMP (Apache,MySQL,PHP) apropriado ao teu sistema (no windows uso o XAMP, há versão portable), metes-lhe uma aplicação web qualquer (por exemplo um fórum como o SMF), e podes explorar os seus ficheiros e ver o que fazem.
Se te parecer muito complicado, esta é uma área que não falta informação e tutorials na net, Google é o teu melhor amigo.


Título: Re: Aprender uma nova linguagem de programação
Enviado por: samc em 24 de Fevereiro de 2016, 17:42
Seria comum neste tópico cada um dar o seu bitaite e aqui vai o meu. Bons conhecimentos de C e de uma linguagem orientada a objetos como C++ são essenciais como base para qualquer outra linguagem que vás aprender. Tudo depende das tuas necessidades, caso no futuro decidas entrar no mundo de desenvolvimento para a Web, posso dizer que as coisas estão muito diferentes e assim como os projetos aumentaram na sua complexidade, também aumentou a complexidade inicial do ambiente de desenvolvimento. O tempo do dreamweaver para criar a página HTML e uma IDE simples para escrever o código PHP, já acabou há vários anos.
O futuro está a passar pelo uso de ferramentas de automatização como preprocessors e a maioria corre em JavaScript (há scripts em Python e Ruby mas neste ambiente não estão a ganhar tanta relevância). Além disso, existe uma grande migração geral para as webapps. Se pesquisares encontras por exemplo, um grande investimento da Google em "frameworks" como o angularJS e o Polymer. Por isso se a tua meta é mais orientada para a Web, JavaScript é essencial.
Se a tua meta é o desenvolvimento de apps mobile, Java e swift serão as melhores escolhas.
No caso de um eng eletrotécnica que irá trabalhar bastante com microcontroladores, quanto mais conhecimentos de C avançados tiveres maior produtividade terás na tua profissão visto que mais facilmente poderás "atacar" qualquer plataforma de desenvolvimento.
Título: Re: Aprender uma nova linguagem de programação
Enviado por: KammutierSpule em 24 de Fevereiro de 2016, 18:06
Como ja tem aqui muitas respostas, relembro tambem o jeito que da ao engenheiro usar o Exel / Libreoffice Calc.
Mais tarde ou mais cedo teras de fazer umas "tabelas avancadas".
Eu nunca fiz scripts/macros, mas pelo menos as formulas e formatacao condicional ajudam em muita coisa.
Título: Re: Aprender uma nova linguagem de programação
Enviado por: jm_araujo em 24 de Fevereiro de 2016, 19:07
+1 (been there, still have to do it)
Quantas "aplicações corporativas" não são mais que umas folhas de excel. As ferramentas mais úteis sem entrar no VBA são as funções de lookup (vlookup e match), e as PivotTables. Vale a pena perder um pouco de tempo nelas.
Título: Re: Aprender uma nova linguagem de programação
Enviado por: MAntunes em 25 de Fevereiro de 2016, 21:08
Obrigado a todos pelas opiniões. E obrigado @jm_araujo pela explicação tão exaustiva!
Acho que vou mesmo avançar por uma vertente mais web por agora, por ser uma coisa completamente diferente para mim, pode ser que goste! Vou usar o meu raspberry pi como servidor para correr todas estas linguagens: https://www.raspberrypi.org/learning/lamp-web-server-with-wordpress/worksheet/ (https://www.raspberrypi.org/learning/lamp-web-server-with-wordpress/worksheet/)
Depois noutra altura tentarei o Java, Python mais a sério, etc.
Outra coisa, conhecem sites com tutoriais de linguagens Web, com metas, projetos, etc? Já vi o CodeAcademy e o Khan Academy, há algum feedback?
Cumprimentos!
Título: Re: Aprender uma nova linguagem de programação
Enviado por: TheDeadLives em 26 de Fevereiro de 2016, 13:40
Obrigado a todos pelas opiniões. E obrigado @jm_araujo pela explicação tão exaustiva!
Acho que vou mesmo avançar por uma vertente mais web por agora, por ser uma coisa completamente diferente para mim, pode ser que goste! Vou usar o meu raspberry pi como servidor para correr todas estas linguagens: https://www.raspberrypi.org/learning/lamp-web-server-with-wordpress/worksheet/ (https://www.raspberrypi.org/learning/lamp-web-server-with-wordpress/worksheet/)
Depois noutra altura tentarei o Java, Python mais a sério, etc.
Outra coisa, conhecem sites com tutoriais de linguagens Web, com metas, projetos, etc? Já vi o CodeAcademy e o Khan Academy, há algum feedback?
Cumprimentos!

Eu aprendi a programar em php/html/css a partir do Codecademy. É bastante bom para php e css, os exemplos estão muito bons, recomendo totalmente. Mas como é claro, nada melhor do que depois ir vendo scripts e aprendendo. Depois de aprenderes tenta analisar o codigo do wordpress, por exemplo, e fazer temas assim. A melhor forma de aprender uma linguagem é praticando :D