terça-feira, 7 de fevereiro de 2012

Você é um profissional atualizado?

Programadores, engenheiros de software e desenvolvedores em geral, são sujeitos a uma enorme carga de informações voláteis! O que era realidade há uma semana, pode ter mudado neste mesmo instante. Tecnologias, linguagens, plataformas e técnicas surgem e morrem a todo instante. E você? Está atualizado? Não se preocupe! O Bom Programador criou um teste (igual aos de revista) para que você se auto-avalie.
Calma!


Responda com tranquilidade e depois veja sua nota.

  1. Testes não fazem parte do produto final.
    Certo Errado
  2. Comentar bem o seu código é boa prática de programação.
    Certo Errado
  3. Continuum é aquele lugar onde o "Q" mora.
    Certo Errado
    (se não sabe quem é "Q", está na área errada)
  4. A melhor técnica de programação é a estruturada.
    Certo Errado
  5. Injeção de dependências é para tratamento de viciados.
    Certo Errado
  6. Hudson é um rio dos Estados Unidos.
    Certo Errado
  7. Refactoring é o que fazem com os carros depois de um "recall".
    Certo Errado
  8. Team Foundation e Team Concert são técnicas para gerenciamento de equipes.
    Certo Errado
  9. Objective-C é um "C" mais enxuto.
    Certo Errado
  10. Sprint é uma corrida rápida, de 20 minutos.
    Certo Errado






Avaliação

Se você tirou acima de 8:


Você é um profissional atualizado, que se preocupa com a qualidade do código-fonte e esta sempre procurando melhorar  o seu trabalho, ou seja, digno do título "Bom Programador"!


Se você tirou 4, 5, 6 ou 7:


É, cara... Você não anda muito atualizado! Ou está desestimulado ou então passou da hora de se aposentar. Vou usar um termo da sua época para que entenda o que tem que fazer: OU DÁ OU DESCE! Ou se atualiza, ou então é melhor se aposentar e plantar hortaliças.

Agora, se tirou menos que 4:


Realmente! O que você está fazendo nessa área? E nessa página? Cara, larga de desperdiçar tempo dos outros e vá procurar sua turma!


Se você pretende continuar desenvolvendo software

Numa boa, sem traumas: VAI ESTUDAR K@4@1h0! Procure se atualizar! Leia um bom livro (de preferência alguns dos meus), ou faça uma pós graduação... Sei lá.

O instituto Infnet tem um excelente curso de Pós em Engenharia de Software: http://www.infnet.edu.br/escolasuperiordatecnologiadainformacao/pos_graduacao.aspx, assim como outras instituições também oferecem cursos semelhantes, a um preço que você pode pagar. 

Se você quiser maior motivação, se inscreva em um concurso público, estude, quebre a cara. Tenho certeza que vai te ajudar a se atualizar.


Pega mal falar besteira

E ainda pior é escrever besteira! Tenha certeza que entre seus leitores haverá algum que está mais atualizado, e vai te detonar geral. Foi-se o tempo do Mainframe e da programação "Ad Hoc". Hoje, não há lugar para amadorismo ou achismo ("eu acho que..."). Engenharia de software tem fundamentação, métodos, técnicas e corpo de conhecimento. Se não acredita, leia o SWEBOK (http://www.computer.org/portal/web/swebok).


Se você sifu no teste...

1 "Testes não fazem parte do produto final."

Claro que fazem! Os testes são tão importantes quanto o próprio código que realiza os casos de uso, devendo serem mantidos pelas mesmas regras de SCM que o sistema em si. Leia mais em: http://en.wikipedia.org/wiki/Regression_testing.

2 "Comentar bem o seu código é boa prática de programação."

Lembre-se da máxima: um bom programador não comenta seu código! Já falamos muito sobre comentários aqui. O ideal é que se escreva código auto documentado, e não ficar enchendo o programa de comentários idiotas. Leia mais em: http://c2.com/cgi/wiki?SelfDocumentingCode e http://www.javaranch.com/styleLong.jsp#doc.

3 "Continuum é aquele lugar onde o "Q" mora."

"Q" era um personagem alienígena da série Star Trek New Generation (http://pt.wikipedia.org/wiki/Q_(Star_Trek)), que morava em uma dimensão chamada "Continuum". Na verdade, "Continuum" (http://continuum.apache.org/) é um software para implementar a técnica de Integração Contínua (http://martinfowler.com/articles/continuousIntegration.html).

4 "A melhor técnica de programação é a estruturada."

Só se foi na época em que Dom João resolveu fugir para o Brasil. Cara! Programação estruturada hoje em dia é default! Ninguém mais pensa em programar com "goto" ou algo semelhante... Se esta é a melhor técnica de programação para você, então deve ter sido congelado nos anos 70 e só acordou agora!

5 "Injeção de dependências é para tratamento de viciados."

Hahahaha. Se você disse que esta afirmação está certa, então tá fu6160! Tem que começar do zero, cara! Injeção de dependências é uma técnica para prover instâncias de classes concretas para um código cliente, evitando o acoplamento com as mesmas. Veja o excelente artigo de Martin Fowler: http://martinfowler.com/articles/injection.html.

6 "Hudson é um rio dos Estados Unidos."

Com certeza! É o rio que separa New York e New Jersey, mas não é isto que queremos saber... No contexto de engenharia de software, Hudson (http://wiki.hudson-ci.org/display/HUDSON/Meet+Hudson) é outra ferramenta de integração contínua, muito popular também.

7 "Refactoring é o que fazem com os carros depois de um "recall"."

Olha, essa foi s@c@n@93m, afinal, parece mesmo, não? Na verdade, "Refactoring" é o processo de modificar um sistema de software para melhorar a estrutura interna do código sem alterar seu comportamento externo, conforme a Wikipedia (http://pt.wikipedia.org/wiki/Refatora%C3%A7%C3%A3o). Se você quiser saber mais, leia: http://martinfowler.com/refactoring/

8 "Team Foundation e Team Concert são técnicas para gerenciamento de equipes."

Na verdade, "Team Foundation" é a ferramenta de ALM (Application Lifecycle Management) da Microsoft, associada ao MS Visual Studio (http://msdn.microsoft.com/pt-br/vstudio/ff637362), e "Team Concert" e o ALM da IBM/Rational (http://www-01.ibm.com/software/rational/products/rtc/). Agora, você sabe o que é ALM? Não? Então leia: http://pt.wikipedia.org/wiki/Application_lifecycle_management.

9 "Objective-C é um "C" mais enxuto."

Outro: "Hahahahaha!" Parece mesmo, não? Mas, na verdade, é ao contrário! Objective-C é uma linguagem de programação criada na década de 1980, com  o objetivo de aumentar a reusabilidade de código no desenvolvimento de aplicações. Ela foi adotada por Steve Jobs, quando criou seu sistema operacional NeXTSTEP e, posteriormente, quando a NeXT foi adquirida pela Apple, tornou-se a linguagem padrão para criação de aplicativos para as plataformas Mac OSX e iOS (iPhone, iPad e iPod touch). Leia mais em: http://pt.wikipedia.org/wiki/Objective-C.

10 "Sprint é uma corrida rápida, de 20 minutos." 

Na verdade, "Sprint" é a unidade básica de desenvolvimento em Scrum. Sprints tendem a durar entre uma semana e um mês, com objetivo bem definido. Scrum é um processo de desenvolvimento ágil de software. Leia mais em: http://pt.wikipedia.org/wiki/Scrum#Sprint_.28corrida.29.