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.
Respostas:
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).
fonte
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.
fonte
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:
Disposição de ser valioso para o projeto / comunidade em que estou orientando-o, por:
fonte
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.
fonte
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.
fonte
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.
fonte
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.
fonte
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:
fonte
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!
fonte
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.
fonte
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.
fonte
"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.
fonte
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.
fonte