Eu sou um estudante de 16 anos, apaixonado por programação de computadores. Estou no 11º ano e estou aprendendo isso como parte do currículo da escola há cerca de 8 meses. Eu fui além do que está sendo ensinado na escola e escrevi algumas (razoavelmente boas) aplicações. A linguagem em que eu programo é C ++, na plataforma Windows. Eventualmente, eu gostaria de me formar em CS em uma boa faculdade e depois trabalhar como programador.
As perguntas específicas que tenho são:
- Qual é um bom lugar para que meu trabalho seja notado?
- Existem periódicos ou publicações especificamente para jovens programadores?
- Se não houver publicações, existem bons blogs ou é melhor começar o seu próprio?
- Existe mais alguma coisa que me ajudaria a ser notado como programador?
Eu tentei ser o mais objetivo possível.
Se tudo isso era tl; dr: Qual é a melhor maneira de ser notado como um jovem programador?
Edit: Eu não estou olhando para ser contratado direto do ensino médio O objetivo não é impressionar a comunidade como um programador profissional. Isso ocorre com as solicitações de faculdade, em que ter seu trabalho visto e criticado por outras pessoas melhorará sua inscrição. Não pretendo ganhar dinheiro com o que escrevi (até agora).
Respostas:
Gostaria de lhe dar um aviso e algumas sugestões.
Advertências:
Não superestime o seu conhecimento: agora posso assumir que você sabe o suficiente para escrever um aplicativo simples e mais do que o que é realmente ensinado em sala de aula. Mas isso não faz de você um "programador profissional"; pode fazer de você um "freelancer" no máximo.
Não subestime o valor do que é ensinado na escola. Mesmo que algo lhe pareça óbvio, estude-o também: você verá "novos aspectos" (mais adiante esclarecerei) à medida que prosseguir.
Sugestões:
As aplicações profissionais têm um ciclo de vida típico de 3-5 anos e requerem milhares (até milhões) de horas de trabalho. Eles não podem ser implantados apenas por um desenvolvedor. Programadores profissionais precisam trabalhar com outras pessoas. Não se trata apenas de um bom conhecimento de ferramentas (como linguagens, IDEs etc.), mas também de técnicas, métodos e expressões idiomáticas.
Embora as ferramentas possam ser ensinadas por amostras e exercícios formais, técnicas e expressões idiomáticas só podem ser "descritas". Para "aprendê-los", você precisa experimentar e compartilhar a experiência com os outros. Eles são continuamente inventados e aprimorados.
As empresas, quando contratam na escola, verificam sua compreensão das ferramentas e sua capacidade com técnicas básicas, mas - o mais importante - testam sua capacidade de aprender rapidamente coisas novas e "capturar o trabalho" conforme necessário.
Ao contratar pessoas experientes, elas analisam quantas coisas fizeram e que experiência obtiveram dessas coisas.
Moral:
Se você deseja ser mais "avaliado", aprenda a trabalhar com outras pessoas participando dos problemas de outras pessoas (como no stackoverflow ) ou em projetos abertos (como na sourceforge )
Além disso, não seja muito rápido para pedir dinheiro; divida sua "produção de código" em "algo para compartilhar" e "algo para vender". O que você pode compartilhar pode ser usado por outras pessoas, mas também pode atrair a participação de outras pessoas para expandir o projeto inicial. O que você pode vender é o que torna seu aplicativo "único" em relação a outros projetos semelhantes, levando-o a se tornar um produto comercial real.
Para código de compartilhar com os outros, você pode consultar o site codeproject ou sourceforge . A classificação deles também dá uma idéia de quão interessante o que você fez foi para outras pessoas.
fonte
Você já pensou em criar projetos de código aberto para os aplicativos que você criou e hospedá-los online? SourceForge.net ou GitHub.com são bons hosts de projeto de código aberto. Isso ajudará a ganhar visibilidade para seus aplicativos.
fonte
Antes de tudo, sejamos claros: a maioria dos 16 programadores da YO realmente não impressionará a comunidade.
Há uma razão para isso na minha opinião. Ser um bom programador não depende apenas de habilidades de programação. Como você espera ver durante o curso de CS, a programação é apenas um subconjunto da ciência da computação, e a maioria das pessoas que ganhou prêmios (pelo menos prêmios acadêmicos) o fez porque provou algo novo (um novo teorema, por exemplo), ou descobriu uma nova maneira de realizar algum tipo de tarefa (padrões de design). Para fazer isso, você precisa (pelo menos):
Se você acha que já domina tudo isso, sim, provavelmente impressionará a comunidade.
Você sempre pode tentar contribuir com um projeto de código aberto, mas também pode se surpreender com o quanto precisa acompanhar antes de realmente poder contribuir.
Finalmente, dê uma olhada no StackOverflow e veja o quanto você pode responder no seu idioma favorito ... você terá um bom proxy do seu nível.
fonte
Tente obter uma reputação realmente alta no Stack Overflow. Quase o mesmo tópico foi discutido aqui:
A alta reputação no Stack Overflow ajudará a obter um bom emprego?
fonte
Algumas coisas que você pode querer tentar:
fonte
Vou seguir a resposta de Bernard e adicionar um pouco mais. Existem tantos projetos OSS por aí que ainda pode ser difícil ser notado, a menos que você crie um projeto popular, o que não será fácil para um programador apenas começando.
Supondo que você esteja tentando ser notado na comunidade de programação, sugiro que publique complementos (OSS ou código fechado) para ferramentas usadas pelos programadores. Imagine entrar em uma entrevista de emprego e poder dizer que a empresa já está usando o software que você escreveu. Muitas ferramentas de desenvolvedor têm APIs para a criação de complementos e várias "App Stores", onde você pode obter alguma exposição para sua ferramenta sem se preocupar muito em comercializá-la.
Aqui estão alguns exemplos em cima da minha cabeça:
Dependendo da ferramenta escolhida, você pode segmentar o enclave específico da comunidade de programação pela qual deseja ser notado.
fonte
fonte
Eu tenho um ponto de vista um pouco diferente aqui.
Se você deseja que seu software seja notado, a melhor maneira é ter pessoas usando-o. Embora Bill Gates e Mark Zuckerberg fossem grandes programadores jovens, havia muitos programadores melhores. Mas esses dois senhores conseguiram que muitas pessoas usassem seus produtos e, portanto, são mais conhecidos por seu trabalho.
Para que as pessoas usem seu código, você pode:
Na minha opinião, o software é quase irrelevante sem fornecer benefícios aos usuários. E você será notado por resolver problemas com os quais as pessoas se preocupam, e essa é uma habilidade muito rara.
fonte
Uma resposta que ainda não li: Google Summer of Code.
No site :
Você tem que ter 18 anos para participar, mas isso não está longe. Conheço algumas pessoas que participaram e tiveram uma ótima experiência. Como todas as suas contribuições são para programas de código aberto, elas são públicas e, portanto, serão notadas.
Como você tem menos de 18 anos, o Google também possui um programa semelhante ao GSOC para estudantes pré-universitários (13 a 17 anos) chamado Google Code IN .
fonte
Do meu ponto de vista, existem tipos de pessoas que programam.
Definições:
Observe que eu usei a palavra "Média" acima. Dependendo dos interesses pessoais e da experiência profissional, essas porcentagens podem mudar drasticamente. Estes são apenas estereótipos generalizados. Não julgue um livro pela capa. Também sou apenas porcentagens de BSing da minha experiência.
fonte
Eu sou um programador freelancer. A programação tem sido minha renda principal desde que me formei no ensino médio, 9 anos atrás. Ainda pretendo me formar, mas no momento ainda não é o momento certo para mim.
Meu caminho para o reconhecimento auto-direcionado foi o seguinte. Não estou dizendo que essas etapas farão com que você seja reconhecido pela comunidade de programação, mas ajudará a aumentar sua credibilidade na hora da entrevista.
Mesmo depois de ter sido bastante versado em programação da IMO na época, voltei ao básico e passei por tutoriais e construí um portfólio com base em trabalhos inspirados desses. Também comecei a me forçar a comentar meu código de maneira semelhante ao JavaDoc. O portfólio pode não estar cheio de brilho e glamour no momento, mas fornece uma linha de base que você pode construir e, eventualmente, substituir o que você tem lá. Eu tinha um conjunto de demos e exemplos de código para mostrar aos clientes em potencial. Isso é essencial para conseguir seu primeiro emprego. Ninguém quer contratar alguém que não tenha experiência, no entanto, existem várias pessoas que darão a chance a um programador de aparência promissora que não tem experiência profissional.
Mais tarde, analisei esses programas e comecei a escrever bibliotecas com base nas minhas tarefas mais usadas. Com minhas novas bibliotecas, comecei a analisar os problemas do CompSci na Internet e comecei a me dedicar a quanto tempo levaria para criar uma solução com minhas bibliotecas. Isso me daria uma linha de base no futuro sobre o que eu deveria cobrar por uma tarefa específica.
Não foi até então que eu descobri o código aberto. Examinei os projetos no sourceforge no idioma em que me interessava e encontrei aplicativos que eu poderia usar. Instalei esses aplicativos e comecei a usá-los como parte da minha experiência diária de computação. Pude ver os pontos fortes e fracos desses aplicativos no que diz respeito à minha interação diária e comecei a estendê-los para atender às minhas necessidades. Eu enviava meus patches para a comunidade que estava desenvolvendo para ser revisado e, depois de alguns, solicitava para me tornar membro do projeto. Foi aqui que aprendi a usar as diferentes ferramentas usadas ao trabalhar em uma equipe que levou minha "vasta experiência", como eu a considerava na época, e a levou para o próximo nível.
Adaptei todas as minhas práticas que aprendi trabalhando em projetos de código aberto e implementei soluções compreensíveis quando trabalhava como indivíduo. Comecei a seguir seriamente uma carreira como desenvolvedor freelancer e entrei para vários sites de recrutamento freelancer. Eu olhei quais eram os trabalhos populares e comecei a me candidatar. Para cada trabalho que eu recusaria, ainda o completaria como se tivesse obtido o trabalho para expandir meu conhecimento. Isso ajudaria a criar meu portfólio e me apresentar alguns desafios do mundo real. Quando finalmente recebi a primeira entrevista, fui direto e disse a eles que não tinha nenhuma experiência profissional. Comecei a contar a eles os projetos de código aberto nos quais havia trabalhado, o que havia realizado lá. Alguns dos principais obstáculos que eu já havia enfrentado e como os resolvi.
fonte
PS: Já faz muito tempo desde que me inscrevi na faculdade - eles ainda dão a você a oportunidade de listar coisas assim, certo? (Por exemplo, uma seção sobre hobbies ou uma pergunta de desenvolvimento sobre seus interesses).
fonte
Eu acho que o JohnFX deu uma ótima resposta para essa pergunta.
Algumas reflexões:
Eu acho que o jQueryUI pode ser o melhor lugar para começar. É divertido e visual. Portanto, você pode acessar o fórum de desenvolvedores do jQueryUI no site do jQuery e pedir para ser um colaborador.
Acho que você demonstrará grande paixão e dedicação à programação mais do que demonstrará grande habilidade. Mas não deixe que isso te impeça! Eu encorajo você a se envolver.
Nesse ponto, talvez você precise se contentar em fazer o controle de qualidade. O controle de qualidade é chato, mas você pode aceitá-lo e mostrar dedicação. Mas a partir daí você pode contribuir com um pouco de código e talvez criar plugins.
Se você pede para se envolver em algo e eles dificultam, é porque são idiotas. Basta procurar um projeto em que as pessoas sejam encorajadoras e agradáveis.
Depois de encontrar um projeto com pessoas simpáticas e encorajadoras e contribuir, você pode pedir a um dos contribuidores adultos ou, esperançosamente, a uma das pessoas encarregadas do projeto que lhe escreva uma pequena carta de recomendação.
fonte
Eu discordo respeitosamente daqueles que responderam "não se superestime"!
Se você gosta de programar na sua idade, vá em frente, provavelmente é ótimo e maior que as outras crianças da sua idade e, quando for veterano, poderá ser o próximo Brian Kernighan, Edsger Dijkstra ou Doug Lea!
Eu sugiro aprender o desenvolvimento do iPhone ou Android e criar alguns aplicativos reais.
Seja ótimo em alguma coisa e enquanto estiver chegando lá, fale em conferências e escreva artigos que o notem e aprimorem suas habilidades.
Faço programação desde o final dos anos 70 e em Java desde 1996. Posso dizer que o livro sobre Java mais importante que já li foi o Gang of Four Design Patterns, que foi escrito uma década antes da invenção do Java. Leia e seja ótimo!
O setor que mais paga atualmente é financeiro, mas isso está mudando rapidamente. Eu acredito que vai voltar, mas você nunca sabe!
Seja um programador e desfrute de alto emprego e satisfação no trabalho!
Boa sorte, você tem uma grande carreira pela frente!
fonte
Crie um aplicativo da Web que funcione bem no iPhone e no Android (ignore os navegadores padrão por enquanto) e aproveite os recursos estendidos do HTML5 (https://developer.mozilla.org/en/HTML/HTML5) para superar a latência da rede irregular, e a limitação dos navegadores de telefone. Isso provavelmente significa entregar um aplicativo de navegador javascript + html5 que se conecta a uma API baseada em servidor. (escolha xmlrpc / json / yaml, não SOAP). faça gritar rápido. No servidor, eu recomendo usar o cherrypy no linux (debian) no VPS barato. Você pode comprar no 123systems.com, buyvm.net (preferencial, mas geralmente não disponível) por menos de US $ 4 por mês. Aprenda a usar Python e use o Fabric para implantar suas coisas no (s) servidor (es). Adquira um domínio .info em namecheap.com por US $ 2,99 por ano e use dnsmadeasy.com para DNS (mais caro, mas vale a pena-- usá-los há anos, nunca teve um único problema), onde você pode fazer o balanceamento de carga via DNS. Além disso, não se deixe levar pelos bancos de dados. Use o sqlite e aprenda a projetar suas tabelas manualmente com instruções sql. Finalmente, com uma máquina, você provavelmente pode lidar com 30.000 usuários. (2.000 simultaneamente em uma ocorrência no servidor a cada 3 segundos). Lembre-se de armazenar em cache o máximo possível no armazenamento do HTML5.
Se você fizer isso e fizer um blog sobre isso e twittar sobre as entradas do blog e seu progresso, você definitivamente será notado. Concedido que há muito a aprender, mas você pode fazê-lo!
fonte
Em qualquer lugar da Internet - se você escrever algo que vale a pena mencionar, como um utilitário que faz algo elegante ou único, que um grande número de pessoas usará / fará o download -, você já executou a maior parte desta tarefa. Aplicativos interessantes, úteis e disponíveis, se anunciam.
Você já está aqui - este é apenas um, dentre muitas comunidades, que, fora do corte, deseja compartilhar e ser conhecido por saber - outras pessoas estão mais do que felizes em vincular tópicos de mérito à discussão atual.
Apenas programe para programar - desde que seja produtivo, criativo e útil - o aviso será recebido.
Um ponto que vejo mencionado em outras respostas, que também sustento, são as contribuições feitas para projetos de código aberto. A única maneira de melhorar a codificação é codificando - e qual a melhor maneira de fazer isso do que resolver os problemas atuais. Porque, sem um problema para resolver, você está codificando em vão ... oh, mais uma coisa, não importa os velhos rabugentos, com seus comentários inchados e intencionalmente desencorajadores, "jovem chicote" - você é jovem e entusiasmado, é tudo que você precisa.
fonte
Se eu fosse você, tornaria meu conhecimento conhecido e jogou meu trabalho, você diz que programa
c
para começar a criar programas voltados para a experiência de PC dos usuários comuns, criar coisas comoyoutube downloader
e iniciar seu própriodev team
ei, tenho apenas 19 anos e comecei a programar 4 anos atrás e pegue esse sou um jovem negro do capô .... para que eu pudesse entender a paixão que você pode ter pela programação, mas ao mesmo tempo a programação pode levar muito do seu tempo e esforço, se dar tempo para viver .. significa que todo esse tempo em um computador pode ser estressante para um garoto.fonte
Existem vários lugares para você colocar seu trabalho em ordem para ser reconhecido, mas, embora você considere seu trabalho de primeira, pode ser apenas um dia de trabalho para alguns. Quando eu tinha 16 anos, achei meu trabalho incrível, estava fazendo algumas coisas legais, mas atualmente estou trabalhando nesses campos, e onde eu estava naquela época não é nada comparado com o que estou agora, e ainda estou longe fora de onde eu quero estar.
fonte
Se você gosta de jogos, tente participar do Ludum Dare. Um bom jogo lá terá alguma fama.
fonte
Se você deseja ser notado E ganhar algum dinheiro, eu recomendaria o desenvolvimento móvel no iPhone ou Android. Você já conhece o C ++, que é um ótimo começo. Para desenvolvimento nativo no iPhone, você precisará do Objective C e, no Android, precisará de Java. Ambos são semelhantes ao C ++ (Java é mais fácil, pois não há gerenciamento de memória) e não será muito difícil de aprender. Assim, você não apenas escreverá aplicativos que o notarão e ganhará algum dinheiro, mas também aprenderá novos idiomas e plataformas quentes no processo.
fonte