Ler livros, assistir vídeos e revisar tutoriais é muito fácil. Tomar notas e aprender o material pode ser um pouco mais difícil, mas mesmo assim, qualquer pessoa com um cérebro decente e uma quantidade razoável de interesse é fácil (sem mencionar, divertido).
O fato é que isso realmente não o prepara para escrever um programa ou site completo. Digamos que você é adolescente (apenas no ensino médio, não tem cursos de ciência da computação ou de programação (e não tem experiência no mundo real), e você sai com o Groupon. Ou até Mark Zuckerburg, com certeza ele era um gênio, e ele era um programador muito capaz ... mas como?
Como você recomenda que as pessoas que não são necessariamente novas na programação, mas que sejam novas na programação de aplicativos reais e programadores reais, continuem desenvolvendo-o? Qual é o "processo de desenvolvimento" - especialmente para programadores solteiros (ou talvez 2-3 adolescentes)?
Além disso, no que diz respeito ao desenvolvimento web, qual é o processo? Algo como o Facebook ou o Groupon foi escrito com uma estrutura (como o CodeIgniter ou o Zend para PHP)? Ou eles desenvolvem suas próprias estruturas? Não estou perguntando como ter uma ótima idéia, mas como implementá-la de maneira eficaz? Alguém tem conselhos?
Li alguns livros sobre C e C ++ (principalmente a linguagem de programação C e a linguagem de programação C ++) e fiz o AP Computer Science (além de ler alguns livros adicionais sobre Java e OOP). Também li alguns tutoriais sobre PHP (e CodeIgniter) e Python. Mas ainda estou no ensino médio e tecnicamente nem tenho idade suficiente para trabalhar em um estágio por mais alguns meses.
fonte
Reading books, watching videos, and reviewing tutorials is all very easy
. Sim, lê-los é fácil, entendê- los é a parte mais difícil.Respostas:
Há uma diferença entre simplesmente saber programar e estruturar um programa (arquitetura de software).
Um livro simples sobre uma linguagem de programação específica ensinará apenas as ferramentas que você pode usar para configurar a arquitetura de um programa.
Existem também livros que ajudam na arquitetura de software. Os tópicos que você deve procurar são padrões de design , abstração de software , arquitetura / design de software e muitos mais ... (O Head First Design Patterns foi um verdadeiro revelador para mim.)
Para um conjunto mais amplo de recursos, essa pergunta pode lhe interessar.
Ainda a melhor maneira de aprender a estruturar adequadamente um programa inteiro é a experiência prática, sendo muito aberto a sugestões e novas técnicas.
fonte
É o mesmo problema muito comum no desenvolvimento de jogos (independentes): como terminar.
Além de garantir que você possa fazê-lo, porque você tem todo o conhecimento necessário ou está disposto a aprender - e verificou que outras pessoas verificaram que não era impossível ...
... a principal coisa que possibilita o "acabamento" é definir objetivos .
Os objetivos são os objetivos a serem alcançados, eles não devem descrever como chegar lá, apenas quais são os requisitos / recursos básicos que você precisa para considerar uma primeira versão do seu aplicativo como "concluída". Além disso, não defina objetivos muito longe no tempo.
Escreva seus objetivos em algum lugar. Escreva.
Depois de definir os objetivos, você precisará apenas encontrar maneiras de alcançá-los. Esse é o famoso "caminho" que é mais interessante que a chegada. Não se preocupe em alcançar paredes e descobrir como você estará errado. Na maioria das vezes, se o assunto for novo, você entenderá errado, aprenderá o porquê e poderá fazê-lo corretamente, e terá feito uma outra configuração para se aproximar dos objetivos.
Mesmo no design de jogos, sabemos que você precisa fornecer objetivos para garantir que o jogador saiba, mesmo que de maneira abstrata, o que ele precisa alcançar, seja como for.
fonte
Ler muito sobre nadar não faz de ninguém um nadador. É claro que ele prepara alguém com o conhecimento necessário, para se tornar um nadador, você precisa pular na água.
Vejo que muitas pessoas que fizeram isso do que pensaram / leram sobre fazê-lo são as que obtêm sucesso.
Se você quer ser nadador, basta pular na água e aprender a nadar; se você quiser ser um programador, comece a programar com uma idéia e aprenda a programar.
Acredito que o ensaio de Peter Norvig é relevante aqui: ensine-se programação em 10 anos
fonte
Parece que você se concentra demais nos aspectos de implementação do software, que é apenas uma fração de todo o processo de desenvolvimento de software (consulte SDLC). Pode ser necessário examinar algumas metodologias de software e aprender a usar uma que você gosta. Além disso, leia os estudos de caso, descubra as vantagens e desvantagens de cada ferramenta que você também consideraria usar em seu software, avalie e siga a partir daí. Após uma rápida leitura da sua pergunta, talvez você precise se concentrar nas áreas de Análise e Design áreas de de software e aprender sobre UML, decomposição e talvez alguns padrões de design. Talvez ..
Espero que isto ajude..
fonte
Resposta curta, defina seus objetivos e comece.
Não há livro ou maneira de ensinar isso a você, mas experiência prática.
Você cometerá muitos erros e gradualmente ganhará experiência. Portanto, se você encontrar um problema, pense nisso, tente encontrar uma solução e, se você falhar, vá para o stackoverflow e obtenha ajuda. Também faça análises de código o mais cedo possível.
Depois de terminar seu primeiro projeto e ter uma boa compreensão dos problemas técnicos, comece a examinar tópicos mais abstratos e mais avançados da engenharia de software.
Com sua consciência recém-adquirida de problemas comuns, você obterá os resumos dos livros sobre conceitos de código limpo e dissociado, porque seu primeiro projeto será uma bagunça insustentável.
Livros (suspeitos do costume):
fonte
Neste ponto, você precisa parar de ler sobre programação e iniciar a programação. Se você deseja criar um site, siga um tutorial para a estrutura de sua escolha. Basta escolher um que agrada a você. Percorra o tutorial para aprender como usar a estrutura e comece a criar seu próprio aplicativo da web.
Depois de escrever algum código, os livros sobre técnicas de programação terão muito mais significado.
fonte
Quando você sair e tentar escrever alguns programas que deseja vender, recomendo que você leia este ensaio de Joel Spolsky sobre "A camada de abstração do desenvolvimento".
http://www.joelonsoftware.com/articles/DevelopmentAbstraction.html
fonte