Como encontrar um mentor de programação? [fechadas]

46

Eu decidi aprender programação. Eu leio SO há alguns dias e acho que vou começar com C ++, enquanto leio alguns artigos. Estou ciente dos loops, matrizes, lógica do programa e objetos e preciso que alguém me examine e me ajude com as pequenas perguntas que recebo ao realizar meus primeiros projetos.

Então aqui está a pergunta - onde encontro esse cara? Eu não tenho nenhum amigo que programa e tudo.

EDIT: 2 anos depois, eu ainda estou procurando mentor. Eu não codifiquei ativamente, apenas iniciei três meses novamente. Trabalho na programação Objective-C e iOS e programação de jogos com o Cocos2d. Se você quer se tornar meu mentor, mande-me um comentário ou comentário.

Dvole
fonte
1
compre também um bom livro para iniciantes no idioma escolhido
Demian Kasier
2
Basta sair com esses usuários . Ofereça-lhes uma cerveja ou duas. Leia as postagens deles. Faça perguntas a eles.
WernerCD
1
Aqui está uma lista de nomes (e mapa) que assinaram o Manifesto do Software Craftsman: manifesto.softwarecraftsmanship.org
spong
1
Minha resposta foi um pouco boba, mas eu recomendo aprender JavaScript ou Python à medida que você aprende uma linguagem mais estritamente digitada. Existem vantagens para ambos os paradigmas, dependendo do que você está fazendo, mas nas linguagens "mais preguiçosas" você pode experimentar as coisas diretamente no console e, no caso do JS, brincar com o layout da página da Web e o comportamento da interface do usuário. das ferramentas de desenvolvedor do chrome. Além disso, funções que você pode passar em parâmetros; pessoas que cocô, nem sequer sabem e nunca o conhecerão (obrigado, jeebus, porque eu trabalhei com esses caras); são obscenamente poderosos.
precisa
1
Dois anos depois, tudo o que você precisa é de um pouco de disclipina. você está pronto para isto?
5--12

Respostas:

31

Participar de um projeto de código aberto é certamente uma maneira de começar. No entanto, uso o software de código aberto há anos e, francamente, a qualidade em quase todos esses projetos geralmente está no banheiro. Se você aprender suas habilidades de programação e design inteiramente com elas, provavelmente escolherá algumas muito ruins juntamente com as boas, sem nenhuma maneira de diferenciar entre elas.

Para o que você deseja aprender programação ? A resposta para isso determinará o que você deve procurar e onde. Aqui estão algumas respostas comuns e minha opinião profissional sobre como buscá-las (lembre-se de que é apenas uma opinião, embora IMHO, precisa):

Só para dizer que você sabe como fazê-lo.

Então você realmente não precisa de um mentor, e o C ++ é um lugar ruim para começar. Eu amo C ++, é a minha primeira escolha para programação geral, mas, em vez disso, brinco com outra linguagem. Eu sugeriria Python; ele tem uma curva de aprendizado muito mais suave que o C ++ e, diferentemente de alguns idiomas (nenhum nome mencionado, eu não usava minha calcinha de amianto hoje), você ainda aprenderá algumas habilidades úteis, caso queira aprofundar mais tarde. Muitos dos conceitos podem ser traduzidos diretamente para C ++ se você decidir continuar nessa rota.

Apenas para experimentar e ver se você gosta.

Um projeto de código aberto pode ser bom o suficiente para isso. Escolha um programa que você gosta, mas com problemas ou irritações, e ofereça sua ajuda a quem o estiver executando. A maioria dos projetos de código aberto é aberta a contribuições, geralmente é por isso que eles são de código aberto.

No entanto, nesse caso, não tente C ++ como sua primeira linguagem de programação. Não é difícil dominar o básico, mas o C ++ é de nível baixo o suficiente para que você possa obter alguns erros sérios e muito difíceis de encontrar em seus programas. A menos que você já saiba que adora programar, ou seja tão teimoso quanto o boi proverbial, ou já tenha encontrado um mentor que possa apontá-lo na direção certa, isso acabará com qualquer interesse que você possa ter no campo. Veja a resposta acima sobre Python, é mais adequado para isso.

Porque você tem uma ideia para um programa específico que deseja escrever.

(Eu não acho que o OP esteja nessa categoria, vou colocá-lo para leitores posteriores.)

Você tem alguma idéia do tempo necessário para dominar o design e a implementação do programa? Como sugestão, é medido em anos. Você poderá criar um design meio decente após apenas alguns meses de estudo, se for inteligente e extremamente sortudo, mas qualquer pessoa com pouca experiência que precise trabalhar nele (incluindo você mais tarde) desejo que você nunca tivesse nascido - falo por experiência própria. :-) A menos que a idéia seja tão super secreta que ninguém mais possa saber até que ela termine, não se preocupe. Contrate um programador experiente para fazer isso por você, ou se você não puder pagar um, mas ainda assim desejar bastante o programa, ofereça parceria com um - você lida com o lado comercial e permite que ele lide com a parte da programação. A maioria dos bons desenvolvedores prefere programar, para que esse tipo de oferta valha a pena.

Porque você já sabe que é fascinado por programação e deseja aprender mais.

Então você está exatamente no caminho certo. :-) Seja como um hobby ou algo que você pode se tornar uma carreira mais tarde, se você tiver o tipo de personalidade que a acha infinitamente fascinante, a melhor coisa que você pode fazer é mergulhar nela. O C ++ é uma linguagem tão boa quanto qualquer outra, nesse caso, e um mentor definitivamente ajudará (e com mais do que apenas desenvolver suas habilidades; pode ficar sozinho sem amigos que compartilhem sua paixão).

Head Geek
fonte
4
A questão era como encontrar um mentor, não se ele deveria ou não procurar um.
marktani
4
A resposta originalmente incluía uma oferta para orientar quem estivesse realmente interessado em C ++. Depois de conseguir oito pessoas que afirmavam estar realmente interessadas, mas que não se incomodavam em manter uma conversa, eu removi a oferta.
Chefe Geek
23

Para encontrar um mentor, não procure um mentor. Tente melhorar a si mesmo de maneiras específicas. Se você trabalhar duro o suficiente para melhorar, ambos descobrirão que entram em contato com pessoas que pensam da mesma forma e descobrirão que têm algo em comum com essas pessoas.

Os grupos de usuários são o local provável para encontrar um mentor, mas ninguém quer ajudar alguém que está lá pensando "Estou procurando um mentor". Mas se você estiver pensando: "Eu adoraria se alguém pudesse me ajudar a aprender a escrever bons testes de unidade JavaScript" ou "Eu adoraria parear com alguém e testar um kata no Clojure", mais cedo ou mais tarde você encontrará alguém que compartilhe seus interesses e que esteja um pouco mais adiante.

Eric Wilson
fonte
14

Os tipos de pessoas que fazem bons mentores geralmente têm uma dúzia de juniores latindo pelo tempo a qualquer momento. Portanto, "encontrar" o mentor certo é apenas o começo, você também precisa torná-lo mais atraente / recompensador do que orientar outra pessoa.

Portanto, o primeiro passo é ingressar em comunidades onde é provável que você encontre bons mentores.

O segundo passo é tornar-se um mentorado valioso. Algumas coisas que eu, pessoalmente, procuro em um mentorado são:

  • Inteligência próxima, igual ou maior que a minha.
  • Interesse nas coisas que tenho para oferecer e gosto de ensinar.
  • Compatibilidade de personalidade (ou seja, nos damos bem, gostamos de conversar um com o outro).
  • Disposição de ser valioso para o projeto / comunidade em que estou orientando-o, por:

    • Código de escrita
    • Escrever documentação
    • O scut funciona como triagem de fila de problemas, limpeza de comentários etc.
    • Ajudando colaboradores menos experientes
  • Compatibilidade com meu fluxo de trabalho usual.
  • Capacidade de me ensinar coisas. Ser mais experiente do que alguém não impede a aprendizagem deles. O melhor mentorado tem o dom de fazer as perguntas certas, ou de um novo ponto de vista, ou de alguma experiência fora das minhas áreas de conhecimento, das quais posso aprender.
HedgeMage
fonte
12

Participe de um projeto de código aberto. Você não precisa necessariamente programar para eles também. A maioria dos projetos gostaria que alguém ajudasse com a documentação. Você pode olhar o código e fazer perguntas. Quando você se sente confortável, pode começar a escrever um código para eles.

Jim C
fonte
1
Ok, posso parecer idiota, mas como você se junta a projetos de código aberto? Qual é o melhor site para visitar?
Mr. Ant
1
gnu.org/help ou alguns repositórios de código-fonte aberto (código do google, github ...). Procure um projeto interessante sem pessoas para contribuir com a documentação e enviar um email.
Cbrandolino
2
Eu acredito firmemente que não há perguntas idiotas. Embora existam muitos sites de projetos de código aberto, o sourceForge ainda é um dos mais populares.
Jim C
1
@ Ant: o melhor projeto de código aberto para trabalhar é um programa que você costuma usar ou espera usar.
Larry Coleman
7
-1: Participar de um projeto de SO é uma boa resposta, mas definitivamente não é nesta fase do aprendizado (ou seja, dia 1). Isso é mergulhar no fundo do poço antes mesmo de se molhar. Um aprendizado estruturado via livros ou aula é uma ideia muito melhor.
Steven Evers
6

O que você está esperando de um mentor? As sugestões de um projeto de código aberto ou de um grupo de usuários local são projetadas para se concentrar mais em redes e em encontrar alguém que está a alguns passos do que você deseja, para que eles possam ajudá-lo de uma maneira. Pense nisso como tentar aprender a cozinhar com Jamie Oliver ou Gordon Ramsay; pode ser bastante divertido e útil no final do dia.

Dependendo das suas expectativas, pode ser fácil ou surpreendentemente difícil encontrar um mentor. Se você está esperando alguém que possa ler sua mente e revelar passo a passo os segredos de ser incrível em um ano ou menos, isso pode não ser realista. Ao mesmo tempo, se você quiser encontrar alguém que possa fazer algo melhor do que você, isso pode não ser tão difícil de fazer. Então, primeiro, descubra quais são suas expectativas.

Segundo, agora que você sabe o que deseja, precisa encontrá-lo. Isso pode ser bem difícil, pois não há muitos lugares dedicados a mostrar aos desenvolvedores que usam suas habilidades, como temos as artes no Canadá e nos EUA, e é por isso que eu sugeri a sugestão. MentorNetseria um exemplo de programa que pode funcionar, embora eu ainda não o tenha experimentado, pesquisei há algum tempo e não achei que fosse para mim e para o que eu queria. Outro pensamento aqui é como seus amigos e familiares sabem o que você quer aqui? Eles podem conhecer alguém ou algum lugar que possa ajudá-lo, se você perguntar. Embora essa não seja uma resposta abrangente, o que você pede é meio vago e, portanto, espero que você possa adicionar mais a isso. Depois, darei mais detalhes sobre o que você deseja e como deseja. não é o Burger King, mas poderíamos tentar trabalhar dessa maneira.


Os especialistas em componentes do lado do servidor C ++ podem ser bastante difíceis de encontrar. Existem instituições pós-secundárias próximas? Aqueles podem ter alguém que tenha essas habilidades que podem estar mudando para outra coisa como uma idéia possível. Boa sorte em encontrar esse mentor.

JB King
fonte
+1 do meu lado. Parece que trabalhar com alguém é o caminho a seguir.
Fanatic23
4

Os projetos de código aberto são ótimos para obter feedback sobre o código específico que você adicionou e maneiras potencialmente novas de fazer as coisas, mas, como você descobriu, isso provavelmente não será um relacionamento de mentor.

Sugiro o que você já mencionou e são grupos de usuários. Os grupos de usuários geralmente se reúnem com bastante frequência para que você possa ter tempo real com potenciais mentores. Esse tempo de face pode permitir um fluxo de comunicação mais rápido e fácil. Isso garantirá que todos estejam no mesmo domínio? Não, mas você tem que começar de algum lugar. Se você encontrar alguém com muita experiência, ele ainda poderá ajudá-lo em seu domínio, apenas com base em outras experiências que ele teve.

Walter
fonte
3

Você pode verificar o seu grupo de usuários Linux local ( aqui você encontrará uma lista), geralmente a maioria dos participantes são programadores - ou pelo menos hackers perl. Além disso, se você lhes disser que está lá para encontrar um mentor de programação, eles o amarão.

Um post no craigslist pode valer a pena tentar, mas eu não apostaria nisso.

Além disso, se você mora na Alemanha, há alguns lugares que posso sugerir em particular.

cbrandolino
fonte
e na CA, Bay Area?
greatwolf
@Victor, eu realmente não sei, mas parece haver alguns: google.de/...
cbrandolino
3

Como você se inscreveu no Stack Exchange, você já tem muitos mentores informais à sua disposição. Você pode facilmente fazer perguntas ou revisar seu código por muitas pessoas motivadas a ajudar.

Mais localmente, se você quiser orientação ou ensino presencial, ótimas opções incluem:

  • Grupos de usuários - Profissionais: grátis ou baratos, abertos a todos. Contras: infreqüente, não sistemático, pode não estar disponível em sua comunidade.
  • Cooperativas - Prós: aberto, gratuito / barato. Contras: menos comum, ad-hoc, mais provável para a Web que C ++.
  • Diploma universitário / profissional - Profissionais: sistemático, de alta qualidade, respeitado, abre portas, geralmente fornece acesso a pelo menos algum corpo docente de alta qualidade. Contras: Admissão competitiva, comprometimento maior, taxa de lavagem cara e alta, por isso é uma maneira cara de descobrir se você deseja tornar o software sua profissão, o programa de estudo pode ser flexível, mas pode exigir tópicos que você não gosta ou que deseja achar difícil.
  • Classes de faculdades comunitárias ou programas de graduação. Prós: Barato, bom valor, mais atenção individual dos instrutores, fácil de ser admitido. Contras: Menos prestígio que a universidade, mas um bom aluno é um bom aluno onde quer que vá.
  • Organizações profissionais - Profissionais: podem ser boas redes e educação continuada. Contras: você pode precisar de um diploma ou emprego no campo para se qualificar para a associação. As reuniões mensais podem ser tópicos ad-hoc sobre inovações, em vez de cobertura sistemática de tópicos que possibilitam a carreira.
  • No trabalho de colegas, funcionários seniores ou gerentes - Profissionais: freqüentes, direcionados, apreciação / entusiasmo / acompanhamento construirão sua carreira como nada mais pode. Contras: pode dar errado se o seu mentor entrar em modo de julgamento e você tiver deixado tudo para fora, esse tipo de mentor pode não estar disponível até que você tenha um emprego, o que pode significar depois de se formar devido à concorrência global.
  • Coworking - Prós: bons recursos, ótimas pessoas, geralmente um cruzamento entre uma comuna e uma sala cheia de futuros CEOs. Contras: pode não estar disponível onde você mora, pode envolver um compromisso em dinheiro para ajudar a pagar aluguel em espaço compartilhado, muitos deles são autônomos, portanto você deve respeitar o tempo deles e encontrar maneiras criativas de tornar os benefícios recíprocos.
DesenvolvedorDon
fonte
2

Eu acho que os fóruns seriam a melhor maneira de encontrar algumas pessoas especializadas no assunto. Eu acredito que você deveria começar por aí.

Confira alguns sites em c ++ no google ou talvez nosso querido amigo stackoverflow, onde há muitos ninjas em c ++ prontos para responder às suas perguntas!

guiman
fonte
1

Aprender a programar é uma causa ambiciosa e (acho que todos neste site concordarão) uma causa nobre. No entanto, é difícil começar do zero e aprender, mesmo com um mentor. Acho que você descobrirá que fazer pelo menos algumas aulas introdutórias para lhe dar uma base será o melhor caminho a percorrer.

Um mentor é uma ótima idéia, e eu não estaria aqui mais de 15 anos depois como codificador sem o cara que atendeu minhas perguntas no meu primeiro trabalho "real", mas, na realidade, uma única pessoa não será capaz para lhe dar tempo e orientação, você precisará se tornar um programador de sucesso. Ele ou ela provavelmente terão um emprego em período integral (ou carga horária). Isso não quer dizer que você não deva encontrar um mentor (ou mentores), apenas que precisará de algo mais.

Sites como este, tutoriais on-line, livros e tudo mais são peças do quebra-cabeça. A educação compõe as peças da fronteira.

Isso não pretende desencorajá-lo; pelo contrário, acho que estabelecer expectativas realistas lhe dará uma chance melhor de sucesso.

Wonko, o são
fonte
1

Se você trabalha em uma empresa, pode procurar um mentor lá.

Quanto a um projeto de código aberto, duvido que você encontre um mentor para um projeto criado, mas poderá encontrar um em um projeto que eles criaram.

Não esqueça que o mentor deles também precisa obter algo desse arranjo. Eles estão gastando seu valioso tempo ajudando você. Esteja preparado para fazer algum trabalho para eles em troca.

Jim C
fonte
0

"Como encontro um prodígio de programação? É tudo o que quero. Só quero construir um exército robótico maciço para dominar o mundo. Sou inteligente e escrevi a IA. Tenho o dinheiro, a influência, Eu simplesmente não posso me incomodar em lidar com essa insensatez do .NET ou JVM ... Hmm ... Como .. Como !? Droga! "

Normalmente eu não explicaria isso, mas estamos no Stack. Algumas pessoas gostam literalmente. Você encontra um (um mentor), sendo útil. Você pode ser útil, resolvendo os problemas que as crianças com a experiência (ou - talvez - cérebros - ou (heh) dinheiro) não querem resolver.

Resolva esses problemas, gafanhoto.

Ou não. É a era da informação. DIY meu amigo. Procure comunidades como o Stack para lhe dizer quando você está sendo estúpido ou sábio sobre algo relacionado ao código ou algo que não temos tão facilmente como as maquinações daquele investidor que está pronto para estragar você e mais algumas coisas.

E compartilhe o que você sabe. Participe um pouco do coletivo depois de encontrar o seu ritmo. Isso não é ferraria na década de 1700. Seus pais não precisavam conhecer ninguém (embora certamente todos gostem quando você não monta seu conhecimento sobre artesanato e compartilha com a guilda).

Você apenas decide que está interessado e vai embora. Bastante assustador e empoderador quando isso acontece. Demora um pouco (eu sei), mas confie em mim (mesmo que apenas nesse ponto aparentemente absurdo - levei mais de dez anos para perceber que sim, eu era um programador em pânico), tudo isso o que realmente importa é que você tem o nível básico de talento e está realmente interessado. Se não estiver, por favor! @ # $ Off e encontre algo do seu interesse.

Porque a programação / script / codificação é uma escolha horrível caso contrário. Mas não quero deixar isso em um ponto negativo e desagradável. Se você estiver interessado, não se preocupe com o quão bom você é. Pergunte. Exija respostas. Aturar o total de gás / ducha longa como eu. Você chegará lá se quiser.

Você gosta de quebra-cabeças? Você gosta de resolver problemas arbitrários aleatórios? Você gosta de filmes de gladiadores? Inequivocamente nos dois primeiros pontos, sim? Não procure um mentor. Aprenda um idioma muito bem, aprenda um ou dois outros que não são muito parecidos com o seu primeiro idioma até o ponto de entrada no nível de habilidade, leia alguns livros e tenha opiniões. Desfrute de desafiá-los e alterá-los ocasionalmente, mesmo que apenas para ver se você não estava totalmente errado. Você pode se surpreender com a frequência com que seus instintos não eram tão ruins assim. Peça às pessoas que dêem um tapa na cara por fazer a pergunta errada e você pode achar que conhece melhor do que a maioria dos que se levantam nessa ocasião. Mas, principalmente, é um problema a resolver. Resolva isso.

Erik Reppen
fonte
Ah, e compartilhe a solução, é claro, para que todos possamos cocô nos pedaços que não gostamos.
precisa
-2

Para um mentor, vá para freenode (irc). Eu juro, você pode obter a maior parte do diploma de CS nesse local, útil em qualquer nível de habilidade. Foi aí que eu aprendi muito. Não importa se a pessoa está nesse canal uma vez ou 24/7, é em tempo real e é isso que conta.

E, como muitos outros disseram, não faça C ++. Em vez disso, comece com uma linguagem de coleta de lixo digitada estaticamente e não vá para o gerenciamento manual de memória até saber o suficiente para vencer o coletor de lixo. Você pode escrever Haskell ou OCaml muito rápido, se tentar.

Ericson2314
fonte