Tópico da Programação (desenvolvimento de software)

Tópico da Programação (desenvolvimento de software)

  • Java

    Votes: 66 53.2%
  • C

    Votes: 77 62.1%
  • C++

    Votes: 58 46.8%
  • C#

    Votes: 47 37.9%
  • PHP

    Votes: 45 36.3%
  • BASIC (Visual e outros)

    Votes: 63 50.8%
  • Objective-C

    Votes: 2 1.6%
  • Python

    Votes: 23 18.5%
  • PERL

    Votes: 11 8.9%
  • JavaScript

    Votes: 55 44.4%
  • Ruby

    Votes: 6 4.8%
  • Pascal (ANSI, Turbo, Delphi, outros)

    Votes: 55 44.4%
  • Lisp

    Votes: 9 7.3%
  • Assembly (quais?)

    Votes: 35 28.2%
  • Fortran

    Votes: 12 9.7%
  • COBOL

    Votes: 16 12.9%
  • Haskell / OCaml

    Votes: 8 6.5%
  • Prolog

    Votes: 22 17.7%
  • .NET

    Votes: 37 29.8%
  • Struts/Hibernate

    Votes: 4 3.2%

  • Total voters
    124
Comecei a programar aos 12 anos com o BASIC dos Sinclair e MS-Basic de um APRICOT.

Os mais complexos que fiz foram um diario, e um programa de gestão de stocks para um vizinho.

Aos 16 tentei iniciar-me no Dbase III, mas perdi a paciência...

Ainda tive contacto com Visual Basic / C / Cobol, mas nem sequer tentei muito...


Acho que as linguagens de progamação foram-se complicando bastante...

Qualquer pessoa que pegásse num programa de BASIC facilmente em 5 minutos percebia o que ai se passava, os comandos eram muito intuitivos.


Ao longo dos anos as novas linguagens de programação foram complicando as sintaxes dos comandos e estrutura das linhas o que me desmotivou bastante...

Sim, a programação de hoje tem potencialidades brutais que não existiam na década de 80/90, mas é preciso tirar um curso só para conseguir ler e perceber o que lá está escrito, para mim não serve, tenho coisas mais interessantes que fazer...


Mas tenho pena, ás vezes apetece-me fazer uns programitas ou scripts, mas ainda não encontrei um livro de ajuda que de uma maneira simples ensine a programar, e nem sei sequer que linguagem será a mais adequada para determinada função, por isso nem me sinto motivado a tentar aprender...
 
Quanto tempo demoraste a aprender isso tudo?

Eu aprendi vbasic, c++ batch não sei se conta...
Gostava de aprender php, sql (dentro do que este user apontou), java e javascript demorarei muito tempo?(assim uma média)

A vida toda.
Fiz o meu primeiro programa em 1981... há 32 anos, portanto... e continuo a aprender.

Em informática a única constante é a mudança.
As coisas evoluem a um ritmo impressionante.
Portanto, neste ramo a aprendizagem faz parte do dia-a-dia.

Há linguagens que aprendi como hobby, como BASIC, Assembly Z80 e PERL.
Outras linguagens aprendi profissionalmente, como Informix 4GL e SQL Windows.
E também algumas na universidade, como Fortran, Pascal e Modula 2.

Portanto, há pelo menos 3 maneiras de aprender:
- Auto-estudo (hobby)
- Profissionalmente (trabalhando)
- Formação (profissional, ou académica)

Trabalhando na área, o ideal é aprender dos 3 modos.
Não trabalhando da área, depende dos objectivos.
Se for para projectos pessoais, basta o auto-estudo.
Se for com objectivos mais ambiciosos, o ideal é ir para uma universidade.
Em qualquer dos casos, o auto-estudo é imprescindível.

Ainda assim, aprender linguagens de programação funciona apenas como hobby.
A programação (desenvolvimento de software) tem muito pouco a ver com saber
uma (ou muitas) linguagens de programação.

Quero com isto dizer que o desenvolvimento de software é uma área muito vasta
de conhecimento, da qual as linguagens de programação são uma ínfima parte.

E mesmo que estejamos a falar apenas de fazer código, saber uma (ou várias)
linguagem de programação não é suficiente. Há que saber pelo menos também
os conceitos de programação.

As linguagens de programação assentam em conceitos, e não se podem dominar
as linguagens sem dominar os conceitos.

Exemplos de conceitos/paradigmas:
- programação estruturada/procedimental
- programação orientada por objectos
- programação funcional
- etc.

As linguagens implementam estes conceitos.
Por exemplo, Java é orientada por objectos. OCaml é funcional, Prolog é lógica.

Por tudo isto (e também por hobby), cerca de 20 anos depois do que
aprendi no IST, deu-me para me inscrever noutro curso.

Assim, para responder à tua última questão (penso já ter respondido à primeira),
depende do teu empenho e do propósito da tua demanda. Ou seja, define o que
consideras "aprender". Aprender para conseguir fazer qualquer coisa? Aprender
para fazer trabalhos pagos? Aprender para ser um especialista?

Para fazer qualquer coisa amadora, com empenho, aprendes durante o Verão.
Para fazer trabalhos pagos, o ideal é ter formação (meses).
Para ser especialista... anos (muitos, mais de 10, e se deixares de estudar deixas
de ser especialista logo a seguir).
Teach Yourself Programming in Ten Years

Trabalho de casa:
Investiga quem é o Peter Norvig. Que livros é que ele escreveu. Quais as cadeiras
de que cursos universitários usam um dos seus livros como bibliografia obrigatória.
 
"Para ser especialista... anos (muitos, mais de 10, e se deixares de estudar deixas
de ser especialista logo a seguir)." Uma verdade absoluta.

Os users mais experts que me desculpem o offtópic, mas era do máximo interesse suscétivel com índole mais informativa para os novatos , se algum user deixasse aqui os comandos ou uma sucinta abordagem descritiva , tutorias e manuais de como se cria um site com esse software wordpress, objective c,Perl, Ruby, Python, mysql, php, css, xhtml, javascript ou seja os famosos para programação developing para começar a explorar essas ferramentas, mero titulo de curiosidade (Hobby), é como estudar Matemática a vida inteira[;)].Agradeço a contributo no tópico.
 
Last edited:
Os users mais experts que me desculpem o offtópic, mas era do máximo interesse suscétivel com índole mais informativa para os novatos , se algum user deixasse aqui os comandos ou uma sucinta abordagem descritiva , tutorias e manuais de como se cria um site com esse software wordpress, objective c, mysql, php, css, xhtml, javascript ou seja os famosos para programação developing para começar a explorar essas ferramentas, mero titulo de curiosidade (Hobby), é como estudar Matemática a vida inteira[;)].Agradeço a contributo no tópico.

Ou eu não compreendi o teu pedido, ou então não fazes noção da dimensão que
isso envolve...

Exemplo:
Ainda no outro dia estive a ver um tutorial.
1. Era destinado a quem já sabe programar bem.
2. Era sobre uma pequena parte de uma framework usada numa linguagem de programação.
3. Estava dividido em mais de 10 páginas.
4. Cada página era mais longa que 10 dos posts que eu costumo fazer (e dos quais todos
se queixam de que não lêem TL;DR).

Ora, o que aí não falta na Internet são tutoriais.
Além disso, normalmente os tutoriais apenas são adequados a quem já sabe alguma coisa.
Um principiante deve pegar em bons livros (um não chega), e estudar. Daí que a minha dica
é fazer um curso (seja de formação ou universitário).

Como disse o Baiones, antigamente era fácil aprender a programar, porque as coisas eram
bem mais simples que actualmente. Hoje em dia a complexidade não permite que se consiga
fazer qualquer coisa de jeito sem ter de aprender MUITO.

Exemplo:

Para fazer um simples site dinâmico é necessário aprender uma linguagem de programação
(PHP, por exemplo), SQL (para aceder a uma base de dados relacional), HTML, CSS e
Javascript. E mesmo isto, que pode parecer pouco, é muito, porque há que aprender as
ferramentas e os conceitos todos inerentes.

Antigamente, para fazer um programa no computador que se tinha em casa bastava aprender
BASIC.
 
Para um principiante que começa do zero o ideal é estudar por livros e tirar um curso é o que recomendam , as tutorias não são suficientes, sei que é ao longo da vida que se aprende e é trabalhando que se aprende mais , mas as bases são importantes.
 
Baiones, como já te tinha dito pessoalmente:
Guia Informativo - Universidade Aberta

Só se pagam as UC às quais nos inscrevemos.

Alternativamente há o programa de UC isoladas, onde podes escolher apenas
as que te interessam:
Universidade Aberta - Em Qualquer Lugar do Mundo - Unidades Curriculares Isoladas
Oh Nuno, daquela lista gigante que apresentas no tópico, para que serve cada linguagem?


Com tanta escolha que ha, nem sei por onde começar...


Por ex, para internet ha tanta variedade que como raio consigo decidir qual a que mais se adequa?

Antes de tentar aprender uma, por qual começo?

Daquela lista ha alguma que se possa dizer que deve ser a primeira a ser aprendida, porque facilita depois aprender as outras?

Por ex, querendo fazer um programa do mais simples que ha para correr em LINUX, do género pedir para escrever uma palavra, e depois "imprimir" essa mesma palavra numa janela no ecran, qual o melhor?


Falei neste exemplo pois quando aprendi BASIC com 12 anos foi mesmo dessa maneira, a começar por coisas muito simples.
 
Oh Nuno, daquela lista gigante que apresentas no tópico, para que serve cada linguagem?


Com tanta escolha que ha, nem sei por onde começar...


Por ex, para internet ha tanta variedade que como raio consigo decidir qual a que mais se adequa?

Antes de tentar aprender uma, por qual começo?

Daquela lista ha alguma que se possa dizer que deve ser a primeira a ser aprendida, porque facilita depois aprender as outras?

Por ex, querendo fazer um programa do mais simples que ha para correr em LINUX, do género pedir para escrever uma palavra, e depois "imprimir" essa mesma palavra numa janela no ecran, qual o melhor?


Falei neste exemplo pois quando aprendi BASIC com 12 anos foi mesmo dessa maneira, a começar por coisas muito simples.

Praticamente todas as linguagens modernas permitem fazer "hello worlds" de forma rápida.

A escolha da linguagem depende do gosto e conhecimento do programador. Há linguagens que no entanto não podes escapar, se programas para front ends web usas JavaScript, se interages com uma base de dados relacional usas SQL, para o backend podes usar muita coisa.

Qual a melhor para apreender? Não faço ideia, mas olha para as primeiras linguagens aprendidas no curriculum de computer science do MIT, provavelmente são as escolhas mais acertadas.
 
Para um principiante que começa do zero o ideal é estudar por livros e tirar um curso é o que recomendam , as tutorias não são suficientes, sei que é ao longo da vida que se aprende e é trabalhando que se aprende mais , mas as bases são importantes.

E são precisamente as bases (conceitos/teoria) que são as mais difíceis
de ensinar e aprender.
Os conceitos apenas conseguem ser compreendidos (por oposição a
decorados) por quem sabe programar. E para aprender a programar só há
um modo: programando.

Eu costumo dizer:
Um programador faz programas, mas nem todos os que fazem programas
são programadores.

Ou seja, mais do que ser algo que se aprende, é algo que se constrói.
São várias camadas de conhecimento. E são camadas distintas que se
complementam. Não basta aprender uma camada de cada vez, é necessário
juntá-las como se fosse um tecido, onde os fios horizontais ou verticais
sozinhos não conseguem criar um tecido, mas ambos estando entrançados
já o conseguem fazer.
 
Oh Nuno, daquela lista gigante que apresentas no tópico, para que serve cada linguagem?


Com tanta escolha que ha, nem sei por onde começar...


Por ex, para internet ha tanta variedade que como raio consigo decidir qual a que mais se adequa?

Antes de tentar aprender uma, por qual começo?

Daquela lista ha alguma que se possa dizer que deve ser a primeira a ser aprendida, porque facilita depois aprender as outras?

Por ex, querendo fazer um programa do mais simples que ha para correr em LINUX, do género pedir para escrever uma palavra, e depois "imprimir" essa mesma palavra numa janela no ecran, qual o melhor?


Falei neste exemplo pois quando aprendi BASIC com 12 anos foi mesmo dessa maneira, a começar por coisas muito simples.

Cada linguagem tem os seus defeitos e as suas virtudes.
Se alguma coisa (não necessariamente uma linguagem) fosse 100% boa, nunca
haveria lugar para outras.

Portanto, tudo depende daquilo que se pretende fazer.

No entanto, para aprender, não é muito importante escolher com base nas virtudes
para determinados projectos.

Para aprender o importante é escolher um CONJUNTO de linguagens para fazer
um percurso de aprendizagem que permita aprender e compreender os conceitos
de programação.

Tendo aprendido um conjunto de linguagens, tendo compreendido os conceitos, e
tendo experiência, aprende-se facilmente qualquer outra linguagem.

Consequentemente... qual a primeira a aprender?
Pergunta difícil...
Resposta LONGA!!!

Eu diria PASCAL.
Não foi a primeira que aprendi. Antes aprendi BASIC, ASSEMBLY e FORTRAN.
[:)]

Mas a linguagem foi desenvolvida por Niklaus Wirth propositadamente para
explicar os conceitos de programação estruturada. Actualmente é uma linguagem
"morta", mas teve bastante sucesso (ver Turbo Pascal) no passado. O problema
é que o objectivo da linguagem é mais académico, e nasceu há tanto tempo
quanto eu.
[:)]

Niklaus Wirth - Wikipedia, the free encyclopedia
Pascal (programming language) - Wikipedia, the free encyclopedia
designed in 1968–1969 and published in 1970 by Niklaus Wirth as a small and efficient language intended to encourage good programming practices using structured programming and data structuring.
Turbo Pascal - Wikipedia, the free encyclopedia

No entanto, actualmente as universidades começam por ensinar C.
Pessoalmente, não acho boa ideia começar pela linguagem C. A sintaxe tem a
tendência para complicar um pouco a aprendizagem. Penso que uma primeira
linguagem deve ser menos "críptica" que a C.
C (programming language) - Wikipedia, the free encyclopedia

Precisamente por isso, há quem actualmente defenda Python como devendo ser
a primeira linguagem de programação a aprender.
Python (programming language) - Wikipedia, the free encyclopedia

Na dúvida... aprendem-se as 3.
[;)]

Sinceramente, a C é incontornável. Seja a 1ª a aprender ou não, mais tarde ou mais
cedo tem de estar no currículo.

A vantagem da Pascal em relação à Python é aprender também as estruturas de dados.
Há dois conceitos fundamentais à programação:
- Algoritmos
- Estruturas de dados
Tanto assim é que até dá direito a duas UC na UAb:
Guia Informativo - Universidade Aberta
Guia Informativo - Universidade Aberta

Ora, um dos conceitos a dominar nas estruturas de dados são os apontadores...
e Python não tem apontadores.

Portanto, continuo a achar que Pascal ainda é a melhor linguagem candidata a ser a
primeira a aprender.


Quanto à questão de qual a mais simples para fazer um programa do mais simples
que há...
Para além do BASIC... Python

Fazer um HELLO WORLD:
BASIC:
Code:
10 PRINT "Hello World"
Python:
Code:
print "Hello World"
Hello World In Many Programming Languages

Eu uso PERL para fazer as minhas "brincadeiras" pessoais (web sites), que também
é:
Code:
print "Hello World"
Mas para coisas mais complexas que um HELLO WORLD, o PERL tem uma sintaxe
bem mais complexa que o Python.
 
Algumas notas adicionais:

Dos 66 que responderam à sondagem, 45 dizer saber C.
Isto mostra o quão incontornável é.

HTML, XML, SQL e outras, não são linguagens de programação.

HTML e XML são linguagens de marcação de conteúdos.
https://en.wikipedia.org/wiki/HTML
https://en.wikipedia.org/wiki/XML

SQL é uma designação que frequentemente é estendida a outras componentes de uma
linguagem de acesso a bases de dados relacionais (SQL+DML+DDL)
SQL é uma linguagem de obtenção de dados.
DML é uma linguagem de manipulação de dados.
DDL é uma linguagem de construção de bases de dados.
https://en.wikipedia.org/wiki/SQL
https://en.wikipedia.org/wiki/Data_Manipulation_Language
https://en.wikipedia.org/wiki/Data_Definition_Language

Para além disso, ainda há linguagens de programação que não permitem fazer aplicações
autónomas. São as linguagens de scripting. Permitem controlar aplicações, mas normalmente
estão limitadas a trabalhar dentro dessas aplicações. Exemplo: Javascript.
https://en.wikipedia.org/wiki/Scripting_language
A scripting language or script language is a programming language that supports the writing of scripts, programs written for a special runtime environment that can interpret and automate the execution of tasks which could alternatively be executed one-by-one by a human operator.
Ao passo que as linguagens de programação sem serem de scripting têm um âmbito
mais alargado:
https://en.wikipedia.org/wiki/Programming_language
A programming language is an artificial language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine and/or to express algorithms precisely.
Ou seja, as linguagens de scripting controlam um programa, enquanto as outras controlam
o computador. Se bem que actualmente esta diferença esteja muito esbatida, devido à
quantidade de paradigmas intermédios que existem.
Exemplo:
Shell scripts - controlam a shell de um UNIX-like, mas partindo daí controlam o computador,
e conseguem fazer-se verdadeiras aplicações em shell script.
Java - corre numa máquina virtual de Java, pelo que a linguagem controla essa aplicação,
que por sua vez controla o computador.

Como se não bastasse... há sempre quem apareça e pegue numa linguagem de scripting e
a traga para for da aplicação onde é usual correr, transformando-a assim numa linguagem
de programação como as outras.

https://en.wikipedia.org/wiki/Shell_script
https://en.wikipedia.org/wiki/Java_(programming_language)
https://en.wikipedia.org/wiki/Javascript
Node.js - Wikipedia, the free encyclopedia
 
Obrigado pelas explicações Nuno, pelo menos agora já tenho umas noções, e consigo ver alguma luz ao fundo do tunel.

Pelo menos agora consigo acreditar que se calhar não é assim um bicho de sete cabeças, o que já deixa espaço para haver motivação! [kiss]
 
Neste momento estou a desenvolver um projecto pessoal, ainda muito embrionário.

O suporte a Message Signaled Interrupts já vem desde a especificação PCI 2.2 mas a implementação tem sido difícil, maioritariamente devido a questões de retrocompatibilidade(que diga-se estão ultrapassadas).

A partilha de IRQs sempre foi uma realidade mal implementada, feita em cima do joelho. Problemas relacionados com o uso do mesmo IRQ por vários dispositivos estão regularmente na ordem do dia, mesmo que muitos não os saibam identificar/diagnosticar.

Com a implementação do PCI-e finalmente esse problema foi resolvido com a passagem dos line based(IRQ) para message based interrupts(MSI), deixou-se de usar emulação de pistas para passar a escrever directamente num endereço da memória de sistema. As vantagens vão desde a menor latência, possibilidade de maior complexidade das mensagens e o uso de canais múltiplos e independentes por dispositivo. O kernel Linux e o do Windows foram actualizados para suportar o MSI/MSI-X. No entanto a maioria dos fabricantes/assemblers de hardware ficaram presos no tempo relativamente à questão da retrocompatibilidade. Os SDKs foram actualizados para incluir suporte ao MSI mas nunca ninguém se importou a activar o suporte nos .infs dos drivers. Na realidade ninguém na industria se preocupa muito com as latências e conflitos, basta que funcione.

A nVidia foi um dos pálidos exemplos na implementação do MSI. O suporte está presente no .sys(driver) mas a implementação está ausente do .inf. O processo de activação apesar de não ser complexo, pode ser difícil para a maioria menos experiente nestas andanças.

Criei então uma pequena aplicação(C#), que permite com um único click transitar de line based para message based interrupts em placas gráficas da nVidia: HWmsi Homepage

hwmsiscreen.png


Entretanto estou a completar a aplicação com mais funcionalidades e mais dispositivos suportados:

hwmsi092.png


Devido a ainda estar a acrescentar funcionalidades esta ainda se encontra em BETA. Poderá portanto ainda não funcionar em todas as configurações.
 
Tenho uma questão que é..
begin for i := 0 to x - 1 do
begin
pessoa.nome:=nome.Text;
pessoa.morada:=morada.Text;
pessoa.email:=email.Text;
pessoa.email:=nbi.Text;
pessoa.password:=password.Text;
showmessage('Registo efectuado com sucesso');
end;
end;

quando eu coloco os dois BEGIN não executa o programa ate ao fim.

Outra questão é para mostrar o nome das pessoas registadas

begin

edit1.text:=(pessoa[1].nome);
edit2.text:=(pessoa[2].nome);
edit3.text:=(pessoa[3].nome);
edit4.text:=(pessoa[4].nome);
se colocar pessoa.nome tambem nao me mostra nada..

Se alguem me poder ajudar agradeço
 
Tenho uma questão que é..

quando eu coloco os dois BEGIN não executa o programa ate ao fim.

Claro que executa até ao fim.
Não te mostra X vezes a mensagem «Registo efectuado com sucesso»?
Ou seja, quando fechas a mensagem, não volta a mostrar e assim sucessivamente
X vezes?

O problema é que estás a colocar no array X vezes os mesmos dados que
estão no ecrã.

Outra questão é para mostrar o nome das pessoas registadas
se colocar pessoa.nome tambem nao me mostra nada..
Se alguem me poder ajudar agradeço


Claro que mostra... se tiveres valores guardados no array.
Se o array estiver vazio (que é o mais certo) vai mostrar... vazio!


Como já te disse:
Aprende primeiro a programar em modo de texto.

Se queres aprender DELPHI, que é baseado em PASCAL, então aprende
primeiro PASCAL ANSI/ISO.

Instala uma máquina virtual ORACLE VIRTUALBOX.
Depois cria uma máquina guest XUBUNTU.
No XUBUNTU instala FREE-PASCAL.
https://www.virtualbox.org/
Xubuntu
Free Pascal - Advanced open source Pascal compiler for Pascal and Object Pascal - Home Page

E aprende a programar em modo de texto.
E aprende os conceitos que já te disse no outro tópico.
Repito: o teu problema não são as linguagens de programação, o teu problema é
mesmo a própria programação. Não tens bases suficientes para programar. É tão
simples quanto isto.

Repara:

http://forum.autohoje.com/off-topic...parar-aqui-post1067485861.html#post1067485861
Memória virtual - Os programas não usam memória virtual. O sistema operativo
disponibiliza memória aos programas. Quando o sistema não tem memória para
dar a um programa, vai colocar o conteúdo em memória de outro programa (que
esteja parado) no disco (a chamada memória virtual), e dá essa memória agora
livre ao programa que está a correr no momento.

http://forum.autohoje.com/off-topic...parar-aqui-post1067485942.html#post1067485942
TStringList - Não é uma função. É um tipo de dados.

http://forum.autohoje.com/off-topic...parar-aqui-post1067485983.html#post1067485983
Colocar um FOR entre eles - Mostra que não tens a noção do fluxo de código que
é necessário executar, nem porquê.

http://forum.autohoje.com/off-topic...parar-aqui-post1067486011.html#post1067486011
Substitui o primeiro - idem.

Faltam-te praticamente todos os conceitos de base da programação estruturada.
De programação por objectos então ainda deves ter menos.
 
Houve um período da minha vida que também andei a ler sobre a programação e cheguei a fazer umas coisas no vb6, mas pelo que andei averiguar na altura uma das coisas aprender era começar pela lógica da programação e a linguagem adoptar para aprendizagem devia ser python. Já sei que cada cabeça sua sentença, mas em várias fontes que na altura li, recomendavam a mesma.
 
Back
Top