Como podemos melhorar o treinamento e a educação geral para programadores? [fechadas]


13

Na semana passada, eu estava assistindo esta incrível entrevista de Kevin Rose, de Phillip Rosedale, do Second Life.

E eles tiveram uma discussão incrível sobre como encontrar, contratar e identificar bons programadores e quão difícil é encontrar bons.

O que me levou a pensar realmente sobre a maneira como aprendemos os programadores. Para a maioria de nós, inclusive eu, somos autodidatas. O que é ótimo em ser um programador, qualquer um pode aprender e desenvolver habilidades.

Mas isso também significa que não há padrões reais sobre o que é / é um bom programador e que tipo de ambiente incentiva o crescimento das habilidades de programação.

Isso não é tanto uma pergunta, mas apenas um desejo em mim, de ver como podemos mudar a cultura da programação e o gerente de programação, para que a educação e o auto-aperfeiçoamento sejam incentivados.

Existem muitos caminhos para a educação continuada, vídeos do youtube, livros, conferências, mas devido à natureza experimental do que fazemos, nem sempre é claro o que é importante aprender e dominar.

Vejamos os 12 passos do Joel.

O teste de Joel

Você usa o controle de origem?

Você pode fazer uma compilação em uma única etapa?

Você faz construções diárias?

Você tem um banco de dados de bugs?

Você corrige bugs antes de escrever um novo código?

Você tem um cronograma atualizado?

Você tem uma especificação?

Os programadores têm condições de trabalho silenciosas?

Você usa as melhores ferramentas que o dinheiro pode comprar?

Você tem testadores?

Os novos candidatos escrevem código durante a entrevista?

Você faz testes de usabilidade no corredor?

Acho que tudo isso tem um valor importante, mas por causa de algo que chamo de Lacuna Experimental, se um programador ou gerente nunca tiver experimentado nenhuma das conseqüências negativas por não ter feito itens na lista, nunca verá a necessidade de fazer nada. deles.

A lacuna experimental, é minha teoria básica, de que cada um de nós tem empregos diferentes e experiências diferentes. Portanto, para alguns de nós, que sempre trabalharam com dezenas de programadores, o controle de fonte é essencial. Mas para as pessoas que sempre foram o único programador, elas não podem imaginar a necessidade de controle de origem.

E é por causa dessa grande falha na maneira como aprendemos, que avaliamos as pessoas de acordo com as melhores práticas que elas fazem ou não, e a razão de ambas pode iniciar uma guerra de chamas.

Sempre avaliamos as pessoas em nosso campo de acordo com o que elas fazem e pensamos "Oh, se esse cara / garota não está praticando as melhores práticas xyz, ele / ela não pode ser um bom programador, então não vamos perder tempo ou energia conversando com elas . "

É exatamente por isso que temos tantas guerras de chamas programadas que, por causa da lacuna experimental, não podemos imaginar pessoas que não tomaram as decisões que tivemos que tomar.

Portanto, isso me levou a pensar que precisamos repensar totalmente como treinamos, educamos e gerenciamos os programadores.

Por exemplo, que porcentagem de vocês recebeu incentivos de seus gerentes para ir a conferências e até mesmo pagar por isso?

Para mim, e para muitas pessoas, isso é extremamente raro, muitos de nós amaríamos ir a conferências, para aprender mais, mas o dinheiro não existe para fazer isso.

Portanto, o objetivo desta pergunta é realmente despertar muito de como podemos treinar, aprender e gerenciar melhor?

Como podemos criar uma nova cultura de aprendizado que não ofenda as pessoas por não terem as mesmas experiências de trabalho.

Sim, todos nós temos trabalhos e trabalho a fazer, mas nossa capacidade de fazer bem nossos trabalhos depende de nosso desejo, interesse e apoio para melhorar nosso domínio de nossas habilidades.

No momento, vejo nossa cultura bastante desorganizada, apoiamos a elite, mas aquelas pessoas que querem melhorar, simplesmente não têm apoio suficiente para aprender e se aperfeiçoar.

Quero dizer, nós, como indústria, queremos ser percebidos apenas como engrenagens substituíveis?

Obrigado...


+1: Eu acho que foi Carl Franklin, do .NET Rocks, que observou uma vez que o setor de programação "é péssimo em aprendizado". Espero ter atribuído corretamente esta citação; mas eu, por exemplo, concordo totalmente com esse sentimento. Atualmente, não sei como os candidatos iniciantes trabalham no seu caminho.
Jim G.

Obrigado pelos ótimos comentários. Mas parte de meus objetivos é ajudar a despertar os gigantes de nossa indústria de que precisamos de melhores mecanismos de educação, e simplesmente não acho que conferências e faculdades sejam suficientes. Não tenho certeza qual é a resposta certa.
crosenblum

Meu objetivo não é impulsionar estruturas ou metodologias específicas, meu objetivo é promover mais educação e garantir que o programador obtenha suporte.
crosenblum

Qualquer um pode tentar aprender e desenvolver as habilidades, a maioria não possui os atributos necessários; mas faça de qualquer maneira, ao custo de nossas indústrias.
Orbling 20/03/11

Você tem um link para a entrevista? youtube.com/watch?v=irF-V9RUuXO presente?
Lukasz Madon

Respostas:


13

Uau, ótima pergunta para se pensar, difícil de responder. Como todos temos experiências e desejos diferentes, é difícil encontrar uma solução única para todos. Mas vou jogar algumas opiniões que tive ao longo dos anos sobre esse mesmo tópico.

1) Pare de ver o salto de emprego como ruim e incentive-o. Mudar de empresa a cada poucos anos. O programador é exposto a várias tecnologias, metodologias e negócios diferentes ao longo de sua carreira. As empresas obtêm um fluxo constante de novas idéias.

2) Pare de se considerar um programador na empresa X e se veja como um profissional que presta um serviço à empresa X. Se você pensa como um profissional, será tratado como um profissional. Se somos vistos como engrenagens substituíveis, é porque agimos como engrenagens substituíveis.

3) As universidades precisam mudar. Eles devem ter um período inicial de 2 anos de educação básica em computadores, seguido de uma escolha. Ciência da Computação ou Engenharia de Computação. E a área de engenharia precisa de profissionais que trabalhem no campo todos os dias, não alguém que apenas escreva papéis. E o que é ensinado precisa ser prático, para que você possa começar o dia no dia seguinte à formatura. Talvez tenha um programa de aprendizagem para quem não passa por um programa de graduação.

4) Editar: Este foi um pouco divertido. O que eu quis dizer foi que todos nós temos muito a aprender um com o outro, independentemente da idade e da experiência.

5) Um pouco relacionado ao ponto 2. Pare de ver seu empregador como responsável por sua carreira. Tu es. E só você. Se você quiser ir a uma conferência, pague por si mesmo, se sua empresa não. Reserve dinheiro todos os anos especificamente para livros, treinamento e desenvolvimento profissional. Se você esperar que seu empregador o envie para o treinamento, estará esperando muito tempo. O tempo gasto observando suas habilidades se torna irrelevante. Não está fazendo o suficiente para pagar isso? Mudar de emprego.

6) Precisamos ser honestos conosco e com nossos colegas programadores. A programação é difícil. Muito difícil. Ainda vejo publicidade para treinamento em informática com riquezas garantidas na graduação. Isso traz muitas pessoas para o campo que simplesmente não são qualificadas ou piores não têm interesse real além do dinheiro. Precisamos encontrar uma maneira de incentivá-los a repensar seus planos de carreira.

Neste ponto, acho que minha cabeça está prestes a explodir, então vou concluir.

Ótima pergunta! Estou ansioso para ler mais respostas.


3
+1 nos pontos 2 e mais de 5. É um momento revelador quando você percebe que seu empregador precisa de você mais do que você precisa.
Carl Norum 20/03

@ Carl, isso realmente é um ótimo sentimento.

+1 para as excelentes observações da pergunta. Concordo plenamente. Também concordo totalmente com os pontos 2 e 3. #
KeesDijk 20/03

Não vejo a tendência de comoditização revertendo em nenhum momento no futuro próximo. A tendência na maioria das lojas de software corporativas é de hiperespecialização de funções (também conhecida como pigeonholing).
bit-twiddler

1
Mas a economia pode nos levar a trabalhar, onde não temos tanta liberdade ou escolha.
precisa saber é o seguinte

1

Não acho que seja desorganizado apenas como resultado da falta de ensino. Eu acho que é realmente reflexivo que as "melhores práticas" diferem de emprego para emprego. As "melhores práticas" sempre serão baseadas em um contexto específico.

Acontece que há muitas passagens para algumas das áreas mais comuns de trabalho, ou seja. desenvolvimento web. No entanto, acho uma falácia acreditar que, apenas porque é bom se envolver em uma prática específica na maioria dos trabalhos, ele deve ser usado em todos os trabalhos.

As práticas que você pratica devem resultar de uma análise e experimentação do que faz você trabalhar melhor. Eles não devem ser escolhidos por crença cega. Só porque algo é ecoado frequentemente na rede não faz com que seja uma verdade na sua situação, nem uma Verdade (para todas as situações).


0

Ótima pergunta para exercitar a mente, concordo que algo precisa ser feito, mas acho impossível responder. Minha tentativa:

Primeiro Não mate a criatividade em geral. Devo dizer que concordo com Sir Ken Robinson, assista a essa ótima conversa do TED . Nosso sistema educacional está matando a criatividade e isso precisa ser alterado. Especialmente para programadores.

Segundo Ensine como padrõesnosso campo profissional não está maduro o suficiente. Temos muitas coisas diferentes que achamos serem o caminho a seguir, mas não podemos realmente concordar com elas. (pense em TDD, BDD, Agile vs Waterfall, a quantidade de documentação necessária, Java ou .Net). Na minha opinião, isso se deve a discussões sem contexto e a muita especialização. Você não pode fazer a escolha certa sem saber em que contexto a pergunta é feita e você não pode fazer a escolha certa se souber apenas uma opção. Quando você traz isso de volta à educação, parece impossível resolver. Você não pode esperar que alguém conheça todos os contextos possíveis e todas as soluções possíveis. Porém, com os padrões, agora algumas soluções gerais e os contextos se aplicam e os contextos quando as soluções quebram. IMHO esta é a maneira que precisamos ensinar,

Terceiro, exoneração de responsabilidade dos exemplos que acho que há um problema com os exemplos que mostramos no MSDN, nos Blogs, nos livros etc. Os exemplos geralmente são embaçados para entender o que o escritor está tentando argumentar. Mas nos exemplos mais básicos já existem decisões em vários níveis. Esses exemplos ensinam todas essas outras decisões erradas. Eu acho que todo exemplo precisa vir com um aviso dizendo qual é o objetivo e o que você não deve fazer em geral. Um ótimo exemplo disso foi publicado hoje em blog aqui .

Última Do Do Do Acho que há precisa ser mais fazendo. Aprendi a apenas fazer, falhar, consertar e discutir.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.