Nuvem negra se aproximando?

[quote=douglaskd]

mas a grande maioria das vagas pedem assim: 2 anos de experiência na linguagem X

dificilmente acha-se vagas pedindo conhecimentos e conceitos gerais de informática em linguagens de programação…[/quote]

acho que vocês estão falando de vagas em níveis diferentes hehehehe…

Sempre trabalhei com C#, conheço um pouco de Java da faculdade e coisinhas pessoais, mas nada no âmbito profissional.

Bom hoje fiz uma entrevista para uma vaga inicialmente anunciada para Java, porém me falaram que tem coisas em C# também, eu gostei, quero migrar para Java por uma questão de carreira, mas adoro .Net e se puder trabalhar com os 2 seria ótimo, tomara que de certo essa vaga.

Sobre o mercado, recentemente fiz um curso de Ruby On Rails na caelum, gostei bastante, é impressionante a agilidade que se tem na criação de sistemas web simples, sem grandes complexidades. E para falar a verdade, boa parte dos projetos vendidos por aí são assim, cruds enfeitados digamos.

A real é que os projetos andam muito caros, mesmo com o leilão de projetos acontecendo entre as consultorias - quem cobrar menos leva - ainda assim os valores estão altos. Dei uma olhada nos valores que minha empresa cobrou para alguns projetos e fiquei abismado. E o pior, coisas simples.

O dia que os clientes começarem a ver que existem alternativas viáveis e com custo baixo para determinados sistemas, ai a rapaziada vai ter que começar a se preocupar.

A verdade é que mercado cobra pela ferramenta porque é o conhecimento mais fácil de avaliar por meio de entrevista, certificações, aplicando testes, etc.

Infelizmente conceitos de OO, estruturas de dados, e outras coisas que deveriam ser básicas não são necessárias para trabalhar com Java, por isso não são cobrados pelas empresas.

[quote=douglaskd]mas a grande maioria das vagas pedem assim: 2 anos de experiência na linguagem X

dificilmente acha-se vagas pedindo conhecimentos e conceitos gerais de informática em linguagens de programação…[/quote]

Mas o que o Vini tah falando não é de “conhecimentos gerais”, mesmo. É conhecimento específico e sólido, em OO, por exemplo. O grande caso é que se você for realmente bom em OO, você vai ser em qualquer linguagem desse paradigma, e tem uma gama grande aí de linguagens: Java, C#, Ruby, Smalltalk, C++… Aprender as nuances da linguagem é o de menos.

claaaro, estes conceitos como o viny disse são importantes, são as bases, concordo inclusive que é um diferencial a pessoa ter esse perfil, o problema é que além de pouca gente ter esse perfil, dos que tem a metade tem perfil acadêmico, conhece design patterns, OO, arquitetura mas não programam, não tem experiência construindo alguma coisa, aplicando estes conhecimentos e conhecimento prático que só vem com isso… nisso sinto muito, mas conhecer a ferramenta conta, e não é pouco … conhecer a linguagem, o framework em questão… etc … e é o que as empresas precisam… claro que o individuo precisa saber o que está acontecendo naquele cenário, mas ele precisa ser produtivo, mais do que saber a forma mais elegante de resolver problema, ele precisa saber resolver problemas e estar acostumado a resolver estes problemas… resumindo, o mais importante é que tudo conta… o maior dos problemas é que geralmente ou as pessoas são especialistas demais, conhecendo só aquilo, só java por exemplo, ou são generalistas demais, não sendo especialistas em nada…

[quote=digaoneves][quote=douglaskd]

mas a grande maioria das vagas pedem assim: 2 anos de experiência na linguagem X

dificilmente acha-se vagas pedindo conhecimentos e conceitos gerais de informática em linguagens de programação…[/quote]

acho que vocês estão falando de vagas em níveis diferentes hehehehe…[/quote]

Mas 99% das vagas pede isso mesmo. O que o Vini falou de estudar a base é muito bonito, mas não vai ajudar arrumar emprego.

[quote=Botocudo][quote=digaoneves][quote=douglaskd]

mas a grande maioria das vagas pedem assim: 2 anos de experiência na linguagem X

dificilmente acha-se vagas pedindo conhecimentos e conceitos gerais de informática em linguagens de programação…[/quote]

acho que vocês estão falando de vagas em níveis diferentes hehehehe…[/quote]

Mas 99% das vagas pede isso mesmo. O que o Vini falou de estudar a base é muito bonito, mas não vai ajudar arrumar emprego.[/quote]

A porcentagem coincide com o número de empresas de TI que são medíocres.

Eu estou falando não só em decorar os conceitos acadêmicos, mas saber aplicá-los. Decorar a teoria não é ter conceito sólido.
Tem gente que passa meses usando o Spring, sem saber nem sequer como é organizado e, principalmente, porque ele é organizado daquela forma.

Se você começa a entender os porques, começa a notar que frameworks em outras linguagens são similares. Ou começa a identificar facilmente como esses outros frameworks diferenciaram para tratar problemas específicos.

Eu vivo repetindo aqui no GUJ, que não adianta programar por copy&paste, ou por tentativa e erro. Também não adianta papagaiar o que os veteranos dizem, só pq um cara “mais forte” que você disse aquilo. Um bom programador tem que saber o porque das coisas, e tem que saber do que ele abre mão quando escolhe essa ou aquela abordagem.

E, claro, um bom programador também procura conhecer as ferramentas diferentes da dele, sem pré-conceito.

Esse tipo de pessoa, consegue se dar bem em qualquer entrevista. Você pode mostrar ao seu contratador que tem conhecimento sólido em outras linguagens e plataformas, e que poderia desempenhar o papel que ele te propõe. Em boa parte dos casos, será possível mudar de área. Até porque, hoje em dia o número de frameworks é tão grande, que nenhum contratador sério pode esperar que um cara saiba exatamente tudo o que a empresa solicitou.

Você só será excluído dos cargos onde a necessidade de conhecimento muito profundo da ferramenta se justifique: geralmente vagas que envolvem a necessidade de otimização, ou hardware.

Além disso, é a capacidade de resolver problemas de maneira rápida, eficiente e elegante que faz com que você suba de cargo. Comece a mostrar para seu contratador que os problemas que você resolve são muito mais complexos que o da maioria, e certamente você terá emprego.

Vini, poucos irão realmente entender o que vc está tentando dizer; muito embora você esteja com a razão.

Acredito que o mercado leva as pessoas a pensar desta maneira; como foi dito basta ver os anúncios das vagas e as entrevistas então é de lascar. Ainda estamos em uma época que se vc fizer um código rebuscado que poucos conseguem entender será considerado o bonzão da computação. O código ainda passa a noção de domínio bem antes da ideia ou entendimento sobre o processo.

Sou imediatamente entendido quando digo “trabalho com Java” (poderia ser C# ou outra rsrsr), se disser “trabalho com TI” percebo um ponto de interrogação enorme na cabeça das pessoas.

flws

não tenho a bagagem que vcs tem em desenvolvimento e muito menos condições de opinar em meio a tantos profissionais.

Mas mesmo começando eu concordo inteiramente com o Vini,
quero começar na área o mais rapido possivel, mas tenho um problema
não consigo estudar nada novo sem antes dominar o que estou aprendendo
consequencia: estudei OO varias vezes com diversas apostilas e abordagens, e ainda estudo
comecei agora a parte web em Java, e ficou mais complicado ainda

É tanta coisa que preciso parar o tempo todo e voltar para entender tudo.

Acredito que uma base sólida em “desenvolvimento” e não em linguagem x, é essencial para quem quer ter uma carreira de sucesso.

Concordo em absoluto com cada palavra do ViniGoy. É provavelmente o cara de maior lucidez no GUJ.

Mas relativo ao tópico, me surpreende muito a surpresa por parte de vocês… Isso que está ocorrendo é absolutamente normal, ISSO É O MERCADO, isso é “bussiness”, nada mais. No momento que uma determina plataforma não for mais interessante para o mercado, gradativamente será retirada do mesmo. A história nos prova isso, como o Vini falou antes. Mas aí entra a questão dos conceitos sólidos citados pelo Vini… Quem tem, nada teme.

E dentro do contexto do desenvolvimento de software, quem ingressa na “role” de “DEV” deve mais do que ninguém estar ciente que isso é absolutamente normal. Quem não quer de cinco em cinco anos estar se atualizando ou migrando de tecnologia, busque se especializar em outra “role”, como gerência de projeto, “tester” ou outro. Pegue um “DEV” com 20 anos ou mais de experiência e pergunte-o todas as tecnologias que trabalhou, serão muitas. Felizmente ou infezmente isso faz parte da vida de “DEV”.

Eu estou falando não só em decorar os conceitos acadêmicos, mas saber aplicá-los. Decorar a teoria não é ter conceito sólido.
Tem gente que passa meses usando o Spring, sem saber nem sequer como é organizado e, principalmente, porque ele é organizado daquela forma.

Se você começa a entender os porques, começa a notar que frameworks em outras linguagens são similares. Ou começa a identificar facilmente como esses outros frameworks diferenciaram para tratar problemas específicos.

Eu vivo repetindo aqui no GUJ, que não adianta programar por copy&paste, ou por tentativa e erro. Também não adianta papagaiar o que os veteranos dizem, só pq um cara “mais forte” que você disse aquilo. Um bom programador tem que saber o porque das coisas, e tem que saber do que ele abre mão quando escolhe essa ou aquela abordagem.

E, claro, um bom programador também procura conhecer as ferramentas diferentes da dele, sem pré-conceito.

Esse tipo de pessoa, consegue se dar bem em qualquer entrevista. Você pode mostrar ao seu contratador que tem conhecimento sólido em outras linguagens e plataformas, e que poderia desempenhar o papel que ele te propõe. Em boa parte dos casos, será possível mudar de área. Até porque, hoje em dia o número de frameworks é tão grande, que nenhum contratador sério pode esperar que um cara saiba exatamente tudo o que a empresa solicitou.

Você só será excluído dos cargos onde a necessidade de conhecimento muito profundo da ferramenta se justifique: geralmente vagas que envolvem a necessidade de otimização, ou hardware.

Além disso, é a capacidade de resolver problemas de maneira rápida, eficiente e elegante que faz com que você suba de cargo. Comece a mostrar para seu contratador que os problemas que você resolve são muito mais complexos que o da maioria, e certamente você terá emprego. [/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…

para se pensar

diferentemente, acho que estas habilidades normalmente mantem o emprego, não o conquistam.

Eu estou falando não só em decorar os conceitos acadêmicos, mas saber aplicá-los. Decorar a teoria não é ter conceito sólido.
Tem gente que passa meses usando o Spring, sem saber nem sequer como é organizado e, principalmente, porque ele é organizado daquela forma.

Se você começa a entender os porques, começa a notar que frameworks em outras linguagens são similares. Ou começa a identificar facilmente como esses outros frameworks diferenciaram para tratar problemas específicos.

Eu vivo repetindo aqui no GUJ, que não adianta programar por copy&paste, ou por tentativa e erro. Também não adianta papagaiar o que os veteranos dizem, só pq um cara “mais forte” que você disse aquilo. Um bom programador tem que saber o porque das coisas, e tem que saber do que ele abre mão quando escolhe essa ou aquela abordagem.

E, claro, um bom programador também procura conhecer as ferramentas diferentes da dele, sem pré-conceito.

Esse tipo de pessoa, consegue se dar bem em qualquer entrevista. Você pode mostrar ao seu contratador que tem conhecimento sólido em outras linguagens e plataformas, e que poderia desempenhar o papel que ele te propõe. Em boa parte dos casos, será possível mudar de área. Até porque, hoje em dia o número de frameworks é tão grande, que nenhum contratador sério pode esperar que um cara saiba exatamente tudo o que a empresa solicitou.

Você só será excluído dos cargos onde a necessidade de conhecimento muito profundo da ferramenta se justifique: geralmente vagas que envolvem a necessidade de otimização, ou hardware.

Além disso, é a capacidade de resolver problemas de maneira rápida, eficiente e elegante que faz com que você suba de cargo. Comece a mostrar para seu contratador que os problemas que você resolve são muito mais complexos que o da maioria, e certamente você terá emprego. [/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…

para se pensar

diferentemente, acho que estas habilidades normalmente mantem o emprego, não o conquistam.
[/quote]

Resumindo: Aprenda a ser social para manter seu emprego.

aí vem aquela sensação de que não importa o quanto você está estudando… você precisa estudar mais! rsrs

ou até… precisa estudar melhor!

Felizmente isso é um fenômeno temporário. Acredito que a tendência com tempo é que o próprio usuário do software seja capaz de fazer o trabalho que antes era destinado a um “profissional de ferramenta”.

Já está acontecendo hoje com a idéia de software/plataforma/infra-estrutura como serviço.

Felizmente isso é um fenômeno temporário. Acredito que a tendência com tempo é que o próprio usuário do software seja capaz de fazer o trabalho que antes era destinado a um “profissional de ferramenta”.

Já está acontecendo hoje com a idéia de software/plataforma/infra-estrutura como serviço.[/quote]

Eu acho realmente isto muito difícil de acontecer… a menos que inventem a magica e o botão fazer tudo que traduz sua mente em magica que cria o software, se não esqueça!

[quote=bestlinux]

Resumindo: Aprenda a ser social para manter seu emprego.[/quote]

a um certo tempo atras eu estava aqui na empresa onde trabalho atualmente e estavam perto de mim a minha chefe conversando com outro funcionário de longa data da empresa, e ela estava falando pra ele que tinha lido na veja (acho que era essa a revista) que atualmente o nosso mercado estava buscando profissionais com principalmente o lado comportamental desenvolvido, por que o lado comportamental não é como o técnico que da para se ensinar bem mais fácil para alguém o lado técnico…

eu não acho que ela estava de toda errada, o lado comportamental não da para se ensinar ao menos não facilmente, e isso é muito importante mesmo, só achei que ela de certa forma menospreza a capacidade do funcionário de “escovar bits”, muitos gerentes e o pessoal do RH não consideram coisas como isso… alias é uma coisa bem difícil de identificar mesmo especialmente para um leigo…

ja vi gente aqui no guj comentando que conhecia gente que conhecia mais do que ele, manjava muito e descobriu que essa pessoa ganhava menos que ele mesmo, inclusive me parece comum que as pessoas que tem habilidades sociais são as que ganham mais não as que tem mais conhecimento…

[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.

[quote=maior_abandonado]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]

Que bom que você incluiu este comentário (inclusive o restante).

Eu diria “ir bem na entrevista e principalmente ao atuar bem no mercado de trabalho”, pasmem conheço pessoas que possuem titulo de doutorado porem possou por dificuldades de conseguir oportunidades por causa da comunicação.

Quando ministrei aulas conheci um professor que era uma fera em computação mas na sala de aula os alunos queriam matar ele; era campeão de reclamações na coordenação. Acho que o melhor aluno dele foi eu…me deu varias dicas quando voltavamos de ônibus e metro para nossas casas rsrsr.

Por incrível que pareça, depois de toda tecnologia injetada neste mundo de meu Deus, o mais difícil é entender o que as pessoas estão querendo dizer de fato.

flws

Felizmente isso é um fenômeno temporário. Acredito que a tendência com tempo é que o próprio usuário do software seja capaz de fazer o trabalho que antes era destinado a um “profissional de ferramenta”.

Já está acontecendo hoje com a idéia de software/plataforma/infra-estrutura como serviço.[/quote]

Sinceramente? Desde que inventaram a linguagem de programação, pensam que o usuário vai ser capaz de fazer o serviço do programador. Como (quase) todos nós nesse fórum temos emprego, dá pra ver que a idéia não emplacou. E eu não vejo onde PaaS, IaaS ou SaaS muda essa equação.