Lembrando que todos os conceitos listados abaixo, são de grande importância e aplicar todos eles irá garantir que sua aplicação seja desenvolvida com qualidade.
1 – Domine algoritmos: Sim, com certeza esse será o principal desafio, dominar e aplicar boas práticas de algoritmos, implementar código limpo e objetivo, que facilite na sua compreensão e principalmente quando for realizar manutenção. Na prática toda regra de negócio do sistema, independente de qual linguagem de programação utilizar, exigirá uma boa codificação de algoritmos para manter seu sistema eficiente perante a grande concorrência de acessos que terá seu sistema web.
2 – Aprenda Padrões de Projeto: Esse conceito é complementar ao primeiro, pois atualmente existem diversos padrões, conhecidos também como Design Patterns. Eles já foram testados e aplicados por diversos sistemas no mundo. Conhecer os principais padrões existentes na linguagem de programação que utiliza será um diferencial na hora de identificar e resolver um problema no sistema, o tempo de codificação será menor, pois você não ficará inventando a roda e sim implementando trechos de código seguros, estáveis e que já são utilizados por diversas aplicações. O Java, C# e Javascript são exemplos de linguagens ricas em Design Patterns.
3 – Conheça mais de uma linguagem de programação: Cada aplicação seja web ou não, possui requisítos únicos e diferenciados pelo qual nem sempre será eficiente sua implementação utilizando a mesma linguagem que usou em outro sistema. O ideal é sempre estudar um pouco sobre novas linguagens pelo menos os principais conceitos e características que ela provê, pois além de enriquecer seu currículo, você estará apto para tomar boas decisões sobre qual linguagem será mais eficiente e produtiva para aplicar no desenvolvimento de tal sistema.
4 – Use frameworks para agilizar o desenvolvimento: Assim como é necessário saber qual linguagem de programação utilizar, também recomendo que conheça os principais frameworks da linguagem de programação escolhida. Para quem não conhece, um framework é um conjunto de biblioteca de códigos específicos para resolver algum problema de programação. Existem vários frameworks para resolver diversos tipos de problemas em cada linguagem de programação, alguns exemplos de frameworks: ORM, MVC, manupiladores de datas, bibliotecas de estrutura de dados, frameworks para conexão SMTP, e muitos outros. Geralmente uma aplicação possui diversos frameworks interligados e é claro que nem sempre você encontrará um framework para resolver determinado problema, e quando isso acontecer, será necessário você programar um algoritmo para isso ou criar um framework publicando na web para que outros que estiverem no mesmo problema que o seu, utilizem-o. Trabalhar com frameworks é fundamental para não perder tempo desenvolvendo funcionalidades do zero, pois sabendo-se que existe um framework já utilizado por muitos e que resolve com eficiência tal problema, pra que inventar a roda?
Obrigado pessoal e em breve continuarei com a segunda parte desse post.


bom pessoal desenvolver um sistema do zero seja ele qual for web ou desktop e um grande desafio desafio maior seria entender as mais de 200.000 linhas de codigo em C e outras linguagems do kernel linux mas desenvolver um sistema do zero e realmente complicado e exige muito esforço e competencia tendo que conhecer nao so uma linguagem mas tmbm como montar um excelente banco de dados para seu sistema operacional ou web .
muito boa a iniciativa, irei acompanhar esta série de tutoriais. =)
Parabéns!
Já saiu a segunda parte desse post!!
http://www.udgwebdev.com/desenvolvendo-um-sistema-web-do-zero-parte-2/
Muito bom o post, esta nos meus favoritos o seu blog.
Se eu seguisse este msm conceito conseguiria editar um sistema operacional ???
tipo se eu baixasse o núcleo do linux e usasse este tutorial acima e outras postagens suas,conseguiria desenvolver o meu proprio sistema operacional ???
Nossa desenvolver o núcleo do linux é mais voltado para performance independente se seu código é legível para outros usuários, porque uma vez fui tentar entender o fonte do linux e é bizarro parece que foi feito para robos e não humanos.
Mas resumindo, muitos desses conceitos devem ser praticado para qualquer plataforma de desenvolvimento, seja web, mobile ou desktop.
Cara, se você quer desenvolver um Linux, o melhor jeito é utilizar o conceito do LFS ( Linux From Scratch), que você monta o seu sistema do Zero! Claro que você vai precisar de um Linux base para montar o seu novo Linux. (não me pergunte como foi feito o primeiro Kernel Linux se não tinha um sistema base para molda-lo).
Programação para Desktop, Mobile ou Web já é outro conceito, você pode começar do Zero, um arquivo em branco em .html e fazer um portal tão grande como o da Terra por exemplo… basta apenas muitas horas de dedicação (bato horas nisso).
É isso! Até mais.
O Linux base (o primeiro) foi criado a partir do Minix