A vida inteira aprender "just-in-time" ou estudar ANTES?

18 respostas
T

É possivel passar a vida toda ESTUDANDO em casa e fazendo cursos antes de ir para um projeto que utilize aquelas tecnologias ou a única opção para os Java Developers é aprender 50% diariamente na hora de fazer ?

Exemplo: O cara estuda muito JSF e Spring, Servlets, XML etc. Dai vai trabalhar justamente com isto… logo depois do primeiro projeto a empresa decide que o profissional vá dar suporte para um sistema em Struts 1, framework o qual o cara nunca estudou/trabalhou antes, e ai? ou pior ainda, alocam ele para um projeto em .NET e logo de cara passam uma tarefa complexa para ser feita em .NET mas o cidadão nunca fez o Hello World em ASP.net. :roll:

Mesmo que o profissional seja flexivel e auto-didata vai ser um grande impacto ter prazo para entregar algo que você não sabe fazer. Dá para levar uma carreira sólida podendo estudar pelo menos 85% antes de usar no trabalho, sob pressão etc? Claro que temos que aprender todos os dias, mas é diferente aprender mais uma classe da API Java ou usar uma nova library do GWT para ter que ir para uma linguagem diferente ou um debugar algo complexo em um framework desconhecido.

18 Respostas

maniacs

A única linguagem que estudei ante de “colocar a mão na massa” foi PHP, que foi quando comecei a trabalhar uns 6 anos atrás,
até agora aprendi tudo “just-in-time” como você diz, Java (API’s, Frameworks, Patterns), SuperWaba, Ruby, JavaScript
entre outras coisas relacionadas a WEB, claro que nem tudo na empresa, as vezes você precisa de um tempo depois do expediente
para ler algum material.
Mais é asim que funciona, agora mesmo vou ter que aprender .NET (Micro) para fazer alguns testes para proximo sistema de PDA
Temos que ser flexiveis, e um artigo que vi a um tempo atrás (não lembro de quem era) falava que o programador precisava no mínimo
aprender uma linguagem por ano pra continuar evoluindo.

mcbarsotti

eu prefiro o estilo “nerds + adrenalina”, po cara, são raros os momentos que temos algum tipo de adrenalina no serviço, e esses momentos são esses, onde vc tem um prazo super curto, para desenvolver uma coisa que nunca viu na vida e usar coisas que nem imagina oque é!!!

huaeuheauheauhauhuh

eu gosto, mas se eu tivesse tempo, sempre estudaria antes!

abraços

T

será por causa da necessidade desta super flexibilidade que 90% dos programadores tem menos de 40 anos? Afinal ser obrigado a trabalhar 10h/dia ou mais e ainda estudar quase de madrugada (sem receber hora extra) para resolver o problema no dia seguinte gera problemas de saúde.

maniacs

Bem provavel, em problemas de saúde inclui insanidade mental ? heheheh :lol:
Acredito que a maioria, depois de um tempo trabalhando em programação e dependendo da pessoa
mesmo depois de um tempo não tendo o “dom” não consegue ganhar muito dinheiro com isso (sobreviver)
e acaba indo para outro setor, provavelmente se torna um vendedor, ou professor de escola de informática.

CarlosEduardoDantas

Toni_Fatec:
É possivel passar a vida toda ESTUDANDO em casa e fazendo cursos antes de ir para um projeto que utilize aquelas tecnologias ou a única opção para os Java Developers é aprender 50% diariamente na hora de fazer ?

Exemplo: O cara estuda muito JSF e Spring, Servlets, XML etc. Dai vai trabalhar justamente com isto… logo depois do primeiro projeto a empresa decide que o profissional vá dar suporte para um sistema em Struts 1, framework o qual o cara nunca estudou/trabalhou antes, e ai? ou pior ainda, alocam ele para um projeto em .NET e logo de cara passam uma tarefa complexa para ser feita em .NET mas o cidadão nunca fez o Hello World em ASP.net. :roll:

Mesmo que o profissional seja flexivel e auto-didata vai ser um grande impacto ter prazo para entregar algo que você não sabe fazer. Dá para levar uma carreira sólida podendo estudar pelo menos 85% antes de usar no trabalho, sob pressão etc? Claro que temos que aprender todos os dias, mas é diferente aprender mais uma classe da API Java ou usar uma nova library do GWT para ter que ir para uma linguagem diferente ou um debugar algo complexo em um framework desconhecido.

acho que depende… se for para dar suporte em um sistema, como neste caso em que voce citou Struts 1, com certeza o jeito é aprender em just-in-time mesmo, já que intuitivamente em pouco tempo você entenderá por alto como funciona. Falo por alto, porque neste caso você é pago para corrigir bugs, para adicionar campos na tela, e não para construir componentes de negocio ou para definir padrões de desenvolvimento com a tecnologia. Já peguei sistemas em asp, vb 5, delphi, people para dar suporte e não tive muitos problemas pra entregar as correções no prazo, mesmo não conhecendo direito a maioria destas tecnologias.

Agora se fosse pra fazer algo do 0, com certeza não dá pra ir muito longe em tempo, nesse caso aprender just-in-time nem vira. A não ser que o cara tenha uma boa experiencia com projetos criticos e saiba exatamente do que precisa para se ter êxito.

CarlosEduardoDantas

sem duvida… mexer em legado tosco de tecnologia obsoleta, não entregar no prazo, ser chamado de incompetente, etc… etc… é uma grande adrenalina. :roll:

mcbarsotti

sem duvida… mexer em legado tosco de tecnologia obsoleta, não entregar no prazo, ser chamado de incompetente, etc… etc… é uma grande adrenalina. :roll:

Ai depende de quem faz, se vc passou por isso e foi tachado de incompetente, foi pq não fez direito.
Já tive que fazer isso varias vezes, e nunca fui chamado de incompetentepq sempre consegui resolver da melhor maneira possivel.
Mais uma vez depende da pessoa, experiencia, paciencia, saber lidar com pressão e etc.

abraços!

CarlosEduardoDantas

sem duvida… mexer em legado tosco de tecnologia obsoleta, não entregar no prazo, ser chamado de incompetente, etc… etc… é uma grande adrenalina. :roll:

Ai depende de quem faz, se vc passou por isso e foi tachado de incompetente, foi pq não fez direito.
Já tive que fazer isso varias vezes, e nunca fui chamado de incompetentepq sempre consegui resolver da melhor maneira possivel.
Mais uma vez depende da pessoa, experiencia, paciencia, saber lidar com pressão e etc.

abraços!

olá, graças a Deus ainda não aconteceu comigo pois se já não gosto de pegar serviço pra ontem (ou melhor, pro ano passado) em tecnologia conhecida, imagina desconhecida … mas vemos muito por ai… nem precisa de ter muita vivência para saber.

fcoury

Eu tenho extrema dificuldade em tentar aprender algo para o qual eu não veja aplicação real. Porém, quando eu tenho uma aplicação e preciso descobrir como fazer, eu aprendo o que for no prazo que for necessário. Eu sou movido por isso: resolver problemas, encontrar soluções, desafios.

Eu admiro, mas tenho consciência que não é prá mim, essas pessoas que constroem aplicações de teste para aprender uma determinada ferramenta, tecnologia ou linguagem.

É isso…

T

Eu sou este tipo de pessoa. Foi assim que eu aprendi XHTML e CSS.
Depois de estudar até o rodapé do “Use a Cabçea HTML com XHTML e CSS”, pesquisar um pouco no Google, W3C e WebSchools fui e fiz um website que usava todos os recursos do livro, sendo que antes de por a mão na massa fiz a analise de como ficaria.
Resultado do projeto? [list]
Hoje eu sou o que mais conhece destes dois assuntos (XHTML e CSS) na empresa aonde trabalho
Nos momentos que preciso usar tenho mais facilidade do que os outros que só “aprendem na hora que veem uma aplicação real na frente”.
Não me estresso para fazer estas tarefas, pois já sei o caminho, enquanto quem tem que aprender para entregar algo no prazo fica se sentindo pior ou tem que fazer hora extra.[/list]

Concordo que para as empresas é melhor um profissional que aprenda na hora. Porque? Elas te contratam pagando pelo seu nivel de conhecimento/experiencia, e se depois aparecer algo novo voce irá fazer pelo mesmo salário coisas novas, coisas que um profissional que já as domine irá cobrar um salário maior.
Já para nós profissionais de TI, quanto mais conhecimento PRÉVIO significa ser contratado com maiores salários.

fcoury

Não necessariamente. Existe uma diferença clara no mercado sobre o valor de usar uma tecnologia em uma aplicação real ou usar em um projeto que você mesmo criou ou apenas estudar tal tecnologia. Todas as vezes que eu estudei alguma coisa antes e usei depois, percebi que quando estudei, não toquei nem a superfície. Usei o que julgava ser importante e não o que realmente importava no mercado.

Isso não quer dizer que eu não tenha conhecimento em diversas áreas. Pelo contrário, eu conheço várias linguagens e várias tecnologias através de Blogs, de artigos, livros, etc. Algumas sim eu tenho experiência real. E acho extremamente válido e Simportante diversificar seu caminho antes de escolher um direcionamento. Seria algo como a rotação que os profissionais de medicina fazem antes de escolher uma especialização. Com isso, eu sempre dirijo meu foco para somar esta tecnologia e seus pontos fortes no leque de opções que posso usar futuramente. Isso sim, no meu entender, vale muito a pena.

Além de tudo isso, existe aquele conceito de quem conhece tudo não conhece nada bem. Hoje eu tento focar bastante em tecnologias relacionadas a Java. Se você começar a tentar abrir muito o leque, acaba não tendo muita experiência em nada. Escolher é abrir mão de muita coisa.

Escrevi sobre isso na introdução sobre Closures de um artigo de blog meu beeeem velho:

Já tem um bom tempo que eu desisti de acompanhar todas as novidades e tendências no mundo das linguagens de programação. Eu ainda lembro quando comecei a programar, usando Clipper! Para obter novidades, ou você comprava um livro ou uma revista.

Hoje em dia quando visito websites como Reddit ou Digg, sempre me deparo com umas 3 APIs AJAX, todas revolucionárias, alguns artigos dizendo que a linguagem XXX é uma droga porque não tem a feature ABC, enquanto outros arigos dizem que ela é a melhor coisa que já aconteceu para os programadores. Nesse mundo dinâmico de hoje, você tem que filtrar aquelas novidades que você quer digerir. Se não o fizer a gente acaba conhecendo muito pouco de muita coisa.

Mas acredito também que não exista nenhuma fórmula mágica: cada um aprende, por suas próprias características e perfil, o que é melhor.

Abraços!

PS: Editado porque tinha um milão de erros de portugês e de formatação :slight_smile:

T

Não necessariamente. Existe uma diferença clara no mercado sobre o valor de usar uma tecnologia em uma aplicação real ou usar em um projeto que você mesmo criou ou apenas estudar tal tecnologia. Todas as vezes que eu estudei alguma coisa antes e usei depois, percebi que quando estudei, não toquei nem a superfície. Usei o que julgava ser importante e não o que realmente importava no mercado.

Concordo que quem trabalhou em algo real é mais valorizado, mas pense no caso dos Jr. (como eu), se eu quero trabalhar com JSF e Spring eu preciso no minimo ter estudado e treinado um pouco com eles, só assim passaria em uma entrevista e testes para ai sim poder começar a por a mão na massa em projetos reais.
Pode acontecer de alguem que conheça bem JEE começar a trabalhar numa empresa sem ter a minima noção de Frameworks que serão usados, mas cá para nós, a dificuldade para solucionar os problemas no começo será maior do que para aquele que já estudou toda documentação ou um Spring In Action da vida antes, não é? Mesmo que a pessoa esqueça boa parte do livro, na hora que pintar o problema ele saberá o caminho a seguir dentro do Framework, coisa que quem não estudou antes terá que “aprender just-in-time”, o que pelo menos em mim gera alto stress e que tenho certeza se mantido a longo prazo acaba com a saúde de qualquer um.

Por saber o caminho eu quero dizer lembrar já ter visto aquilo antes no livro e dai ir lá no livro ou googlar um termo aproximado que ele já estudou para achar descobrir como solucionar o problema dentro do Framework. :idea:

J

Toni:

Não antes, durante.

Se vc trabalha em algo concreto enquanto está aprendendo, você aproveita
melhor os cursos e o estudo autodidata. Só a prática nos dá um retorno sobre aquilo
que é importante e aquilo que é acessório.

Dei aula em faculdades durante vários anos: o que me arrepiava era ver o pessoal
do último ano saindo para o mercado sem nenhuma experiência prática. Aqueles que
já trabalhavam na área eram os que conseguiam assimilar melhor o conteúdo.

Os buracos vc vai percebendo na medida que sente falta de
um conceito quando precisa, tipo: “por que não aprendi essa $&#@* de
threads antes ?”. Depois de apagado o incêndio, vc procura estudar para
conhecer bem algo que se mostrou importante e solidificar o conceito.
Vc investe seu tempo e sua energia porque sentiu na pele que
isso era importante.

Não adianta querer aprender quase tudo antes porque não é eficiente:
vc não sabe se vai precisar, e assimila menos os conceitos.
Parafraseando os agilistas, evite o BLUF (Big Learning Up Front)

Jorge

Toni_Fatec:
É possivel passar a vida toda ESTUDANDO em casa e fazendo cursos antes de ir para um projeto que utilize aquelas tecnologias ou a única opção para os Java Developers é aprender 50% diariamente na hora de fazer ?

Exemplo: O cara estuda muito JSF e Spring, Servlets, XML etc. Dai vai trabalhar justamente com isto… logo depois do primeiro projeto a empresa decide que o profissional vá dar suporte para um sistema em Struts 1, framework o qual o cara nunca estudou/trabalhou antes, e ai? ou pior ainda, alocam ele para um projeto em .NET e logo de cara passam uma tarefa complexa para ser feita em .NET mas o cidadão nunca fez o Hello World em ASP.net. :roll:

Mesmo que o profissional seja flexivel e auto-didata vai ser um grande impacto ter prazo para entregar algo que você não sabe fazer. Dá para levar uma carreira sólida podendo estudar pelo menos 85% antes de usar no trabalho, sob pressão etc? Claro que temos que aprender todos os dias, mas é diferente aprender mais uma classe da API Java ou usar uma nova library do GWT para ter que ir para uma linguagem diferente ou um debugar algo complexo em um framework desconhecido.

B

Não adianta estudar previamente algo que você não vai usar, ou pior, não sabe se vai usar. Só estudar também não adianta, é na prática que se aprende e fixa o conhecimento de verdade.

Sim, dá pra ganhar experiência fazendo essas side-quests, experimentar de um certo grau de pensamento alternativo que pode te ajudar mais na frente, mas o teu objetivo imediato é o que realmente importa.

Também não dá pra ficar parado até que o cliente entre com o problema, e nesta hora você fique a ver navios com uma interrogação na cabeça.

A solução é: Nem oito, nem oitenta.

Estude, ou melhor, aprenda que tal ferramenta existe, o que ela faz, e mais importante, onde procurar para se aprofundar sobre ela. Tenha esse conhecimento parcial, porém suficiente, sobre tudo. Tenha em mente o ‘O que é’, e o ‘Por que é’, o ‘Como é’ você o faz quando precisar daquilo. Tenha uma idéia definida para quando te perguntarem.

Eu acho que mais importante que dar o peixe ou ensinar/aprender a pescar, é saber onde as pessoas que ensinam a pescar estão, e melhor, saber onde aqueles que ensinam a caçar estão, e aqueles que ensinam a plantar, fazer fogo, programar x, y ou z estão. Monte ou saiba onde tenha um catálogo para essas coisas da vida.
Aliás esse é exatamente o motivo pelo qual o Google é tão poderoso hoje. Eles tem o indexador do catálogo dos catálogos. E quem sabe usá-lo é Rei.

T

Imagina voce ir para ter seu rim operado e na hora o médico fala “só operei apendice até hoje, porque só tivemos este tipo de problema, deixa eu tentar puxar isto aqui para ver…”. Ele estaria aprendendo só na hora da necessidade como alguns estão pregando ser o correto.
Não sei de você, mas eu gostaria que a minha PROFISSÃO tivesse a mesma importancia e status que a de um médico cirurgião, porque parece que não tem, parece que não temos que DOMINAR o que trabalhamos, mas sim apenas “se virar” para resolver o problema para A EMPRESA lucar “agílmente” em cima de um trabalho o qual voce teve que aprender na hora como se faz. O ruim disso como já disse é o stress de “puts, não sei como faz e o diretor quer saber que horas ficará pronto, e agora?”.

Andre_Fonseca

eu acho que o ideal seria estudar um pouco antes, até fazer pelo menos um hello world, depois na prática vc vai pegar os problemas que não teve antes, mas nessa hora você já tem pelo menos o conceito da coisa…

não concordo com o que o mcbarsotti falou, as vezes você pega uma empresa toda desorganizada, ai tem que dar manutenção a um legado tosco que foi deixado na empresa e que os programadores que fizeram tiveram os mesmo problemas que você… não tem documentação, você nunca usou aquele framework ou tecnologia, os prazos são super apertados, você não tem ninguem com quem possa contar, que pelo menos já tenha visto a coisa… nesse caso vc acaba não dando conta e acaba sendo chamado de imcompetente mesmo…

B

Toni_Fatec:
Imagina voce ir para ter seu rim operado e na hora o médico fala “só operei apendice até hoje, porque só tivemos este tipo de problema, deixa eu tentar puxar isto aqui para ver…”. Ele estaria aprendendo só na hora da necessidade como alguns estão pregando ser o correto.
Não sei de você, mas eu gostaria que a minha PROFISSÃO tivesse a mesma importancia e status que a de um médico cirurgião, porque parece que não tem, parece que não temos que DOMINAR o que trabalhamos, mas sim apenas “se virar” para resolver o problema para A EMPRESA lucar “agílmente” em cima de um trabalho o qual voce teve que aprender na hora como se faz. O ruim disso como já disse é o stress de “puts, não sei como faz e o diretor quer saber que horas ficará pronto, e agora?”.

Desenvolvedores de software não são médicos. Nem construtores de prédios, nem mecânicos de carros, nem qualquer outra profissão. Somos apenas desenvolvedores (e isso é muito).

O que se aplica p/ outras profissões geralmente não de aplica para a nossa. O livro The Mythical Man-Month de Fred Brooks é um ótimo livro que trata sobre algumas dessas questões.

Um médico estuda por mais de 5 anos por que o corpo humano não muda, e os problemas são geralmente os mesmos, com os mesmos tratamentos.

Em software, em dois anos, muita coisa se torna obsoleta, ferramentas, frameworks, linguagens surgem e mudam a toda hora. Em compensação os problemas não mudam tanto. São genéricos o suficiente para identificá-los, mas não o bastante p/ ter um tratamento que funcione p/ todos.

T

Desenvolvedores de software não são médicos. Nem construtores de prédios, nem mecânicos de carros, nem qualquer outra profissão. Somos apenas desenvolvedores (e isso é muito).

O que se aplica p/ outras profissões geralmente não de aplica para a nossa. O livro The Mythical Man-Month de Fred Brooks é um ótimo livro que trata sobre algumas dessas questões.

Um médico estuda por mais de 5 anos por que o corpo humano não muda, e os problemas são geralmente os mesmos, com os mesmos tratamentos.

Em software, em dois anos, muita coisa se torna obsoleta, ferramentas, frameworks, linguagens surgem e mudam a toda hora. Em compensação os problemas não mudam tanto. São genéricos o suficiente para identificá-los, mas não o bastante p/ ter um tratamento que funcione p/ todos.[/quote]

Por isso é que temos que estudar rápidamente os novos frameworks e a linguagem com a qual vamos implementar o projeto antes de por a mão na massa. Se as ferramentas dos engenheiros e médicos mudam lentamente eles não precisam se atualizar tão rápido, mas todos precisam estudar antes de fazer.

Além disso nem sempre precisamos estudar o último framework da moda. Se a ferramenta com a qual voce tem experiencia resolve adequadamente o problema então porque usar o mais novinho com o qual haverá mais perda de tempo, seja esta perda por estudo ou por quebrar a cabeça no just-in-time (por falta de estudo antecipado). Só lembrando que em projetos tempo é dinheiro.

Quem faz Ciencia da Computação e se especializa em Engenharia de Software tem ai também de 5 a 6 anos como um médico… e depois ambos tem que continuar estuando. Nas outras área do conhecimento humano muita coisa está sendo descoberta e bons médicos também pesquisam e leem livros após terminar a faculdade. Imagine um problema genérico com pedra no rim: O médico sabe o procedimento padrão porque ele estudou, mas no caso especifico de cada paciente depois de usar as ferramentas adequadas ele vai dar um laudo especifico. Ah sim, os nosso problemas também precisam de laudos especificos antes de por a mão na massa, que se chama Analise do Sistema… :stuck_out_tongue:

Criado 12 de junho de 2008
Ultima resposta 16 de set. de 2008
Respostas 18
Participantes 8