Quero conversar com você sobre o motivo pelo qual reparamos o encanamento com mais frequência do que escrevendo dissertações sobre ele, sobre diferentes abordagens para o ensino de programação e como tentamos aplicar um deles em nosso novo produto Hyperskill.
Se você não gosta de apresentações longas, pule diretamente para a seção de programação. Mas será menos divertido.

Digressão lírica
Vamos imaginar uma certa jovem Masha. Hoje, Masha ia se lavar com frutas e assistir calmamente ao filme, mas aqui está a má sorte: de repente ela encontrou uma pia na cozinha entupida. O que fazer com isso ainda não está claro. Você pode adiar esse problema indefinidamente, mas agora há tempo livre; portanto, Masha decide lidar com o problema imediatamente. O senso comum sugere duas opções: a) ligar para o encanador; b) lidar sozinho. A jovem escolhe a segunda opção e começa a estudar as instruções no YouTube. Seguindo o conselho de Vasya_the_plumber, Masha olha embaixo da pia e vê um tubo de plástico serpenteando de várias partes. A garota desaparafusa cuidadosamente uma parte na base da pia e não encontra nada. Um pedaço do cano abaixo está entupido com uma substância desconhecida, e mesmo o garfo encontrado na mesa não consegue lidar com o entupimento. Especialistas da Internet dão previsões decepcionantes: a parte terá que ser alterada. No mapa, Masha encontra a loja mais próxima, leva um pedaço infeliz de cano com ele e compra o mesmo, apenas um novo. No conselho do vendedor, Masha também pega um novo filtro para prevenção. A missão está concluída: a pia funciona como deveria novamente e seu personagem principal, entretanto, descobriu o seguinte:
- Tubos embaixo da pia podem desenrolar e torcer independentemente;
- A loja de encanamentos mais próxima fica a um quilômetro e meio do apartamento.
Provavelmente, Masha nem percebeu o quanto aprendeu e o que aprendeu, porque estava preocupada com seu próprio conforto no futuro e, ao mesmo tempo, com uma exibição de filme e uma maçã lavada. Da próxima vez que surgir um problema semelhante, a garota o resolverá muitas vezes mais rápido. De fato, Masha não apenas retornou o mundo ao seu estado habitual; ela estudou
indutivamente , ou seja, em ocasiões especiais e
orientada para a prática , ou seja, fazendo as coisas e não estudando-as em detalhes e com antecedência.
Tudo poderia ter sido diferente. Suponha que Masha se sente em uma poltrona à noite e de repente perceba que ela não está mental e fisicamente pronta para o bloqueio na pia. Ela entra rapidamente na academia de encanamento, estuda os tipos de pias, canos e possíveis conexões, a classificação de problemas com o encanamento e possíveis soluções. Masha não dorme à noite, lembrando termos e nomes. Talvez ela até tenha um doutorado em ciência teórica de tubos, onde ela fala sobre almofadas de borracha. Finalmente, depois de receber o certificado, Masha orgulhosamente inspeciona a cozinha com total confiança de que agora até um pequeno problema com a pia será resolvido com o clique de um dedo. Nesse cenário, a garota estudou
dedutivamente , passando de geral para particular, e se concentrou mais na
teoria .
Então, qual abordagem é melhor? No caso de uma pia e um bloqueio - o primeiro, e aqui por que razões:
- Se apenas um coletor de trabalho é importante, basta saber apenas o que diz respeito a essa área específica. Quando Masha percebe que não há conhecimento suficiente, ela certamente encontrará uma maneira de aprender mais.
- O conhecimento enciclopédico pode não se transformar em uma situação real, porque um hábito não foi resolvido. Para aprender a sequência de ações, faz sentido não ler sobre elas, mas executar.
Vamos deixar a pobre Masha em paz e seguir para o processo de aprendizado como tal.
Programação: estudar ou fazer?
Estamos acostumados a pensar que, para se desenvolver e se tornar um especialista em um campo desconhecido, você primeiro precisa ir para a universidade ou pelo menos se inscrever em cursos. Ouvimos regularmente o que está sendo dito e realizamos tarefas. Quando o diploma ou certificado precioso está disponível, nos perdemos instantaneamente, porque ainda não entendemos por que precisamos de tantas informações e como aplicá-las especificamente. Isso não é um problema se os planos forem escrever artigos científicos e viajar com eles para conferências. Caso contrário, vale a pena buscar habilidades, ou seja, fazer e fazer coisas específicas novamente, tentar e cometer erros, por um longo tempo para lembrar a melhor forma de não fazer.
Uma das áreas em que a "mão cheia" ou o "diamante de olho" se aproximam da amplitude mental é a programação. Se você conversar com desenvolvedores experientes, ouvirá boas histórias nas quais uma pessoa jovem se envolveu em matemática / física / ensino e, em seguida, ficou cansada e mudou para o back-end. Haverá programadores sem ensino superior! Antes de tudo, o desenvolvedor aprecia não um certificado, nem um diploma, mas a quantidade e a qualidade dos programas, scripts e sites escritos.
"Mas espere!", Você objeta: "Parece bonito - pegue e faça! Não consigo escrever um programa facilmente se não o tiver programado antes (a)! É importante para mim entender onde escrever, como falar a linguagem de programação com o compilador em princípio Não é um telefone de encanamento no google para encontrar. "
A verdade amarga está nisso. Um aspecto desconhecido chama a atenção de outro, que, por sua vez, é o terceiro, e logo esse processo se transforma em um show de mágicos, que continua puxando os lenços amarrados e não os tira do cilindro. Honestamente, o processo é desagradável, já no quinto lenço parece que a profundidade da ignorância está próxima da Fossa das Marianas. Uma alternativa para isso são as mesmas palestras sobre 10 tipos de variáveis, 3 tipos de loops e 150 bibliotecas potencialmente úteis. Isso é triste
Hyperskill: construímos, construímos e finalmente construímos
Nós pensamos sobre esse problema por um longo tempo. Quanto tempo pensamos, fala eloquentemente a data da última postagem em nosso blog. Depois de todo o debate e tentativas de integrar a nova abordagem no Stepik, conseguimos ... outro site. Você já deve ter ouvido falar dele como parte da Academia JetBrains. Nós o chamamos de Hyperskill, construído no aprendizado baseado em projetos, vinculamos uma base de conhecimento Java a ele e contamos com o apoio da equipe do EduTools. E agora com mais detalhes.
Finalidade específica. Oferecemos um "menu" de projetos, ou seja, programas que você pode escrever com a nossa ajuda. Entre eles estão os tic-tac-toe, assistente pessoal, blockchain, mecanismo de pesquisa etc. Os projetos consistem em 5-6 etapas; o resultado de cada etapa é um programa concluído. "Por que, então, o resto das etapas, se a primeira já deu certo?" Obrigado pela pergunta. A cada passo, o programa se torna mais funcional ou mais rápido. No início, o código ocupa 10 linhas; no final, pode não caber em 500.
Um pouco de teoria. É impossível sentar e, sem saber uma palavra sobre programação, escreva até Hello World. Portanto, em cada etapa do projeto, você vê quais fundamentos teóricos você precisa dominar e, o mais importante, onde obtê-los. O básico também está localizado em Hyperskill na seção "Mapa do conhecimento". Se, na primeira etapa do projeto, os alunos não precisarem ler os dados do arquivo, mesmo que não saibam como continuar. Eles aprenderão eles mesmos, para o desenvolvimento geral, ou serão necessários na próxima etapa.
Mapa do conhecimento. Ele mostra quais tópicos você já estudou e como eles se relacionam. Abra qualquer tópico bonito. Você pode revisar isso com seus olhos, mas recomendamos que você execute pequenas tarefas para garantir que as informações estejam em sua cabeça. A princípio, a plataforma lançará testes para você, depois deles - algumas tarefas de programação. Se o código compilar e passar nos testes, compare-o com a solução de amostra (solução de referência), às vezes ajuda a descobrir uma maneira mais ideal de implementá-lo. Ou certifique-se de que sua decisão seja tão bonita.
Nada mais. Estamos aguardando usuários "verdes" e desenvolvedores experientes. Se você já escreveu programas, não importa, não forçaremos você a dobrar 2 + 2 novamente ou virar a linha. Para chegar ao nível certo imediatamente, durante o registro, indique com o que você já está familiarizado e escolha um projeto mais complicado. Não tenha medo de se superestimar: se puder, você sempre pode voltar para um tópico esquecido no mapa do conhecimento.
Ferramentas É ótimo escrever pequenos pedaços de código em uma janela especial no site, mas a programação real começa com o trabalho em um ambiente de desenvolvimento (ambiente integrado de
desenvolvimento ). Programadores experientes sabem não apenas como escrever código, mas também como construir uma interface gráfica, montar arquivos diferentes em um projeto, usar ferramentas de desenvolvimento adicionais e o IDE cuida de alguns desses processos. Por que não aprender essas habilidades enquanto domina a programação? É aqui que o JetBrains vem em socorro com uma versão especial do IntelliJ IDEA Community Educational com o plug-in EduTools pré-instalado. Nesse IDE, você pode fazer cursos de treinamento, verificar problemas resolvidos e dar uma olhada nas dicas do projeto, se esquecer de algo. Não se preocupe se você ouvir pela primeira vez a palavra “plug-in” ou “IDE”: diremos o que é e como instalá-lo em um computador ou laptop com o mínimo de sofrimento. Entenda a teoria e, em seguida, vá para o IDE e conclua a próxima etapa do projeto.
Prazos Eles não estão lá! Quem somos nós para bater na cabeça e indicar em que ritmo você escreve o programa. Quando você gosta de escrever um código e deseja finalizá-lo até o fim, adicione-o hoje ou amanhã. Envolva-se no desenvolvimento de seu próprio prazer.
Erros Todos eles permitem, você supõe que esteja em um dos estágios do projeto e, nesse estágio, não passará em testes automáticos. Bem, você tem que descobrir por si mesmo o que deu errado. Poderíamos dizer onde está o erro, mas ele ensina a escrever código com cuidado? Leia as dicas da IDEA ou um tópico teórico sobre Bugs e, quando o programa finalmente funcionar, o aumento da dopamina provavelmente não levará muito tempo.
Resultado visual. Então, você terminou o primeiro projeto, o que vem depois? Use os frutos do trabalho! Jogue tic-tac-toe com seus amigos e, ao mesmo tempo, se orgulham de sucesso. Carregue o projeto no GitHub para mostrar ao futuro empregador, escreva uma descrição, indique o conhecimento que você usou lá. 4-5 projetos complexos e, agora, um portfólio modesto para o desenvolvedor iniciante está pronto.
Oportunidade de crescimento. Suponha que você observe Hyperskill e não veja nenhum tópico importante ou projeto útil lá. Deixe-nos saber sobre isso! Se sua experiência é mais ampla e rica que um mapa de conhecimento, escreva-nos no formulário
Contribute . Nossa equipe compartilhará suas próprias dicas e truques com você, por isso teremos o maior prazer em ajudá-lo a transformar seu conhecimento em conteúdo útil, compreensível para usuários de todas as idades e níveis. Talvez até pagemos, mas isso não é certo.
Bem-vindo:
https://hi.hyperskill.org/ Entre, veja, tente, sugira, elogie e repreenda. Também aprendemos a ensinar você.