
Acontece que é difícil para iniciantes entender para onde ir, o que fazer. Acontece que esses problemas surgem não apenas para iniciantes.
Muitas pessoas entendem para onde se mover, o que fazer, tem um palpite. E isso leva muito tempo. O tempo é o recurso humano mais importante que deve ser protegido e não espalhado por ele. E para não perder esse tempo, quero compartilhar algumas idéias, dicas.
Para muitos, essas dicas parecem "óbvias", especialmente para programadores experientes, mas isso não deve negar sua correção.
Críticas construtivas são bem-vindas.
Seja honesto, não tenha medo de fazer perguntas e pareça estúpido.
- Os sistemas operacionais do dispositivo, compiladores, intérpretes, a arquitetura de sistemas e sistemas de software reconhecidos .
Qualquer código executável é criado e executado em algum tipo de ambiente. Não conhecendo esse ambiente, é difícil criar um bom produto. - Algoritmos, estruturas de dados, matemática discreta .
Em nossa vida real, há programadores que se sentem bem por não ter o conhecimento listado em detalhes. Por exemplo, para resolver muitos problemas aplicados de aplicativos corporativos, isso é suficiente. A implementação de muitos algoritmos já está embutida na plataforma. Por exemplo, classificação, pesquisa etc.
Mas quando se torna necessário resolver problemas mais complexos, a invenção da bicicleta pode começar. O conhecimento de algoritmos pode simplificar bastante a tarefa. - Outras linguagens, ferramentas de desenvolvimento e interação .
Idiomas diferentes resolvem problemas diferentes. Por exemplo, R, MathLab fará um excelente trabalho de problemas de matemática. Sem linguagens de marcação HTML, o XML não desenvolve um aplicativo da web.
E o conhecimento, por exemplo, de C ou assembler permitirá que você desenvolva um produto que funcione mais efetivamente com "hardware".
Aprender novas linguagens, entender sua filosofia e não apenas sintaxe, expandirá o escopo de pensamento e entendimento dos princípios de programação. O conhecimento de apenas algumas línguas "básicas" permitirá no futuro aprender facilmente novas.
- Código, documentação e descrição estrangeiros .
Estudando o código de outra pessoa, você pode descobrir muitas coisas interessantes. Outras abordagens e métodos de programação que podem ser adotados. Qualquer novato deve fazer isso para ingressar rapidamente na equipe de desenvolvimento.
E se, antes de começar a procurar a causa do erro no código de outra pessoa, leia a documentação ou a descrição, você poderá reduzir significativamente o tempo necessário para pesquisar.
- Comentários sobre a revisão do seu código .
Você pode considerar isso como obter conselhos sobre como melhorar o código e, além disso, de graça.
Também é uma boa maneira de "comunicar" entre programadores. Especialmente se a equipe de desenvolvimento estiver distribuída ou houver introvertidos fortemente expressos na equipe.
Também parece aprender o código de outra pessoa, mas, por outro lado, a moeda. Quando ambos: o revisor e o revisor, ganhem experiência e aprendem algo novo. - Metodologia de desenvolvimento .
Metodologias são fundamentais para gerenciar o desenvolvimento de software.
A escolha de uma metodologia específica depende de muitos fatores: o tamanho da equipe, as especificidades e a complexidade do projeto, a estabilidade e a maturidade dos processos na empresa, as qualidades pessoais dos funcionários e muitos outros. O sucesso do projeto depende em grande parte dessa escolha.
- A área de assunto com a qual você trabalha .
Não conhecendo os princípios do processo, o que e como as pessoas, futuros usuários do produto fazem nesse processo, é quase impossível automatizá-lo e melhorá-lo ainda mais.
É necessário tentar entender o que o usuário final "cozinha".
Você pode ler vários livros, realizar mil tarefas, mas sem prática não consegue bons resultados.
- Apresente suas idéias .
Para que o produto futuro não seja desenvolvido por si mesmo, mas traga benefícios, você precisa apresentar suas idéias. Ao mesmo tempo, pensando nas metas e nos resultados esperados que o cliente comercial, o usuário final está buscando. Caso contrário, a ideia não é vender.
Com uma boa apresentação da ideia, você pode obter bons conselhos antes de sua implementação. Mesmo que a idéia não seja vendida pela primeira vez. - Escreva código legível, compreensível, estruturado e extensível .
Se necessário, desenvolva a funcionalidade, forneça suporte ao produto. Algum tempo depois, talvez seja necessário descobrir rapidamente o código você ou outra pessoa. - Crie código com o comportamento esperado .
O produto liberado deve ser confiável e sustentável. - Teste seu código você mesmo .
Este item não significa que você precisa testar em vez do testador. Este parágrafo indica que o desenvolvedor deve enviar o código para o teste, confiando que ele fez tudo o necessário para que o testador possa detectar o menor número possível de erros.
Ao desenvolver o código, pode-se supor que o produto final será o sistema de controle da aeronave, durante os vôos de teste nos quais o projetista do sistema deve estar a bordo.
- Pratique mais .
Como em qualquer outro negócio, a experiência vem apenas com a prática. Dominar a programação não é o fim de uma universidade ou de algum curso. Este é um longo caminho para a vida. E é importante não parar por aí.
Sem comunicação, você é como um bom livro em um idioma "morto". É, mas não adianta.
- Ajude, compartilhe conhecimento .
Há um importante "Mas!": Não faça isso por outro.
É necessário suprimir o desejo "é mais fácil fazê-lo do que explicar".
Quanto mais você explica, em vez de explicar por outro, mais pessoas ao seu redor poderão aprender algo novo. - Encontre um Padawan / mentor e torne-se seu mentor / Padawan .
Precisa enfatizar.
Apesar da aparente contradição das frases, a essência está em uma coisa - o mentor e Padawan crescem e se desenvolvem juntos. Essa é a principal e essencial diferença da interação dos papéis “professor - aluno” aprendidos na escola. Quando, na maioria dos casos, essa interação se resume à fórmula "eu sou o chefe, você é um tolo". - Participe de campeonatos de programação .
Isso permitirá que você desenvolva uma fatia de conhecimento, identifique lacunas, pontos fortes e fracos, olhe para si mesmo de fora. - Comunicar, trabalhar em uma equipe de gurus como você .
Nesse caso, dois componentes podem ser distinguidos:
- o primeiro é o aprimoramento das habilidades técnicas;
- o segundo - aperfeiçoar as comunicações, habilidades de comunicação.
Ambos os componentes são necessários para se tornar um profissional. E ambos precisam ser aperfeiçoados.
Literatura e referências
Os links fornecidos não são necessariamente lidos. Que livro, artigo, material para ler, onde você precisa se atualizar - isso é puramente individual. Todo mundo deve decidir isso por si mesmo.
Os links abaixo são alguns pontos de partida a partir dos quais você pode começar.