Conselhos dos gringos: Até que ponto devo seguir?

132 respostas
F

Boa tarde pessoal,

Por ter usado IRC muito tempo, tenho o costume de ficar na rede freenode onde existem muitos canais de projetos opensource e de suporte não oficiais. Um deles é o ##java, onde vira e mexe pergunto e recebo conselhos, bem como vejo pessoas sendo aconselhadas, vou listar algumas coisas abaixo que me vem na cabeça agora e vou acrescentando conforme for lembrando:

1- Eles tem paixão pela IDE IntelliJ IDEA, é realmente tão boa quanto falam? Tenho utilizado o Eclipse para seguir a apostila FJ-21 e só de mencionar Eclipse já torcem o nariz.

2- Dizem que o Java não é muito bom para aplicação Desktop, principalmente utilizando Swing, segundo o que vi, o menos pior é o JavaFX.

3- Utilizar inglês na hora de programar, pois pelo fato de ser uma língua global, facilita o suporte por parte deles e se for um código aberto mais programadores poderão contribuir.

4- Abominam JSP, talvez por ser ultrapassado?!

5- Abominam JSTL, talvez por também ser ultrapassado?!

Por enquanto é só o que lembro, valeu!

132 Respostas

H
  1. Sim, é bem melhor. Hoje ñ consigo ficar sem.
  2. JavaFX, até onde me lembro, era para começar a entrar em ação e Swing morrer. Acho que essa era a idéia.
  3. Se seu código vai sair do Brasil, então tem lógica de vc fazer os ifs em ingles. Se não… ñ vejo problema
    4 e 5) é tudo muito manual. Vc vai ter muito trabalho para fazer pouca coisa. Tem frameworks que já fazem tudo de modo mais simples e fácil.

(:

J

1- Eles tem paixão pela IDE IntelliJ IDEA, é realmente tão boa quanto falam? Tenho utilizado o Eclipse para seguir a apostila FJ-21 e só de mencionar Eclipse já torcem o nariz.
Isso depende do local que você for trabalhar ou seu gosto. Eu por exemplo prefiro o Eclipse e a maioria do mercado corporativo usa Eclipse, então nem perco meu tempo com coisas alternativas.

2- Dizem que o Java não é muito bom para aplicação Desktop, principalmente utilizando Swing, segundo o que vi, o menos pior é o JavaFX.

Menos pior, mas mesmo assim continua válido que Java não é bom para aplicação Desktop.

Depende do local e projeto que você for trabalhar. Na maioria dos casos código do negócio é na língua do cliente que realiza demanda, e infraestrutura em inglês.

4 e 5 - Minha opinião é idêntica a do Herbert.

J

javaflex:

Depende do local e projeto que você for trabalhar. Na maioria dos casos código do negócio é na língua do cliente que realiza demanda, e infraestrutura em inglês.

Há alguma metodologia que dá nome para esta prática? Se sim, qual?

A
  1. O IDE IntelliJ IDEA é ótimo, mas é pago. O Eclipse atende razoavelmente.

  2. Ou, se programa na língua do programador, ou em inglês. Na língua do cliente, só se for uma exigência.
    Se for postar em fóruns internacionais ou de suporte como o stackoverflow.com, o inglês é obrigatório.

V

Sim. É excelente. Melhor IDE que já usei na minha vida. Pago cada centavo com gosto.

Eles tem razão.

Agreed.

4- Abominam JSP, talvez por ser ultrapassado?!
5- Abominam JSTL, talvez por também ser ultrapassado?!

Perderam sentido depois de APIs como AngularJS ou Ember.JS

V

Não sei se há um nome para isso. Mas usa-se muito o código de negócio na lingua do demandante porque você vai esbarrar em muitos termos sem tradução direta, ou que o inglês vai ficar forçado, sem um significado preciso.

J

Júlio Murta:
javaflex:

Depende do local e projeto que você for trabalhar. Na maioria dos casos código do negócio é na língua do cliente que realiza demanda, e infraestrutura em inglês.

Há alguma metodologia que dá nome para esta prática? Se sim, qual?


Tambem nao conheco “nome”, só vejo como uma convencao de nomeclaturas seguida pela equipe para o projeto.

A

javaflex:
Júlio Murta:
javaflex:

Depende do local e projeto que você for trabalhar. Na maioria dos casos código do negócio é na língua do cliente que realiza demanda, e infraestrutura em inglês.

Há alguma metodologia que dá nome para esta prática? Se sim, qual?


Tambem nao conheco “nome”, só vejo como uma convencao de nomeclaturas seguida pela equipe para o projeto.

Dá-se o nome de internacionalização e localização.
Mas, isso é a capacidade do software ser utilizado em diversos locais com linguagens, culturas, e regras diferentes.
Quando estava me referindo a programar em inglês, por exemplo, é quanto, principalmente, à nomenclatura utilizada (nome de classes, métodos, variáveis, comentários, etc).

V

Eu também. Quando trabalhava em projetos educacionais, era quase impossível traduzir as classes de negócio para o inglês. Toda nossa estrutura de séries é diferente da americana. A forma que dividimos as turmas também. Os termos até podem ser traduzidos para os “quase equivalentes”, mas sempre fica aquela impressão de que a tradução ficou errada.

J

A H Gusukuma:
javaflex:
Júlio Murta:
javaflex:

Depende do local e projeto que você for trabalhar. Na maioria dos casos código do negócio é na língua do cliente que realiza demanda, e infraestrutura em inglês.

Há alguma metodologia que dá nome para esta prática? Se sim, qual?


Tambem nao conheco “nome”, só vejo como uma convencao de nomeclaturas seguida pela equipe para o projeto.

Dá-se o nome de internacionalização e localização.
Mas, isso é a capacidade do software ser utilizado em diversos locais com linguagens, culturas, e regras diferentes.
Quando estava me referindo a programar em inglês, por exemplo, é quanto, principalmente, à nomenclatura utilizada (nome de classes, métodos, variáveis, comentários, etc).


Acho que ele não está falando de internacionalização a nível de usuário final.

Lance do código só não faz sentido complicar a vida escrevendo em inglês sem necessidade, só atrapalha o entendimento imediato entre as partes, se as pessoas envolvidas diretamente falam português na rotina da empresa. Como foi falado, existem termos muito particulares do cliente.

F

Obrigado pelas respostas pessoal, pelo menos eles parecem sensatos então.

Talvez quando eu avançar mais eu pague a IDE, dizem que a versão “comunitária” da IDEA já é muito boa, mas sabe-se lá…

H

fggs:
Obrigado pelas respostas pessoal, pelo menos eles parecem sensatos então.

Talvez quando eu avançar mais eu pague a IDE, dizem que a versão “comunitária” da IDEA já é muito boa, mas sabe-se lá…

Se for o caso, comece por ela uai.

Minha primeira licença eu consegui numa promoção onde o preço caiu para 50 obamas (na época 1 obama = 2 dilmas).

1 vez por ano, não me lembro quando, eles abaixam o preço da licença e doam o dinheiro (ou parte) para plantar árvores.

Ele tem um conceito diferente do eclipse. Não tem workspace por exemplo, mas mano… o trem é baum. Não conheço ninguém que tenha se arrependido da mudança viu.

F

Obrigado Hebert! Vou dar uma olhada!

Esqueci de perguntar uma coisa: Se Java realmente não é bom para aplicação Desktop, o que vocês recomendam no lugar?

J

fggs:
Obrigado Hebert! Vou dar uma olhada!

Esqueci de perguntar uma coisa: Se Java realmente não é bom para aplicação Desktop, o que vocês recomendam no lugar?

C#? Pensando bem, até Delphi seria bom nesse caso.

A

fggs:
Obrigado pelas respostas pessoal, pelo menos eles parecem sensatos então.

Sensatos e estão, normalmente, na frente da gente.

J

Júlio Murta:
fggs:
Obrigado Hebert! Vou dar uma olhada!

Esqueci de perguntar uma coisa: Se Java realmente não é bom para aplicação Desktop, o que vocês recomendam no lugar?

C#? Pensando bem, até Delphi seria bom nesse caso.


Concordo, C# com certeza para Windows e C++ caso se exija portabilidade. Já Delphi apesar de ter sido a melhor solucao desktop corporativa quando desktop estava em alta, hoje em dia seria furada iniciar um projeto com uma tecnologia pouco usada em novas aplicacoes, pois a maioria dos bons profissionais nao querem trabalhar em Delphi para nao ficar parado no tempo. Nao que seja ruim, mas C# matou o Delphi. E as empresas nao querem ficar na mao tendo dificuldade de contratar bons profissionais.

V

Não me surpreende. O criador do Delphi e C# é o mesmo.

J

Exatamente, isso já diz muita coisa.

J

Exatamente, isso já diz muita coisa.

Não necessariamente do C#, mas da plataforma .Net em si. Afinal, praticamente tudo que se faz com C# pode ser feito com VB.Net da mesma forma mudando apenas a sintaxe.

Pessoalmente, eu também não optaria por desenvolver um projeto novo em Delphi. Porém, no meu trabalho parte dele é feito em Delphi e, na maioria das vezes, essa tecnologia não me deixou na mão. A comunidade Delphi parece, em geral, um tanto velha e ultrapassada. Muitos caras que saíram do Clipper e preferiram o Delphi sabe-se lá o por quê. Embora, até mesmo jovens amigos meus, na faixa dos 20 anos, desenvolvem/desenvolveram profissionalmente em Delphi também. Sem contar a quantidade de empresas, até mesmo de grande porte que ainda usam Delphi nos seus principais sistemas.

É um comunidade decadente, mas que ainda possui uma certa atividade e inovações no seu pequeno mundinho. Se ao menos tivesse uma API decente para trabalhar com json como o NewtonSoft da plataforma .Net e um ambiente para desenvolvimento Android que realmente funcionasse, quem sabe eu tivesse uma outra opinião.

I

fggs:

Esqueci de perguntar uma coisa: Se Java realmente não é bom para aplicação Desktop, o que vocês recomendam no lugar?

Isso vai depender da “marca” do seu desktop (mac, wintel, linux).

Se for mac, use cocoa (objective-c ou swift);

Se for wintel, use .net (c#, vb.net);

Linux, (não sei, mas acho que com 1% do mercado desktop podemos ignorar?)

V

Eu sei porque, estava lá. Fui um deles. heheheheh

Na época havia um rivalidade entre o VB6 e o Delphi. Estavamos todos empolgados com a nova forma de fazer aplicativos Windows arrastando e soltando componentes.

Os dois eram players de mercado tão grandes quanto o Java e o C# são hoje e, se você não fosse para um, certamente iria para o outro. Havia muito hype em cima da VCL e do quanto era fácil fazer componentes usando essa tecnologia. O Delphi também pegou (como meu caso) muita gente que veio do C++, por causa do C++ Builder.

Eu comecei pelo C++ Builder, e fazia-se muita propaganda que o Delphi era igualmente poderoso, mas com uma sintaxe menos chata.

Por incrível que pareça, outra coisa que se gostava no Delphi é que ele vinha com um enorme manual, com mais de 300 páginas, que era uma ótima referência. Acreditem, nos anos pré-internet, isso era um super diferencial.

V

ImpossiveI:
fggs:

Esqueci de perguntar uma coisa: Se Java realmente não é bom para aplicação Desktop, o que vocês recomendam no lugar?

Isso vai depender da “marca” do seu desktop (mac, wintel, linux).

Se for mac, use cocoa (objective-c ou swift);

Se for wintel, use .net (c#, vb.net);

Linux, (não sei, mas acho que com 1% do mercado desktop podemos ignorar?)

Se precisar de multiplataforma (ou fazer para Linux), use C++ com QT.

I

ViniGodoy:

Por incrível que pareça, outra coisa que se gostava no Delphi é que ele vinha com um enorme manual, com mais de 300 páginas, que era uma ótima referência. Acreditem, nos anos pré-internet, isso era um super diferencial.

Eu usei delphi na década de 90, e felizmente já tinha internet nessa época. :slight_smile:

M

Atualmente programo pouco mas ainda realizo suporte em sistemas desenvolvidos em Delphi e a ferramenta nunca me deixou na mão. Ela é suportada pela empresa Embarcadero e continua evoluindo.

Para um novo sistema provavelmente utilizaria C# mas certamente Delphi atenderia perfeitamente .

Agora , Também existe um monte de projetos Obsoletos em Java por conta de frameworks que não deram certo ou estão ultrapassados .

E a leis de procura e oferta de mão de obra , já fez com que profissionais Java fossem muito bem remunerados mas atualmente não observo isso no mercado.
Enquanto que Delphi , pode esta seguindo o caminho de Cobol que em função da pouco demanda de profissionais fez com o que os salários aumentassem pois o legado existe e o cliente não esta nem ai se o software foi desenvolvido em Delphi, C , C# , VB etc … desde que o software o atenda.

Atualmente , continuo estudando novas tecnologias mas meu foco principal no momento e a fluência na lingua inglesa.

I

Delphi não vai seguir o caminho de COBOL porque um é para aplicações front-end o outro para regras de negócio.

É mais provável que Java siga o caminho do COBOL se as empresas forem lentas ao trocar seu domain model em OO, por um domain model em linguagem funcional. Na verdade, alguns dizem que Java já é o novo COBOL.

I

Não acho que isso vá acontecer, pois Delphi é uma “linguagem” fácil de aprender, e gente busca somente o dinheiro e não a satisfação de trabalhar com uma determinada linguagem tem de monte por aí. Enquanto Delphi tiver pagando o que o mercado paga para desenvolvedores, imagino que vai ter pessoas sendo contratadas.

ImpossiveI:
Delphi não vai seguir o caminho de COBOL porque um é para aplicações front-end o outro para regras de negócio.

É mais provável que Java siga o caminho do COBOL se as empresas forem lentas ao trocar seu domain model em OO, por um domain model em linguagem funcional. Na verdade, alguns dizem que Java já é o novo COBOL.

O que ele quis dizer com seguir o mesmo caminho, é que os profissionais Cobol são mais valorizados, pois existem mtos sistemas legados que precisam de manutenção e não tem profissional suficiente pra atender a demanda.
E outra, Delphi não é pra aplicações front-end

M

ImpossiveI:
misterzire:

Enquanto que Delphi , pode esta seguindo o caminho de Cobol que em função da pouco demanda de profissionais fez com o que os salários aumentassem pois o legado existe e o cliente não esta nem ai se o software foi desenvolvido em Delphi, C , C# , VB etc … desde que o software o atenda.

Delphi não vai seguir o caminho de COBOL porque um é para aplicações front-end o outro para regras de negócio.

É mais provável que Java siga o caminho do COBOL se as empresas forem lentas ao trocar seu domain model em OO, por um domain model em linguagem funcional. Na verdade, alguns dizem que Java já é o novo COBOL.

O que mais tem dentro de código em Delphi e VB , por exemplo , são as regras de negócio :slight_smile:

Claro , que em muitos casos amparados por uma enorme gama de procedures , functions , triggers no lado do banco de dados :slight_smile: mas isso , dependerá de quem desenvolveu.

I

Isso não vai acontecer com delphi, porque delphi não é linguagem de negócio, mas uma ferramenta RAD e geralmente não tem sentido dar manutenção em sistemas feitos usando ferramentas RAD. É mais fácil, rápido e menos custoso, criar outra aplicação. :wink:

I

ImpossiveI:

Isso não vai acontecer com delphi, porque delphi não é linguagem de negócio, mas uma ferramenta RAD e geralmente não tem sentido dar manutenção em sistemas feitos usando ferramentas RAD. É mais fácil, rápido e menos custoso, criar outra aplicação.

Como assim nao tem sentido dar manutencao em sistemas em Delphi? Tem milhoes de empresas que fazem isso

I

misterzire:

O que mais tem dentro de código em Delphi e VB , por exemplo , são as regras de negócio :slight_smile:

Claro , que em muitos casos amparados por uma enorme gama de procedures , functions , triggers no lado do banco de dados :slight_smile: mas isso , dependerá de quem desenvolveu.

Então o banco de dados é o novo COBOL, e não Delphi ou VB.

I

igor_ks:
ImpossiveI:

Isso não vai acontecer com delphi, porque delphi não é linguagem de negócio, mas uma ferramenta RAD e geralmente não tem sentido dar manutenção em sistemas feitos usando ferramentas RAD. É mais fácil, rápido e menos custoso, criar outra aplicação.

Como assim nao tem sentido dar manutencao em sistemas em Delphi? Tem milhoes de empresas que fazem isso

Se o que esta falando é verdade deveria ter milhares de vagas para programadores Delphi?

J

ImpossiveI:
igor_ks:
ImpossiveI:

Isso não vai acontecer com delphi, porque delphi não é linguagem de negócio, mas uma ferramenta RAD e geralmente não tem sentido dar manutenção em sistemas feitos usando ferramentas RAD. É mais fácil, rápido e menos custoso, criar outra aplicação.

Como assim nao tem sentido dar manutencao em sistemas em Delphi? Tem milhoes de empresas que fazem isso

Se o que esta falando é verdade deveria ter milhares de vagas para programadores Delphi?

Não existem milhões, mas existe sim uma quantidade significativa de vagas para desenvolvedores Delphi. Na cidade em que moro, por exemplo, é mais fácil arrumar um emprego com Delphi do que com C#. Java então, nunca vi.

I

Júlio Murta:

Não existem milhões, mas existe sim uma quantidade significativa de vagas para desenvolvedores Delphi. Na cidade em que moro, por exemplo, é mais fácil arrumar um emprego com Delphi do que com C#. Java então, nunca vi.

Sim, existem muitas aplicações feitas nessas linguagens, só não acho que essas vagas tem o mesmo status/salário que o programador COBOL tinha, ou que o DBA tem hoje em algumas empresas.

J

ImpossiveI:
Júlio Murta:

Não existem milhões, mas existe sim uma quantidade significativa de vagas para desenvolvedores Delphi. Na cidade em que moro, por exemplo, é mais fácil arrumar um emprego com Delphi do que com C#. Java então, nunca vi.

Sim, existem muitas aplicações feitas nessas linguagens, só não acho que essas vagas tem o mesmo status/salário que o programador COBOL tinha, ou que o DBA tem hoje em algumas empresas.

Atualmente não. Mas eu também imagino que daqui alguns anos (quem sabe 15 ou 20) algo parecido possa acontecer. Mas para isso é necessário avaliar outros fatores significativos. Por exemplo, aplicações Delphi em geral resumem-se a ERPs em empresas de pequeno-médio porte (alguns casos grande), já o COBOL é famoso por sua utilização em bancos, algumas com operações críticas implementadas décadas atrás. Migrar uma aplicação que já funciona há quase 20, 30 ou até 50 anos e que envolve o dinheiro de milhares de pessoas é uma responsabilidade muito maior que migrar um ERP desktop pra web.

No fim das contas, só chegando lá vivo pra saber rs

I

Júlio Murta:

Atualmente não. Mas eu também imagino que daqui alguns anos (quem sabe 15 ou 20) algo parecido possa acontecer. Mas para isso é necessário avaliar outros fatores significativos. Por exemplo, aplicações Delphi em geral resumem-se a ERPs em empresas de pequeno-médio porte (alguns casos grande), já o COBOL é famoso por sua utilização em bancos, algumas com operações críticas implementadas décadas atrás. Migrar uma aplicação que já funciona há quase 20, 30 ou até 50 anos e que envolve o dinheiro de milhares de pessoas é uma responsabilidade muito maior que migrar um ERP desktop pra web.

No fim das contas, só chegando lá vivo pra saber rs

Discordo. Se uma operação não é crítica hoje, não tem porque passar a ser daqui 15 ou 20 anos.

J

ImpossiveI:
Júlio Murta:

Atualmente não. Mas eu também imagino que daqui alguns anos (quem sabe 15 ou 20) algo parecido possa acontecer. Mas para isso é necessário avaliar outros fatores significativos. Por exemplo, aplicações Delphi em geral resumem-se a ERPs em empresas de pequeno-médio porte (alguns casos grande), já o COBOL é famoso por sua utilização em bancos, algumas com operações críticas implementadas décadas atrás. Migrar uma aplicação que já funciona há quase 20, 30 ou até 50 anos e que envolve o dinheiro de milhares de pessoas é uma responsabilidade muito maior que migrar um ERP desktop pra web.

No fim das contas, só chegando lá vivo pra saber rs

Discordo. Se uma operação não é crítica hoje, não tem porque passar a ser daqui 15 ou 20 anos.

Mas o que não seria uma operação crítica nesse caso? Migrar um ERP Desktop para Web? Também há os seus riscos, dependendo da implementação. Mas também há o custo benefício, que esqueci de mencionar.

I

Júlio Murta:

Mas o que não seria uma operação crítica nesse caso? Migrar um ERP Desktop para Web? Também há os seus riscos, dependendo da implementação. Mas também há o custo benefício, que esqueci de mencionar.

Se pode terceirizar, normalmente não é crítico pro negócio. Agora resta saber quantas empresas que desenvolve seu próprio ERP?

J

ImpossiveI:
Júlio Murta:

Mas o que não seria uma operação crítica nesse caso? Migrar um ERP Desktop para Web? Também há os seus riscos, dependendo da implementação. Mas também há o custo benefício, que esqueci de mencionar.

Se pode terceirizar, normalmente não é crítico pro negócio. Agora resta saber quantas empresas que desenvolve seu próprio ERP?

Não sei se é bem assim. Penso que muitas empresas deixam informações vitais sobre o seu negócio na mão de terceiros quando contratam uma solução de gestão empresarial. E, como você mesmo disse, poucos desenvolvem o próprio ERP. Logo, informações críticas como faturamento, compras, financeiro e outras acabam sim sendo terceirizadas.

Eu havia me referido ao aspecto mais técnico da coisa. Por exemplo, mesmo que seja algo simples é comum ver ERPs por aí que não são desmembrados em aplicação Server e aplicação Client, sendo a aplicação Server responsável por guardar as regras de negócio e o Client uma mera carcaça. Isso permite portar o Client para outras plataformas (Web, mobile) de maneira muito menos dolorida do que migrar um ERP desktop para Web que acessa diretamente o banco e possui várias regras de negócio no evento click dos botões :stuck_out_tongue:

F

Gostaria apenas de agradecer a imensa participação no tópico, além de me esclarecer as dúvidas, trouxe uma boa discussão sobre plataformas e desenvolvimento de sistemas atuais.

Não acham que seria interessante condensar algumas coisas daqui para um “guide” ou recomendações gerais?

Esse subfórum é meu favorito, é aqui que a mágica acontece :smiley:

I

Júlio Murta:

Não sei se é bem assim. Penso que muitas empresas deixam informações vitais sobre o seu negócio na mão de terceiros quando contratam uma solução de gestão empresarial. E, como você mesmo disse, poucos desenvolvem o próprio ERP. Logo, informações críticas como faturamento, compras, financeiro e outras acabam sim sendo terceirizadas.

Eu havia me referido ao aspecto mais técnico da coisa. Por exemplo, mesmo que seja algo simples é comum ver ERPs por aí que não são desmembrados em aplicação Server e aplicação Client, sendo a aplicação Server responsável por guardar as regras de negócio e o Client uma mera carcaça. Isso permite portar o Client para outras plataformas (Web, mobile) de maneira muito menos dolorida do que migrar um ERP desktop para Web que acessa diretamente o banco e possui várias regras de negócio no evento click dos botões :p

Não entendi, como isso vai aumentar o status de programadores Delphi?

Programadores COBOL eram valorizados justamente porque migrar de tecnologia era extremamente “dolorido”.

Ao tornar o processo de migrar um ERP delphi para outra tecnologia, de forma menos “dolorida”, você esta basicamente facilitando a defasagem desses profissionais, e não tornando-os mais necessários. :slight_smile:

Visto que aplicações front-end em Delphi não oferecem aprisionamento tecnológico, desenvolvedores delphi não terão o status que programadores COBOL tinham.

Em economia, Aprisionamento tecnológico corresponde ao termo Inglês Vendor lock-in. O aprisionamento tecnológico torna um cliente dependente do vendedor de serviços e produtos, impedindo o cliente de trocar de vendedor sem implicar custos adicionais substanciais.

Projetos em Java evitam esse tipo de problema e concedem liberdade aos desenvolvedores.

ps:Repare que alguém da CAELUM editou o artigo na wikipedia introduzindo um equivoco. Projetos em Java não concedem liberdade para o desenvolvedor, e sim para o cliente. Desenvolvedores Java, Delphi, na verdade tendem a ser comoditizados devido a ausencia de aprisionamento tecnológico.

J

ImpossiveI:

Não entendi, como isso vai aumentar o status de programadores Delphi?

Programadores COBOL eram valorizados justamente porque migrar de tecnologia era extremamente “dolorido”.

Ao tornar o processo de migrar um ERP delphi para outra tecnologia, de forma menos “dolorida”, você esta basicamente facilitando a defasagem desses profissionais, e não tornando-os mais necessários. :)

Pensei que o assunto sobre a necessidade de um programador Delphi ou não no futuro já tivesse acabado. Estava me referndo a criticidade de migrar um software para outra plataforma (no caso desktop x web).

Se bem que, como eu mesmo disse, caso tenhamos um server em delphi com uma aplicação web desenvolvida em outra plataforma ainda assim programadores delphi seriam necessários. Afinal, alguém ainda teria que realizar a manutenção na aplicação servidora.

A

A grande questão é que se você programa Cobol (e até mesmo Delphi) e não está no final da carreira, qual o seu plano B?

I

Júlio Murta:

Pensei que o assunto sobre a necessidade de um programador Delphi ou não no futuro já tivesse acabado. Estava me referndo a criticidade de migrar um software para outra plataforma (no caso desktop x web).

Se bem que, como eu mesmo disse, caso tenhamos um server em delphi com uma aplicação web desenvolvida em outra plataforma ainda assim programadores delphi seriam necessários. Afinal, alguém ainda teria que realizar a manutenção na aplicação servidora.

Achei que você perguntou o que não era operação crítica. Migrar sistemas não é uma operação crítica para o negócio da empresa, e se não é crítico para empresa, vai ser terceirizado, e não será bem recompensado.

Dar manutenção em legado não necessariamente é uma posição de status, só se o sistema for crítico para o negócio da empresa. Que tipo de indústria ainda possui servidores em Delphi? Bancos com certeza não é o caso.

I

A H Gusukuma:
A grande questão é que se você programa Cobol (e até mesmo Delphi) e não está no final da carreira, qual o seu plano B?

Acredito que o mesmo de quem programa em Java, se tornar analista ou gerente.

A

ImpossiveI:
A H Gusukuma:
A grande questão é que se você programa Cobol (e até mesmo Delphi) e não está no final da carreira, qual o seu plano B?

Acredito que o mesmo de quem programa em Java, se tornar analista ou gerente.

Claro, mas aí, devemos incluir todo mundo. Planejamento de carreira é fundamental, a não ser para quem gosta de viver conduzido pelo acaso.

I

A H Gusukuma:

Claro, mas aí, devemos incluir todo mundo. Planejamento de carreira é fundamental, a não ser para quem gosta de viver conduzido pelo acaso.

quem não gosta de viver conduzido pelo acaso e não tentou medicina ou advocacia, provavelmente só tem a área de gestão…

No caso de programadores, como planejar uma carreira se as tecnologias tem um ciclo de vida menor do que o tempo de carreira do profissional? Só se você tiver bola de cristal.

F

Acho que ele quis dizer no sentido de ter um foco, um norte.

I

O que isso significa na prática?

Eu posso entender isso como me especializar em 1 tecnologia, o que seria arriscado caso essa tecnologia fique defasada.

Por outro lado, um programador poliglota não tem um foco específico, mas estaria mais preparado para as incertezas do mercado.

I

sem falar empresas que adoram usar o “foco na carreira” pra convencer programadores com medo do futuro a aceitarem um salário menor no presente.

M

Legal falar sobre planejamento de carreira mas é dificil fazer um planejamento pois a area de tecnologia muda o tempo todo e é dificil selecionar tecnologias duradouras.

Fico feliz de ter trabalhado com Delphi pois vem pagando o leitinho das crianças a um longo tempo . realmente compensou aprende-la .

Hoje , quase não programo mas procuro pesquisar novas tecnologias e fazer pequenos projetos para ficar “atualizado” , se é que isso é possível.

Compro livros , procuro sempre esta fazendo algum curso ,no momento inglês .

Penso em empreender , na area ou não , talvez esse seja o meu plano B pois acredito que será cada vez mais dificil encontrar empresas de tecnologias sérias para trabalhar , se é que isso só esta ocorrendo com a area de informática.

Qual seria o conselho dos gringos ? Como será que funciona em outros países ?

I

Planejamento financeiro > planejamento de carreira.

Até porque, como vc bem disse, não existe carreira em TI.

M

Planejamento financeiro > planejamento de carreira.

Planejamento de Carreira sem o Planejamento Financeiro não seria possível pois não teria como bancar faculdade , cursos de especialização , livros e as viagens que fiz pois ninguem é de ferro :slight_smile:

A

Planejamento financeiro > planejamento de carreira.

Certamente ! Planejamento de Carreira sem o Planejamento Financeiro não seria possível pois não teria como bancar faculdade , cursos de especialização , livros e as viagens que fiz pois ninguem é de ferro :slight_smile:

Se fez tudo isso, o que não pode ser considerado planejamento de carreira?

A

Planejamento financeiro > planejamento de carreira.

Até porque, como vc bem disse, não existe carreira em TI.
???

H

Planejamento financeiro > planejamento de carreira.

Até porque, como vc bem disse, não existe carreira em TI.
???Cara, ele é troll.

Esquenta ñ. (:

M

Planejamento financeiro > planejamento de carreira.

Certamente ! Planejamento de Carreira sem o Planejamento Financeiro não seria possível pois não teria como bancar faculdade , cursos de especialização , livros e as viagens que fiz pois ninguem é de ferro :slight_smile:

Se fez tudo isso, o que não pode ser considerado planejamento de carreira?

Não me expressei direito quando disse “Certamente” :frowning:
Não era minha ideia afirmar que Planejamento de carreira não existe mas sim o contrário , ele deve ser feito e para isso o planejamento financeiro é muito importante.

V

Se sua carreira se baseia numa ou outra tecnologia específica, você está com sérios problemas.

Os melhores programadores que conheci são bons em fundamentos, não numa linguagem x ou y.

J

ViniGodoy:
Se sua carreira se baseia numa ou outra tecnologia específica, você está com sérios problemas.

Os melhores programadores que conheci são bons em fundamentos, não numa linguagem x ou y.

Vini, essa foi uma dúvida que sempre tive sobre carreira.

Em T.I podemos ter dois direcionamentos principais : gerencial e técnico. Eu sempre tive mais interesse pelo lado técnico, então sempre me foquei mais em aprender programação do regra negócio. E mais, eu sempre me foquei em uma tecnologia específica. Não que eu saiba apenas aquela tecnologia, mas eu tentei aprender o máximo com ela. Afinal, sempre considerei que melhor que saber fazer um CRUD em 10 linguagens é saber fazer de tudo com uma linguagem.

Porém, atualmente eu estou começando a ter problemas com essa abordagem. Eu dei totalmente as costas para Java, PHP, Ruby e as demais linguagens, e sinto que com isso reduzi minhas oportunidades de colocação no mercado.

Atualmente também estou querendo aprender regra de negócio. Me lembro que tempos atrás você escreveu um texto dizendo que um bom programador, além de bom técnico, deveria ter conhecimentos em economia e administração. Porém não salvei aquele texto em lugar algum , você pode me passar o link caso também se lembre dele?

V

Júlio Murta:
Vini, essa foi uma dúvida que sempre tive sobre carreira.

Em T.I podemos ter dois direcionamentos principais : gerencial e técnico. Eu sempre tive mais interesse pelo lado técnico, então sempre me foquei mais em aprender programação do regra negócio. E mais, eu sempre me foquei em uma tecnologia específica. Não que eu saiba apenas aquela tecnologia, mas eu tentei aprender o máximo com ela. Afinal, sempre considerei que melhor que saber fazer um CRUD em 10 linguagens é saber fazer de tudo com uma linguagem.

Porém, atualmente eu estou começando a ter problemas com essa abordagem. Eu dei totalmente as costas para Java, PHP, Ruby e as demais linguagens, e sinto que com isso reduzi minhas oportunidades de colocação no mercado.

Atualmente também estou querendo aprender regra de negócio. Me lembro que tempos atrás você escreveu um texto dizendo que um bom programador, além de bom técnico, deveria ter conhecimentos em economia e administração. Porém não salvei aquele texto em lugar algum , você pode me passar o link caso também se lembre dele?

Pois é, mas mesmo que você siga a abordagem técnica, você tem que demonstrar “skills” fundamentais. Lidar bem com threading, ter bom conhecimento em matemática e estatística, conhecer bem de padrões, processos de desenvolvimento de software, bancos de dados, etc. Um programador forte na parte técnica também terá no seu portifólio projetos com um grau de complexidade interessante para demonstrar.

Quando se faz entrevista para um programador, é geralmente isso que um (bom) gerente procura. A barreira da linguagem em si é muito rapidamente vencida, mas desse tipo de fundamento, não.

Sobre conhecer administração e economia, não me recordo desse texto. Não era um que eu estava argumentando sobre a falha dos programadores em se comunicar com as gerências? Por que sempre ouço muito mimimi de “meu gerente me entende”, mas vejo muito pouco esforço também do pessoal de informática em saber falar a linguagem que os gerentes sabem ouvir. Na minha opinião, muitas vezes há uma expectativa de que essa comunicação deve ser vencida de maneira unilateral pelo gerente. Poucos tem noção real de custos, retorno sobre investimento, riscos, etc. Pior ainda, é saber compor uma argumentação com esses fatores.

V

Eu já falei sobre isso aqui:

I

Planejamento financeiro > planejamento de carreira.

Certamente ! Planejamento de Carreira sem o Planejamento Financeiro não seria possível pois não teria como bancar faculdade , cursos de especialização , livros e as viagens que fiz pois ninguem é de ferro :slight_smile:

Se fez tudo isso, o que não pode ser considerado planejamento de carreira?

Você não precisa “planejar carreira” pra vislumbrar uma possibilidade de retorno financeiro numa determinada tecnologia (no caso Delphi) e aproveitar a oportunidade. Foi isso que ele fez. Não sei de onde você tirou que isso é planejamento de carreira? Na verdade, ele disse que nem programa mais… :confused:

I

Hebert Coelho:

Cara, ele é troll.

Esquenta ñ. (:

Não alimente trolls.

I

A H Gusukuma:

???

Não alimente…

I

ViniGodoy:
Se sua carreira se baseia numa ou outra tecnologia específica, você está com sérios problemas.

Os melhores programadores que conheci são bons em fundamentos, não numa linguagem x ou y.

Se sua carreira não se baseia numa tecnologia específica, você é um teórico.

Ao meu ver, não tem problema se basear numa tecnologia específica, apenas não espere que ela dure toda sua carreira.

V

ImpossiveI:
Se sua carreira não se baseia numa tecnologia específica, você é um teórico.

Ao meu ver, não tem problema se basear numa tecnologia específica, apenas não espere que ela dure toda sua carreira.

Você só é um teórico se não conhecer uma tecnologia específica.

Conhecer uma tecnologia, e ter uma carreira centrada numa tecnologia são coisas diferentes.

A

Planejamento financeiro > planejamento de carreira.

Certamente ! Planejamento de Carreira sem o Planejamento Financeiro não seria possível pois não teria como bancar faculdade , cursos de especialização , livros e as viagens que fiz pois ninguem é de ferro :slight_smile:

Se fez tudo isso, o que não pode ser considerado planejamento de carreira?

Você não precisa “planejar carreira” pra vislumbrar uma possibilidade de retorno financeiro numa determinada tecnologia (no caso Delphi) e aproveitar a oportunidade. Foi isso que ele fez. Não sei de onde você tirou que isso é planejamento de carreira? Na verdade, ele disse que nem programa mais… :confused:

Você é que não leu o que ele postou, neste e depois.

A

Por falar em teoria e tecnologia, estava vendo umas colocações interessantes: as grandes “novidades” tecnológicas são baseadas em teorias de 20, 30 e até mais de 50 anos.

I

ViniGodoy:

Você só é um teórico se não conhecer uma tecnologia específica.

não seria analfabeto tecnológico?

ViniGodoy:

Conhecer uma tecnologia, e ter uma carreira centrada numa tecnologia são coisas diferentes.

Concordo que os melhores programadores conhecem os fundamentos, mas imagino tb que é natural que ao longo do tempo eles centram a sua carreira numa ou outra tecnologia, por questões financeiras. A diferença é que por conhecerem os fundamentos são capazes de iterar para a próxima novidade rapidamente, enquanto o programador de frameworks gasta tempo e energia tentando se localizar no mapa e perguntando qual o plano B.

I

A H Gusukuma:
Por falar em teoria e tecnologia, estava vendo umas colocações interessantes: as grandes “novidades” tecnológicas são baseadas em teorias de 20, 30 e até mais de 50 anos.

Bom pra quem leciona teoria.

A

ImpossiveI:
A H Gusukuma:
Por falar em teoria e tecnologia, estava vendo umas colocações interessantes: as grandes “novidades” tecnológicas são baseadas em teorias de 20, 30 e até mais de 50 anos.

Bom pra quem leciona teoria.

Não, bom para quem conhece e consegue aplicar na prática!

I

Planejamento financeiro > planejamento de carreira.

Certamente ! Planejamento de Carreira sem o Planejamento Financeiro não seria possível pois não teria como bancar faculdade , cursos de especialização , livros e as viagens que fiz pois ninguem é de ferro :slight_smile:

Se fez tudo isso, o que não pode ser considerado planejamento de carreira?

Você não precisa “planejar carreira” pra vislumbrar uma possibilidade de retorno financeiro numa determinada tecnologia (no caso Delphi) e aproveitar a oportunidade. Foi isso que ele fez. Não sei de onde você tirou que isso é planejamento de carreira? Na verdade, ele disse que nem programa mais… :confused:

Você é que não leu o que ele postou, neste e depois.

Foi o que entendi. Ele programou em Delphi, não porque era a linguagem que oferecia melhor perspectiva de carreira, mas porque pagava as contas e o leite das crianças. O fato dele tb ter investido pro futuro, é fruto do planejamento financeiro. Qualquer um se beneficia de um bom planejamento financeiro. Por isso financeiro é > que carreira.

I

A H Gusukuma:
ImpossiveI:
A H Gusukuma:
Por falar em teoria e tecnologia, estava vendo umas colocações interessantes: as grandes “novidades” tecnológicas são baseadas em teorias de 20, 30 e até mais de 50 anos.

Bom pra quem leciona teoria.

Não, bom para quem conhece e consegue aplicar na prática!

Beleza mas pra aplicar na prática você vai precisar usar tecnologias atuais (e bugs/incompatibilidades atuais) se quiser produzir alguma coisa de concreto. E dependendo do nível da tecnologia, qualquer um pode fazer sem precisar conhecer da teoria.

A

ImpossiveI:
A H Gusukuma:
ImpossiveI:
A H Gusukuma:
Por falar em teoria e tecnologia, estava vendo umas colocações interessantes: as grandes “novidades” tecnológicas são baseadas em teorias de 20, 30 e até mais de 50 anos.

Bom pra quem leciona teoria.

Não, bom para quem conhece e consegue aplicar na prática!

Beleza mas pra aplicar na prática você vai precisar usar tecnologias atuais (e bugs/incompatibilidades atuais) se quiser produzir alguma coisa de concreto. E dependendo do nível da tecnologia, qualquer um pode fazer sem precisar conhecer da teoria.

Sim, inclusive esse é um fator determinante: as tecnologias atuais permitem implementar teorias que antes só ficavam na teoria por falta de recursos tecnológicos.

I

Talvez alguém discorda dessa afirmação.

A

Talvez alguém discorda dessa afirmação.

O problema é que os fundamentos necessários e suficientes para uma determinada tecnologia ou linguagem nem sempre cobre o necessário para outras tecnologias ou (mesmo) linguagens. Então, nem sempre é tão rápido e indolor.

Mas, é claro tendo bons fundamentos, formação e flexibilidade, fica bem mais fácil se adaptar.

I

Talvez se descobrir que alguma coisa é fundamental “para uma determinada tecnologia” significa que ela não era fundamental em primeiro lugar? Isso é um problema sério.

A H Gusukuma:

Mas, é claro tendo bons fundamentos, formação e flexibilidade, fica bem mais fácil se adaptar.

Eu me alongo pela manhã e sou formado, agora só preciso descobrir o que é fundamental.

A

ImpossiveI:
A H Gusukuma:

O problema é que os fundamentos necessários e suficientes para uma determinada tecnologia ou linguagem nem sempre cobre o necessário para outras tecnologias ou (mesmo) linguagens. Então, nem sempre é tão rápido e indolor.

Talvez se descobrir que alguma coisa é fundamental “para uma determinada tecnologia” significa que ela não era fundamental em primeiro lugar?

A H Gusukuma:

Mas, é claro tendo bons fundamentos, formação e flexibilidade, fica bem mais fácil se adaptar.

Eu me alongo pela manhã e sou formado, agora só preciso descobrir o que é fundamental.

Continua estudando e se esforçando que um dia, quem sabe, você consegue…

I

A H Gusukuma:

Continua estudando e se esforçando que um dia, quem sabe, você consegue…

O quê? negócios? tecnologia? teoria?

A

ImpossiveI:
A H Gusukuma:

Continua estudando e se esforçando que um dia, quem sabe, você consegue…

O quê? negócios? tecnologia? teoria?

Depende do seu interesse e/ou necessidade.

V

Mas esse é exatamente meu ponto. Vejo muita moçada nova saindo xiita em uma tecnologia quando sai da faculdade. Ficam maravilhados em como aquela tecnologia tem frameworks para resolver todos os seus problemas.

Brincar de playmobil é diferente de escrever software. Especialmente se você quiser ir para os softwares complexos.

Finalmente, vale lembrar que além da tecnologia existem as práticas: código unitário, saber usar bem o debugger, um profiler, conhecer uma ampla gama de algoritmos e ser capaz de identificar no dia-a-dia as situações onde você pode usá-los, saber estimar as tarefas, saber onde, de que tipo e como gerar logs, etc…

PS: Não precisa ir longe para ver que os fundamentos são mais importantes, até porque eles são mais resistentes a mudanças. O livro de design patterns do GOF existe desde 1995, foi feito para C++ e Smalltalk, e ainda exerce muita influência nos dias atuais. Vários conceitos de estruturas de dados, que ainda são usadas, beiram a época do mainframe (como o quicksort, da criado em 1960).

F

Vejo como exemplo minha saga com banco de dados:

  • Comecei lendo Projeto Banco de Dados do Carlos Alberto Heuser, me senti perdido.

  • Comprei e li o livro Modelagem Lógica de Dados do Eduardo Bernardes, gostei da abordagem mas ainda não o suficiente para conseguir produzir alguma coisa.

  • Comprei o curso de Banco de Dados da Devmedia, lá dizia que Banco de Dados Orientado a Objeto nasceu e morreu quase que no nascimento.

  • Segui o conselho do pessoal aqui do fórum e comecei uma faculdade, lá eu vi que o Modelo Relacional é importante, mas o pulo do gato está no Modelo Lógico e Modelo Físico. Meu professor também mostrou Banco de Dados Orientado a Objeto essa semana, vou criticá-lo por ter aprendido inicialmente que isso está morto? Penso que não, afinal não há verdade absoluta nesse meio (TI), tudo que surge é para resolver problemas. O que tem de mais atual hoje é REST (como tecnologia) e AngularJS com uma nova visão, correto? Isso faz com que aplicações feitas em outras tecnologias, que possivelmente era o que tinha de melhor na época, feito da maneira correta, com código de qualidade, seguindo a especificação, seja obsoleta? Eu discordo, meu pensamento quando surge algo “novo” é esperar um pouco para ver onde vai dar e ai sim começar um movimento naquela direção, mas não simplesmente abandonar o que é considerado obsoleto e partir como um caminhão sem freio para o “atual”.

A maioria de vocês sabem, eu sou novo em programação, mas cuido de coisas relacionadas a computação desde meus 11 anos de idade, por isso pergunto: meu pensamento é muito incorreto?

V

fggs:
Vejo como exemplo minha saga com banco de dados:

  • Comecei lendo Projeto Banco de Dados do Carlos Alberto Heuser, me senti perdido.

  • Comprei e li o livro Modelagem Lógica de Dados do Eduardo Bernardes, gostei da abordagem mas ainda não o suficiente para conseguir produzir alguma coisa.

  • Comprei o curso de Banco de Dados da Devmedia, lá dizia que Banco de Dados Orientado a Objeto nasceu e morreu quase que no nascimento.

  • Segui o conselho do pessoal aqui do fórum e comecei uma faculdade, lá eu vi que o Modelo Relacional é importante, mas o pulo do gato está no Modelo Lógico e Modelo Físico. Meu professor também mostrou Banco de Dados Orientado a Objeto essa semana, vou criticá-lo por ter aprendido inicialmente que isso está morto? Penso que não, afinal não há verdade absoluta nesse meio (TI), tudo que surge é para resolver problemas. O que tem de mais atual hoje é REST (como tecnologia) e AngularJS com uma nova visão, correto? Isso faz com que aplicações feitas em outras tecnologias, que possivelmente era o que tinha de melhor na época, feito da maneira correta, com código de qualidade, seguindo a especificação, seja obsoleta? Eu discordo, meu pensamento quando surge algo “novo” é esperar um pouco para ver onde vai dar e ai sim começar um movimento naquela direção, mas não simplesmente abandonar o que é considerado obsoleto e partir como um caminhão sem freio para o “atual”.

A maioria de vocês sabem, eu sou novo em programação, mas cuido de coisas relacionadas a computação desde meus 11 anos de idade, por isso pergunto: meu pensamento é muito incorreto?

Não. As vezes entender o que teve de bom durante a pesquisa de uma tecnologia morta, e o que levou ela a morrer é tão útil quanto estudar uma tecnologia viva. Até porque, algumas tecnologias novas e que estão se tornando populares (como o MongoDB) são produtos de uma abordagem diferente para resolução do mesmo problema. Mesmo sendo novas, ainda compartilham muitas características em comum com seus antecessores falecidos.

M

Planejamento financeiro > planejamento de carreira.

Certamente ! Planejamento de Carreira sem o Planejamento Financeiro não seria possível pois não teria como bancar faculdade , cursos de especialização , livros e as viagens que fiz pois ninguem é de ferro :slight_smile:

Se fez tudo isso, o que não pode ser considerado planejamento de carreira?

Você não precisa “planejar carreira” pra vislumbrar uma possibilidade de retorno financeiro numa determinada tecnologia (no caso Delphi) e aproveitar a oportunidade. Foi isso que ele fez. Não sei de onde você tirou que isso é planejamento de carreira? Na verdade, ele disse que nem programa mais… :confused:

Você é que não leu o que ele postou, neste e depois.

Planejamento financeiro + planejamento de carreira = Sucesso

I

ViniGodoy:

Mas esse é exatamente meu ponto. Vejo muita moçada nova saindo xiita em uma tecnologia quando sai da faculdade. Ficam maravilhados em como aquela tecnologia tem frameworks para resolver todos os seus problemas.

Não vejo motivo pra ninguém ficar deprimido tb.

Qualquer principiante escreve software complexo. O negócio é escrever software simples e modular. Mas aquele que pagar mais ta bom pra mim. :slight_smile:


PS: Não precisa ir longe para ver que os fundamentos são mais importantes, até porque eles são mais resistentes a mudanças. O livro de design patterns do GOF existe desde 1995, foi feito para C++ e Smalltalk, e ainda exerce muita influência nos dias atuais. Vários conceitos de estruturas de dados, que ainda são usadas, beiram a época do mainframe (como o quicksort, da criado em 1960).

Se é resistente a mudança não existe pressa pra quem está começando aprender depois, na medida que vai ganhando experiência. Até pq ela não vai conseguir provar o valor de mercado do seu conhecimento da teoria, só depois, na medida que desenvolver um portfólio/network, e até lá o “fundamental” mudou, pode acontecer apesar de levar alguns anos a mais que franeworks, nem todos os conceitos na tecnologia duram uma carreira inteira.

J

Júlio Murta:
Em T.I podemos ter dois direcionamentos principais : gerencial e técnico. Eu sempre tive mais interesse pelo lado técnico, então sempre me foquei mais em aprender programação do regra negócio. E mais, eu sempre me foquei em uma tecnologia específica. Não que eu saiba apenas aquela tecnologia, mas eu tentei aprender o máximo com ela. Afinal, sempre considerei que melhor que saber fazer um CRUD em 10 linguagens é saber fazer de tudo com uma linguagem.

Porém, atualmente eu estou começando a ter problemas com essa abordagem. Eu dei totalmente as costas para Java, PHP, Ruby e as demais linguagens, e sinto que com isso reduzi minhas oportunidades de colocação no mercado.

Atualmente também estou querendo aprender regra de negócio.

Você pode ficar trabalhando numa tecnologia atual e acompanhando por alto as demais cogitadas. Quem trabalha por exemplo em ASP.NET MVC/Web.Api, está na mesma onda que Java com Spring MVC, PHP com Zend Framework, Ruby com Rails, etc, pois seguem as mesmas abordagens. Então nestes casos que voce citou seria mais você se adaptar as particularidades de cada linguagem e plataforma. Mais complicado é quem fica em mundos ilhados como JSF, WebForms, GWT, etc.

O mais importante mesmo é ir ganhando experiencia em resolver problemas para o cliente, independente da tecnologia, desde um Excel gerado na hora por SQL pra atender um decreto extraordinário ou até participar na melhoria de processo do Negócio. Em sistemas de informações tecnologia é só o meio. No dia a dia com pessoas mais antigas se aprende as partes mais avançadas. Com o tempo vai ver que tecnologias vem e vão, onde você vai mudar conforme aproveitar oportunidades melhores.

O Negócio se aprende melhor analisando a rotina dos clientes envolvidos. Livros são muito genéricos.

F

Graças a Deus eu não posso me considerar ilhado a JSF, apesar de estar aprendendo JSP que é ainda mais antigo, mas não é uma coisa que eu pensei “Nossa, que legal! Quero aprender isso”, eu vejo como uma maneira de entender um fluxo, no meu caso o MVC.

A apostila FJ-21 me deu várias dicas importantes que posso aplicar em outras tecnologias. É do meu entendimento terminar a apostila para fechar um conceito antes de conhecer outro, até para ver as diferenças de forma clara, o que evoluiu, que problema foi resolvido, porque tal coisa não é mais utilizada.

A única coisa que realmente fez meus olhos brilharem foi quando vi o PrimeFaces, mas não pela tecnologia, mas pela beleza mesmo do visual, só que isso mudou quando vi que jQuery UI tem coisas muito semelhantes, com uma linguagem mais simples e menos caixa preta. Se eu ainda tenho vontade de aprender JSF/PrimeFaces? Tenho sim! Assim como tenho vontade de ver esse tal de AngularJS, entre muitas outras coisas que ouvi falar.

Supondo que eu me sinta tão bem com o PrimeFaces e ganhe muito em produtividade, não vejo problema em executar um projeto com prazo curto para alguém, mesmo sabendo que é algo caindo em desuso, faz sentido as coisas que eu disse?

I

E pra quem não tem bola de cristal:

Planejamento financeiro + estar atualizado com novas tecnologias = Sucesso

I

fggs:
Graças a Deus eu não posso me considerar ilhado a JSF, apesar de estar aprendendo JSP que é ainda mais antigo, mas não é uma coisa que eu pensei “Nossa, que legal! Quero aprender isso”, eu vejo como uma maneira de entender um fluxo, no meu caso o MVC.

A apostila FJ-21 me deu várias dicas importantes que posso aplicar em outras tecnologias. É do meu entendimento terminar a apostila para fechar um conceito antes de conhecer outro, até para ver as diferenças de forma clara, o que evoluiu, que problema foi resolvido, porque tal coisa não é mais utilizada.

A única coisa que realmente fez meus olhos brilharem foi quando vi o PrimeFaces, mas não pela tecnologia, mas pela beleza mesmo do visual, só que isso mudou quando vi que jQuery UI tem coisas muito semelhantes, com uma linguagem mais simples e menos caixa preta. Se eu ainda tenho vontade de aprender JSF/PrimeFaces? Tenho sim! Assim como tenho vontade de ver esse tal de AngularJS, entre muitas outras coisas que ouvi falar.

Supondo que eu me sinta tão bem com o PrimeFaces e ganhe muito em produtividade, não vejo problema em executar um projeto com prazo curto para alguém, mesmo sabendo que é algo caindo em desuso, faz sentido as coisas que eu disse?

Trabalhar com tecnologia que está caindo em desuso não é uma boa idéia, se você espera obter retorno financeiro, a não ser que seja uma tecnologia que alguma indústria depende. Mas acho que não é o caso de tecnologias para criação de aplicações front-end na web.

V

Software complexo != código complicado.

J

fggs:
Graças a Deus eu não posso me considerar ilhado a JSF, apesar de estar aprendendo JSP que é ainda mais antigo, mas não é uma coisa que eu pensei “Nossa, que legal! Quero aprender isso”, eu vejo como uma maneira de entender um fluxo, no meu caso o MVC.

A apostila FJ-21 me deu várias dicas importantes que posso aplicar em outras tecnologias. É do meu entendimento terminar a apostila para fechar um conceito antes de conhecer outro, até para ver as diferenças de forma clara, o que evoluiu, que problema foi resolvido, porque tal coisa não é mais utilizada.

A única coisa que realmente fez meus olhos brilharem foi quando vi o PrimeFaces, mas não pela tecnologia, mas pela beleza mesmo do visual, só que isso mudou quando vi que jQuery UI tem coisas muito semelhantes, com uma linguagem mais simples e menos caixa preta. Se eu ainda tenho vontade de aprender JSF/PrimeFaces? Tenho sim! Assim como tenho vontade de ver esse tal de AngularJS, entre muitas outras coisas que ouvi falar.

Supondo que eu me sinta tão bem com o PrimeFaces e ganhe muito em produtividade, não vejo problema em executar um projeto com prazo curto para alguém, mesmo sabendo que é algo caindo em desuso, faz sentido as coisas que eu disse?


É por ai mesmo, investir mais em algo seguido por várias plataformas em evidência. Usando REST com um framework MVC JavaScript por exemplo o desenvolvimento do lado client fica igual para todas as plataformas do lado servidor, se considerado aplicação web HTML.

Geralmente é uma ilusão esse prazo curto de entrega ao usar soluções particulares e amarradas como Primefaces. Geralmente é pensando só na fase de desenvolvimento inicial.

I

A H Gusukuma:
ImpossiveI:
A H Gusukuma:

Continua estudando e se esforçando que um dia, quem sabe, você consegue…

O quê? negócios? tecnologia? teoria?

Depende do seu interesse e/ou necessidade.

Isso é o que não pode ser chamado planejar carreira?

I

Software complexo != código complicado.

Então o que seria software complexo?

K

O pessoal daqui (NZ) tem uma boa fundacao teorica, universidades sao de boa qualidade com bons professores (bem pagos).
Muitos dos estudantes de TI depois de terminar a universidade acabam indo para o UK / AUS / USA.

Alguns livros que recomendo pro pessoal aqui:
http://www.amazon.com/gp/product/[telefone removido] (Clean Code)
http://www.amazon.com/gp/product/[telefone removido] (Refactoring)
http://www.amazon.com/gp/product/020161622X (The Pragmatic Programmer)
http://www.amazon.com/gp/product/[telefone removido] (The Passionate Programmer)

Espero que ajude :slight_smile:

J

keller:
O pessoal daqui (NZ) tem uma boa fundacao teorica, universidades sao de boa qualidade com bons professores (bem pagos).
Muitos dos estudantes de TI depois de terminar a universidade acabam indo para o UK / AUS / USA.

Alguns livros que recomendo pro pessoal aqui:
http://www.amazon.com/gp/product/[telefone removido] (Clean Code)
http://www.amazon.com/gp/product/[telefone removido] (Refactoring)
http://www.amazon.com/gp/product/020161622X (The Pragmatic Programmer)
http://www.amazon.com/gp/product/[telefone removido] (The Passionate Programmer)

Espero que ajude :)

Em algum momento você se sentiu abaixo da média diante os programadores neozelandeses?

I

Júlio Murta:
keller:
O pessoal daqui (NZ) tem uma boa fundacao teorica, universidades sao de boa qualidade com bons professores (bem pagos).
Muitos dos estudantes de TI depois de terminar a universidade acabam indo para o UK / AUS / USA.

Alguns livros que recomendo pro pessoal aqui:
http://www.amazon.com/gp/product/[telefone removido] (Clean Code)
http://www.amazon.com/gp/product/[telefone removido] (Refactoring)
http://www.amazon.com/gp/product/020161622X (The Pragmatic Programmer)
http://www.amazon.com/gp/product/[telefone removido] (The Passionate Programmer)

Espero que ajude :)

Em algum momento você se sentiu abaixo da média diante os programadores neozelandeses?

pelo que entendi eles estão trabalhando na UK / AUS / USA.

U

Discussão interessante e que foi bem longe. Vou dar o meu pitaco também. :slight_smile:

Estamos atrasados em relação aos gringos?

Começando do começo, no geral os “gringos” (incluindo USA, UK, AUS, NZ, mas não limitado a estes) são sim mais avançados em termos de tecnologia do que nós. Claro, essa afirmação exige um contexto.

Primeiro, que em países desenvolvidos o acesso à tecnologia de ponto é muito mais fácil. Só para citar um exemplo básico, aqui no Brasil vai ser muito mais difícil alguém decidir desenvolver para iPhone por causa do custo do equipamento.

Segundo, países como EUA tentem a ter um mercado muito mais competitivo que o nosso. Não quero entrar em discussões políticas, mas para o bem ou para o mau, as empresas, o mercado e o trabalhador no Brasil são muito mais protegidos do que em países onde o empregador pode fazer um contrato específico com o empregado.

Obviamente aqui no Brasil temos pessoas excelentes, que certamente ultrapassam em muito o nível médio mundial do desenvolvedor de Software. Dois exemplos que posso citar estão presentes aqui nesta discussão, o Vini e o Hebert.

Mas no geral, acabamos seguindo muitas coisas de fora porque temos mais dificuldades de chegar à crista da onda. Os gringos tem mais tempo e recursos para investir em novas tecnologias, estudos e projetos. Quantas pessoas aqui tem tempo para, além do trabalho normal, fazer diversos experimentos técnicos ou humanos como os idealizadores de frameworks, metodologias e afins?

Como alguns já sabem em breve estou indo trabalhar na Atlassian, na Austrália. Já havia tentado uma vaga na Amazon em Seattle, WA, mas não consegui. O nível de ambas as entrevistas é incomparável com tudo o que já vi no Brasil. Primeiro, lá você passa, no mínimo por 4 entrevistas técnicas com vários membros da equipe. Os desenvolvedores e gerentes que me entrevistaram, todos demonstraram conhecimentos profundos em aspectos diversos. Mesmo sendo já experiente e bem fundamentado em computação tive dificuldades. E se eles encontrarem qualquer ponto negativo, mesmo que seja um perfil não compatível com a filosofia da empresa, eles vão recusar você. Note que não estou falando das pessoas que escrevem livros ou são conhecidas, são desenvolvedores “comuns”, exceto que de empresas renomadas.

Claro que existem algumas (poucas) empresas de nível mais alto aqui no Brasil, mas na maioria eles nem estão dispostos a investir tanto na entrevista, nem há candidatos o suficiente com um nível muito alto para o salário que pagam e por aí vai.

Não sei de quem é a culpa disso tudo, nem vou arriscar, mas a verdade é que por aqui vejo muita gente boa se acomodando dentro de alguma consultoria e aceitando um salário e uma função ambos medíocres, por vários motivos. Muitos são colocados no mesmo nível de outros desenvolvedores no máximo medianos. As empresas em geral também não fazem questão de diferenciar. As consultorias e fábricas de software, principalmente, estão preocupadas apenas em vender projetos e entregá-los com o menor custo, portanto não faz diferença se você é um programador júnior ou um arquiteto.

Tipos de carreira

Foi mencionado aqui a questão de ter dois tipos de carreira: gerencial e técnica. Na verdade existem muitas outras que podem e fazem parte de empresas de software, por exemplo marketing digital, design de interfaces, usabilidade e experiência do usuário, etc…

De qualquer forma, aqui no Brasil existe quase um tabu de que para crescer na carreira você precisa necessariamente virar um gerente. Muitas tem essa noção de que o bom é quem manda, o resto é ralé e peãozada.

Felizmente estou em uma empresa (GFT) que reconhece em seu plano de carreira oficial os diferentes tipos de competências. Temos 5 planos de carreiras, dentro os quais está o tecnológico, que culmina no papel do arquiteto, assim como o gerencial, o corporativo, de relacionamento com clientes e de negócios. Portanto, existem sim lugares em que você pode crescer no papel técnico sendo uma referência na sua área de expertise.

Claro que isso não é assim tão fácil. Atingir um nível de arquiteto é muito mais difícil do que se tornar um gerente, pois em geral este último depende mais de tempo de experiência e ter um bom de relacionamento interpessoal, enquanto o primeiro precisa se especializar por anos e anos a fio.

Outro problema é que poucas empresas tem um plano de carreira para arquitetos que se equipara com o gerencial. Então os desenvolvedores ficam em segundo plano. Em razão disso, sempre recomendo para quem quer crescer tecnicamente, que escolha uma empresa de tecnologia e não as que vendem homens/hora.

Complexidade vs Complicado

Concordo plenamente com o Vini. Esse conceito é sentido na prática e provado na teoria. Leia o Mythical Man Month do Brooks, de 1975, ele já falava sobre a complexidade inerente do software. Há regras de negócio que são inerentemente complexas e vão resultar em código complexo.

Claro que, se pensarmos em nível de loops e condicionais, nada é realmente complicada, mas se considerarmos o nível de algoritmo, basta ver como existem algoritmos complicados. Você pode ter 50 anos de experiência em programação e conhecer todas as linguagens, mas se alguém lhe pedir para resolver o problema do Caixeiro Viajante, por exemplo, de anda adianta tudo isso. Para um problema complexo, é necessário um algoritmo complexo que, mesmo sendo implementado com um código simples, não é inteligível para a maioria dos programadores.

Porém, mesmo um código extremamente complexo pode ser quebrado em blocos mais simples. Você pode dividir uma implementação muito grande e complexa em diversas módulos, classes e métodos. Cada método por ser ser tão simples quanto um código que alguém no primeiro ano de faculdade pode escrever, porém a complexidade está na forma como os objetos se relacionam, nos padrões arquiteturais adotados e assim por diante.

Especialização em tecnologia

Encontrei várias afirmações muito interessantes neste tópico sobre esse assunto. Eu concordo que quem é bom tecnicamente, possui bom fundamentos e tem experiência na área, não deve e geralmente não fica preso a uma tecnologia. Eu tenho as minhas dúvidas sobre pessoas que só sabem Java, só sabem Ruby ou até só sabem Hasckell. Todos os bons desenvolvedores que conheço sabem se virar com outras tecnologias, mesmo que em geral se especializem mais em uma ou duas.

Ontem mesmo um colega aqui da empresa pegou um projeto pequeno de manutenção de código VBA criado em 1997, em uso até hoje por um setor de uma instituição financeira, e veio me pedir ajuda porque ele não conhecia nada da linguagem. Eu programei em VBA por volta do ano 2000 brincando com o Visual Basic 4/6 fazendo joguinhos. Mesmo assim consegui ajudá-lo a criar um código relativamente complexo, um parser de uma planilha Excel, o qual ficou consideravelmente organizado e flexível, não porque eu lembrasse muito de VBA, mas porque toda a minha carga de programação fez com que não tivesse dificuldade alguma de usar essa linguagem.

Java defasado?

Java não vai virar um Cobol tão cedo porque ele ainda compete com todas as linguagens mais modernas. Eu concordo que a sintaxe da linguagem é verbosa, possui limitações e muitas vezes é desagradável criar certos tipos de estruturas que em outras linguagens você tem abstrações e syntax sugars bem legais.

Porém, a vantagem do Java é que ele é fácil de aprender, justamente pela sintaxe não permitir construções absurdamente complexas como em linguagens funcionais. E mesmo que você queira fazer isso, você pode rodar praticamente qualquer linguagem dentro da JVM (Ruby, Python, JavaScript, Scala, …). O maior acerto, em minha opinião, da arquitetura do Java foi não tentar vencer outras linguagens, mas juntar-se à elas.

Além disso, os frameworks Java como play! e Spring Boot/Roo fazem praticamente tudo o que frameworks mais modernos como Rails fazem. E você consegue ainda trazer todos os recursos do Java também, além da performance que (por enquanto) é bem melhor.

Enquanto as tecnologias Java conseguirem competir de igual para igual com as tecnologias alternativas, não há razão para imaginar que o Java vai virar um gigante legado. Talvez as aplicações feitas com EJB 2, milhares de linhas de XML e similares possam ocupar esse papel, mas ao mesmo tempo é possível utilizar as tecnologias de ponto usando a mesma plataforma. Isso acaba sendo uma grande vantagem!

Além disso, sinceramente não vejo nada de inovador em muitas das tecnologias que alguns xiitas defendem. Um exemplo: não há motivo técnico porque Rails é melhor melhor do que um framework Java como Spring. Pode ser mais legal, escrever um pouco menos de código a princípio, mas no decorrer de meses e anos não creio que a produtividade seria tão diferente. Além disso, Rails resolve um problema muito específico do desenvolvimento de software. A maioria das tecnologias da moda só resolvem um problema muito específico e, a partir do momento em que começam a crescer e a amadurecer, geralmente elas incorrem nos mesmos problemas que as tecnologias existentes.

Só vou acreditar que o Java está realmente ultrapassado quando surgir um paradigma de desenvolvimento largamente usado que não seja atendido bem por esta plataforma.

Dito isto, sugiro fortemente e urgentemente que quem só sabe Java aprenda mais uma ou duas plataformas para sair fora da caixa. :smiley:

V

[youtube]http://www.youtube.com/watch?v=zu9W8AtZy7U[/youtube]

Sobre tudo isso:

utluiz:
Discussão interessante e que foi bem longe. Vou dar o meu pitaco também. :slight_smile:

Estamos atrasados em relação aos gringos?

Começando do começo, no geral os “gringos” (incluindo USA, UK, AUS, NZ, mas não limitado a estes) são sim mais avançados em termos de tecnologia do que nós. Claro, essa afirmação exige um contexto.

Primeiro, que em países desenvolvidos o acesso à tecnologia de ponto é muito mais fácil. Só para citar um exemplo básico, aqui no Brasil vai ser muito mais difícil alguém decidir desenvolver para iPhone por causa do custo do equipamento.

Segundo, países como EUA tentem a ter um mercado muito mais competitivo que o nosso. Não quero entrar em discussões políticas, mas para o bem ou para o mau, as empresas, o mercado e o trabalhador no Brasil são muito mais protegidos do que em países onde o empregador pode fazer um contrato específico com o empregado.

Obviamente aqui no Brasil temos pessoas excelentes, que certamente ultrapassam em muito o nível médio mundial do desenvolvedor de Software. Dois exemplos que posso citar estão presentes aqui nesta discussão, o Vini e o Hebert.

Mas no geral, acabamos seguindo muitas coisas de fora porque temos mais dificuldades de chegar à crista da onda. Os gringos tem mais tempo e recursos para investir em novas tecnologias, estudos e projetos. Quantas pessoas aqui tem tempo para, além do trabalho normal, fazer diversos experimentos técnicos ou humanos como os idealizadores de frameworks, metodologias e afins?

Como alguns já sabem em breve estou indo trabalhar na Atlassian, na Austrália. Já havia tentado uma vaga na Amazon em Seattle, WA, mas não consegui. O nível de ambas as entrevistas é incomparável com tudo o que já vi no Brasil. Primeiro, lá você passa, no mínimo por 4 entrevistas técnicas com vários membros da equipe. Os desenvolvedores e gerentes que me entrevistaram, todos demonstraram conhecimentos profundos em aspectos diversos. Mesmo sendo já experiente e bem fundamentado em computação tive dificuldades. E se eles encontrarem qualquer ponto negativo, mesmo que seja um perfil não compatível com a filosofia da empresa, eles vão recusar você. Note que não estou falando das pessoas que escrevem livros ou são conhecidas, são desenvolvedores “comuns”, exceto que de empresas renomadas.

Claro que existem algumas (poucas) empresas de nível mais alto aqui no Brasil, mas na maioria eles nem estão dispostos a investir tanto na entrevista, nem há candidatos o suficiente com um nível muito alto para o salário que pagam e por aí vai.

Não sei de quem é a culpa disso tudo, nem vou arriscar, mas a verdade é que por aqui vejo muita gente boa se acomodando dentro de alguma consultoria e aceitando um salário e uma função ambos medíocres, por vários motivos. Muitos são colocados no mesmo nível de outros desenvolvedores no máximo medianos. As empresas em geral também não fazem questão de diferenciar. As consultorias e fábricas de software, principalmente, estão preocupadas apenas em vender projetos e entregá-los com o menor custo, portanto não faz diferença se você é um programador júnior ou um arquiteto.

Tipos de carreira

Foi mencionado aqui a questão de ter dois tipos de carreira: gerencial e técnica. Na verdade existem muitas outras que podem e fazem parte de empresas de software, por exemplo marketing digital, design de interfaces, usabilidade e experiência do usuário, etc…

De qualquer forma, aqui no Brasil existe quase um tabu de que para crescer na carreira você precisa necessariamente virar um gerente. Muitas tem essa noção de que o bom é quem manda, o resto é ralé e peãozada.

Felizmente estou em uma empresa (GFT) que reconhece em seu plano de carreira oficial os diferentes tipos de competências. Temos 5 planos de carreiras, dentro os quais está o tecnológico, que culmina no papel do arquiteto, assim como o gerencial, o corporativo, de relacionamento com clientes e de negócios. Portanto, existem sim lugares em que você pode crescer no papel técnico sendo uma referência na sua área de expertise.

Claro que isso não é assim tão fácil. Atingir um nível de arquiteto é muito mais difícil do que se tornar um gerente, pois em geral este último depende mais de tempo de experiência e ter um bom de relacionamento interpessoal, enquanto o primeiro precisa se especializar por anos e anos a fio.

Outro problema é que poucas empresas tem um plano de carreira para arquitetos que se equipara com o gerencial. Então os desenvolvedores ficam em segundo plano. Em razão disso, sempre recomendo para quem quer crescer tecnicamente, que escolha uma empresa de tecnologia e não as que vendem homens/hora.

Complexidade vs Complicado

Concordo plenamente com o Vini. Esse conceito é sentido na prática e provado na teoria. Leia o Mythical Man Month do Brooks, de 1975, ele já falava sobre a complexidade inerente do software. Há regras de negócio que são inerentemente complexas e vão resultar em código complexo.

Claro que, se pensarmos em nível de loops e condicionais, nada é realmente complicada, mas se considerarmos o nível de algoritmo, basta ver como existem algoritmos complicados. Você pode ter 50 anos de experiência em programação e conhecer todas as linguagens, mas se alguém lhe pedir para resolver o problema do Caixeiro Viajante, por exemplo, de anda adianta tudo isso. Para um problema complexo, é necessário um algoritmo complexo que, mesmo sendo implementado com um código simples, não é inteligível para a maioria dos programadores.

Porém, mesmo um código extremamente complexo pode ser quebrado em blocos mais simples. Você pode dividir uma implementação muito grande e complexa em diversas módulos, classes e métodos. Cada método por ser ser tão simples quanto um código que alguém no primeiro ano de faculdade pode escrever, porém a complexidade está na forma como os objetos se relacionam, nos padrões arquiteturais adotados e assim por diante.

Especialização em tecnologia

Encontrei várias afirmações muito interessantes neste tópico sobre esse assunto. Eu concordo que quem é bom tecnicamente, possui bom fundamentos e tem experiência na área, não deve e geralmente não fica preso a uma tecnologia. Eu tenho as minhas dúvidas sobre pessoas que só sabem Java, só sabem Ruby ou até só sabem Hasckell. Todos os bons desenvolvedores que conheço sabem se virar com outras tecnologias, mesmo que em geral se especializem mais em uma ou duas.

Ontem mesmo um colega aqui da empresa pegou um projeto pequeno de manutenção de código VBA criado em 1997, em uso até hoje por um setor de uma instituição financeira, e veio me pedir ajuda porque ele não conhecia nada da linguagem. Eu programei em VBA por volta do ano 2000 brincando com o Visual Basic 4/6 fazendo joguinhos. Mesmo assim consegui ajudá-lo a criar um código relativamente complexo, um parser de uma planilha Excel, o qual ficou consideravelmente organizado e flexível, não porque eu lembrasse muito de VBA, mas porque toda a minha carga de programação fez com que não tivesse dificuldade alguma de usar essa linguagem.

Java defasado?

Java não vai virar um Cobol tão cedo porque ele ainda compete com todas as linguagens mais modernas. Eu concordo que a sintaxe da linguagem é verbosa, possui limitações e muitas vezes é desagradável criar certos tipos de estruturas que em outras linguagens você tem abstrações e syntax sugars bem legais.

Porém, a vantagem do Java é que ele é fácil de aprender, justamente pela sintaxe não permitir construções absurdamente complexas como em linguagens funcionais. E mesmo que você queira fazer isso, você pode rodar praticamente qualquer linguagem dentro da JVM (Ruby, Python, JavaScript, Scala, …). O maior acerto, em minha opinião, da arquitetura do Java foi não tentar vencer outras linguagens, mas juntar-se à elas.

Além disso, os frameworks Java como play! e Spring Boot/Roo fazem praticamente tudo o que frameworks mais modernos como Rails fazem. E você consegue ainda trazer todos os recursos do Java também, além da performance que (por enquanto) é bem melhor.

Enquanto as tecnologias Java conseguirem competir de igual para igual com as tecnologias alternativas, não há razão para imaginar que o Java vai virar um gigante legado. Talvez as aplicações feitas com EJB 2, milhares de linhas de XML e similares possam ocupar esse papel, mas ao mesmo tempo é possível utilizar as tecnologias de ponto usando a mesma plataforma. Isso acaba sendo uma grande vantagem!

Além disso, sinceramente não vejo nada de inovador em muitas das tecnologias que alguns xiitas defendem. Um exemplo: não há motivo técnico porque Rails é melhor melhor do que um framework Java como Spring. Pode ser mais legal, escrever um pouco menos de código a princípio, mas no decorrer de meses e anos não creio que a produtividade seria tão diferente. Além disso, Rails resolve um problema muito específico do desenvolvimento de software. A maioria das tecnologias da moda só resolvem um problema muito específico e, a partir do momento em que começam a crescer e a amadurecer, geralmente elas incorrem nos mesmos problemas que as tecnologias existentes.

Só vou acreditar que o Java está realmente ultrapassado quando surgir um paradigma de desenvolvimento largamente usado que não seja atendido bem por esta plataforma.

Dito isto, sugiro fortemente e urgentemente que quem só sabe Java aprenda mais uma ou duas plataformas para sair fora da caixa. :D

E parabéns por ir para a Atlassian. Sou fã de carteirinha dos produtos deles.

F

Infelizmente comecei tarde na programação, completarei 31 anos em setembro e posso dizer que não sei nenhuma linguagem, apenas consigo ler códigos simples e fazer uma edição simples.

No que vou me tornar? Não sei, não fui atrás de certificação ainda, é uma coisa que as vezes penso ser dispensável, e as vezes penso que devo tirar alguma para “ter um título”.

Acho que não posso considerar um diferencial, mas quando preciso aprender uma coisa vou a fundo, vou atrás de quem começou, do porque começou, essa abordagem tem me ajudado bastante pois envolve o conceito da coisa em si.

Não tenho nenhum exemplo em termos de programação, mas tenho vários com relação a hardware e linux.

Só me sinto um pouco desapontado por não ter encontrado ainda um “mestre Yoda” por assim dizer, um mentor, alguém disposto a passar os conhecimentos para alguém com muita vontade de aprender como eu, alguém com quem eu pudesse expor ideias, abordagens e ter os meus “porques” esclarecidos rapidamente.

Não sei o caminho que alguns de vocês trilharam, ViniGodoy, utluiz, Hebert, entre muitos outros aqui do fórum, mas pela segurança com que falam e pelas coisas que já alcançaram, se tornaram minha referencia, só não sei se terei tempo de vida hábil para alcançar tal nível, acho que isso também envolve personalidade e muitos outros elementos além da inteligencia, por isso a minha duvida.

De qualquer forma como já disse, fico grato por poder ter a participação de vocês por aqui, sempre tão rica, muito obrigado!

P

ótimo post!

Algumas observações:

Concordo. Mas isso significa menos competição para desenvolver iPhone no Brasil comparando com Java, onde qualquer um pode lançar um blog e se tornar “arquiteto consultor”, portanto desenvolver para dispositivos da Apple me parece muito mais viável do ponto de vista de “carreira” (10 anos em TI rs) no Brasil, do que uma plataforma “sem custos” e que o mercado aproveita pra explorar a quantidade, ignorando a qualidade do profissional.

Meus aplicativos são vendidos em todos os países, e eu só precisei fazer um contrato com a Apple. No futuro, caso veja necessidade de vender meus serviços, você acha que teria dificuldade de ser contratado remotamente para um cliente em outro país?

Mas concordo com relação ao mercado de serviços no Brasil. Por isso falei que não da pra planejar carreira, tendo em vista as empresas daqui.

Mas no geral, acabamos seguindo muitas coisas de fora porque temos mais dificuldades de chegar à crista da onda. Os gringos tem mais tempo e recursos para investir em novas tecnologias, estudos e projetos. Quantas pessoas aqui tem tempo para, além do trabalho normal, fazer diversos experimentos técnicos ou humanos como os idealizadores de frameworks, metodologias e afins?

Quem não tem tempo e recurso para investir em adquirir conhecimento esta atrasado em relação a quem tem. O fator determinante aqui é tempo e recurso, e não o fato de ser gringo.

Nem todo mundo sonha em crescer como programador. Muitos não vêem a hora de se tornar gerentes pra serem os chefes e mandar nos programadores. :wink:

Esses tem que ficar e aceitar o que for preciso!

P

utluiz:

Complexidade vs Complicado

Concordo plenamente com o Vini. Esse conceito é sentido na prática e provado na teoria. Leia o Mythical Man Month do Brooks, de 1975, ele já falava sobre a complexidade inerente do software. Há regras de negócio que são inerentemente complexas e vão resultar em código complexo.

Claro que, se pensarmos em nível de loops e condicionais, nada é realmente complicada, mas se considerarmos o nível de algoritmo, basta ver como existem algoritmos complicados. Você pode ter 50 anos de experiência em programação e conhecer todas as linguagens, mas se alguém lhe pedir para resolver o problema do Caixeiro Viajante, por exemplo, de anda adianta tudo isso. Para um problema complexo, é necessário um algoritmo complexo que, mesmo sendo implementado com um código simples, não é inteligível para a maioria dos programadores.

Porém, mesmo um código extremamente complexo pode ser quebrado em blocos mais simples. Você pode dividir uma implementação muito grande e complexa em diversas módulos, classes e métodos. Cada método por ser ser tão simples quanto um código que alguém no primeiro ano de faculdade pode escrever, porém a complexidade está na forma como os objetos se relacionam, nos padrões arquiteturais adotados e assim por diante.

Da mesma forma, você pode ter experiência de 50 anos sobre algoritmos ensinados na faculdade, em diferentes linguagens, mas se alguém lhe pedir pra implementar uma regra de negócio (complexidade inerente) e não saber, de que lhe adianta tudo isso?

ps: Brooks diz que as regras de negócio é o essencial no software e acho que ele diria que uma regra de negócio complexa é formado por vários algoritmos simples, e não por um algoritmo que é do tamanho do problema que ele resolve. O software todo é complexo, mas o desafio é reunir algoritmos simples de maneira que fique coerente com o resultado esperado.

P

utluiz:

Java defasado?

Java não vai virar um Cobol tão cedo porque ele ainda compete com todas as linguagens mais modernas. Eu concordo que a sintaxe da linguagem é verbosa, possui limitações e muitas vezes é desagradável criar certos tipos de estruturas que em outras linguagens você tem abstrações e syntax sugars bem legais.

Porém, a vantagem do Java é que ele é fácil de aprender, justamente pela sintaxe não permitir construções absurdamente complexas como em linguagens funcionais. E mesmo que você queira fazer isso, você pode rodar praticamente qualquer linguagem dentro da JVM (Ruby, Python, JavaScript, Scala, …). O maior acerto, em minha opinião, da arquitetura do Java foi não tentar vencer outras linguagens, mas juntar-se à elas.

Além disso, os frameworks Java como play! e Spring Boot/Roo fazem praticamente tudo o que frameworks mais modernos como Rails fazem. E você consegue ainda trazer todos os recursos do Java também, além da performance que (por enquanto) é bem melhor.

Enquanto as tecnologias Java conseguirem competir de igual para igual com as tecnologias alternativas, não há razão para imaginar que o Java vai virar um gigante legado. Talvez as aplicações feitas com EJB 2, milhares de linhas de XML e similares possam ocupar esse papel, mas ao mesmo tempo é possível utilizar as tecnologias de ponto usando a mesma plataforma. Isso acaba sendo uma grande vantagem!

Além disso, sinceramente não vejo nada de inovador em muitas das tecnologias que alguns xiitas defendem. Um exemplo: não há motivo técnico porque Rails é melhor melhor do que um framework Java como Spring. Pode ser mais legal, escrever um pouco menos de código a princípio, mas no decorrer de meses e anos não creio que a produtividade seria tão diferente. Além disso, Rails resolve um problema muito específico do desenvolvimento de software. A maioria das tecnologias da moda só resolvem um problema muito específico e, a partir do momento em que começam a crescer e a amadurecer, geralmente elas incorrem nos mesmos problemas que as tecnologias existentes.

Só vou acreditar que o Java está realmente ultrapassado quando surgir um paradigma de desenvolvimento largamente usado que não seja atendido bem por esta plataforma.

Dito isto, sugiro fortemente e urgentemente que quem só sabe Java aprenda mais uma ou duas plataformas para sair fora da caixa. :D

Melhor análise técnica da situação que li nos últimos tempos.

ps: quando um xiita fala que Java virou COBOL, eu vejo isso como algo positivo, afinal, significa que a empresa usou Java para implementar as regras de negócio, que é a parte mais importante do software. Entre a oportunidade de trabalhar com uma linguagem “cool” sem nenhuma relação com o negócio, e Java, eu prefiro a segunda porque é uma posição com mais status.

J

pfk66:
utluiz:

Complexidade vs Complicado

Concordo plenamente com o Vini. Esse conceito é sentido na prática e provado na teoria. Leia o Mythical Man Month do Brooks, de 1975, ele já falava sobre a complexidade inerente do software. Há regras de negócio que são inerentemente complexas e vão resultar em código complexo.

Claro que, se pensarmos em nível de loops e condicionais, nada é realmente complicada, mas se considerarmos o nível de algoritmo, basta ver como existem algoritmos complicados. Você pode ter 50 anos de experiência em programação e conhecer todas as linguagens, mas se alguém lhe pedir para resolver o problema do Caixeiro Viajante, por exemplo, de anda adianta tudo isso. Para um problema complexo, é necessário um algoritmo complexo que, mesmo sendo implementado com um código simples, não é inteligível para a maioria dos programadores.

Porém, mesmo um código extremamente complexo pode ser quebrado em blocos mais simples. Você pode dividir uma implementação muito grande e complexa em diversas módulos, classes e métodos. Cada método por ser ser tão simples quanto um código que alguém no primeiro ano de faculdade pode escrever, porém a complexidade está na forma como os objetos se relacionam, nos padrões arquiteturais adotados e assim por diante.

Da mesma forma, você pode ter experiência de 50 anos sobre algoritmos ensinados na faculdade, em diferentes linguagens, mas se alguém lhe pedir pra implementar uma regra de negócio (complexidade inerente) e não saber, de que lhe adianta tudo isso?

ps: Brooks diz que as regras de negócio é o essencial no software e acho que ele diria que uma regra de negócio complexa é formado por vários algoritmos simples, e não por um algoritmo que é do tamanho do problema que ele resolve. O software todo é complexo, mas o desafio é reunir algoritmos simples de maneira que fique coerente com o resultado esperado.


Negócio se aprende na relação com o cliente. É mais humanas do que exatas, não adianta mesmo gastar energia estudando milhares de linguagens se a cabeça não tiver relaxada e mais disponível para atender uma atividade fim que não é TI. O Negócio é mais importante que TI.

Lado técnico é importante estar acompanhando o que está em volta. Claro se a pessoa trabalha por fins de TI ou é educador, ai sim terá que cair dentro em tecnologias diversas.

A

javaflex:

Lado técnico é importante estar acompanhando o que está em volta. Claro se a pessoa trabalha por fins de TI ou é educador, ai sim terá que cair dentro em tecnologias diversas.

Ou, por exemplo, se pretende concorrer no mercado global.

J

A H Gusukuma:
javaflex:

Lado técnico é importante estar acompanhando o que está em volta. Claro se a pessoa trabalha por fins de TI ou é educador, ai sim terá que cair dentro em tecnologias diversas.

Ou, por exemplo, se pretende concorrer no mercado global.


Sim, quando se adaptar não for suficiente.

A

javaflex:
A H Gusukuma:
javaflex:

Lado técnico é importante estar acompanhando o que está em volta. Claro se a pessoa trabalha por fins de TI ou é educador, ai sim terá que cair dentro em tecnologias diversas.

Ou, por exemplo, se pretende concorrer no mercado global.


Sim, quando se adaptar não for suficiente.

Normalmente não é. Empresas globais procuram oxigenar seu capital humano contratando fora de suas fronteiras, justamente para agregar outras características essenciais ao seu crescimento (inclusive sobrevivência).

J

A H Gusukuma:
javaflex:
A H Gusukuma:
javaflex:

Lado técnico é importante estar acompanhando o que está em volta. Claro se a pessoa trabalha por fins de TI ou é educador, ai sim terá que cair dentro em tecnologias diversas.

Ou, por exemplo, se pretende concorrer no mercado global.


Sim, quando se adaptar não for suficiente.

Normalmente não é. Empresas globais procuram oxigenar seu capital humano contratando fora de suas fronteiras, justamente para agregar outras características essenciais ao seu crescimento (inclusive sobrevivência).

Em relação a essa questão técnica, pelo menos das pessoas que conheci e quiseram trabalhar fora ou daqui lá pra fora, continuaram trabalhando na mesma tecnologia (ASP.NET), não precisando se preparar para outras coisas técnicas, apenas se adaptar à particularidades do local. Claro se a pessoa está trabalhando com algo obscuro tem que se preparar mesmo para o que é usado hoje no mundo.

K

Quando eu cheguei aqui ( em 2008 ) eu trabalhei junto e aprendi muito com um dos autores desse livro aqui:
http://www.amazon.com/gp/product/[telefone removido] (Java Power Tools)

Desde entao nunca me senti abaixo da media diante aos programadores neozelandeses, tive muita sorte :smiley:
Mas como disse antes “O pessoal daqui (NZ) tem uma boa fundacao teorica, universidades sao de boa qualidade…”

Alem disso “utluiz” (Luiz) levantou um ponto bem importante que e’ o seguinte:
“em países desenvolvidos o acesso à tecnologia de ponto é muito mais fácil…”

Como eu disse: “Muitos dos estudantes de TI depois de terminar”.
E… muitos != todos. :wink:

V

pfk66:
Da mesma forma, você pode ter experiência de 50 anos sobre algoritmos ensinados na faculdade, em diferentes linguagens, mas se alguém lhe pedir pra implementar uma regra de negócio (complexidade inerente) e não saber, de que lhe adianta tudo isso?

ps: Brooks diz que as regras de negócio é o essencial no software e acho que ele diria que uma regra de negócio complexa é formado por vários algoritmos simples, e não por um algoritmo que é do tamanho do problema que ele resolve. O software todo é complexo, mas o desafio é reunir algoritmos simples de maneira que fique coerente com o resultado esperado.

Agora, é muito mais fácil acreditar que um bom conhecedor de algoritmos, com algum esforço, passe a entender e aplicar seus algoritmos em regras de negócio do que ao contrário.
Por mim, isso soa a desculpa de analista de sistemas preguiçoso. Daqueles da época onde o bom analista não precisava programar, e nem queria.

Não adianta se escorar na desculpa que sua formação é “mais humana” e de que, portanto, seu diferencial está em outro lugar. Até porque, um analista de negócios tem que ter na ponta da lingua a capacidade de dizer se algo será ou não viável, ou qual a escala desse empreendimento.

Alguns “algoritmos simples” podem levar anos de estudo para serem modelados desse jeito. Por isso que eu digo, que um software complexo é bem diferente de um código complicado. Pegue por exemplo, qualquer algoritmo gráfico. A maior parte deles é relativamente simples… desde que você saiba algebra linear. Muitos problemas de threads são modelados de maneira bastante elegante… desde que você gaste uns 2 anos para entender exatamente o que são os problemas, e quando aplicar a forma elegante.

PS: Não estou desmerecendo de forma alguma o papel do analista de negócios. Acho uma profissão muito importante, como qualquer outra. Ou mesmo, o programador que tenha mais habilidade em regras de negócio. O que estou querendo dizer é só que você não pode usar isso como desculpa para ser um mau programador. Especialmente hoje, com métodos ágeis, onde raramente alguém se esquivará de colocar a mão na massa.

A

Tenho uma visão um pouco diferente, apesar da denominação comum de um cargo, por exemplo, “programador”, temos na verdade diversas especializações embutidas que não são formalmente descritas.
Não vejo um médico especialista cobrar de um clínico geral algum conhecimento que fuja da sua área de atuação, inclusive porque é facultado a atuação em determinadas áreas apenas aos formalmente graduados na especialização.
Por isso, creio, devemos ter um certo cuidado em ficar rotulando de acomodados ou preguiçosos quem não conhece alguma técnica ou algoritmo sem verificar se tal conhecimento não seja uma especialização.
Como foi dito, uma especialização pode demandar anos de estudos, então não dá para improvisar: se quer ser especialista, precisa de um plano de carreira para alcançar tal objetivo.
Não dá para contratar um “programador geral” e exigir conhecimentos de um “programador especialista”, nem desejar contratar um “programador especialista” pelo salário de um “programador geral”.
Não vejo demérito nenhum em ser um “programador geral”, mas, é claro que o mercado valoriza uma (ou mais) especialização(ões) e se um cargo exija alguma especialização, não adianta ficar de mimimi contra as exigências mil dos recrutadores!
Não quero dizer, com tudo isso, que não existam os chamados “preguiçosos ou acomodados”, para esses recomendo que sempre existe a possibilidade de dar uma reviravolta na carreira, mas precisamos ter cuidado em separar o joio do trigo, até porque, existem mais que duas possibilidades, não é?

V

A H Gusukuma:
Tenho uma visão um pouco diferente, apesar da denominação comum de um cargo, por exemplo, “programador”, temos na verdade diversas especializações embutidas que não são formalmente descritas.
Não vejo um médico especialista cobrar de um clínico geral algum conhecimento que fuja da sua área de atuação, inclusive porque é facultado a atuação em determinadas áreas apenas aos formalmente graduados na especialização.
Por isso, creio, devemos ter um certo cuidado em ficar rotulando de acomodados ou preguiçosos quem não conhece alguma técnica ou algoritmo sem verificar se tal conhecimento não seja uma especialização.
Como foi dito, uma especialização pode demandar anos de estudos, então não dá para improvisar: se quer ser especialista, precisa de um plano de carreira para alcançar tal objetivo.
Não dá para contratar um “programador geral” e exigir conhecimentos de um “programador especialista”, nem desejar contratar um “programador especialista” pelo salário de um “programador geral”.
Não vejo demérito nenhum em ser um “programador geral”, mas, é claro que o mercado valoriza uma (ou mais) especialização(ões) e se um cargo exija alguma especialização, não adianta ficar de mimimi contra as exigências mil dos recrutadores!
Não quero dizer, com tudo isso, que não existam os chamados “preguiçosos ou acomodados”, para esses recomendo que sempre existe a possibilidade de dar uma reviravolta na carreira, mas precisamos ter cuidado em separar o joio do trigo, até porque, existem mais que duas possibilidades, não é?

Sim, eu concordo com sua visão.

O que estou comentando é que no mínimo da programação geral o cara não vai escapar. É conhecimento básico, disso não tem como o cara fugir.
E já vi analista de sistemas tentando escapar, usando como desculpa o fato dele ter uma área mais humana. O resultado disso são péssimos analistas.

O pior é que, numa empresa mais waterfall, esses analistas ainda ganham a falsa sensação de serem chefes de programadores e aí, cria-se um clima péssimo entre as duas equipes.

A

ViniGodoy:

Sim, eu concordo com sua visão.

O que estou comentando é que no mínimo da programação geral o cara não vai escapar. É conhecimento básico, disso não tem como o cara fugir.
E já vi analista de sistemas tentando escapar, usando como desculpa o fato dele ter uma área mais humana. O resultado disso são péssimos analistas.

O pior é que, numa empresa mais waterfall, esses analistas ainda ganham a falsa sensação de serem chefes de programadores e aí, cria-se um clima péssimo entre as duas equipes.


Concordo plenamente, por isso, coloquei o meu post isoladamente e não como uma resposta ao seu post anterior. É evidente que temos problemas na formação de líderes que ocupam posições hierárquicas de comando em muitas empresas, mas isso é mais um reflexo do nosso sistema educacional e empresarial em vigor. Mas, isso é outra história.

J

keller:
Júlio Murta:

Em algum momento você se sentiu abaixo da média diante os programadores neozelandeses?

Quando eu cheguei aqui ( em 2008 ) eu trabalhei junto e aprendi muito com um dos autores desse livro aqui:
http://www.amazon.com/gp/product/[telefone removido] (Java Power Tools)

Desde entao nunca me senti abaixo da media diante aos programadores neozelandeses, tive muita sorte :smiley:
Mas como disse antes “O pessoal daqui (NZ) tem uma boa fundacao teorica, universidades sao de boa qualidade…”

Alem disso “utluiz” (Luiz) levantou um ponto bem importante que e’ o seguinte:
“em países desenvolvidos o acesso à tecnologia de ponto é muito mais fácil…”

Mas você considera o programador médio brasileiro (fazedor de crud e relatório) abaixo dos caras que vê por aí?

U

Obrigado! Também sou, e agora mais ainda… :smiley:

U

Sim, mas justamente por ser mais fácil se sobressair muitos desenvolvedores brasileiros ficam aquém do seu potencial, caso fossem expostos a um ambiente mais competitivo. Há vantagens e desvantagens em tudo.

Se você for bom não vai ter dificuldades. Nós brasileiros não somos inferiores em nada e o dólar alto só ajuda nesse caso. O problema é que às vezes você precisa provar ser MUITO bom para trabalhar fora. Pense em quem contrata, se tiverem alguém do mesmo nível do mesmo país, porque eles iriam querer você? Ou você é em geral melhor que os desenvolvedores de lá ou mais barato ou os dois.

Sim, o problema é que eles tem mais recursos do que a maioria de nós. Sem falar que, no geral, os estrangeiros têm mais disciplina que os brasileiros nos estudos. Mas claro que quem se esforça chega lá, não há dúvida, fica até melhor que a grande maioria dos gringos.

Dói, mas é a mais pura verdade. :S

P

ViniGodoy:
pfk66:
Da mesma forma, você pode ter experiência de 50 anos sobre algoritmos ensinados na faculdade, em diferentes linguagens, mas se alguém lhe pedir pra implementar uma regra de negócio (complexidade inerente) e não saber, de que lhe adianta tudo isso?

ps: Brooks diz que as regras de negócio é o essencial no software e acho que ele diria que uma regra de negócio complexa é formado por vários algoritmos simples, e não por um algoritmo que é do tamanho do problema que ele resolve. O software todo é complexo, mas o desafio é reunir algoritmos simples de maneira que fique coerente com o resultado esperado.

Agora, é muito mais fácil acreditar que um bom conhecedor de algoritmos, com algum esforço, passe a entender e aplicar seus algoritmos em regras de negócio do que ao contrário.
Por mim, isso soa a desculpa de analista de sistemas preguiçoso. Daqueles da época onde o bom analista não precisava programar, e nem queria.

Não adianta se escorar na desculpa que sua formação é “mais humana” e de que, portanto, seu diferencial está em outro lugar. Até porque, um analista de negócios tem que ter na ponta da lingua a capacidade de dizer se algo será ou não viável, ou qual a escala desse empreendimento.

Alguns “algoritmos simples” podem levar anos de estudo para serem modelados desse jeito. Por isso que eu digo, que um software complexo é bem diferente de um código complicado. Pegue por exemplo, qualquer algoritmo gráfico. A maior parte deles é relativamente simples… desde que você saiba algebra linear. Muitos problemas de threads são modelados de maneira bastante elegante… desde que você gaste uns 2 anos para entender exatamente o que são os problemas, e quando aplicar a forma elegante.

PS: Não estou desmerecendo de forma alguma o papel do analista de negócios. Acho uma profissão muito importante, como qualquer outra. Ou mesmo, o programador que tenha mais habilidade em regras de negócio. O que estou querendo dizer é só que você não pode usar isso como desculpa para ser um mau programador. Especialmente hoje, com métodos ágeis, onde raramente alguém se esquivará de colocar a mão na massa.

  1. quais algoritmos que a pessoa precisa estudar pra não ser considerado um mau programador?

  2. por que você acha que a universidade tem um monopólio sobre esses algoritmos?

V

O mínimo é o sujeito ter uma boa noção sobre estruturas de dados, bancos de dados e sobre integrações. Não pode ter dúvida no básico também, e é interessante já ter atuado como desenvolvedor para ter uma boa noção da dificuldade e tempo que as coisas levam.

Não acho.

P

Júlio Murta:
keller:
Júlio Murta:

Em algum momento você se sentiu abaixo da média diante os programadores neozelandeses?

Quando eu cheguei aqui ( em 2008 ) eu trabalhei junto e aprendi muito com um dos autores desse livro aqui:
http://www.amazon.com/gp/product/[telefone removido] (Java Power Tools)

Desde entao nunca me senti abaixo da media diante aos programadores neozelandeses, tive muita sorte :smiley:
Mas como disse antes “O pessoal daqui (NZ) tem uma boa fundacao teorica, universidades sao de boa qualidade…”

Alem disso “utluiz” (Luiz) levantou um ponto bem importante que e’ o seguinte:
“em países desenvolvidos o acesso à tecnologia de ponto é muito mais fácil…”

Mas você considera o programador médio brasileiro (fazedor de crud e relatório) abaixo dos caras que vê por aí?

Se não me engano lá eles falam inglês, então eu diria que o programador brasileiro já começa no prejuízo sim, porque tem que aprender inglês.

V

Programador que não fala inglês já vai ter problemas no Brasil, quem dirá fora.

J

pfk66:
Júlio Murta:
keller:
Júlio Murta:

Em algum momento você se sentiu abaixo da média diante os programadores neozelandeses?

Quando eu cheguei aqui ( em 2008 ) eu trabalhei junto e aprendi muito com um dos autores desse livro aqui:
http://www.amazon.com/gp/product/[telefone removido] (Java Power Tools)

Desde entao nunca me senti abaixo da media diante aos programadores neozelandeses, tive muita sorte :smiley:
Mas como disse antes “O pessoal daqui (NZ) tem uma boa fundacao teorica, universidades sao de boa qualidade…”

Alem disso “utluiz” (Luiz) levantou um ponto bem importante que e’ o seguinte:
“em países desenvolvidos o acesso à tecnologia de ponto é muito mais fácil…”

Mas você considera o programador médio brasileiro (fazedor de crud e relatório) abaixo dos caras que vê por aí?

Se não me engano lá eles falam inglês, então eu diria que o programador brasileiro já começa no prejuízo sim, porque tem que aprender inglês.

Me refiro ao nível de conhecimento técnico de nossos profissionais. Russos e chineses também não falam inglês nativamente, mas isso não os impede de aprender e terem uma comunidade de desenvolvedores forte.

Muitos indianos falam inglês nativamente, e nem por isso são referência em qualidade.

P

Acredito que o programador médio russo e chinês está no mesmo nível do brasileiro.

Por que você ouve falar dos indianos que prestam serviço de outsorcing, que não é referência de qualidade.

Poucos ouvem falar dos indianos que estão no alto escalão de empresas como google.

J

pfk66:
Júlio Murta:

Me refiro ao nível de conhecimento técnico de nossos profissionais. Russos e chineses também não falam inglês nativamente, mas isso não os impede de aprender e terem uma comunidade de desenvolvedores forte.

Acredito que o programador médio russo e chinês está no mesmo nível do brasileiro.

Por que você ouve falar dos indianos que prestam serviço de outsorcing, que não é referência de qualidade.

Poucos ouvem falar dos indianos que estão no alto escalão de empresas como google.

O problema é que é sempre delicado entrar nesse tipo de conversa. Eu conheci alguns indianos muito bons, mas a maioria ou está no nível dos brasileiros ou está bem abaixo de nós. Por outro lado, os russos que conheci estavam num nível bem além dos programadores que conheci. Mas tudo isso é baseado em minha vivência. O seu caso pode ser exatamente o contrário, conhecer russos ruins e indianos bons. Então isso vira mera opinião.

Mas, considerando o histórico de ambos países podemos notar que a India tem problemas educacionais bem mais sérios que os nossos. Por outro lado, a Rússia sempre está na nossa frente nos indicadores educacionais, talvez sendo essa uma boa herança do período soviético. Então, é natural que o primeiro tenha mão de obra menos qualificada que o segundo.

P

Minha opinião é que a nacionalidade da pessoa não diz o quanto ela está disposta a investir tempo e recursos pra adquirir conhecimento.

Júlio Murta:

Mas, considerando o histórico de ambos países podemos notar que a India tem problemas educacionais bem mais sérios que os nossos. Por outro lado, a Rússia sempre está na nossa frente nos indicadores educacionais, talvez sendo essa uma boa herança do período soviético. Então, é natural que o primeiro tenha mão de obra menos qualificada que o segundo.

Talvez os responsáveis por criar indicadores educacionais deveriam ensinar empresas como google a contratar melhor?

J

Eu já penso o contrário. Falta de uma boa educação, pobreza e incentivos faz com que a qualidade dos profissionais de uma determinada região seja mais baixa, afinal, a maior parte das pessoas está mais preocupadas em meramente sobreviver do que estudar. Nem só de boas intenções um bom profissional é feito, há todo o um ambiente que o condiciona a ser aquilo. O lado bom da India é que existe incentivo lá, seja pela barreira do idioma, seja por serem um recurso mais barato.

Não. Eles devem continuar fazendo o que sabem. E em nenhum momento eu quis dizer que não é possível encontrar um bom profissional na India, na Nigéria ou na República Centro-Africana. Apenas disse é menos provável encontrar alguém que atenda as expectativas. Mas claro, sempre existem exceções. E esses indianos superpoderosos são isso, exceção dentro do próprio país. E que provavelmente tiveram mais oportunidades de estudos que muitos de seus compatriotas ou até mesmo que nós aqui em terras tupiniquins.

P

Júlio Murta:

Eu já penso o contrário. Falta de uma boa educação, pobreza e incentivos faz com que a qualidade dos profissionais de uma determinada região seja mais baixa, afinal, a maior parte das pessoas está mais preocupadas em meramente sobreviver do que estudar. Nem só de boas intenções um bom profissional é feito, há todo o um ambiente que o condiciona a ser aquilo. O lado bom da India é que existe incentivo lá, seja pela barreira do idioma, seja por serem um recurso mais barato.

Então como você explica a China ter 1 bilhão de pobres e uma comunidade de desenvolvedores forte?

Júlio Murta:

Não. Eles devem continuar fazendo o que sabem. E em nenhum momento eu quis dizer que não é possível encontrar um bom profissional na India, na Nigéria ou na República Centro-Africana. Apenas disse é menos provável encontrar alguém que atenda as expectativas. Mas claro, sempre existem exceções. E esses indianos superpoderosos são isso, exceção dentro do próprio país. E que provavelmente tiveram mais oportunidades de estudos que muitos de seus compatriotas ou até mesmo que nós aqui em terras tupiniquins.

Na verdade você disse que a Índia não tem referencia de qualidade. Qual país é referência de qualidade em ti pra vc?

R

É simples. Esse 1 bilhão de pobres estão, em sua maior parte, nas áreas rurais da China, justamente onde não se tem acesso a serviços básicos. Em compensação, nas áreas urbanas e metrópoles, a China avançou muito. Enfim, em se tratando de China, analisar a parcela da população que tem acesso à educação é praticamente analisar um país à parte.

No mais concordo com os colegas, dizer que a qualidade de um profissional depende tão somente do indivíduo é pensamento de auto-ajuda barata. No caso de programação, o mínimo que o sujeito precisa é de energia elétrica, um computador e livros/internet a preços acessíveis.

A

No caso dos chineses e indianos, além da enorme população, uma quase 7 vezes e outra 6 vezes a nossa população, devemos considerar que muitos dos que se destacam tem educação em universidades de ponta ocidentais. Juntando disciplina, foco, valorização da educação e boa infraestrutura educacional costuma dar resultado.

J

Concordo com rmendes88 e A H Gusukuma . Apenas resumindo: China e India supervalorizam uma pequena parcela de sua população em detrimento de uma imensa maioria que vive praticamente na pobreza extrema.

E realmente, em muitos pontos não são. Digamos que para 1 indiano excelente existem 1000 muito abaixo das expectativas.

Baseado em minha experiência, e lembrando que isso tudo que estou escrevendo agora é apenas minha opinião, creio que os melhores profissionais estão, em sua maioria, em países de primeiro mundo capazes de prover uma educação de qualidade para seu povo e que, coincidência ou não, investem pesado em pesquisa acadêmica (EUA, Canadá, muitos países da Europa e da Oceania).

A India pode ser referência como mão de obra barata. Afinal, muitos no primeiro mundo fazem isso: projetam o software e terceirizam a codificação, que é a parte mais braçal do do projeto, em países emergentes.

P

Quando você fala que “China e Índia supervaloriza um em detrimento do outro”, o que você quer dizer exatamente? o governo desses países? a população?

P

rmendes08:
pfk66:

Então como você explica a China ter 1 bilhão de pobres e uma comunidade de desenvolvedores forte?

É simples. Esse 1 bilhão de pobres estão, em sua maior parte, nas áreas rurais da China, justamente onde não se tem acesso a serviços básicos. Em compensação, nas áreas urbanas e metrópoles, a China avançou muito. Enfim, em se tratando de China, analisar a parcela da população que tem acesso à educação é praticamente analisar um país à parte.

No mais concordo com os colegas, dizer que a qualidade de um profissional depende tão somente do indivíduo é pensamento de auto-ajuda barata. No caso de programação, o mínimo que o sujeito precisa é de energia elétrica, um computador e livros/internet a preços acessíveis.

Você acha que o programador médio chinês e indiano não têm acesso a esses serviços?

P

A H Gusukuma:
No caso dos chineses e indianos, além da enorme população, uma quase 7 vezes e outra 6 vezes a nossa população, devemos considerar que muitos dos que se destacam tem educação em universidades de ponta ocidentais. Juntando disciplina, foco, valorização da educação e boa infraestrutura educacional costuma dar resultado.

Verdade. disciplina e foco são fundamentais, e são características pessoais, e não de uma nação.

J

pfk66:
Júlio Murta:

China e India supervalorizam uma pequena parcela de sua população em detrimento de uma imensa maioria que vive praticamente na pobreza extrema.

Quando você fala que “China e Índia supervaloriza um em detrimento do outro”, o que você quer dizer exatamente? o governo desses países? a população?

Talvez no caso da China, parte disso seja responsabilidade do governo. No caso dos indianos, a extrema desigualdade é uma característica histórica marcante. Mas isso se dá num nível mais cultural que através de uma imposição formal. O próprio sistema de castas reforça e justifica a desigualdade.

K

Depende dos interesses do fazedor de crud, alguns sao ambiciosos e outros nao.
Os que sao mais ambiciosos e estudam acabam se destacando; seja no Brasil / India / China / etc…

Enfim, vai depender do “fazedor” de CRUD nao da sua nacionalidade :wink:

Criado 6 de maio de 2015
Ultima resposta 21 de mai. de 2015
Respostas 132
Participantes 13