Coding Craft. O ofício da codificação.

Programadores podem e devem ser seres objetivos. Programadores podem e devem ser seres que buscam sempre a excelência, a qualidade e a elegância, como assim nos foi ensinado em nossas faculdades. Tal como os artesãos, softwares devem (ou deveriam) ser vistos como peças únicas e excelentes de trabalho. Uma pena que não seja assim no plano prático.

Mas o que nos impede de sermos assim? Quais são as dificuldades materiais, intelectuais e funcionais que fazem programadores, analistas, engenheiros e arquitetos de software conceberem tantos sistemas ruins, quebradiços e mal estruturados, sobretudo quando falamos do Brasil? Num mundo onde praticamente lidamos com poucas limitações materiais, onde as possibilidades são perto de infinitas, por que os resultados são tão medíocres?

Buscando respostas a estes questionamentos, e propondo um disciplina cultural e individual que vá na busca da constante melhoria dos sistemas produzidos por aí, lanço esta iniciativa.

O que é?

A forma que melhor encontrei de fazer isso é através de uma série de cursos direcionados a alguns frameworks e linguagens de programação consagradas. Como faz parte do meu domínio, o primeiro curso é em cima de ASP.NET MVC 5 e ASP.NET Web API 2.2. No futuro, pretendo expandir para outras linguagens e frameworks.

O que vejo?

Há muitos cursos feitos por autores bem famosos pela Internet sobre uma série de tópicos comuns de interesse a uma série de programadores. Os grandes problemas deles são:

  • São tutoriais iniciais: não são tutoriais que efetivamente lidam com os grandes problemas que temos hoje no desenvolvimento de sistemas. É bastante comum um aluno fazer vários tutoriais e recorrer ao Stack Overflow em Português pedir ajuda. Como usuário com conhecimento de causa, é bastante comum a comunidade simplesmente não ajudar porque "a pergunta não está adequada aos padrões do site";
  • Ideias ruins são expostas como boas: metodologias de eficácia duvidosa, más práticas e complexidade desnecessária são mostradas em cursos e tomadas como ótimas e inquestionáveis por todos. O debate em torno delas é empobrecido pela formação de grupos de desenvolvedores de postura amadora e parcial, que não admite antagonismos;
  • A eficácia do aprendizado é problema do aluno: com a ideia da massificação dos cursos, os professores não se interessam sobre o resultado do aprendizado do aluno, sendo um simples cumprimento de carga horária suficiente para uma diplomação. Aqui, penso que a figura do tutor seria mais adequada para acompanhar o progresso de cada um dos alunos.

Baseando-me na sensibilidade que tenho com as dificuldades dos novos usuários do Stack Overflow em Português e os erros mais comuns que ocorrem no desenvolvimento de seus sistemas, desenvolvi uma metodologia nova de cursos que visa preencher essas lacunas que ficam no aprendizado dos programadores.

As Premissas de um Curso do Coding Craft

  • Muito trabalho. Muito código. Muito desenvolvimento;
  • Problemas difíceis e desafiantes. Nada de tutorialzinho de fazer lojinha virtual ou biblioteca de músicas. Vamos desenvolver coisas concretas e úteis;
  • Turmas pequenas, quando cabível. Cinco alunos está ótimo;
  • Aulas individuais, interesse pelo aluno, por seu conhecimento e experiência;
  • Foco na disciplina pessoal. Alunos dessa iniciativa devem ter um horizonte, um novo objetivo a ser conquistado, uma nova perspectiva de carreira e de ganho, e seguir habitualmente os passos para chegar lá. Se essa perspectiva é empreender, o aluno pode contar com todo o apoio do tutor para alcançá-la.
  • Foco na excelência. Cada aluno, ao se deparar com um problema a ser resolvido, deve buscar resolvê-lo com o máximo de excelência possível, além de buscar junto aos colegas a melhor maneira de resolver. Meia-solução não é uma solução;
  • Colaboração e solidariedade. Por trás de um grande trabalho há um grande time. O grupo de alunos, quando houver, deve buscar se ajudar compartilhando soluções e conhecimento, mas a solução deve ser individual;
  • Curva de aprendizado é uma preocupação do tutor. O aluno deve conseguir fazer uma aplicação com alguns resultados esperados. Se não conseguir, o tutor deve se concentrar em resolver as dúvidas que existam nos pontos de dificuldade.

Diplomação

Colocar um certificado de papel na parede, assinado pelo seu professor deve ser maneiro, mas quase ninguém, exceto você, olha essa parede todos os dias. Além de antiquado, o diploma ou certificado de papel nada agrega à sua bagagem na hora de uma mudança profissional de rumos. Nessa iniciativa, cada aluno tem um post indexado pelo Google, com diversas referências a trabalhos e portfólio. O post é atualizado conforme os novos progressos do aluno, como novos cursos, conhecimentos e realizações.

Cursos

Veja os cursos aqui.

Alunos

Veja nossos alunos aqui, com suas respectivas diplomações.