Embora eu me considere pouco experiente, continuo conseguindo empregos como líder de alguma forma (no atual sou diretor de tecnologia da empresa, no anterior fui chefe de pesquisa e desenvolvimento).
Entendo por que isso acontece (tenho um conjunto específico de habilidades e uso algumas linguagens de programação incomuns), meu problema é: não consigo encontrar um mentor ...
Sei que deve haver coisas para aprender, e noto que, ao longo dos anos, estou aprendendo lentamente mais e mais, mas acredito que há uma maneira de melhorar muito mais rapidamente do que apenas codificar ...
Então, como eu melhoro quando não há outra pessoa na empresa para me ensinar ou para ler o código? (ou corrija o código deles até ...)
Acho que estou além dos livros, mas muito abaixo do nível "mestre", então não sei onde aprender mais.
fonte
Respostas:
Sobre o quê:
Confira também as respostas para Como dominar realmente uma linguagem de programação
fonte
Algumas dicas:
Aprenda outras línguas. Em seguida, compare-os com o (s) idioma (s) que você já conhece e tente observar as maneiras pelas quais você pode melhorar suas habilidades de codificação nesses idiomas usando o que aprendeu com outros idiomas. "Liberte a sua mente" antes de aprender esses novos idiomas e não tente simplesmente clonar os conceitos de um para o outro .
Leia o código. Não sei que idioma (s) incomum (s) você está usando precisamente em seus trabalhos, mas tenho certeza de que você pode encontrar código-fonte aberto de alta qualidade escrito nesses idiomas por desenvolvedores muito habilidosos.
Fique com a comunidade. Se você não tem colegas que usam seu (s) idioma (s) no trabalho, não é uma desculpa para não compartilhar o conhecimento em sites como o Stack Overflow, onde existem perguntas e respostas mesmo para idiomas muito incomuns. Tente procurar essas perguntas por tag e veja se você entende todas as respostas. Se as perguntas não forem respondidas, responda-as.
Ensinar. Ensine seus colegas de trabalho. Escreva um blog. Qualquer que seja. Ao explicar algo para outras pessoas, você aprenderá melhor.
fonte
Minhas principais soluções para isso nos últimos 2 anos foram:
rede social: Descobri particularmente que o meetup.com é uma ótima maneira de encontrar grupos de programação em sua área. O Twitter também é ótimo para isso. Quando você encontrar pessoas que você gosta e respeita, siga-as.
Usando o http://www.stackoverflow.com , inicialmente o usei para perguntas ocasionais. Agora é meu companheiro diário para dar e receber conselhos. Use também os sites irmãos, como /codereview//
Trabalho: Embora provavelmente não seja aplicável a você (mas é um bom conselho geral para os outros). Se você é bom o suficiente para conseguir algum tipo de emprego na área que deseja, procure pessoas seniores, seja gentil com elas e tente convencê-las a orientá-lo. .
Livros. O'Reilly, Pragmatic Programmer e outros ainda têm bons livros e você pode escolher versões em papel e / ou digital. Aqui está uma lista realmente excelente: /programming/1711/what-is-the-single-most-influential-book-every-programmer- deve ler com alguns dos melhores 'clássicos' disponíveis no mercado caso você ainda não os tenha lido. Posso recomendar código limpo e código completo.
Tutoriais. Agora, existem alguns sites fantásticos na rede, como
http://www.codeschool.com ,
http://www.codeacademy.com
http://code.google.com/edu/
fonte
Só porque estou lendo um pouco de hierarquia na (para) sua pergunta:
Aprenda com as pessoas sob você. O desenvolvimento de software trata da comunicação entre seres humanos, geralmente por meio de código. Como a boa comunicação deve ser nos dois sentidos, aprenda com as pessoas com quem você programa. (presumo que você não esteja em uma empresa individual)
fonte
Acredito que você aprenderá bastante ensinando aqueles que lidera. Você entenderá melhor o que ensina a eles, porque será forçado a pensar sobre por que / como as coisas fáceis funcionam (o que você provavelmente evitou fazer no começo porque queria que funcionasse)
fonte
A tutoria pode ser multifuncional
Os mentores nem sempre precisam ser especialistas no que você está focado. Se você usa uma linguagem de programação incomum, isso ainda deixa cerca de 99 tópicos fora do idioma no desenvolvimento de software nos quais você poderia ser treinado. Alguns de meus recentes mentores estiveram envolvidos no desenvolvimento de negócios, na engenharia de hardware ou de sistemas, mesmo que eu esteja principalmente envolvido em software.
Muitos tipos de pessoas podem ser seu mentor
Uma coisa boa a procurar é alguém que agora está onde você gostaria de estar em cinco anos. Um mentor como esse nem sempre está disponível; portanto, outra alternativa inclui um sábio que tem muito mais experiência, mas pode não estar mais em um papel formal de liderança, um mentor reverso que é menos experiente (ou que seja mais jovem, mas que não tem permissão de Deus) em ferramentas e técnicas que podem ser benéficas.
Seu mentor também é seu patrocinador?
Além dos mentores, às vezes é essencial ter um patrocinador. Se você está tentando avançar em uma organização, se você tem um mentor que dá ótimos conselhos, mas não influencia sua cadeia de comando a seu favor, você pode ter desvantagens em relação a alguém que tem um mentor que os patrocina como líder, proprietário do projeto ou gerente de um projeto que lhes confere uma função ou promoção mais influente.
Mentores e redes entre empresas
Se você já é o diretor de tecnologia, pode precisar procurar fora de sua empresa seu mentor. Há força nos números, de modo que o networking com muitas pessoas de maneira superficial pode ser surpreendentemente valioso. Geralmente, considerava que, para ser valioso, seu envolvimento com outros profissionais precisava ter a profundidade que resulta do trabalho em conjunto ou de uma associação extensa, frequente ou longa.
Qual é o tamanho da sua lagoa?
Você menciona que foi diretor de P&D e diretor de tecnologia, mas não sente que é tão experiente. A confissão é boa para a alma, se não a reputação. Eu tenho uma confissão semelhante.
Em um ponto, considerei minha carreira dividida em duas partes. No primeiro, trabalhei em várias equipes nas quais eu era o único desenvolvedor de software ou o desenvolvedor com mais faculdade. O segundo começou quando eu contratei uma empresa da Fortune 100 e trabalhei com um desenvolvedor distintamente mais alto. O contraste era essencialmente como ser um peixe grande em um pequeno lago e ser um peixe pequeno em um grande lago.
Negociação
Fazer a mudança de pequenas empresas independentes significava que eu tinha muito menos status na organização. Mas ainda havia algum status. Os desenvolvedores ainda eram avaliados tanto com salários mais altos quanto com um alto grau de controle sobre o trabalho. Eu também pude influenciar os colegas da equipe (embora não de cima para baixo). Havia muitos modelos. Ter muita concorrência me forçou a me fortalecer tecnicamente e a entender como o que eu fiz agregou valor à organização e às minhas equipes.
Anteriormente, eu ignorei meu instinto sobre papéis e mentores e paguei um preço. A intuição às vezes é um sentimento que sai de uma síntese da experiência. O meu voto seria que, se parecer errado, provavelmente está errado e merece uma investigação atenta. Parece que você está preocupado com sua experiência e com a falta de um mentor, explore suas opções.
Você talvez encontrasse crescimento, satisfação e outros benefícios migrando para uma empresa maior e mais agressiva? Maior nem sempre é melhor, mas às vezes tem a vantagem de diversas pessoas que resultam em diversas relações de trabalho e diversas experiências em projetos. Muitos dos luminares do Vale do Silício tiveram ou serviram como mentores de pessoas que, como resultado, podem traçar seu caminho para o sucesso com mais rapidez e eficiência. Um dos meus colegas de classe da pós-graduação seguiu a ligação para ingressar no Linked In e está experimentando essa cultura, jogando um jogo de nível muito mais alto.
Benefícios do mentor
Embora um mentor possa ser como um professor, acho que, a menos que você tenha alguém que analise seu produto com freqüência ou sirva como mestre no relacionamento mestre / aprendiz, o treinamento de habilidades e a educação profissional são secundários. Acho que as melhores coisas que os mentores compartilham incluem conselhos sobre crescimento, modelagem de papéis de boas decisões e equilíbrio entre os valores do local de trabalho e julgamento constante, objetivo e sólido em tempos de crise.
Um conselho que meu avô me deu muitas vezes foi que as pessoas só podem aprender quando são humildes. Tenha cuidado com declarações como "Estou muito além dos livros" e tente aprender com todos. Para construir um relacionamento com um mentor, certifique-se de que seja respeitoso e receptivo e que mostre apreço. Também será importante seguir os conselhos deles, porque, a menos que sejam extremamente pacientes, eles geralmente investem seu tempo em que serão transformados em ação.
fonte
Meu caro amigo
Deixe-me dizer-lhe que raramente é descoberto que alguém está ensinando a outra pessoa as nuances da programação. Programar é algo que precisa ser aprendido por você mesmo. Se você se concentrar em um tópico singular e tentar fazer parte de vários fóruns que suportam esse tópico, mais cedo ou mais tarde você se tornará o mestre desse tópico. Lembre-se de que você é a melhor pessoa para saber o quão bom você se tornou. No tipo de indústria e mundo em que somos, devemos nos tornar nossos próprios mentores, pois o que ensinamos a nós mesmos permanece conosco para sempre.
fonte
Quando estou usando "ferramentas específicas ou linguagem / estrutura de programação incomum", procuro alguns grupos de interesse especiais. Obviamente, existe uma comunidade online para a maioria das tecnologias / estruturas atualmente em uso. Assim, utilizo todos os meios de comunicação on-line para manter contato com as últimas postagens em:
Uma das melhores abordagens para aprender boas práticas de "linguagens de programação incomuns" é encontrar algum blog de desenvolvedor (de preferência de 4 a 5) e se inscrever.
fonte
Em que área? Deseja melhorar suas habilidades de programação, engenharia de software, gerenciamento de projetos, algo mais? Você não especificou em sua pergunta.
Você não vai além dos livros, se aprendeu a programar / projetar projetos de software / gerenciar um projeto por conta própria. Você também não está além de voltar à escola. Voltar à escola para obter um diploma avançado ou, pelo menos, fazer algumas aulas de pós-graduação é uma opção que você não deve descartar. Qual area? Isso depende do que você deseja melhorar, onde você vê sua carreira. Há muito a ser dito para obter um MBA, por exemplo. As pessoas que são mais experientes no sentido técnico e comercial valem muito. Muito. Alguns dos meus ex-colegas de trabalho fizeram um MBA. Não os vejo frequentemente porque, quando não estão trabalhando, estão indo para algum paraíso tropical. Ou um safari. Ou uma viagem de fim de semana para os Alpes. Ou uma viagem de esqui de verão para a América do Sul.
Outra opção é ingressar em uma sociedade técnica em um campo em que você possui experiência, mas ainda deseja melhorar. Outra é conseguir que seu empregador o envie a uma conferência de boondoggle, onde você pode aprender e interagir em rede.
fonte