Tenho bons amigos empresários e gerentes de projeto, com os quais converso bastante. Um tema comum é o mercado de […]

32 comentários
Geral

Ainda sobre bananas e diamantes

Tenho bons amigos empresários e gerentes de projeto, com os quais converso bastante. Um tema comum é o mercado de trabalho. Eles sabem que eu trabalho com treinamento e ocasionalmente me pedem para indicar um profissional. O que eu vou dizer aqui não está baseado em nenhuma pesquisa formal, mas nesses bate-papos com amigos. Parece haver um consenso entre eles: há muita gente despreparada no mercado. Não há falta de vagas, mas falta de desenvolvedores preparados para as vagas existentes.

Aliás, essa foi uma das coisas em que pensamos bastante antes de abrir a Visie. Trabalhar com treinamento para quem já é profissional de web é uma maneira de preencher lacunas no mercado, e isso significa ganhar dinheiro oferecendo algo de valor real, que vai fazer diferença na vida dos alunos.

Conversei anteontem com um amigo que acaba de contratar um bom desenvolvedor VB. Salário de mais de R$ 6000,00, razoável, não? Mas ele teve dificuldades em contratar. Não achava alguém que desse conta do recado.

Veja, por exemplo, essa oferta de emprego: Python Developer para o Ubuntu. Você trabalha em casa, com Python (uau!) e num projeto Open Source. Trabalha com uma equipe grande, faz viagens ocasionais ao exterior para encontrar o resto do time e ganha em Euros!

Veja a descrição da vaga. O sujeito precisa saber Python e de experiência com Orientação a Objeto (e citam Python, Ruby, Java, C++ e C#) e com SQL. Essa é parte técnica. Parece fácil?

Além disso, o candidato precisa de um bom inglês, curso superior, responsabilidade e produtividade, trabalhar bem em equipe, conhecer TDD e metodologias ágeis, experiência com padrões de código e com arquitetura cliente/servidor. Pedem também que o sujeito goste de revisar código e discutir design de software com os colegas.

Perceba algo curioso ali. Entre as exigências para o candidato não há muita coisa a respeito da linguagem de programação ou do banco de dados. O foco está na metodologia. A questão não é com “o quê” você trabalha, mas “como”.

Peguei uma vaga pública num projeto Open Source como exemplo, mas há uma porção de oportunidades como essa por aí, com ferramentas Open Source, com .NET, com Java ou com quase qualquer linguagem atual com a qual você preferir trabalhar. Gente que está interessada em alguém que tenha no currículo não uma lista de linguagens, mas conhecimentos, e se possível experiência, que comprovem que ele sabe trabalhar bem com essas linguagens.
Veja um currículo como um milhão de outros que recebemos, na parte que diz o que o sujeito sabe fazer:

Conhecimentos avançados:

  • .NET (C# e VB.NET)
  • MS SQL Server
  • Oracle
  • ASP e ASP.NET
  • HTML, CSS e Javascript
  • Visual Basic 6 (e anteriores)
  • Windows DNA
  • Crystal Reports
  • Visual Studio .NET
  • Dreamweaver
  • … e assim por diante …

Troque .NET e ASP por Java, ou Python, ou Ruby, ou PHP. Troque MS SQL Server por MySQL ou Postgre e Oracle por Sybase. Troque VB 6 por Delphi ou Swing/AWT, e Windows DNA por J2EE, ou LAMP, Visual Studio .NET por Eclipse, Dreamweaver por GoLive, ou FrontPage (argh!) Variando essas opções, você vai ter varrido 95% dos currículos de programadores brasileiros.

O sujeito do currículo aí em cima me deu uma impressionante lista de siglas, mas esqueceu-se de dizer se vai escrever os testes de unidade antes do código, se só fará commit de código funcionando para o controle de versões, se seu código vai estar identado e comentado, se vai refatorar o código até que esteja em sua forma mais simples, se vai escrever pensando em reuso e documentar isso para o resto da equipe, se o HTML gerado será semântico e aproveitável pelos designers, se trabalha bem em equipe, ajuda os colegas menos experientes e escuta os mais experientes e se vai trazer ânimo, energia e bom humor para o time.

Vamos falar sobre como você trabalha, tá legal?

É importante ter uma impressionante lista de siglas em seu currículo, principalmente se você for usá-las. Mas apenas conhecer linguagens e ferramentas não faz de você mais do que um Code Monkey.

Digamos, por exemplo, que eu precise de um programador com experiência em testes de unidade. Não vou pesquisar por uma linguagem específica porque assim fica mais fácil encontrar algum com experiência em testes de unidade, embora, numa situação real, eu fosse procurar um com experiência em testes de unidade e Java (ou Python, ou C#, ou Ruby, ou PHP…) Bom, vamos lá: www.apinfo.com

Veja os resultados da pesquisa agora:

  • TDD: 0 currículos
  • teste de unidade ou testes de unidade: 0 currículos
  • teste unitário ou testes unitários: 7 currículos
  • unit test ou unit tests: 0 currículos
  • extreme (porque o pessoal da extreme programming trabalha com testes de unidade): 13 currículos

Percebeu? Treze currículos no Brasil inteiro. Para comparar, faça uma pesquisa por PHP ou mesmo Python.
Um bom programador aprende uma linguagem nova em uma semana, e se torna fluente e produtivo nela em poucos meses. Como você trabalha é muito mais importante que com o quê. Como você desenha o software, como você analisa e resolve problemas de software, como você assegura que seu software funciona bem, como você se assegura de que outras pessoas da equipe não irão quebrar seu software, de que outra pessoa poderá continuar seu trabalho, de que não terá que reescrever todo o sistema se o cliente mudar uma regra de negócios?

Um de nossos objetivos para o próximo ano é oferecer a nossos alunos a possibilidade de obter esse conhecimento. Quem for ao Workshop de Produtividade entenderá do que estamos falando. Chega de perder tempo, você precisar trabalhar rápido e ter completo controle sobre o que está fazendo.

Você pode nos ajudar, deixando o seu comentário, nos dizendo como você trabalha. Como faz para ser produtivo e garantir a qualidade do seu trabalho?

32 Responses to “Ainda sobre bananas e diamantes”

  1. […] Ah, de passagem, deixe-me aproveitar para dizer: que tal trabalhar desenvolvendo o Ubuntu? Em casa, ganhando em Euros e fazendo ocasionais viagens internacionais. Você está preparado? […]

  2. Muito bom o texto. É uma dificuldade que eu tenho. Sempre me orgulhei de dar conta do recado sozinho na minha empresa, mas este ano se fez necessário contratar um profissional para que eu possa dividir o desenvolvimento e assim crescer mais! E isso tem dado mais trabalho do que sentar e eu mesmo continuar desenvolvendo sozinho! As pessoas acham que o fato de ter aprendido os fundamentos básicos de qualquer linguagem os torna preparados para o mercado de trabalho. O texto me fez ver que eu mesmo ainda não estou 100% e tenho muito a aprender!

    Abração!

    Vedovelli

  3. Fabiano disse:

    Sou estudante de DSI(desenvolvimento de sistemas de informação) e acredito que muito dessa visão de decoreba de siglas e sopas de letrinhas tem como grande culpado as metodologias de ensino. O meio acadêmico deveria preocupar se em formar pessoas com capacidade de analisar problemas e saber abstrair uma solução adequada.
    Trabalho com a analise e implementação de sistemas e percebo que existem excelentes codificadores(sabem tudo de sintax de linguagens de programação) e muito pouco de técnicas de construção de algoritmo(básico mesmo). Não posso dizer que sou um expert em nenhuma linguagem(sei o suficiente de algumas para resolver nossos problemas aqui na empresa e para implementar trabalhos na escola), mas já resolvi muitos problemas complexos utilizando apenas uma abordagem de leitura do problema e a busca por sua solução(simples assim).
    Gostaria de parabeniza-los pelo conteúdo dos artigos, são uma referência pra mim na busca do constante aperfeiçoamento.

  4. […] O Elcio escreveu um texto muito interessante lá no Blog da Visie. Ele fala que hoje em dia, o como pode ser mais importante do que com o que você trabalha. […]

  5. rochester disse:

    Acho que o importante é saber como resolver o problema, e saber como poderá funcionar o sistema e escolher a melhor opção. só depois programar em qualquer linguagem que seja. alias, há programas que fazem esse “trabalho de macaco”, mas não há programa no mundo que um dia chegue a fazer essa análise que só o cerebro humano (ou de alguns -poucos- humanos), escolher a melhor forma, e saber defendê-la.
    =D

    []’s

  6. Gilberto disse:

    Muito bom texto, isso me ajuda a preparar pro mercado já que eu sou muito novinho (18 anos) e ainda tenho tempo para aprender melhor as minhas linguagens que já adquiri e assim sei quais as exigencias, brigadão.

    Abraço
    Gilberto

  7. Assunção JR. disse:

    Nossa até agora pouco me sentia capacitado para programar “algumas coisas”, mas agora sei que preciso mais do que nunca que preciso estudar, estudar, estudar…

  8. Aqui em Fortaleza está ainda pior. Conta-se nos dedos de uma mão quem trabalha com web semântica. Quem tem noções de usabilidade então… Se entrar acessibilidade aí já era.
    Estou montando minha empresa com 3 dos melhores profissionais que conheço nas suas áreas, mas precisaremos aumentar a equipe em breve e não conseguimos ninguém com o perfil que queremos.
    Solução: escolher alguém que está iniciando e treiná-lo na prática.
    Se não levar pela mão, não sai do canto.

  9. Fabyo disse:

    Tudo que foi falado é verdade, falta profissional na web, preparado e ja tive que procurar profissionais para contratar e vi como é dificil achar alguem que se enquadre no perfil, se voce publica que precisa de um programador VB, o pessoal monta o curriculo formatado para VB, se voce fala que precisa de programador WEB , eles mudam as siglas, mas na entrevista da pra notar que o candidado nao tem intimidade no que ele mesmo citou no curriculo, apenas colocou para preencher os espaços, e outra coisa importante é saber trabalhar como ja foi falado aqui, peguei um programador de VB, e no começo parecia que ele era rapido eficaz, mas quando tivemos que mandar ele embora, por outros motivos, percebemos que os codigos dele estavam cheio de gambiarra e erros, e muita coisa que ele fez ele ja tinha pronto era mais só editar, e o que falta mesmo no mercado é profissionais competentes que gostam do que faz e fez bem feito.

  10. Jefferson Rafael disse:

    Acredito que o grande erro da maioria dos desenvolvedores esta no fato de não pensar primeiramente na solução, ou seja, a primeira coisa que fazem é sentar na frente do micro e saem programando e sem nenhuma especie de planejamento e estrategia.

  11. Elcio, bom artigo e ótimo assunto! Muito bem explorado.

    Reavaliei a _forma_ como *eu* me disponibilizo para o mercado de trabalho e pensei que posso agora mesmo mudar muitas frases no meu currículo para descrever melhor _como_ eu sou, e não _o que_. =)

    Me avalio como um profissional que tenta fazer o melhor dentro do pouco que sei, CONTUDO, acho que a grande massa de consultorias famintas apenas procuram por siglas de tecnologias atuais.

    Quando me ligam ou me mandam e-mails com ofertas de emprego, a chamada é sempre a mesma: “Programador PHP”, “Programador ASP” e os mais ousados são “Desenvolvedor Web”. Por conta disso, acho que o problema está um pouco mais embaixo… mas, vou fazer a minha parte.

    Obrigado pelo toque. Muito útil!

  12. Rubia disse:

    Legal essas coisas de programação. Eu me arrisco um pouco com o PHP e MySQL, mas não sei bem!! Só me arrisco mesmo.

    E já que estamos falando de trabalho…

    Sou designer/ilustradora se alguém precisar dee tratamento de imagem ou ilustração, estou às ordens 🙂 rugardini@ig.com.br

  13. Henrique disse:

    Elcio, gostei muito do seu texto, no entanto as qualidades que você aponta como necessárias a um programador não seriam, na verdade, características de um analista de sistemas ?
    Não é verdade que é tarefa primordial do programador de computadores a execução do que foi planejado pelo analista de sistemas ?

    Um abraço, e parabéns pelos textos sempre bem escritos.

  14. Paulo Coimbra disse:

    Metodologia sem conhecimento é o nada, conhecimento sem metodologia é improdutivo e pouco funcional. Vale lembrar aqui, Elcio, que eles não podem andar separados. Concordo plenamente que linguagens são apreendidas muito mais rápido. Mudar a sua cultura (desenvolvedor) para se adaptar a uma metodologia é uma experiência muito mais complexa e, por vezes, paradoxal.

    Entretanto, é preciso saber qual caminho é o mais adequado não somente a sua abordagem, mas a realidade da empresa e equipe. E devo admitir: existem hoje uma boa leva de processos e métodos que batalham pelo papel de líder na evolução do mercado.

    Qual escolher? Depende da realidade a sua volta (você, características da equipe, tamanho da empresa, do projeto, prazo, recursos, …). Me responde: você conhece seu campo de batalha?

  15. Thalis Valle disse:

    Realmente, é assim que funciona mesmo…

  16. Johny Viajanito disse:

    Contrata-se programador:

    TDD
    UML
    EXTREME PROGRAMMING
    .NET (C# e VB.NET)
    MS SQL Server
    Oracle
    ASP e ASP.NET
    HTML, CSS e Javascript
    Visual Basic 6 (e anteriores)
    Windows DNA
    Crystal Reports
    Visual Studio .NET
    Dreamweaver

    Salario médio do Perfil: R$1500

    Tsc tsc tsc…

  17. Makakito disse:

    Testes para testadores
    Analise para analistas
    Programação para programadores
    Banco de Dados para DBAS
    Desing para web designers

    Quem diz que domina tudo na verdade domina uma unica coisa, a arte de enrolar. Empresas que querem um dreamtime tem que pagar por isso, ou se contentar com talentos individuais em cada setor.

    Já dizia meu avô: Cada macaco no seu galho.

  18. Bruno disse:

    Acredito que o problema não esteja só nos profissionais… o mercado acaba ‘ditando’ um pouco isso. Muitas empresas só querem saber se vc tem o certificado XYZ MasterFucker da linguagem ‘que esta na moda atualmente’…
    Não fiz muitas entrevistas na minha carreira mas na maioria delas eles só estavam interessados em proficiência bem especificas…

  19. Ricardo Momm disse:

    Opa,

    Muito bom o texto, muito instrutivo, já estou alterando meu currículo. Nunca tinha olhado este lado da moeda.

    []´s

  20. Marco Gomes disse:

    Fiquei “orgulhoso” ao ler este texto, porque meu currículo ( http://marcogomes.com/curriculo ) não tem assim tantas siglas, mas tem sim os métodos de trabalho, descrevo minhas características de produtividade e concentração, gtd e tudo mais.

    Ótimo texto, parabéns.

  21. Dirceu Bimonti Ivo disse:

    O analista de sistemas tem o seu papel na equipe assim como o programador, mas você como programador tendo conhecimento nas outras funções pode desempenhar um papel muito importante no fluxo do projeto. Ou você acha que um analista nunca erra ? E o programador pode ser a peça chave para pegar esse erro ?? Ou ainda ele pode sugerir opções vendo o projeto de outra maneira ??

    Acho que o citado no texto é o diferencial que as empresas procuram, afinal programadores da linguagem ‘x’ existem aos montes, mas os que têm esse diferencial que vai ajudar muito a equipe são poucos, e está aí o que as empresas buscam.

  22. Diego disse:

    Olá Elcio ja venho vendo seus tutoriais a alguns meses e virei fan, no seu blog as dicas são alto nivel, hoje em dia o pessoal so ta carendo moleza a solução mais simples não se preocupando com agilizade,disponibilidade, falando a real serviço porco. . .
    Gostaria de saber se você poder mandar umas apostilas boa para mim tambem, sobre ajax que estou iniciando e cros broswer!
    Valeu um abraço!

  23. ai Henrique, vai pensando q existe apenas analistas de sistemas hoje em dia q vc ta frito mermãozinho….

    nao vou entrar em mto detalhe, mas dizer que me atenho a um bom planejamento e preparado com um equipe coesa e alinhada(bem treinada) para realizar o trabalho.

    tendo isso, consegue-se exito.

  24. james clebio disse:

    “… Dreamweaver por GoLive, ou FrontPage…”

    frontpage, elcio?! por quê, homem?

  25. Nathan disse:

    Bom, meu nome é Nathan, tenho 14 anos, trabalho em uma empresa de design de comunicação e desenvolvimento de Web Sites Dinâmicos e Estáticos. Como alguns já comentaram, eu acho que para o desenvolvimento certo de qualquer coisa (sendo um Software, um site, um banner), deve se dar do produto de “conversação” entre “várias” pessoas. As “várias” pessoas podem pensar como clientes. “Há e se o cliente quizer que nós colacamos aquele arquivo ali…”, “Mais vai ficar muito grande essa parte do site…”. Isso chegaria em uma ótima resposta ao cliente, que por sua vez não iria achar coisas “faltando” em seus produtos. Quanto a parte de “como” você faz, isso é algo difícil e lógico hoje em dia. Logicamente existem pessoas que sabem fazer. Não importando nos “outros” trabalhos, por exemplo: eu programo em PHP, já não meche em nada de design. Se meu parceiro me questiona em algo, irei usar a ignorância: “Cara eu fiz assim porquê quem programa sou eu”, ou iria usar um raciocínio humano: “Pois é, e pra tí irá ficar melhor assim? Eu poderia revisar o código e botar de um geito mais amplo, como você disse…”. Bom se com esse texto, as pessoas começarem a pensar em trabalho em equipe e em claficação pessoal, não apenas profissional. =D

  26. Lorn disse:

    Oi Elcio, tudo bem?
    Esse assunto é muito polemico mesmo, queria colocar mais um item que eu acho importante, a questão da certificação, você acha que é valido?
    Eu já vi pessoas que se dizem “certificadas” que não sabia nada, não sabia “se virar”, o que você e os leitores do blog acham disso?
    Até mais.

  27. diego nunes disse:

    E é aí que entram os bons e velhos Patterns que eu ignorei por tanto tempo. E por “patterns” eu não me refiro ao overhyped e overused Singleton, ao bom e velho Abstract Factory. Falo de patterns como abstração de todo um sistema pensado junto com uma equipe ou uma filosofia de desenvolvimento.
    Aprendi muito no meu novo emprego sobre códigos reaproveitáveis, testes de desempenho, brainstorm de soluções… Coisas com as quais eu nunca me preocupava quando trabalhava sozinho.
    Tirando a velha máxima do “não dê crédito à quem ganha com sua convicção”, o artigo está muito bom. Nos vemos no PHP Conference? ;}

    Amplexos.

  28. Rai disse:

    Muito legal esse texto, parabéns!

  29. Lucas Chacon disse:

    bom saber disso, até pq na verdade ainda estou pensando em que area seguir, já que sei q será com informática, mas to entre redes, projetos de hardware, e programação… tenho mais conhecimento sobre hardware, mas cjeguei a usar MySQL, PHP e HTML pra aprender…
    Só n to mt preocupado com isso ainda q tenho 15 anos =D… mas já é bom ver uma area que me faça ter prazer em trabalhar, pq axo q isso é a melhor coisa pra se empenhar e aprender, gostar do que se faz…
    O texto é bem esclarecedor;
    Abraços

Deixe uma resposta