Quais as potencialidades e perspectivas para o futuro de cada linguagem?

Xannox

Membro
Boas,

Na faculdade aprendi as seguintes linguagens:

- Python
- Javascript (e Jquery)
- Java
- SQL

Nas cadeiras em questão tive sempre bom aproveitamento, mas nunca houve uma ponte para o mundo do trabalho, o que pode ser feito e qual o potencial de cada linguagem fora do registo académico.

Portanto, após alguma pesquisa, entendi a importância das frameworks.

Agora a minha questão é: qual o potencial de cada uma destas linguagens? Pessoalmente tenho preferencia por Python e logo a seguir Javascript. O que é que posso fazer com cada uma delas? Que frameworks é que me permitem fazer "isto" ou "aquilo" com cada uma delas? Quais têm as melhores perspectivas num futuro próximo na sua área? Quais são mais valorizadas?

Quem gosta de Python deverá aprender Django? Para que serve Django?
Quem gosta de Javascript deve aprender node.js e angular.js?
Li que Ruby on Rails tá na moda, mas que não é escalável... No entanto muitas startups usam. O que acham?

O conceito de fullstack parece fixe na teoria, o que faz na prática um fullstack e que linguagens deve saber?

Peço desculpa pelo excesso de perguntas chatas, mas gostava de saber para onde me virar e está complicado xD.

Cumpz
 
A faculdade ensina-te a pensar em termos lógicos para que com alguma dedicacao consigas pegar em qualquer linguagem e trabalhar com ela.
"No meu tempo" aprendi C,C++, Java - estas foram as principais - e quando se entra no mundo do trabalho, dependendo da empresa, dos projectos vais aprender e trabalhar com outras linguagens. Normalmente uma pessoa percebe em que linguagens se sente mais confortável e tende a trabalhar mais nessa área.
Python nao é a minha onda, por isso, nao posso falar, mas Node e Angular sim vale a pena aprender. Angular está a evoluir bastante, e com o suporte da Google e Microsoft (typescript) nao vai desaparecer, e cada vez mais é usada a nível empresarial.

Fullstack developer é que se pode chamar "Jack of all trades", mas também é um conceito cuja definicao varia de pessoa para pessoa. No geral, é alguém que consegue trabalhar nas diferentes layers de um projecto, desde da base de dados, servicos, logica de negócio, front-end. Se é difícil ser bom em todas as diferentes camadas, sim é, por isso, é que existem equipas de desenvolvimento com DBA's, designers, programadores, malta de QA/Testes. Como programador deves ter um conhecimento genérico a todos os níveis, mas eventualmente um conhecimento aprofundado no desenvolvimento em si.

Para onde te vais virar depende do que realmente te interessa, que no teu caso, aparenta ser desenvolvimento de software, podes continuar a ler e a praticar, mas somente quando comecares a trabalhar num ambiente profissional é que vais comecar a perceber que direccao seguir
 
Na faculdade aprendeste Javascript? Deixaste-me um bocado confuso com essa, aprendeste por ti? Era opção? Não faz nenhum sentido darem Javascript numa linguagem a não ser que seja numa opção ligada à Web ou um curso que não seja Eng. Informática...

Talvez seja melhor indicares que curso tiraste, e se foi Licenciatura ou Mestrado.

Python é excelente para prototipagem, é basicamente C scripting, tu podes facilmente criar código em C e fazer import em Python, e permite-te programar tanto a baixo nível como a alto nível, o que é excelente quando queres fazer um protótipo de forma rápida. Ao nível de performance, deixa muito a desejar.

Javascript, é essencialmente virado para a Web, mas nos últimos tempos tem havido mudanças, existe programação server side e client side, imensas frameworks/bibliotecas, é excelente para quem quiser ter um esgotamento, mas se gostas, força, é bastante procurada.

Java, é basicamente a linguagem mãe dos objectos, foi desenhada para ajudar o programador, mas é um pouco complexa, não sei até que ponto não vale mais ir para Scala do que Java...

SQL, está directamente ligado a base de dados, acho que não vale a pena comentar sobre a importância das base de dados.

Tudo o que é bibliotecas/frameworks só vale a pena aprender se fores usar, geralmente estão em constante mudança, aprenderes para depois não usares é um pouco perca de tempo...
 
Obrigado aos dois pela resposta!

Na faculdade aprendeste Javascript? Deixaste-me um bocado confuso com essa, aprendeste por ti? Era opção? Não faz nenhum sentido darem Javascript numa linguagem a não ser que seja numa opção ligada à Web ou um curso que não seja Eng. Informática...

Talvez seja melhor indicares que curso tiraste, e se foi Licenciatura ou Mestrado.

Tou a acabar a licenciatura em Matemática Aplicada, mas fiz Minor em Informática. No meu curso usei Java, C++(muito básico, apenas para uns algoritmos de análise numérica), Matlab e vou ter R ainda. Python, SQL e Javascript aprendi no Minor.

Na verdade gosto muito mais de informática do que do meu curso, mas descobri-o já um bocado tarde e não quero fazer outra licenciatura, portanto aprofundar conhecimento online parece-me uma boa solução.

To be honest, o que me dá mais gozo é a algoritmia em si, pelo que não me importo de mudar de linguagem, só prefiro Python porque sinto que é mais intuitivo para mim escrever e tenho mais prática, mas se "lacka" em performance, talvez deva pegar mais em Java (ou Scala)?

Acham que antes de partir para frameworks deva aprofundar melhor os meus conhecimentos de estruturas de dados, do tipo fazer aqueles desafios de algoritmia típicos de entrevistas da google? A cena é que tenho receio que a forma de pensar varie de linguagem para linguagem e, nesse sentido, seria importante fazê-lo numa linguagem que depois não me seja inútil. O que acham?
 
Python é tipo canivete suiço, tem um montão de bibliotecas para tudo e mais alguma coisa e pode sempre ser a linguagem de ponte entre uma linguagem e outra. SQL está bem ramificado e embora haja outros paradigmas(NoSQL, etc) em termos empresariais não deve haver mudanças, em startups é que se vê pessoal a usar mongoDB (atenção que no python também consegues fazer o mesmo tipo de queries e até com mais complexidade que no SQL). Em termos de performance fica a perder para outras linguagens como Java, C/C++, mas atenção que não quer dizer que a linguagem seja lenta, diria que para 90 ou 95% do que o pessoal faz é suficientemente rápida, agora se por exemplo tivesses que programar algo que a latência seja a característica mais fulcrar a combater do projeto, obviamente que python fica a perder para C ou java por exemplo.

Li agora o teu comentário e javascript pode-te ser utíl para apresentares dados numa pagina web, o mesmo podes fazer no python mas penso que javascript poderá ser mais completo nesse aspecto (front-end).

Tudo o que fizeste no matlab o python tb faz. És capaz de andar lado a lado com python e R.

edit: O teu curso até está bem pensado e ensinaram-te as ferramentas mais adequadas para a tua área, mas neste momento não sabes o que não sabes. Começa a pesquisar no google coisas como "big data", "data science", "javascript big data", "data analysis python", "data analysis javascript" etc etc faz todo o tipo de combinações e começas a perceber melhor as coisas que aprendeste no curso onde se encaixam com essas linguagens que aprendeste (que são ao fim e ao cabo ferramentas para a tua área que é transcrever o que os números pretendem dizer em palavras).
 
Última edição:
Obrigado pela resposta @Jack_Estripador !

Começa a pesquisar no google coisas como "big data", "data science", "javascript big data", "data analysis python", "data analysis javascript" etc etc faz todo o tipo de combinações e começas a perceber melhor as coisas que aprendeste no curso onde se encaixam com essas linguagens que aprendeste (que são ao fim e ao cabo ferramentas para a tua área que é transcrever o que os números pretendem dizer em palavras).

O meu problema nesses tópicos de data science é que a área da estatística é o meu 31 xD.
 
javascript e sql são linguagens de suporte a primeira para paginas html e a segunda para bases de dados

convém saber ambas para por exemplo fazeres um site dinâmico

java há muito tempo que está em primeiro lugar para desenvolvimento web, J2EE

basta ver nos sites de oferta de emprego
 
Na faculdade aprendeste Javascript? Deixaste-me um bocado confuso com essa, aprendeste por ti? Era opção? Não faz nenhum sentido darem Javascript numa linguagem a não ser que seja numa opção ligada à Web ou um curso que não seja Eng. Informática...

What? No meu curso ensinaram (ISEP, licenciatura em Eng. Informática) Javascript e PHP. São duas linguagens fundamentais (JS mais que PHP), porque não haveriam de ensinar? Sem JavaScript não fazes quase nada de web hoje em dia.
 
What? No meu curso ensinaram (ISEP, licenciatura em Eng. Informática) Javascript e PHP. São duas linguagens fundamentais (JS mais que PHP), porque não haveriam de ensinar? Sem JavaScript não fazes quase nada de web hoje em dia.
Em Eng. Informática deve-se ensinar os conceitos, não as linguagens, no ínicio ensina-se esses conceitos usando as linguagens apropriadas (geralmente usam Java para POO, C para algoritmos, Scheme para recursividade vs Iteratividade, etc), Javascript e PHP não são linguagens para ensinar os conceitos, por isso, ao aprenderes a programar deves conseguir usar qualquer linguagem.

Geralmente há cadeiras de opção ligadas à Web, para quem quer seguir essa área, mesmo assim não devias aprender nem o Javascript e muito menos o PHP, usei ambas em cadeiras, mas nunca foi dado, ainda por cima o PHP é provavelmente a linguagem de programação com melhor documentação.
 
Javascript, é essencialmente virado para a Web, mas nos últimos tempos tem havido mudanças, existe programação server side e client side, imensas frameworks/bibliotecas, é excelente para quem quiser ter um esgotamento, mas se gostas, força, é bastante procurada.

Porque dizes que JavaScript é excelente para quem quiser ter um esgotamento? É assim tão desgastante?
 
Porque dizes que JavaScript é excelente para quem quiser ter um esgotamento? É assim tão desgastante?
É uma linguagem lixada para se fazer debug digamos assim. E mesmo por vezes para fazeres certas coisas tens que dar uma volta do caraças...mas agora cada vez há mais bibliotecas que te ajudam. Atenção que não sou especialista de javascript, só um mero curioso e que volta e meia tenho de dar uns toques, por isso falo pela minha experiência, não sei se quem disse essa frase disse-a por estas razões.
 
Última edição:
Python é excelente para prototipagem, é basicamente C scripting, tu podes facilmente criar código em C e fazer import em Python, e permite-te programar tanto a baixo nível como a alto nível, o que é excelente quando queres fazer um protótipo de forma rápida. Ao nível de performance, deixa muito a desejar.

eu estou a tentar iniciar-me em Python, tipo para addons do kodi

e uma coisa que detestei logo é o modo bizarro como delimita os blocos de código, é por identação

bolas, isso é alto nível ? o C usa as chavetas o java idem

e ainda não entendi bem, ao inserir uma simples linha de código dentro de um IF dá-me erros de identação..

corro para trás, subo de linha, evito os TABs e faço espaços, e o erro continua

porcaria de linguagem de alto nível
 
eu estou a tentar iniciar-me em Python, tipo para addons do kodi

e uma coisa que detestei logo é o modo bizarro como delimita os blocos de código, é por identação

bolas, isso é alto nível ? o C usa as chavetas o java idem

e ainda não entendi bem, ao inserir uma simples linha de código dentro de um IF dá-me erros de identação..

corro para trás, subo de linha, evito os TABs e faço espaços, e o erro continua

porcaria de linguagem de alto nível
Alto nível quer dizer ao nível de aplicações e derivados, baixo nível é mais ao nível de drivers, gestão de memória, algoritmia, etc, para fazeres uma aplicação simples é muito mais rápido a fazer numa linguagem de alto nível do que de baixo nível, no entanto, tens um menor controlo de optimização numa linguagem de alto nível.

Em termos de espaços, tens que ser igual para todos, ou seja, se começas com 2 espaços, tens que usar sempre 2 espaços.
 
Alto nível quer dizer ao nível de aplicações e derivados, baixo nível é mais ao nível de drivers, gestão de memória, algoritmia, etc, para fazeres uma aplicação simples é muito mais rápido a fazer numa linguagem de alto nível do que de baixo nível, no entanto, tens um menor controlo de optimização numa linguagem de alto nível.

baixo nível é para aplicações muito específicas que não encontras todos os dias, depende também das profissões como é óbvio, quem trabalhe em sistemas de robótica e sistemas operativos e coisas similares

alto nível é o comum do dia a dia

Em termos de espaços, tens que ser igual para todos, ou seja, se começas com 2 espaços, tens que usar sempre 2 espaços.

porra, à vezes nem isso

uso o Eclipse com o Pydev, e o interpretador dá-me erro quando tudo me aparece alinhado e dentro dos blocos em que devem estar
 
Back
Topo