[quote]
eu concordo bastante com você quanto a que é importante conhecer o funcionamento do framework, saber como funciona por baixo e saber por que é daquele jeito, a diferenciação, todo esse grupo de detalhes, mas discordo muito que o mercado de valor a isso (gostaria muito de concordar) e discordo que uma pessoa que tenha esse conhecimento simplesmente se de bem em qualquer entrevista, na verdade a entrevista depende de mais coisas, aliás a entrevista costuma depender mais dessas outras coisas:
o que eu vejo nas vagas de emprego e no que é cobrado nas entrevistas não é arquitetura, não é conhecimentos reais de design patterns, é uma lista nomes de frameworks e ferramentas que não costuma ser pequena… ao contrario, a mairoia mesmo pra pleno por exemplo poe várias perguntinha de scjp, inclusive aquelas que você praticamente nunca usa na prática…
ir bem na entrevista depende também de(quando não depende “mais de”) habilidades sociais que aliás muitas vezes são o lado mais fraco ou pelo menos mais fraco do que o lado técnico de quem tem tanto conhecimento técnico…[/quote]
Sim, o lado social não pode ser deixado de lado mesmo. Acho que numa entrevista, se brincar, ele conta tanto quanto seu conhecimento técnico.
Agora, cuidado ao dizer que o que as empresas cobram é o que põe nas vagas de emprego. Muitas empresas põe na vaga o profissional ideal, que gostariam que batesse à porta. Ou então, põe a tecnologia que gostariam que o profissional soubesse, mas farão uma investigação mais profunda na entrevista. A entrevista vai contar muito, e o caboclo demonstrar segurança e conseguir responder bem as perguntas que lhe são propostas é um grande diferencial.
Nas entrevistas, vão te questionar geralmente sobre os projetos que já participou e, ter conhecimento das tecnologias que usou, por que usou, e como usou ajudam nessa argumentação. Só dizer que você chegava na empresa, batia o ponto e fazia o que foi mandado não é diferencial para ninguém. Agora, argumentar com solidez suas decisões de design, ou mesmo mostrar que você entende porque sua chefia tomou as decisões que tomou, é.
Outro fato é que, se você é um programador tecnicamente competente, provavelmente irá crescer em seu emprego. Um programador que sabe o que faz programa mais rápido, gera menos erros e perde menos tempo apanhando com o próprio software. E crescendo, terá o que mostrar no seu currículo, terá projetos interessantes para comentar numa futura entrevista e isso te ajudará a ser contratado.
Finalmente, se você é reconhecido como um profissional realmente competente da sua área, você provavelmente não precisará de processos de contratação elaborados ou longas entrevistas de emprego. Provavelmente, bastará avisar aos seus contatos que você quer trocar de ares… e você terá indicações.
Não discordo com ninguém que é importante conhecer a ferramenta, nem acho que devemos agora ser generalistas ou puramente acadêmicos. Só acho que um programador não pode basear nisso sua carreira. Como a história mostra, mudar de tecnologia é um pré-requisito fundamental para se sobreviver na área. E para se adaptar à mudanças, é importante saber o que você está fazendo.
E, infelizmente, não é o que vejo muito colegas fazendo. Tem muita gente por aí, que está contente em simplesmente “fazer funcionar” com aquelas ferramentas que aprendeu.
PS: Note que na minha lista inicial eu também coloquei como um atributo de um programador aprender a trabalhar em equipe. Networking é, sempre foi, e sempre será um grande diferencial nas contratações.