
No último post , comecei a história da Escola 42, famosa por seu sistema revolucionário de ensino: não há professores, os próprios alunos conferem o trabalho um do outro, você não precisa pagar pelos estudos. Nesta postagem, falarei mais sobre o sistema de treinamento e quais tarefas os alunos realizam.
Não há professores, existe a Internet e camaradas. A educação na escola é baseada nos princípios do trabalho conjunto do projeto - aprendizagem ponto a ponto. Os alunos não estudam nenhum livro, eles não dão palestras para eles. Os organizadores das escolas acreditam que tudo pode ser encontrado na Internet, pergunte a amigos ou alunos mais experientes com quem você está trabalhando em um projeto.
As tarefas concluídas são verificadas 3-4 vezes por outros alunos, para que todos possam ser alunos e mentores. Também não há classificações - você só precisa concluir a tarefa correta e completamente. Mesmo que seja feito 90%, será contado como um fracasso.
Sem classificações, existem pontos. Para colocar o projeto a ser verificado, você deve ter um certo número de pontos - pontos de correção. Os pontos são ganhos ao verificar a lição de casa de outros alunos. E esse é um fator de crescimento adicional - você precisa entender uma variedade de tarefas, às vezes excedendo o seu nível de conhecimento.
“Alguns projetos são um verdadeiro cosmos, o cérebro explode a partir deles. E então, para ganhar apenas um ponto de correção, você precisa suar o dia inteiro, entendendo o código. Quando tive sorte e recebi até 4 pontos em um dia - este é um sucesso raro ”, diz meu amigo, aluno Sergei.
Sente-se no canto não vai funcionar. Os projetos são realizados sozinhos e em pares, e em grupos maiores. Eles são sempre protegidos pessoalmente, é importante que todos os membros do grupo participem ativamente e que todos entendam o código e sejam altamente motivados. Silêncio e sente-se de lado aqui não funciona. Dessa forma, a escola desenvolve trabalho em equipe e habilidades de comunicação bem-sucedidas. Além disso, todos os alunos se conhecem e se comunicam, o que é muito útil para networking e futuras carreiras.
Gamificação Como em um jogo de computador, os alunos sobem de nível e monitoram seu progresso com a ajuda do Gráfico Sagrado - um cartão "sagrado", que mostra claramente todo o caminho percorrido e o que está por vir. Como no RPG, a "experiência" é acumulada para os projetos e, após acumular uma certa quantia, é feita uma transição para um novo nível. A semelhança com o jogo real também está no fato de que cada novo nível é mais complicado que o anterior, há mais e mais tarefas.

Glass e Adm. A escola possui duas divisões principais - Bokal (técnicos) e Adm (administração). Glass - lida com questões técnicas e com o componente pedagógico, enquanto Adm - com questões administrativas e organizacionais. A reserva de pessoal da Glass / Adm é reabastecida às custas dos alunos estagiários da Escola.
Como e o que é ensinado aqui
Tudo começa com "C". A escola usa apenas Unix, considerando que o Windows não é a melhor escolha. O código é ensinado desde o básico, forçando a compreender a própria lógica da programação. Nos primeiros níveis, todos os projetos são realizados apenas em C e C ++, o IDE não é usado. Os alunos usam o compilador gcc e o editor de texto vim.
“Em outros cursos, você receberá funções, será solicitado a concluir um projeto e só então será explicado como elas são programadas. Aqui você não pode usar a função até que você a escreva. No começo, enquanto ainda estava no “pool”, não entendi por que precisava desse malloc, por que eu deveria alocar memória sozinho, por que não aprendi Python e Javascript. E, de repente, chega a você e você começa a entender como o computador pensa. ”
Normineut. Após a proteção bem-sucedida, todos os projetos são carregados na contraparte local do GitHub. Mas antes disso, eles devem passar por uma verificação de conformidade com o programa Norminette.
“Se o código funcionar bem, mas houver um vazamento de memória, o projeto será considerado com falha. Também verificada quanto à sintaxe. Temos uma lista de funções, atributos, sinalizadores proibidos e seu uso é equivalente a trapaça. Você tem que fazer tudo com suas próprias mãos e com muito cuidado ”, diz Sergey.

Exemplos de tarefas
Todas as tarefas executadas pelos alunos são verificadas de três maneiras: programaticamente, pela lista de verificação de outros estudantes e representantes do Glass. Abaixo estão alguns projetos que são realizados de forma independente e são verificados de acordo com uma lista de verificação:
Init (Administração de sistema e rede) - você precisa instalar o sistema operacional Debian na máquina virtual e configurá-lo de acordo com os requisitos especificados na tarefa.
Libft - implemente funções de biblioteca padrão em C, como: strcmp, atoi, strlen, memcpy, strstr, toupper, tolower
, etc. Nenhuma biblioteca de terceiros, todas com suas próprias mãos. Você escreve cabeçalhos, implementa você mesmo, cria um Makefile
, compila você mesmo.
Printf - é necessário implementar completamente a função printf
padrão com todos os seus argumentos em C. Isso é bastante difícil para iniciantes.
Fillit - era necessário coletar um quadrado da área mínima da lista de tetramino que chegava à entrada. A cada nova etapa, um novo tetramino foi adicionado. A tarefa é complicada pelo fato de os cálculos precisarem ser feitos em C e pelo tempo mínimo.
Libls - implemente sua versão do ls
com todos os seus sinalizadores padrão. Você pode e deve usar as conquistas de tarefas anteriores.
Rheshes
Além das tarefas executadas sozinhas, há uma categoria separada de tarefas que são executadas por um grupo de alunos - juncos. Ao contrário dos projetos independentes, o rush não é verificado pelos alunos em uma lista de verificação, mas pelos funcionários da escola de Bokal.
Pipex - o programa de entrada aceita nomes de arquivos e comandos arbitrários do shell, o aluno deve demonstrar a capacidade de trabalhar com pipes no nível do sistema e implementar uma funcionalidade idêntica ao comportamento regular do sistema no terminal.
Minitalk - implemente um aplicativo cliente-servidor em C. O servidor deve poder suportar vários clientes e imprimir mensagens enviadas pelo cliente usando os sinais do sistema SIGUSR1 e SIGUSR2.
Congelado - escreva um servidor de IRC em Golang, capaz de trabalhar com vários clientes ao mesmo tempo, usando simultaneidade e goroutines. O cliente deve conseguir fazer login usando um nome de usuário e senha. Um servidor de IRC deve suportar vários canais.
Conclusão
Qualquer pessoa pode entrar na Escola 42, e você não precisa ter conhecimentos especiais para fazer isso. Apesar do programa ser desenvolvido para iniciantes, tarefas simples são rapidamente substituídas por tarefas não triviais, geralmente com formulações difusas. O aluno deve dar o máximo de dedicação, a capacidade de procurar as informações ausentes na documentação oficial em inglês e também se unir a outros alunos para concluir as tarefas. O programa de treinamento não possui uma sequência estrita; portanto, todo mundo escolhe um caminho de desenvolvimento para si mesmo. A ausência de classificações de ponta a ponta permite que você se concentre no seu progresso e desenvolvimento, e não se compare com os outros.