Uma entrevista completa com o decano do departamento Python da GeekBrains - como e por que os iniciantes aprendem a língua

imagem

Ontem, publicamos a primeira edição da série "Por quem trabalhar em TI". Para ele, conversei com dois ex-alunos e o reitor da faculdade de Python do GeekBrains . Quando eu “montei” as histórias em uma história, foi uma pena que ainda restasse nos rascunhos.

Portanto, hoje eu posto a transcrição completa da entrevista com Alexei Petrenko, decano do GeekBrains - quase sem editar ou tirá-la do contexto. Talvez seja ainda mais aplicado, útil e concentrado do que a questão principal.

Aqui está o que, por exemplo, permanece nos bastidores: Por que o Python não é pior que outras linguagens? Quais frameworks devo assistir além do Django? Onde é melhor aprender a escrever - em um IDE moderno ou em um notebook? Quais sites e livros valem a pena aprender por conta própria e muito mais.

- O que os desenvolvedores de Python estão fazendo agora?

- Um desenvolvedor Python pode fazer muitas coisas - de scripts simples a análise de dados e construção de redes neurais.

Falando sobre desenvolvimento, este é um back-end para servidores web. A parte oculta da Internet, aquela que os usuários comuns não veem. Servidor, sua lógica, interação com bancos de dados.

- Python não é pior para o desenvolvimento do servidor do que outras linguagens?

- Na verdade não, não é pior. Por exemplo, em C, um desenvolvedor gasta muito tempo escrevendo código. Esta é uma linguagem do avô. Escrever em C # é mais fácil e rápido - mas essa é uma ideia da Microsoft - eles promoveram o idioma para o sistema Windows. Mas Java é universal ... De fato, você pode debater qual linguagem é melhor.

O Python tem um limite baixo de entrada, é muito fácil aprender o básico da programação nele. Python é uma linguagem interpretada. Assim, se dois programas idênticos forem escritos em Python e C, no Python o programa funcionará mais lentamente. Ele tem um público muito grande, uma extensa biblioteca, além de muitas bibliotecas externas criadas por desenvolvedores em todo o mundo. E por isso, torna-se uma linguagem adequada para tudo.

- Será que conhecer o Python é mais fácil de entrar em profissões específicas, como IA e análise, e os caras com Java provavelmente terão um back-end regular?

- Se olharmos para as estatísticas há alguns anos atrás, a linguagem PHP ocupava 80% do back-end de todos os servidores. Mas o PHP está começando a perder terreno. O Python lançou várias estruturas de desenvolvimento web nesta onda, e a mais popular delas é o Django. Está ganhando popularidade, e muitos empregadores estão procurando desenvolvedores que conheçam essa estrutura específica.

Sempre há competição. Mas um estudante iniciante deve entender que, independentemente do que ele se dedicar inteiramente - Python ou Java - ele, de qualquer forma, encontrará um emprego.

- Aprender Python como primeira língua é uma boa solução?

"Eu acho bom." 20 anos atrás, minha primeira língua era básica. E então pareceu-me como divertido e fácil programar. Quando vi a sintaxe do Python pela primeira vez, meu primeiro pensamento foi: "É o mesmo que o BASIC, mas é mais legal". Dá as mesmas sensações - fácil, divertida, tudo fica instantaneamente claro. Ou seja, Python é a melhor linguagem para a primeira.

"Precisamente por causa da simplicidade?"

- Sim, por causa da sintaxe simples. Ele perdoa pequenos erros do desenvolvedor, diferentemente das linguagens compiladas, onde, se for selado, o programa não será mais compilado.
Embora eu espero que os desenvolvedores não esperem que o intérprete corrija todos os seus erros.

Mais importante ainda, o desenvolvedor entendeu que, após uma base fácil, ele teria que fazer um esforço para dominar aspectos mais sérios. Bibliotecas e estruturas que tornam o Python uma linguagem ainda mais interessante e avançada.

- Quão complexa e volumosa é a sintaxe?

- Na configuração básica do Python, existem cerca de 70 funções (mas mesmo um programador legal não necessariamente usa todas elas) e várias dezenas de palavras reservadas. Ou seja, para aprender cem palavras e entender o que eles estão fazendo, você pode passar de uma a três semanas, se quiser e trabalhar duro.



- Digitação dinâmica não é um sinal de menos?

- A digitação dinâmica tem oponentes a quem eles inicialmente ensinaram na universidade a escrever em C, dirigiram, que é a base de todas as línguas e todos devem ser iguais a ela. Portanto, eles são extremamente negativos sobre a digitação dinâmica. De fato, a digitação dinâmica é mais do que menos. Acelera o desenvolvimento.

Mas se você está acostumado a digitar estática, o idioma pode prescrever os tipos de variáveis ​​que você usa. A digitação permanecerá dinâmica, mas você pode perceber seu hábito.

- Mas agora o Go e o TypeScript estão crescendo em popularidade devido à digitação estrita.

- é sim. Mas as línguas sempre vêm e vão, e o Python está vivo há 30 anos e ainda continua a ganhar popularidade. A linguagem Go é jovem e boa. Talvez ele se desenvolva, ou talvez possamos esquecê-lo em alguns anos.

Se compararmos a linguagem de programação com um reservatório, por exemplo, a linguagem C é o oceano. Você mergulha de um penhasco a uma grande profundidade e nadar ou se afogar. A linguagem Python é uma praia com areia limpa, onde você pode ir longe, nadar com calma e, se entender que deseja seguir em frente, haverá uma enorme depressão em profundidade atrás da bela praia, comparável a C e Java.

"Conhecendo o Python, é difícil alternar entre profissões, onde é usado?"

Python tem uma ampla biblioteca. Se de repente você percebeu que não deseja lidar com sites e back-end, mas deseja mudar para a inteligência artificial, conhecendo a base, precisará gastar vários meses para aprimorar a matemática e aprender várias estruturas adicionais.

Uma situação semelhante com big data - você precisa recuperar o curso de estatísticas, análises e analisar duas ou três novas bibliotecas. Ou seja, os custos de mão-de-obra serão significativamente reduzidos se você já conhece o idioma.

- O que é mais difícil?

Análise e big data estão programando mais matemática. Se existe uma predisposição para isso, por que não lidar com redes neurais, sistemas de reconhecimento. Se você gosta de programar, mas não em um nível alto, é melhor usar servidores de gravação. Eles também precisam de matemática, mas pelo menos não superior. Sem integrais e fatoriais. Adição e subtração elementares.



- O que você precisa saber antes de entrar nos cursos?

- Seria bom saber com antecedência se você gosta de programar ou não. Eu recomendo que você tente escrever vários programas, tente aulas gratuitas. É melhor já entender o que é uma variável, como adicionar duas variáveis.

- Se uma pessoa nem começou, onde e como ela pode entender isso?

- Temos intensivos livres sobre o básico de programação e variáveis. É necessário escrever em Javascript, porque em qualquer navegador moderno existe um intérprete, você não precisa instalar nada.

Com Python, Java e outras linguagens, é um pouco mais complicado - você precisa instalar um ambiente de desenvolvimento. Mas se você entende que gosta, por que não? Você pode gastar dez minutos e lentamente se tornar um programador.

- Como aprender para que o curso não se torne uma crosta inútil?

- Uma palavra é prática. Se você apenas assistir e ouvir, nada resultará disso. Para um iniciante, é prática reescrever o código que o professor exibe na tela. Reescreva e pense em como ele funciona. É necessário realizar tarefas práticas - como parte dos cursos, para se procurar na Internet. Se o treinamento é em prol do emprego, é necessário praticar ainda mais. É difícil aprender, fácil na batalha.

A prática mínima exigida é de quatro horas por semana. Dois dias com menos de duas horas de prática. Mas eu recomendaria passar uma hora por dia escrevendo seu próprio código.

- O que é melhor aprender - coisas fundamentais ou populares e aplicadas?

- É melhor para um iniciante entender a sintaxe. E quando - para alguém depois de uma semana, para alguém depois de um mês - uma pessoa dirá "Conheço a sintaxe e posso escrever construções e algoritmos elementares", só então vale a pena considerar para onde você quer ir além. Quanto mais você estuda, mais se afasta da sintaxe para bibliotecas individuais, padrões de design e modelos individuais.

O principal é não mergulhar na programação com a cabeça para que não haja tumulto na magia. Quando você aprende tudo por três dias e fica com mingau na cabeça.

- Quais sutilezas você precisa conhecer para não mudar imediatamente para o lado errado?

- Existe um padrão Pep8 - este é o acordo dos programadores que escrevem no Python. Indica como escrever corretamente e como está errado: se você deseja escrever uma construção com condições, escreva-a de maneira semelhante. Se algo mais, por exemplo, criar uma função, chame-a em tal e qual estilo.

Se você deseja trabalhar em equipe e mostrar o código para outra pessoa, se o código precisar ser suportado no futuro, você deverá conhecer o padrão geralmente aceito. Seria bom para um iniciante ler junto com o estudo da sintaxe.

Programadores iniciantes, sem conhecer o Pep8, escrevem um programa que também funciona. Mas quando, depois de outro tempo, outra pessoa tenta lê-lo, surgem dificuldades. Eles escrevem o código uma vez - lêem-no dez vezes.

- Mais alguma coisa? Versões, por exemplo?

- Alguns anos atrás, ocorreu uma divisão no Python. Havia o Python 2.7 e, em seguida, saiu a versão 3. A segunda versão ainda é usada, mas apenas em empresas mais antigas para manter o código legado. Se você conseguir um emprego em uma empresa assim, terá que aprender Python 2, mas eu recomendaria aprender a terceira versão. Todos os projetos modernos e bibliotecas de terceiros estão escritos sob ele.

Vou dar um exemplo elementar. Payton da terceira versão, um comando para exibir uma mensagem na tela: escrevemos print, abrimos o colchete e passamos o texto e as variáveis ​​dentro dos colchetes.

Na segunda versão, escrevemos print, sem colchetes, depois um espaço e uma variável. Ou seja, em um caso, um espaço, nos outros colchetes. Não é importante para uma pessoa entender isso, mas o intérprete é importante - um espaço ou colchetes



- Quais são as melhores formas de auto-educação que você mencionaria?

- Paralelamente ao treinamento, você pode tentar implementar suas idéias e projetos. Enquanto aprende o básico, você resolve quebra-cabeças e escreve programas simples. Por exemplo, estudei ciclos e por que não escrever um programa que exibe a tabela de multiplicação.

Em seguida, você aprende a estrutura do Django, que permite criar sites. Por que não tentar escrever imediatamente seu próprio site, que eu sempre desejei.

Ainda existe um site assim - o projeto Euler. Há um conjunto de tarefas para criar programas.
Uma pessoa que sabe programar pode realizar a tarefa, mas se escrever um código de baixa qualidade, mesmo um computador moderno o resolverá por vários minutos, horas ou até dias. Ou seja, o projeto faz você pensar em otimização. Porque o código certo resolve os problemas do projeto Euler em segundos.

Do livro: "Learning Python", de Mark Lutz e "Pure Python". Dan Bader.

- Com quais ferramentas e estruturas devo começar?

Um programador iniciante pode usar o Flask, por exemplo. É simples, não carrega informações desnecessárias, é fácil de aprender. De fato, esta é uma pequena caixa na qual não há nada supérfluo. E ela escreverá os sites mais simples.

Se você pensa no futuro - então o monstro entre os frameworks é o Django. Não é mais uma caixa pequena, mas uma caixa enorme na qual há muito de tudo. Ao entender gradualmente todos os seus recursos, você pode escrever sites bons e escalonáveis ​​que podem atender milhares de usuários a cada minuto.

Pacotes, bibliotecas?

- Para iniciantes, eu aconselho você a se familiarizar com a biblioteca padrão do Python. Esses são os mesmos módulos instalados no computador junto com o intérprete. De fato, a biblioteca padrão é tão grande. que até o estudo levará mais de uma semana.

Alguns módulos da biblioteca padrão nunca serão necessários, mas é necessário ter uma idéia sobre eles para que um dia você não comece a reinventar a roda. Todas as bicicletas são montadas lá.

Na programação, uma estrutura de dados como "filas" é frequentemente usada. E se uma pessoa acabou de aprender a sintaxe, entende que não há filas no Python. Embora em outros idiomas, as filas sejam usadas ativamente e permitam resolver grandes volumes de tarefas.

Mas vale a pena procurar na biblioteca padrão e encontramos o módulo de coleções lá. Dentro deste módulo encontra-se a “fila” da estrutura de dados e verifica-se que ela foi implementada por um longo tempo, apenas um pouco oculta. É otimizado ao máximo e funcionará de qualquer maneira melhor do que se você escrever.

- E coisas elementares? Qual IDE levar?

- Nesta ocasião, as opiniões são diferentes. Algumas pessoas pensam que um programador iniciante deve escrever no bloco de notas (não no curso padrão, mas pelo menos no bloco de notas ++).

A idéia é que, ao iniciar a programação, você precise escrever todo o código manualmente. Isso permitirá que você se lembre da descrição das estruturas, funções básicas. Mas o problema é que o notebook não informa onde você cometeu um erro. Se um iniciante não vê onde estão os erros, ele pode se desesperar com o fato de nada estar funcionando e sair desse negócio.

Portanto, existe uma opinião de que é melhor usar IDEs modernos. Aqui você tem que dar crédito aos jetbrains. Eles criaram o PyCharm IDE, que tem uma versão comunitária totalmente gratuita. Ela conta sobre todos os erros elementares.

- Qual a sua abordagem?

Sou a favor da segunda abordagem, para não desencorajar o iniciante de escrever código. Quando o código funciona, há um desejo de se desenvolver ainda mais. Mas se você perceber um erro, descubra como você o cometeu e como corrigi-lo.

Embora, para ser sincero, comecei com cadernos antigos.



- Qual deve ser o nível mínimo para conseguir um emprego?

"Minha experiência na Geekbrains mostra que alguns estudantes encontram trabalho antes de terminar o curso de um ano." Tudo depende de como o aluno estudou, que motivação ele teve, quão ativamente ele investiu.

Se falarmos sobre as habilidades que o empregador deseja ver com o desenvolvedor do servidor, este é um trabalho elementar com sintaxe, conhecimento de como sites, back-end e Django funcionam. O programador deve saber como escrever código mais rápido e corretamente.

Eu também acrescentaria trabalho em equipe e conhecimento de bancos de dados, porque qualquer back-end de qualquer site está inextricavelmente vinculado ao armazenamento de informações.

- Com que dinheiro se pode contar no nível inicial?

- Depende da região. Alguém consegue um emprego para 40 mil como iniciante, alguém pode para 100 mil. Observando como se manifesta. Para fazer isso, é necessário provar que você pode escrever não apenas código, mas também entender arquitetura, esboçar todo o esquema do projeto, módulos, serviços e seus esquemas de interação.

- Talvez isso seja uma raridade entre iniciantes?

- Passamos pelo design no quarto trimestre, quase no final do treinamento.

- Quanto você precisa balançar no trabalho para subir de nível?

- Você pode bombear para o meio durante o ano de estudo na Geekbrains. Existem cursos obrigatórios e adicionais. O próprio aluno escolhe quando cursá-lo, mas os cursos principais e adicionais devem ser concluídos para se chamar honestamente de intermediário. Ou seja - o ano do programa principal e outros seis meses dos programas paralelos.

- Quem é então o desenvolvedor signor?

- Esta é uma pessoa que tem uma experiência rica. É alguém que entende estruturas diferentes, é capaz de dimensionar tarefas, entender quais recursos eles exigem. Um homem que não inventa bicicletas. Quem, por minha própria experiência, entendeu todos os aspectos e nuances do trabalho.

"Se você conhece um homem que não sabia de nada há três anos e agora se chama signor, o que você acha?"

"Por que não?" Depende da empresa, aspirações e habilidades. Se uma pessoa é talentosa, então eu vou acreditar. Se ele disser que conhece Python, não Python, provavelmente ainda terá uma chance.

- E se você não é tão genial, então quanto, em média, precisa de experiência?

- Se uma pessoa não tiver um propósito, poderá trabalhar confortavelmente no nível médio, cinco e dez anos. Execute o volume de tarefas que dão, aproveite.

- Ou seja, o meio é apenas alguém que não assume responsabilidade?

- Sim, o Signor está pronto para assumir a responsabilidade pelas decisões, liderar equipes. Sejamos honestos - existem líderes, existem seguidores. Alguém está pronto para arriscar, participar de uma startup e, se atirar em um ano, a pessoa se chamará imediatamente de diretora, signatária e qualquer outra coisa.

E há programadores que gostam de programar, mas não estão prontos para tomar decisões globais.

- Parece que a graduação do ensino médio não é inteiramente sobre o conhecimento do idioma.

- Essa graduação é geralmente arbitrária e difere de empresa para empresa. Se absolutamente elementar - um júnior é uma pessoa que conhece a sintaxe. Middle - conhece todas as bibliotecas, estruturas adicionais, sabe como usar tudo isso. Signor - não apenas sabe como usar, mas possui uma rica experiência no desenvolvimento de coisas diferentes.

- Que tipo de trabalho procurar, para não se decepcionar imediatamente?

- Devemos anotar imediatamente em minha mente: "Se nada der certo, não ficarei chateado". Vale a pena praticar como freelancer ou realizar projetos conjuntos durante o treinamento.

- Como você não pode enfrentar a sujeira durante uma entrevista?

- Primeiro, não fique calado. Se eles fornecerem uma tarefa que não pode ser respondida imediatamente, explique em voz alta, mostre como você se considera capaz de avançar em direção a uma solução. Nas entrevistas, eles também podem dar perguntas básicas. Os alunos falaram sobre como receberam as tarefas que organizamos com eles. Ou seja, não dê ouvidos a cursos que passam pelos seus ouvidos

O principal é não se desesperar se a primeira entrevista não teve êxito. Indo para duas ou três entrevistas, você notará que as perguntas começam a se repetir. E então você mesmo escolherá onde se estabelecer, porque em três entrevistas regulares um dia você irá a qualquer lugar.

- Em que questões você entende que é melhor fugir dessa empresa?

- Talvez se eles mostrem o código e você entenda que é ilegível. «-» , . , , . .

— ?

— . — . — , - .

.

Source: https://habr.com/ru/post/pt454182/


All Articles