Visite também: Currículo ·  Efetividade BR-Mac

O que é LinuxDownload LinuxApostila LinuxEnviar notícia


Uma lacuna entre o ensino de programação e as necessidades do mercado?

Enviado por Fabio A. Mazzarino (fabio·mazzarinoΘgmail·com):

“No final dos anos 90 a imprensa especializada, com o aval de parte do meio acadêmico, levou ao fim do ensino de C/C++ nas faculdades e universidades. Hoje o mercado sente os reflexos desta mudança.

O mercade de trabalho para programadores C/C++ está aquecido, Juniores e Plenos estão em falta porque não foram suficientemente formados. Seniores estão em falta porque muitos já migraram para cargos gerenciais.

Veja mais informações sobre a mudança e seus impactos no Blog Doses Diárias.” [referência: dosesdiarias.seucaminho.com]


• Publicado por Augusto Campos em 2010-06-24

Comentários dos leitores

Os comentários são responsabilidade de seus autores, e não são analisados ou aprovados pelo BR-Linux. Leia os Termos de uso do BR-Linux.

    Eu sempre achei que C/C++ deveria ser ensinado na faculdade.
    Aprendi sobre estruturas de dados em aulas tediosas e difíceis, onde tive que utilizar o C para fazer pilhas, filas, listas, etc.
    Meu companheiro era o livro “C Completo e Total” :-D
    Ganhei um conhecimento que, na época, achava um tanto detalhista demais, mas que agora me ajuda a programar nas linguagens mais populares.
    Também me ajuda a fazer alguns patchs em programas open source quando preciso, hehehe.
    Infelizmente para as empresas ( mas felizmente para quem sabe C/C++ ), esta escassez de profissionais sairá cada vez mais caro.

    Caio César (usuário não registrado) em 24/06/2010 às 9:10 am

    Discussão interessantíssima!

    Realizei a leitura completa no blog do autor e mesmo eu, fora do mercado de T. I. e sem conhecimentos em linguagens como C e C++ sinto que realmente, o pessoal de hoje não quer saber de nada que não seja Java e mais recentemente, .NET.

    Bem me lembro, aliás, de alguns comentários de que a equipe do kernel Linux não vem sofrendo renovações, pois faltam membros na comunidade com conhecimento e interesse.

    De qualquer forma, parece que, pelo menos em plataforma Linux, C e C++ são linguagens extremamente vivas para desenvolvimento de aplicativos. Quando eu compilo código, na maioria das vezes ele é escrito em C e em algumas vezes, ele é escrito em C++.

    Pelo menos sei que não estarei no caminho errado se aprender C/C++. E de quebra, ainda poderia contribuir ao SL/CA… tentador. :-)

    lobo castrado (usuário não registrado) em 24/06/2010 às 9:23 am

    Only Java sucks

    Paulo Cesar (usuário não registrado) em 24/06/2010 às 9:35 am

    Anos 90? Estranho, eu entrei na faculdade em 2004 e aprendi C e C++. Não sei que cursos vocês andam fazendo que não ensina programação de verdade..

    Rael (usuário não registrado) em 24/06/2010 às 9:50 am

    No geral tudo vai terminar em “Java sucks”. Mas tudo está em falta em TI, principalmente porque os cursos no geral estão muito fracos.

    Eu me formei há alguns (menos de 10), e aprendi sim, Pascal, C/C++, Java e Python.

    E digo mais, se você tiver no curso uma boa formação em lógica de programação (estruturada e OO), facilmente você migra de linguagem, ficando aí o trabalho de aprender as bibliotecas novas.

    E no mercado, não apenas faltam pessoas que saibam C/C++. Faltam pessoas que saibam Cobol, analista de banco de dados, e até mesmo Java.

    Rodrigo Kumpera (usuário não registrado) em 24/06/2010 às 9:50 am

    @Paulo Cesar

    Concordo contigo. Tive C++ e assembly na faculdade (2000-2005). O problema não são que os cursos deixaram de ensinar algumas coisas, mas sim que a enorme maioria é um lixo e muitas boas escolar pioraram em muito.

    Ou será que alguém tinha a vã ilusão de que esse monte de curso de marretador de código conseguiriam formar gente qualificada suficiente?

    Enquanto isso muita gente acha melhor fazer UniDiplomaEm48X que USP.

    Tiago (usuário não registrado) em 24/06/2010 às 9:54 am

    Eu tenho um artigo de um professor da Universidade da California reclamando do emburrecimento dos profissionais de TI. No artigo ele reclama do alto grau de abstração das tecnologias ensinadas. Com isso, os futuros profissionais simplesmente não sabem e/ou não interessam pelo que ocorre lá baixo.

    Eu sou a favor que o curso de computação deveria ser mais ou menos como medicina: começa amplo e vai especializando. Então, primeiro, parar com essas besteiras de frações da Ciência da Computação. Tem-se Ciência da Computação. Depois de 3 ou 4 anos, tem a “residência” – dai o cara aprende as tecnologias de mercado, ai o cara decide que ser ser Engenhario de Software, Analista de Sistemas, Engenheiro de Computação, Acadêmico mesmo, etc… Mas a Ciência da Computação deveria ser ensina primeiro, com as bases teóricas, e deixar o cara escolher depois.
    Assim, quando saissem da faculdade, além de base teória (fornecida pela CC) teria também a base prática (fornecida pela “residência”).

    Essa residência seria como uma especialização, porém ainda dentro do bacharelado.

    Leonardo (usuário não registrado) em 24/06/2010 às 10:09 am

    Aqui na UnB os cursos em C/C++ e Fortran continuam a todo vapor.

    Trx64 (usuário não registrado) em 24/06/2010 às 10:20 am

    Bem, nesse sentido não posso reclamar. Estou um pouco além da metade da faculdade e aprendi todas as matérias de programação usando C e C++ (algumas em Assembly também).

    Questões como gerenciamento de memória, ponteiros, passagem de parâmetros correta… A gente não aprende em Java ou C# (apesar de eu já programar nessas linguagens), que cuidam dessa parte. Isso gera programadores que não sabem pensar direito, não conhecem os detalhes da implementação. Quantos desses saberiam implementar uma árvore binária na mão? Ou uma tabela hash?

    Claudio (usuário não registrado) em 24/06/2010 às 10:26 am

    Bom pessoal, vou ser bem sincero:

    Eu sou formado faz apenas 2 anose as linguagens que eu aprendi na facul foram basicamente Pascal/C/Assembler(logico que vi alguma coisa em Delphi, Java e cia, mas bem por cima) E MySQL pra banco de dados. Juro que gostaria de viver programando somente em C ou ate mesmo Assembler, gosto de ambas. Mas nao vejo muito anuncio de vaga nao. Qualquer site de emprego voce acha gente procurando por Java, .Net… mas faz um tempo que nao vejo nada de C mesmo(C++ ate vejo alguma coisa).

    Posso (e espero estar) muito errado, mas ou essas vagas nao sao divulgadas ou eu que sou muito idiota mesmo.

    De qualquer jeito, se alguem souber de algum lugar para trabalhar com essas coisas, me de um toque :)

    Juan (usuário não registrado) em 24/06/2010 às 10:39 am

    Compartilhando comentário feito no “Doses diárias”:
    Essa guerra entre linguagens nunca vai acabar. Quando o Java ainda não era popular, reinava a briga entre o Pascal e o C. Minha solução foi simples, aprendi as duas, logo depois, e por sugestão de um professor da faculdade aprendi Java. Hoje trabalho como gerente de projetos, mas até chegar aqui passei pelas linguagens: Shell script, Groovy, Perl, PL/SQL, Javascript e um pouquinho de Python. Claro que tenho minha linguagem preferida, mas não a imponho ao cliente, o programador profissional deve dançar conforme a música.
    PS: Não sou contra do ensino de C/C++ nas faculdades =D

    Júlio Neto (usuário não registrado) em 24/06/2010 às 11:35 am

    Eu acho que tem muita gente por aí entrano na informática pelo curso errado.
    Hoje o mercado pede mais analistas e programadores que tenham mais foco na lógica de negócios e padrões de projeto, por isso profissionais formados em cursos mais especializados, como Sistemas de Informação são o que o a grande maioria das empresas precisa, e nisso as faculdades estão de pleno acordo com o mercado, sem entrar no mérito da qualidade, isso é outra discussão.
    Conceitos de mais baixo nível são típicos de Ciências da Computação, e os cursos de CC que eu conheço, em todos se ensina C.

    Rodrigo (usuário não registrado) em 24/06/2010 às 11:35 am

    @Claudio, você não está sabendo procurar. Vai ver quantas vagas de java e c# tem nos foruns/mailing list onde se anunciam para C e C++. ;)

    gtuxed (usuário não registrado) em 24/06/2010 às 11:39 am

    Ciencia da Computação, claro, acho que deveriam ensinar uma linguagem OO e uma que não seja, para outros o java ou .net já é o suficiente.No mais a lógica é mais importante do que a linguagem em si (ao menos no ensino! rsrs).

    Weber Jr . (usuário não registrado) em 24/06/2010 às 11:56 am

    “E MySQL pra banco de dados.”

    Ensinando MySQL para banco de dados ? MEC não faz fiscaliza.

    Sinceramente, se for para aprender a teoria, e com conceitos gerais, melhor usar um proprietário como Oracle que o Mysql.

    Eu tive sorte de ter um professor que dizia claramente que “Mysql não é SGBD, é só banquinho”. Não falo o nome desse benfeitor para não sofrer com os trolls.

    Flávio Costa (usuário não registrado) em 24/06/2010 às 12:06 pm

    @Rodrigo Kumpera

    “Enquanto isso muita gente acha melhor fazer UniDiplomaEm48X que USP.”

    Na maioria das vezes não se trata de “achar melhor”. Nem todos podem contar com os “lindos papais cheios da grana” pra pagar a faculdade e ainda bancar suas despesas pessoais. Afinal, fazer graduação da USP e trabalhar ao mesmo tempo é quase impossível…

    Juan (usuário não registrado) em 24/06/2010 às 12:09 pm

    @Weber Jr., não gosto do MySQL, mesmo assim discordo do seu ponto de vista. Acho sim que ele pode ser usado como ferramenta de ensino, até porque várias empresas o usam em produção. Se a opção for estudar um SGBD proprietário, recomendo o IBM DB2 Express-C (dá para usar em produção gratuitamente). Ele tem menos limitações que o seu concorrente, o Oracle Express Edition.

    Philippe (usuário não registrado) em 24/06/2010 às 12:20 pm

    Flávio Costa,

    “Nem todos podem contar com os “lindos papais cheios da grana” pra pagar a faculdade e ainda bancar suas despesas pessoais. Afinal, fazer graduação da USP e trabalhar ao mesmo tempo é quase impossível…”

    Quase, mas não impossivel. Essa visão de coitadismo é um saco. Pra fazer a USP basta ser clase média (filho de trabalhador), com apoio da familia e algo na cabeça. Não só filho de rico sai de universidade publica (e nem de privada).

    Eu fiz USP e sou filho de pais que trabalharam muito e não são ricos.

    Graduação na USP não é só para ricos não.

    Flávio Costa (usuário não registrado) em 24/06/2010 às 1:05 pm

    @André Luis Pereira dos Santos
    @Philippe

    Coitadismo?
    Me referia as pessoas que moram sozinhas e tem que pagar as próprias despesas. Os horários das disciplinas que teriam que cursar numa graduação da USP não são compatíveis com nenhum emprego razoável.
    Mas se ficaram ofendidos, me desculpem. Como dizem por ai, “cada um sabe onde o calo aperta”.
    Eu não consegui fazer USP, não por falta de capacidade ou por “achar melhor” um UniDiplomaEm48X.
    Moro sozinho desde os 18 anos, pago aluguel, consegui terminar minha graduação em Ciência da Computação em uma UnidaVida e não me considero “coitadinho”, pelo contrário.

    Att.,

    Flávio Costa

    Benjamim (usuário não registrado) em 24/06/2010 às 1:22 pm

    aiai… tava demorando.

    odisley (usuário não registrado) em 24/06/2010 às 1:38 pm

    Para mim o grande problema da falta de mão de obra, são os baixos salários, querem nos remunerar como “meninos da informática” onde apenas dando o dinheiro pro Video Game e o MilkShake ficamos satisfeitos. Daí temos grandes quantidades de bons profissionais insatisfeitos com isso migrando para outras atividades.

    Weber Jr . (usuário não registrado) em 24/06/2010 às 2:32 pm

    @Juan

    “@Weber Jr., não gosto do MySQL, mesmo assim discordo do seu ponto de vista.”

    Na verdade eu acabei nem dando boas razões, mas vamos lá.

    “Acho sim que ele pode ser usado como ferramenta de ensino, até porque várias empresas o usam em produção.”

    Isso não é motivo. Se for por esse lado vamos acabar com linux, afinal todas empresas usam Windows na imensa maioria.

    Empresa usa o que bem entender que ache que sirva para os seus fins.

    Mas quando se trata de um curso de universidade é preciso tomar cuidado, ideal é aprender conceitos e técnicas, não uma implementação específica.

    E o MySQL nunca foi muito afeito a conceitos. E quando fiz as cadeiras de BD (lá por 1999/2001) era muito pior.

    “Se a opção for estudar um SGBD proprietário, recomendo o IBM DB2 Express-C (dá para usar em produção gratuitamente). Ele tem menos limitações que o seu concorrente, o Oracle Express Edition.”

    Pois então, eu não recomentei do Oracle porque quero que o usem depois, mas sim, Oracle é muito bom contempla boa parte do padrão (antigamente não era tanto). E como falei, defendo que se aprenda os conceitos, depois escolha o banco que mais lhe agradar.

    E taí, foi bom você falar, na universidade usávamos o DB2. Mas nem aprendi nada particularidade nenhuma dele, usávamos ele porque era (e acho que ainda é) um dos que mais segue os padrões, embora não seja tão popular.

    Aprender com MySQL é pedir para limitar por baixo.

    Tiago (usuário não registrado) em 24/06/2010 às 2:54 pm

    @Flávio Costa
    Não cara. O que você quer não é um curso universitário, é um curso técnico.

    Há muito tempo eu falo isso. No Brasil existe o modismo de ter curso superior para tirar xerox. É incrível. Acredito que se uma empresa precisa de programadores, ela deve pedir alguém com curso técnico, e não superior. Se o cara tiver o diploma bem, mas se não tiver e for técnico, está perfeito.

    Mas isso não é só na informática, é em quase todas as profissões. Uma coisa é o cara fazer Ciências da Computação, um curso teórico e que não dá base para o cara ir para o mercado sem nenhuma outra formação. Outra coisa é um curso técnico de 2º grau que ensina o cara ser programador.
    Se a empresa precisa de programador, o segundo caso serve. Se precisa de algo mais complexo, pega o formado em CC.

    Agora, ridículo é o cara ir para faculdade para aprender a programar. Isso se aprende com o Google e no Senac. Universidade não é para isso.

    Agora, também tem a subida de degraus. Se o cara não tem condições de cursar uma faculdade decente, faça um curso técnico, e se programe para cursar a faculdade um pouco mais na frente. Nem que tenha que pagar uma PUC. Mas se planeja para isso. O que realmente não pode é choramingar de coitado e não traçar estratégias para mudar de situação. Não conheço ninguém que é bem sucedido e ficou choramingando durante os períodos de dureza. Pelo contrário, colocaram a cabeça no lugar e traçaram um objetivo.
    Não tem como cursar a universidade com 18 anos, curse com 25, com 30, mas não deixe de crescer. Ou, morra programador. Isso é mais uma atitude pessoal do que social.

    Isso é minha opinião.

    Benjamim (usuário não registrado) em 24/06/2010 às 3:32 pm

    Para mim ter habilidade para a área de informática aqui no brasil é mais uma maldição do que uma benção. A área de informática é extremamente desvalorizada… Não adianta falar o contrário, é a mais pura verdade. Acho que o mercado vendeu a falsa idéia de que o “mundo depende da informática e quem souber tem futuro garantido” ou então que “o homem mais rico do mundo trabalha com informática”, a verdade é que informática exige muito estudo, dedicação, trabalhos que varam a madrugada , finais de semana e ainda por cima te paga míseros R$2000,00 reais no final do mes. Pronto, falei.

    Tiago (usuário não registrado) em 24/06/2010 às 4:28 pm

    @Benjamim
    É nossa vidinha de pu*a!

    Mas elas pelo menos são desejadas, hehehehehe!
    A gente é só um mal necessário! hehehehehe

    Benjamim (usuário não registrado) em 24/06/2010 às 4:32 pm

    @Tiago

    kkkkkkk… essa é boa ! Pelo menos elas são desejáveis ! heheh

    @Tiago a “residência” em especialidades da área de saúde ocorre após a graduação, nunca durante.

    para min o ensino de C/C++ e assembly deve ocorrer na graduação e cursos técnicos não por questões de empregailidade mas pela participação basilar dessas linguagen na informática como um todo.

    Para min a ahabilidade em programar está no mesmo patamar que para um músico. Nenhum músico vai para a universidade para aprender a tocar, considero o mesmo sobre habilidades em programação.

    elias (usuário não registrado) em 24/06/2010 às 5:42 pm

    hoje, em 2010, ciencia da computacao na ufrn aborda, tipicamente, ocaml, c, c++, java, e haskell (nessa ordem).

    a materia introdutoria eh dada em ocaml, e eh focada em programacao funcional, mas aborda orientacao a objetos e programacao imperativa e estruturada “comum”. c++ aparece na pratica de estruturas de dados I, tipo pilha, fila.. mas nao eh mto mastigada (o prof normalmente fica explicando os conceitos de OO, ou coisas mais avancadas como templates; ele espera que o aluno aprenda o basico de C por conta propria). em aed II se implementa as estruturas (arvore avl, grafo..) em java, mas denovo, nao se tem realmente um curso de java.

    haskell eh vista numa materia sobre paradigmas de programacao; os alunos precisam escrever um interpretador usando ele (tipicamente um interpretador de uma linguagem imperativa, como pascal)

    o que os alunos reclamam eh que muda muito bruscamente. o aluno passa 1 semestre vendo ocaml, e depois ja muda pra c++, que eh mto diferente (a transicao c++ -> java eh mto mais tranquila). tb, mtos alunos percebem como ‘inutil’ essas linguagens menos conhecidas (tipo ocaml e haskell), que sao usadas mais no meio academico.

    agora, o problema maior eh que mtos alunos so programam quando o professor pede. sei la, acham chato programar, nao fazem nem joguinhos bestas ou paginas. dai nao tem como ter preparacao, ne? o que se programa nas disciplinas eh mto pouco; na maior parte do tempo, fica-se falando de conceitos e ideias. (o curso nao eh sobre aprender a programar)

    tem um curso agora chamado engenharia de software, mais focado na parte de programacao. nao acho que valha a pena fazer um curso superior e se focar na parte tecnica, mas enfim. o nome pode levantar algum preconceito, mas qdo se fala em programacao em grupo, os alunos estao aprendendo a usar subversion, git, essas coisas. achei legal =)

    Isso mostra a diferença que existe entre PROGRAMADORES e ESCRITORES DE PROGRAMA.

    Para o PROGRAMADOR não existe linguagem fácil ou difícil, porque ela é apenas um detalhe.

    O C e o C++ foram abandonados porque o ensino de programação foi abandonado.
    Hoje se ensina a clicar em botões e a usar alguns módulos prontos, mas não se ensina mais como criar esses módulos.

    Muitas pessoas encaram aprender programação como quem aprende um editor de texto.
    A parte chata (porém vital) é deixada totalmente de fora na maioria dos casos.
    Fixamos apenas com a parte bonitinha, com os botões e as telas coloridas e vazias de conteúdo.

    O foco mudou de formação de PROGRAMADORES para formação de ESCRITORES DE PROGRAMAS e isso está mostrando seus efeitos agora.

    Claudio (usuário não registrado) em 24/06/2010 às 7:44 pm

    @Rodrigo:

    vc tem algum mailing list/forum especifico para me passar? Eu realmente nao conheco nenhum.

    Abracos

    Weber Jr . (usuário não registrado) em 24/06/2010 às 7:55 pm

    @Tiago

    “Uma coisa é o cara fazer Ciências da Computação, um curso teórico e que não dá base para o cara ir para o mercado sem nenhuma outra formação.”

    Quem disse que o curso é teórico ?

    Mesmo em cadeiras de Computação Teórica mesmo acaba se fazendo trabalhos para aplicar o que foi aprendido.

    Não se pode é querer que um curso de Ciência da Computação bitole o formando a fazer só o que as empresas gostam, o que está na moda.

    Aprender linguagem em um curso universitário só no caso de necessidade, uma ou duas, para não perder tempo. O resto é por conta do aluno.

    “Agora, ridículo é o cara ir para faculdade para aprender a programar. Isso se aprende com o Google e no Senac. Universidade não é para isso.”

    Tua visão é extremamente preconceituosa, e como todo preconceito, isso acaba te impedindo de entender como funciona de verdade.

    Não se deve é ficar aprendendo toda linguagem e framework do momento, concordo. Mas faculdade é lugar sim de aprender a programar e programar muito bem.

    Sim, se pode aprender tudo indo ao Google. Mas na prática, quem aprende assim acaba desprezando muita coisa que a universidade cobra.

    Complexidade de algoritmos e várias outras teóricas como da parte de Compiladores, pouquíssima gente estuda por conta própria.

    self_liar (usuário não registrado) em 24/06/2010 às 7:55 pm

    Andre Luís Pereira

    É infeliz os sistemas de classes que existem até hoje na educação.Talvez você não seja filho “de pais ricos”,mas infelizmente existe uma grande disparidade entre o que se ensina nas escolas públicas podres e o excesso e exagero do que se pede na USP.

    Resultado , uns 70% de lá estudou em escolas particulares e se matou em cursinhos caros .

    Pode ter certeza que quem entra na USP fez alguma a coisa a mais para passar nela.

    E não vejo iniciativas fortes das universidades públicas em diminuir os requerimentos e ampliar a rede da educação .O segundo pior resultado , que uns 70 % de lá vai trabalhar para as senhoras grandes empresas (aka corporações) e que raramente se ve retorno público nisso.Não é a toa que a Nokia e afins adoram fazer conferencias nas universidades públicas.

    Mas o pior é que se cria sistemas estúpidos de classes o tempo inteiro .A privatização estúpida da educação (inclua nisso certificações) é devido ao fracasso da sociedade universalizar a educação publica.Agora para as pessoas sobreviverem com salários adequados ,elas devem se matar em educação privada.

    @self_liar

    Concordo que existe a tendência à maioria dos estudantes que ingressam na USP de terem tido mais recursos ao longo de sua vida escolar, tornando para estes mais fácil a entrada na instituição.

    Mas não é uma regra, e existem muitos casos de estudantes da USP que saíram de famílias até bastante pobres.

    Mas a maioria realmente é proveniente de familias com um pouco mais de recursos.

    Mas não se corrige isso com a facilitação dos critérios da USP. Isso seria nivelar por baixo os requisitos que na prática, ajudaram a USP a ter o respeito que possui hoje em dia ainda.

    A solução é nivelar por cima a educação básica e não por baixo a superior.

    E com educação básica, quero dizer a das escolas públicas de primeiro e segundo graus.

    Eu fiz só escola pública. Me matei bastante na época do vestibular, mas compensa.

    Teria sido mais fácil se a escola pública fosse melhor, mas como a banda não tocou assim, cada um dá o jeito que pode e que quer (não necessariamente as 2 coisas).

    Benjamim (usuário não registrado) em 24/06/2010 às 10:29 pm

    @André, falou tudo meu caro. A única solução é nivelar a educação básica no Brasil, não tem outro remédio. O problema para isso acontecer não é nem financeiro, é político mesmo. Como isto é um investimento de longo prazo o governo que investir recursos nesta área não será o mesmo que colher os frutos. Conhecendo os nossos políticos, alguém enxerga solução para isso ? eu não.

Este post é antigo (2010-06-24) e foi arquivado. O envio de novos comentários a este post já expirou.