Qual a utilidade do algoritmo?

ATENÇÃO: Este conteúdo foi publicado há 12 anos. Eu talvez nem concorde mais com ele. Se é um post sobre tecnologia, talvez não faça mais sentido. Mantenho neste blog o que escrevo desde os 14 anos por motivos históricos. Leia levando isso em conta.

No primeiro artigo desta série, o Hélio comentou: ‘Algoritmos’ é um tema pouco valorizado por muitos programadores iniciantes, que querem logo botar a mão na massa.

É a mais pura verdade. Quando eu tive a minha primeira noção do que são algoritmos (no dia 12 de julho de 2004, no Curso de Programação da Olimpíada Brasileira de Informática na UNICAMP), confesso que fiquei decepcionado. Qual a utilidade de algo tão formal pra algo que já sabemos fazer? Eu já programava em C e achei um saco o professor escrevendo no quadro aqueles pseudocódigos de problemas super simples, perdendo tempo com isso ao invés de programar. Porém, hoje percebo que algoritmos são muito mais legais (e importantes) do que eu pensava. Claro que para somar dois inteiros não há necessidade de escrever um pseudocódigo, mas algoritmos são representações essenciais para problemas mais complexos e grandes aplicações.

Acredito que você que já leu os dois primeiros artigos já deve saber, mas não custa lembrar: algoritmo é a relação entre entrada e saída do programa, é o rascunho do programa, o projeto. E um projeto antes de colocar a mão na massa é indispensável. Enquanto a implementação é a função dos pedreiros, o algoritmo é a função dos engenheiros. Se os engenheiros não existissem, acho que os pedreiros não iam conseguir fazer as casas e os prédios que eles constroem hoje em dia!

Não querendo desmerecer alunos de sistemas de informação, mas a maioria deles não passa de pedreiros.

O algoritmo sempre existe, mesmo que apenas no seu pensamento. A primeira coisa que você pensa quando quer fazer uma aplicação (a não ser que você seja louco) é: o que é a aplicação? O que ela vai fazer? E se você sair implementando uma coisa complexa, você vai se decepcionar depois demorando mais do que o tempo de fazer a implementação só para limpar o código! Por isso, representar algoritmos complexos é essencial.

E mais… Mesmo se você tivesse tempo infinito, memória infinita, etc. e tal (não tivesse necessidade de limpar o código), você vai precisar de um algoritmo pra provar que o seu programa funciona, para se organizar e para estudar a sua lógica. Se você não planejar um algoritmo para o caso acima, qualquer funcionalidade que você queira adicionar no meio, por falta de projeto e organização, vai demorar bem mais tempo. Por isso, algoritmo não é uma perda de tempo antes da programação, mas a programação é que se torna uma perda de tempo quando não teve um algoritmo (ou, um projeto). O livro Algoritmos: Teoria e Prática reforça essa interessante idéia na página 7:

Suponha que os computadores fossem infinitamente rápidos e que a memória do computador fosse livre. Você teria alguma razão para estudar algoritmos? A resposta é sim, se não por outra razão, pelo menos porque você ainda gostaria de demonstrar que o método da sua solução termina, e o faz com a resposta certa.

Outra utilidade do algoritmo é compartilhar idéias de problemas complexos. Todo programador entende um pseudocódigo e por isso convém muitas vezes apresentar sua idéia de um programa em forma de um algoritmo, num pseudocódigo, ao invés de passar um programa implementado em C para uma dúzia de programadores de VBScript (e sem dúvidas é muito melhor do que ter que aprender uma linguagem da Microsoft!!!).

Existe uma série de algoritmos comuns que todo programador deve conhecer (projetos prontos para muitas coisas complicadas que precisamos implementar no dia-a-dia) e isso é o que vamos começar a estudar no próximo artigo. :)

21 comentários sobre “Qual a utilidade do algoritmo?

  1. Muito bom Tiago!
    Mostrou de uma forma simples e direta a gande importancia que é se programar antes de programar!
    Trocadilhos a parte, esse seu artigo ficou muito maneiro, parabéns!

  2. Tiago estou começando agora a fazer esse curso de processamento de dado,estou com dificuldade em logica,gostaria que me ajudasse a entender melhor,com mais informaões,seu artigo é muito bom,me ajudou um pouco,obrigada.

  3. Tiago eu tenho uma prova daqui a uma semana e não tenho ideia por onde começar a resolve-lá e não é por falta de estudo não, é que eu não consigo entender a lógica do algoritmo ,por favor me ajuda cara li seus artigos mas não consigui entender muito .Eu estudo Eng civil e trabalho com linquagem C , me responde po favor!!
    Obrigado pela atenção!

  4. “Não querendo desmerecer alunos de sistemas de informação, mas a maioria deles não passa de pedreiros.”

    É o típico comentário de intenção duvidosa (afinal já começa em contradição), sem relevância para o assunto explanado (o que torna-o inútil), totalmente inverídico (já que no curso criticado também são encontradas disciplinas associadas ao tema). Diria falacioso, se fosse um argumento, mas não chega nem a isso. Comentário totalmente acadêmico e fora de realidade.

    Posturas contraproducentes e anti-científicas como essas, são algumas das armadilhas que acabam pegando os iniciantes na ciência que, de fato, acreditam que sempre irão reinventar a roda toda vez que irão produzir algum trabalho novo ou importante. Felizmente, alguns anos pós-curso deixam claro o real propósito da ciência e os melhores (e atuais) meios de usá-la.

    No mais, lembre-se que ambos tem uma função importante. Afinal, sem pedreiros, engenheiros constroem belos papéis. Ou quem sabe até sites.

    No mais gostaria de elogiar o site, fora estes detalhes, tem um ótimo propósito e uma boa didática.

  5. “VBScript (e sem dúvidas é muito melhor do que ter que aprender uma linguagem da Microsoft!!!).”

    Fica só para limpar a visão ultra-acadêmica, só para ajudar. O que define uma linguagem como boa ou ruim, não é seu fabricante, mas o uso para o qual ela está planejada. Planeje o que precisa fazer e baseando-se nisso, planeje qual a melhor linguagem para usar (você pode fazer um processo de ATD -> Atividade de Tomada de Decisão). C é de propósito geral, mas não é a melhor opção. Amo C, trabalho com C/C++, mas cuidado com a cultura C/C++, ela pode lhe transformar num bom programador e numa péssima pessoa.

    Concordo que para a maioria dos propósitos VBScript é um lixo, mas resolve BEM como automatização de tarefas do OS Windows.

  6. Pedro,

    Acho que é questão de opinião. Eu expresso a minha, você a sua, não há uma opinião “melhor”, fato é que nossas realidades são diferentes. Você provavelmente é mais velho que eu, está em outra fase, já trabalhou mais que eu neste ramo e por isso tem uma postura mais “mercado de trabalho”, que é importante, mas não é o escopo do site.

    Discordamos em vários pontos por causa desta diferença. Mas, no entanto, concordo que o parágrafo não teve relevância para o assunto explanado. Essa foi uma boa colocação sua, que inclusive me deu a idéia de revisar esse texto para deixá-lo mais coerente. Mais tarde faço isso.

    Agora… Na minha opinião, a minha frase não é inverídica, pois a carga de algoritmos de um curso de sistemas de informação é muito inferior a de um curso de ciência da computação (você mesmo concordou que eles fazem o trabalho “de pedreiros”).

    Numa discussão sobre algoritmos uma ideologia acadêmica é muito mais normal do que uma ideologia de engenheiro de software como a que você trouxe. ATD? Isso sim é o “fora da realidade”.

    Estudar algoritmos não é reinventar a roda, mas entender como ela é feita. E isso é importantíssimo para que a ciência possa evoluir. Eu trabalho com programação de pedreiro há anos, não sou tão radical quanto você pensa e nem acho que seja um trabalho inútil, mas não acho que alguém cresça intelectualmente usando frameworks ou que faça a ciência da computação evoluir.

    Além disso, eu não disse que pedreiros são inúteis em momento algum, você que interpretou isto e veio com argumentos como “sem pedreiros, engenheiros constroem belos papéis”.

    Sobre VBScript, é questão de fé. Eu não confio em softwares proprietários, por isso não uso. E como o escopo aqui é acadêmico, e não “mercado de trabalho”, não há porque se preocupar com usuários de Windows, assim como eu poderia não me preocupar com usuários de qualquer outro sistema operacional.

    E, de qualquer maneira, tanto um usuário de VBScript quanto um programador de C pode aplicar os conceitos deste site. Aliás, o meu exemplo no texto foi justamente pra ilustrar que pseudocódigos são uma maneira fácil de comunicação entre programadores (i.e., eu não preciso programar em VBScript, posso fazer o algoritmo e passar o trabalho sujo em VBScript para os pedreiros).

    Obrigado pelo elogio ao site e pelo comentário.

    Abraço,
    Tiago

  7. Tiago,

    Boa Noite, vamos lá:

    Acho que é questão de opinião. Eu expresso a minha, você a sua, não há
    uma opinião “melhor”, fato é que nossas realidades são diferentes.
    Você provavelmente é mais velho que eu, está em outra fase, já
    trabalhou mais que eu neste ramo e por isso tem uma postura mais
    “mercado de trabalho”, que é importante, mas não é o escopo do site.

    >
    A minha postura é tanto “ciência” quanto “mercado de trabalho”, isto porque
    sou tão apaixonado pela ciência quanto pela tecnologia em si (tanto pelo “criar”
    quanto pelo “reutilizar”). Saber o contexto que cada uma se aplica é de
    suma importância, para poder fazer um bom uso.
    Quando escreveu o trecho que comentei, estava fora do escopo do site. Mas meu
    interesse não é julgá-lo. Na verdade, meu comentário não é sobre isto,
    não estou discutindo opiniões (que em geral são motivadas por gosto).
    Discuto mais a informação que foi dada e da forma como foi passada.
    >

    Discordamos em vários pontos por causa desta diferença. Mas, no
    entanto, concordo que o parágrafo não teve relevância para o assunto
    explanado. Essa foi uma boa colocação sua, que inclusive me deu a
    idéia de revisar esse texto para deixá-lo mais coerente. Mais tarde
    faço isso.

    >
    Embora, seja um caminho diferente, e menos apreciado por uns, é de igual
    importância, e vou responder o porquê, lá em baixo.
    >

    Agora… Na minha opinião, a minha frase não é inverídica, pois a
    carga de algoritmos de um curso de sistemas de informação é muito
    inferior a de um curso de ciência da computação (você mesmo concordou
    que eles fazem o trabalho “de pedreiros”).

    >
    Isto não prova muita coisa. Conheço alguns vários pedreiros da
    Ciência da Computação.
    Neste caso, estamos discutindo o óbvio, a carga não é a mesma porque
    o propósito do curso não é o mesmo. Esta informação não disse menos ou mais
    sobre qualquer profissional (ou sobre qualquer tipo, já que preferiu tipificar).
    >

    Numa discussão sobre algoritmos uma ideologia acadêmica é muito mais
    normal do que uma ideologia de engenheiro de software como a que você
    trouxe. ATD? Isso sim é o “fora da realidade”.

    >
    Leia novamente, estava falando de linguagens e não algoritmos, porque falou
    sobre linguagens.
    Mais uma coisa, pode-se fazer ATD de algoritmos também e até aconselhável por
    você, pois Análise de Algoritmo citada, é um dos critérios na tomada de decisão.
    Procure entender do que estamos falando antes de tipificar alguma coisa ou
    alguém, porque até para tipificar você precisa tomar decisões baseadas em
    critérios. Portanto, na sua realidade, você tem feito várias ATDs e nem sabe.

    E nem por isso vou tipificá-lo de algo. Não saber não é um crime. Não me tenha
    como inimigo, estou mostrando algumas outras perspectivas que talvez não tenha
    conhecido.
    >

    Estudar algoritmos não é reinventar a roda, mas entender como ela é
    feita. E isso é importantíssimo para que a ciência possa evoluir.

    >
    E eu não disse o contrário. Entender como é feito, é tudo (em um sentido).
    Ajuda em diversas atividades. Isto não quer dizer que, por exemplo,
    para você dirigir um carro e fazer bom uso dele, precisa ser mecânico.
    Falando em academia e ciência, no que teríamos que discordar?
    >

    Eu trabalho com programação de pedreiro há anos, não sou tão radical
    quanto você pensa e nem acho que seja um trabalho inútil, mas não acho
    que alguém cresça intelectualmente usando frameworks ou que faça a
    ciência da computação evoluir.

    >
    Bom, então já deve ter percebido que a comparação não tem fundamento. Por que:
    1) No nosso caso, para ser um bom “engenheiro”, é imprecindível ser um
    bom “pedreiro” antes. (leia o final deste trecho, para entender)
    2) Dois porque isto não se aplica no caso da engenharia civil.

    Aliás, a muito tempo não se compara computaçào com engenharia civil,
    porque as métricas atuais são completamente distintas. As técnicas de gerência de
    projetos atuais deixam isto claro.

    O COM+ é um framework que, sem sombra de dúvida, se você estudar a fundo sua
    arquitetura (e entender os algoritmos) vai crescer intelectualmente. Os sockets BSD
    que são modelos para várias implementações também tem bastante coisa para mudar a sua
    mente. Mas se “frameworks” para você é somente o Hibernate, Struts, BCL do .Net (porque
    até o CLR do .Net tem muito a ensinar de algoritmos) e família, então estamos perdendo
    tempo.
    Tem muita coisa bem feita por aí que você não precisa usar sem saber (e crescer
    intelectualmente). A diferença está na atitude do profissional e não no curso que ele está
    fazendo.

    Quanto a evolução da ciência, neste ponto, tenho que discordar. Entendendo
    implementações de outras frameworks (que podem ser das mais complexas as mais simples,
    para Telecom, dispositivos, segurança ela vai fumaça, por exemplo) e uso de conceitos
    científicos nas mesmas e aprimorá-los para novos experimentos.
    >

    Além disso, eu não disse que pedreiros são inúteis em momento algum,
    você que interpretou isto e veio com argumentos como “sem pedreiros,
    engenheiros constroem belos papéis”.

    >
    É verdade, gostaria de me desculpar. O “não passam de pedreiros” não me soou bem.
    >

    Sobre VBScript, é questão de fé.

    >
    Heim? Fé? Saímos da ciência para fé? Você escolhe software pela fé?
    >

    Eu não confio em softwares proprietários, por isso não uso. E como o escopo aqui
    é acadêmico, e não “mercado de trabalho”, não há porque se preocupar com usuários de
    Windows, assim como eu poderia não me preocupar com usuários de
    qualquer outro sistema operacional.

    >
    Bom, aqui já nos distanciamos do propósito e passou para o irracional. Não escolho
    software por fé (aliás, nem Richard Stallman faz isso) e adoro Free Softwares também.

    Mas sobre softwares, tendo uma necessidade, planejo e soluciono o problema com o mesmo.

    Quanto a confiança não se preocupe, saindo da faculdade e conhecendo outros ambientes,
    logo aprende que tem ótimos programadores nas empresas privadas também. Tão bons quanto
    os que desenvolvem free softwares.

    Além disso, você verá muito código porco free. O que não me faz tipificar os
    programadores dos mesmos softwares.

    Novamente, estamos falando de atitudes e contextos, não de cursos e academia.
    >

    E, de qualquer maneira, tanto um usuário de VBScript quanto um
    programador de C pode aplicar os conceitos deste site. Aliás, o meu
    exemplo no texto foi justamente pra ilustrar que pseudocódigos são uma
    maneira fácil de comunicação entre programadores (i.e., eu não preciso
    programar em VBScript, posso fazer o algoritmo e passar o trabalho
    sujo em VBScript para os pedreiros).

    >
    Hahaha, trabalho sujo. Já vi alguns engenheiros apanhando na hora de fazer o
    trabalho sujo. Sabe como é, a academia nos dá muita teoria, mas o mundo não
    vive de teoria. Nem sempre dá para fazermos o que queremos em Ansi-C (aliás eu
    esqueci uma palavra no comentário e o que queria dizer “é que C não é a melhor
    solução para tudo”) e quando se tem alguma experiência, sabe-se disso. E quem
    vos fala trabalha com foco principal em C e C++ (e também são minhas linguagens
    de preferência).

    Mas isto aprende-se com o tempo. Minha intenção é apenas lhe dar um pouquinho
    mais de experiências extra acadêmicas.

    Como estamos na fé, não tenho muito mais o que discutir, como deixou claro é
    só uma questão de gosto.
    >

    >
    No mais, a palavra é uma ótima ferramenta, quando bem utilizada pode fazer coisas
    maravilhosas, ou quando mal, grandes estragos. A minha sugestão que é que
    mantenha a qualidade dos artigos num foco mais científico, evitando especular
    muito sobre “pessoas”, a fim de não criar uma esfera de polêmica inútil e pouco
    fundamentada. Isto não contribui em nada para a evolução da ciência, se é o que
    lhe preocupa.

    É um ótimo site para aprender sobre algoritmos. Fica novamente o elogio.

    Qualquer erro de digitação me desculpe é que são 00:40 e sono está no seu nível máximo.

    Cordialmente,

    Pedro Henrique

  8. Não vou me alongar. Responderei brevemente trechos aleatórios, por causa do horário, porque estou trabalhando e porque não estou afim de perder tempo com essa discussão.

    Todo comentário expressa uma opinião. O que você escreveu não é verdade absoluta, assim como o que eu escrevo. Você discute a informação que foi passada a partir do seu ponto de vista.

    Fato é que é preciso fé pra rodar um software no seu computador sem poder ler seu código. É preciso confiar nele e na empresa que o fabricou. Não temos como provar que ele faz o que promete sua caixa.

    Discordo que, na computação, pra ser um bom engenheiro é preciso ser um bom pedreiro. É preciso saber o básico, mas não é preciso ser bom pedreiro pra ser um grande cientista.

    De fato existe muito código porco free e não free. E daí? Não é pelo código ser lindo ou feio que não uso software proprietário, é por confiança. Repito: é preciso ter fé pra usar software proprietário.

    Além disso, é engano seu pensar que não tenho nenhuma experiência com software livre ou no mercado de trabalho. E é um engano enorme seu pensar que só programo em C.

    Pedreiros não entendem como são feitos os frameworks, eles simplesmente usam. Por isso disse que isso não desenvolve o intelecto.

    “Nem sempre dá para fazermos o que queremos em Ansi-C”

    Mentira. Dá pra fazer qualquer coisa que você faria numa linguagem interpretada em C (sim, pode ser mais demorado e pode não ser o ideal, mas o caso é: dá pra fazer). Se discorda, me dê um contra-exemplo.

  9. PS: Vou colocar só o meu para não enxer o conteúdo do site. As respostas se aplicam ao comentário acima.

    >
    Quem falou em verdade absoluta?
    >

    >
    Meu deus! Não? Você trabalha com software sem conhecê-los, testa-los ou aprende-los? Você relê todos os códigos fontes dos programas que usa (Apache, Samba, Kernel do Linux, etc)? Acredito piamente nisso, não tenho nem uma sombra de dúvida.
    Na academia compra-se software sem saber o que ele faz ou sem ter visto o que ele faz para ensiná-los (porque tem software proprietário também)? Isto é verdade? Nota-se que é uma opinião extremamente válida e de grande experiência.
    Mas como deixou claro, válida ou não, é opinião, tanto faz, é só escrever e pronto. Postura bem “cientista” e contribui bastante para a ciência.
    Tem outros meios de não usar a fé, explicarei abaixo.
    >

    >
    Isso, para ser um bom engenheiro (foi o que disse) e não um cientista. De uma olhada na origem da palavra e o seu significado.
    >

    >
    Por confiança? Você tem confiança em algo mal codificado? Hehehehehe, meu deus! Quantas contradições! Se a sua confiança está exatamente nisso, se ele foi codificado para desempenhar o que diz que faz e bem (de forma confiável).
    >

    >
    Não precisa ter fé, instala, testa, analisa, verifica se ele faz o que promete, como ele faz, e pronto (é simples, mas não faz sentido explicar todo o processo, é fora do nosso foco, e já resolve seu problema). Você pode tomar decisões baseadas nisso e outros critérios também. Não tem nada a ver com fé. Não precisa ler o código fonte para achar essas respostas e mais, imagine a área de segurança, o que seria dela se precisasse de todo código fonte para poder ver se o software não faz algo que não deve. Totalmente Non-sense!
    >

    >
    Não estou aqui para julgá-lo, nem o que faz, nem o que sabe. Não é minha tarefa medi-lo. Novamente, estou discutindo sobre o que foi postado, nada mais.
    >

    >
    E profissionais de outros cursos podem entender os frameworks por dentro e crescer intelectualmente, então, logo percebemos que eles podem passar de pedreiros segundo seus critérios. Então o que foi dito, está totalmente fora da realidade. Dúvidas?
    >

    >
    Esse discurso eu já cai, faz parte da cultura mesmo, vou te explicar porquê. É seguinte, observe que “programar”, é um pouco mais que codificar (na verdade muito mais, mas não vou tão a fundo para não mexer com a lavagem)? Desenvolver é um pouco mais do que codificar, entende? É planejar, decidir, testar, avaliar e milhares de outras coisas que o pedreiro codificador pseudo-cientista entende. Para ele, uma linguagem faz e pronto, é só o que sabe e o que teoricamente precisa, não tem prazos, compromissos a resolver etc.
    Então, “fazer o que queremos” não quer dizer apenas codificar, porque isso, da para fazer em qualquer linguagem de programação, qualquer mesmo (LINGUAGEM – estou falando de LINGUAGEM, sendo ela parseada em run-time ou não, pois a linguagem pode ser portada e permitir compilação, estendida se necessário, biblotecas que façam o que ela não faz nativamente etc, aqui a maior restrição é licença). Não há nada além de licença que não permita portar VBScript para um compilador, por exemplo. Dependendo do caso, um algoritmo nele é diferente de um algoritmo em C, mas isto também demanda experiência e você vai aprender que embora possa fazer algoritmos e rodar em qualquer linguagem, nem sempre um é o mais adequado para outra. Isto faz parte do trabalho do engenheiro.

    Não ser o ideal e não saber definir isto, já demonstra um pensamento pedreiro. Mas também não é foco.

    Enfim, pronto você ganhou no pensamento pedreiro, vou admitir:
    Tudo que estiver dentro da plataforma, você pode codificar em C se tiver compilador para ela e se ela suportar a linguagem inteira.
    Bom, em celulares você não pode fazer recursão (com funções) e o gerenciamento de memória é específico, em mainframes você não usa ponteiros da mesma forma e por aí vai… Da para fazer o que o fabricante disse que pode, mas eu esqueci! Você não confia neles!

    Cordialmente,

    Pedro Henrique
    >

  10. Tiago, adorei o seu site.

    Esse Pedro Henrique é um mala. Por que ele não vai dar palpite para ficar tentando aparecer em outro site? Que droga viu, a discussão nem era comigo e provavelmente nem entendi metade do que vocês falaram, mas o cara vem criticar posturas como se fosse realmente relevante a opinião dele sobre o site…cara chato.

  11. Sr. Tiago, imagino que o conteúdo seja de sua responsabilidade.

    Como fez uma universidade com foco a pesquisa e Pública, acredito que foi muito mal orientado sobre a real função no MERCADO de quem faz engenharia, sistemas de informação e cientistas de computação.

    A função de um ANALISTA DE SISTEMAS, ou do curso de SISTEMAS DE INFORMAÇÃO, é de ALTO nível, apenas comparado ao do arquiteto na construção Civil, por isso praticamente não vemos muito sobre programação na faculdade.
    E nos 2 casos casos, a IMPLANTAÇÃO da Obra, por a mão na massa, colocar tijolos escrever códigos é do Engenheiro, assim como do Pedreiro, Programador.

    Felizmente, perdoou seu equivoco, pois muitos de meus colegas ANALISTAS, em fase inicial, trabalhão como desenvolvedores, para que tenha CONHECIMENTO PRATICO da solução, posteriormente se engajam na real função.

    Analista, é o cara que vai falar com Cliente, entender o problema, escrever a base, ou mesmo arquitetar TODA a solução e a função dos Engenheiros e Programadores, será explicita a de colocar a mão na massa e entregar o problema Desenvolvido e programado.

    Alias falar com pessoas não é coisa comum a engenheiro, a maioria(95%) sabe apenas falar com computadores, claro que temos também os “analistas” que não sabem falar com pessoas, em muito menor proporção, esses serão os seus “pedreiros” com certeza e não exercerão a profissão, por falta do ingrediente básico, a comunicação, verbal .

    Qualquer duvida sobre o Fundamento de meus argumentos, gostaria de convida-lo a conhecer minha univerdade, que tem foco no Mercado Comercial, ou mesmo conhecer minha empresa, onde emprego ENGENHEIROS para fazer o trabalho que fazem melhor que os analistas, PROGRAMAR, ou como citou, fazer o trabalho de PEDREIROS.
    Apenas um comentário a mais, sabia que a que quase todos Gestores de TI renomados na Região de campinas não são formados pela sua universidade, nem tão pouco no curso de engenharia, mas sim no de sistemas ?

    Mais uma vez para gravar…

    Arquiteto Projeto (Analista de Sistemas).
    Engenheiro executa a obra, com mão de obra de pedreiros(Programadores).

Deixe uma resposta