Fazendo o salto lógico do noob completo para o desenvolvedor?

12

Venho programando muito levemente há alguns anos e não estou fazendo muito progresso. É algo que definitivamente me interessa, mas eu simplesmente não fiquei motivado. Então, acho que descobri o que está me matando. Todos os livros que li, todos os screencasts que assisti parecem ter perdido uma coisa importante:

Como passo de instruções de impressão, variáveis, etc., para coisas mais complicadas?

Por exemplo, vamos usar um site como o Posterous. Para quem não sabe, é uma plataforma de blog que aceita postagens por e-mail. O autor do blog possui um email especial @ posterous.com para o qual eles enviam postagens e são formatados e postados automaticamente.

Como um desenvolvedor usaria sua caixa de ferramentas de funções e instruções para realizar algo assim no back-end?

Sinto muito, se esta pergunta parece realmente ampla, está apenas me frustrando. Sinto que tenho uma compreensão decente de conceitos básicos, mas não tenho idéia de como realmente fazer alguma coisa.

Blair Beckwith
fonte
Eles analisariam o email, manteriam a codificação e INSERIRiam o texto em um banco de dados. Então é um esforço simples selecionar todas as postagens e exibi-las em uma determinada página. Para explicar sua própria falta de capacidade de programação, você pode melhorar isso apenas fazendo mais.
Ramhound 19/07/11
Tantas respostas incríveis até agora, pessoal. Tudo está se tornando um pouco mais claro agora. Obrigado a todos!
Blair Beckwith

Respostas:

12

A chave é dividir a tarefa em etapas discretas que você sabe fazer (ou pode descobrir como fazer). O que você sabe fazer é baseado no seu nível de experiência.

Vamos dar o seu exemplo de email Posterous:

Requisitos: aceite e-mails @ posterous.com, formate e publique-os no site.

Tarefa 1) Aceite o email.

Os e-mails provavelmente precisarão ser recuperados de um servidor de e-mail. Você precisará pesquisar as chamadas da API para recuperar os emails do seu servidor de email específico. Você também precisará descobrir como extrair o conteúdo do corpo do email (provavelmente outra chamada à API).

Tarefa 2) Formate o email.

Na tarefa 1, você provavelmente tem o conteúdo na memória em algum lugar. Formate isso para que seja compatível com a etapa 3 ...

Tarefa 3) Publique o conteúdo no blog.

Se você estiver adicionando esse recurso email2blog, provavelmente já possui um mecanismo para postar postagens no blog. Use esse mecanismo e, em vez de aceitar a entrada de uma área de texto em seu site em algum lugar, substitua-o pelo conteúdo da etapa 2.

Agora, como obtemos instruções de impressão, se instruções e funções para realizar cada uma das tarefas.

Observe como na tarefa 1, eu mencionei chamadas de API duas vezes? As chamadas à API são essencialmente funções que alguém escreveu para que você possa usar a funcionalidade delas. Se você souber como chamar funções, poderá pesquisar a chamada API correta que precisa para recuperar mensagens do servidor de mensagens.

Não discuti muito sobre formatação, mas se você sabe como manipular String, sabe como formatar. A formatação de uma página html é um exercício para adicionar tags como a <b>bolded text</b>dentro da sua string em algum lugar.

Na Tarefa 3, mencionei que havia algum tipo de mecanismo para postar blogs. Se essa é uma plataforma de blog existente, você já deve estar familiarizado com isso. Caso contrário, você precisará aprender sobre o HTTP Post e outras coisas relacionadas à estrutura da web.

Se, depois de ler tudo isso, você ainda não tem idéia do que estou falando, espero ter convencido você de que não há substituto para a experiência. Então basta ir lá e construir alguma coisa! Não se preocupe muito em cometer erros noob porque todo desenvolvedor já foi um noob.

Steve
fonte
5

O principal é encontrar algo que você deseja fazer e fazê-lo .

Foi assim que a maioria das grandes empresas começou.

  • Google? Brin e Page eram apaixonados por indexar a web.

  • Metafiltro? Matt Haughey era apaixonado por escrever e compartilhar.

  • Twitter? Dorsey era apaixonado pela simplicidade e você não é muito mais simples do que 140 caracteres.

  • Stackoverflow? Joel e equipe eram apaixonados por respostas.

Idiomas, como PHP, Perl, Python e Ruby, foram todos projetados da mesma maneira. O mesmo aconteceu com o GNU / Linux. Alguém teve um arranhão e começou a coçar esse arranhão e depois lançou suas ferramentas para consumo geral.

Então dê uma olhada ao redor e decida onde está sua coceira e comece a escrever um programa para coçá-la. Talvez você goste de jogar, para poder escrever alguns jogos. Talvez você tenha um problema com as tags ID3 da sua coleção de mp3 e precise corrigir isso. Ou talvez você esteja interessado em história da família e queira rastrear a web procurando referências a pessoas ou lugares em sua história. Ou talvez você queira interagir com o mundo real de alguma forma. Ou talvez você queira desenvolver o software FLOS - dê uma olhada no GitHub, Gitorious e Sourceforge.

Encontre algo pelo qual você se apaixone e comece a programar, e em breve você terá grandes programas antes de perceber. E é por isso que planejar de algum tipo é uma boa ideia;)

Wayne Werner
fonte
2

Lenta e gradualmente.

Normalmente, para projetos grandes, você não começa apenas mergulhando em um código de escrita. Alguém em algum lugar tem que ter um plano. Eles escrevem algo, os recursos do sistema que desejam. Então eles começam com a primeira página / janela / o que for. Então eles adicionam outro. Enquanto isso, lentamente adicionando recurso após recurso, corrigindo bug após bug. Não surge apenas, é preciso que haja uma imagem grande, um design geral.

Para melhorar, você precisa praticar! Comece com um pequeno projeto. Algo simples e que também lhe interessa. Planeje o que está fazendo antes de fazer, pois verá que não é tão difícil "realmente fazer alguma coisa".

FrustratedWithFormsDesigner
fonte
1

Você pode assistir a tantos screencasts, ler quantos livros e seguir quantos tutoriais desejar, mas nunca sentir que está indo a lugar algum. Você precisa descobrir algo que esteja interessado em criar. Em seguida, divida-o e tente criá-lo. Você encontrará muitas coisas que talvez não saiba. Mas você as pesquisa e aprende as tarefas mais complexas à medida que avança.

Ryan Matthews
fonte
1

Também encontrei esse desafio e, em geral, encontrei minha solução: eu precisava de uma fonte externa para me levar a ser mais produtivo.

Você pode ser tão fascinado pela tecnologia quanto qualquer um, tão empolgado com a programação quanto qualquer um e tão inteligente e rápido a aprender quanto qualquer um, e isso só significa muito a menos que você suja as mãos e faz coisas. Mas pode ser difícil saber por onde começar, e mesmo se você tiver uma idéia de por onde começar, pode ser difícil fazer a bola rolar.

Se você é um bom iniciante, provavelmente só precisa de algumas idéias. Tente alguns quebra - cabeças de programação ou observe os utilitários simples que você usa regularmente e pergunte a si mesmo "Posso fazer isso? Se fizesse, o que mudaria?"

É realmente assustador sentar-se na frente de um editor aberto ou de um pedaço de papel em branco e dizer "Ok, cérebro, crie! " . dirija a partir daí, você pode ir mais longe.

E, se você achar que não consegue se programar, peça a alguém que lhe dê um trabalho, com um prazo, requisitos e tudo. Isso vai te dar um chute.

asfallows
fonte
1

O fato de você ter conhecimentos básicos é bom - eu não sou profissional, mas posso vender o que faço, por isso devo estar fazendo algo certo. Eu recomendo aprender o básico sobre o seu idioma e a plataforma para a qual você está desenvolvendo (e parece que você tem).

Primeiro, mapeie o que você está tentando fazer e tenha uma idéia de como vai fazer, tudo se resume a detalhes específicos, pois ajuda você a descobrir as coisas mais rapidamente. Em seguida, basta pesquisar no Google o que você está tentando fazer no idioma que está usando, se você estiver preso - até faça perguntas no Stack Overflow (eu mesmo já fiz mais de 70 perguntas, hehe)!

Pessoalmente, eu aprendi pesquisando no Google, eu nem aprendi o básico no começo, o que eu deveria ter feito, no entanto, quando eu estava fazendo algumas coisas muito boas, ainda não sabia o que era uma "matriz". ;)

Jeff
fonte
0

Penso que para desenvolver suas habilidades no back-end de interfaces, você deve começar a manipular dados. A maioria dos grandes projetos é sobre mover, transformar e exibir dados.

Sei por mim mesmo que não tive uma boa compreensão de projetos maiores até me sentir confortável com vários tipos diferentes de acesso a dados e manipulação de arquivos.

J Lundberg
fonte
0

Saltar para algo que está um pouco acima da sua cabeça e descobrir isso pode ser uma ótima maneira de expandir suas habilidades. Você pode tentar examinar algumas das séries do O'Reilly Cookbook:

http://oreilly.com/store/series/cookbooks.html

Os sons formato Problema / Solução / discussão, como pode ser exatamente o que você está procurando, código 'receitas' que irá FAZER algo interessante e alguma discussão sobre como ele funciona.

DKnight
fonte
1
Se você decidir comprar, certifique-se de encontrar um código de cupom primeiro: retailmenot.com/view/oreilly.com
DKnight
0

Eu acho que você está apenas não se desafiando a fazer mais.

Se você está realmente curioso sobre como fazer algo, pesquise! Se você quiser saber como o Posterous funciona, tente começar com algo pequeno, como pesquisar que tipo de ferramentas você precisa, como obter informações de uma caixa de texto para um site. Então você gradualmente se baseia nisso. A próxima pergunta pode ser configurar uma conexão de email para um site e um banco de dados.

Você tem a melhor ferramenta de que precisará, a Internet.

Bryan Harrington
fonte
0

Além de dividir o projeto em tarefas, a chave também é aprender a reutilização de código. Divida seu código em módulos que você pode reutilizar em outros projetos nos quais você precisa fazer a mesma coisa.

Por exemplo, neste projeto de exemplo, você provavelmente estará trabalhando no banco de dados para armazenar as postagens do blog. Você poderia escrever uma classe de banco de dados para conectar-se ao banco de dados, fazer consultas, obter os resultados etc. Em todos os projetos futuros, você poderia usar a mesma classe e poder trabalhar com o banco de dados facilmente.

Click Voto a favor
fonte