Vou entrevistar dentro de duas semanas para um estágio que envolveria programação em Python.
Alguém pode sugerir quais áreas possíveis devo polir? Estou procurando coisas comumente solicitadas em entrevistas para aberturas em Python. Além do fato de eu já estar falando o idioma há mais de um ano, não percebo o que eles podem me perguntar.
Como em uma entrevista em C ou C ++, há muitas perguntas que variam da reversão de strings à criação de listas vinculadas, mas para uma entrevista em Python, eu não tenho noção.
Experiências pessoais e / ou sugestões são bem-vindas.
Se for um estágio, e você já está programando em Python há um ano, acho que você vai ficar bem. Dito isso, acho que a natureza geral das perguntas para Python será a mesma que você mencionou para c ++.
Robert Harvey
Robert, programar sem nenhuma supervisão e orientação é o que me incomoda. Talvez eu tenha falta em algumas áreas.
1
Se é um estágio, por que você não tem orientação? Essa é a própria definição de estágio. Dito isto, os estagiários em que trabalho não recebem aulas de programação, mas recebem instruções e expectativas claras de trabalho. Como estagiário, eles devem esperar que você aprenda no trabalho e que o trabalho demore um pouco mais do que seria necessário se alguém com experiência o fizesse.
Robert Harvey
Você está cometendo um erro comum que muitas pessoas cometem ao sair da escola - uma entrevista não é um teste, é mais como ir a um primeiro encontro. Um bom entrevistador não rebenta tentando descobrir se você conhece os cantos escuros de um idioma, mas tenta estabelecer, em geral, se você realmente conhece. Um bom entrevistador se concentrará no conhecimento geral de programação, habilidades para resolver problemas, habilidades e experiência interpessoais. Se alguém começa a perguntar os detalhes de como o Python interna as strings, significa que elas estão perdidas e não sabem como entrevistar.
21713 Sean McSomething
Respostas:
8
Aqui estão alguns exemplos fáceis:
O que são decoradores de Python e como você os usaria?
Como você depura seu código Python?
Como você configuraria muitos projetos em que cada um usa versões diferentes do Python e de bibliotecas de terceiros?
Que tal algo que envolva compreensões de lista em Python ? Para mim, esses foram um dos grandes pontos de venda do C ++, depois que li sobre eles no Dive into Python .
"Escreva uma compreensão da lista que construa uma lista dos números pares de 1 a 10 (inclusive)".
Onde a resposta é semelhante a essa (observe que os valores do intervalo evitam um erro no poste):
foo =[x for x in range(1,11)if(x %2)==0]print foo
[2,4,6,8,10]
Nesse caso, se você entender todos os conceitos listados em Mergulhe no Python, isso deve abranger a maioria dos recursos importantes.
Isso é antitônico. No Python 2.x, você acabou de fazer range(2,11,2)e no Python 3.x list(range(2,11,2)),.
Chinmay Kanchi
@ Cyclops, parece que você precisa entrevistar para o seu próprio trabalho na INNOTECH.
Job
5
@Chinmay Kanchi Embora eu não ache que seja uma boa pergunta para entrevistas, a maioria das introduções aos recursos avançados faz as coisas mais simples que podem (para não confundir o leitor). Embora exista uma solução mais simples para esse problema específico, o objetivo não era responder a esse problema específico. O objetivo era usar uma compreensão de lista (que é muito eficaz e uma maneira notável de otimizar as coisas em Python).
Jsternberg #
6
Python é passar por referência ou passar por valor também é uma pergunta muito boa.
Um grande acompanhamento pergunta seria para perguntar como eles podem mostrar-lo e porque é importante
mcotton
@Ismail - Desculpe, mas por que essa é uma boa pergunta?
Theodor
7
@Cervo: Se bem entendi, Python é um valor de passagem, assim como C #, Java, Scheme etc. são passados de valor ... a única linguagem de referência de passagem que eu vi é o VB6, onde tudo é passado por referência, a menos que seja especificado o contrário. O fato de você poder alterar os objetos não o faz passar por referência de maneira alguma, e o fato de poder ter objetos imutáveis não implica que eles estejam sendo passados por valor também ... assim dizendo " a resposta é nem " está completamente errado . Sinto-me muito triste para o candidato cujo entrevistador acredita que a resposta seja "não" ...
Mehrdad
1
@Cervo: Para sua informação, mesmo a resposta com mais de 100 votos no seu link contesta o seu argumento: diz claramente que "Os parâmetros são passados por valor".
Mehrdad
11
Acredito que a resposta correta é: "Parâmetros são referências que são passadas por valor".
user16764
6
Perguntas que me foram feitas:
Descreva dois métodos de metaprogramação em Python.
O que é o GIL?
Por que o GIL é importante?
Por que existe uma implementação alternativa do Python chamada Unladen Swallow ?
Eu iria ao longo da lista nesta resposta . Tente atualizar o que você sabe seguindo a lista o máximo que puder. Não se preocupe se não conseguir fazer isso até o fim.
Além de outros links, as pessoas forneceram. Eu também recomendo Recursos ocultos do Python . Apenas no caso de eles fazerem algumas perguntas complicadas para você.
Qual é o seu senso, eles tentarão testar se você conhece o Python, ver se é possível executar tarefas no Python ou se é possível programar (no Python)?
Essas são coisas muito diferentes.
Se eles querem que você mostre que conhece Python, eles podem forçá-lo a fazer coisas como criar um gerador e fazê-lo sem usar yield. Explique como as aulas funcionam. Explique a ordem de resolução do método C3. E assim por diante.
Se eles querem que você mostre que você pode fazer as coisas no Python, você precisará ser competente com as estruturas básicas de dados e ter uma lista de bibliotecas que você acessaria para diferentes tipos de tarefas. Então você precisa se sentir confortável com dicionários, conjuntos, matrizes. Da mesma forma, você precisa saber sobre coisas como BeautifulSouppara analisar HTML, poder falar sobre uma estrutura que poderia ser usada para desenvolvimento na web etc. Você não precisa necessariamente saber como usá-las bem, mas deve saber onde vá, como descobrir mais e poder usá-los quando o entrevistador fornecer as coisas documentadas.
Se eles quiserem mostrar que é possível programar (em Python), você precisará conhecer as estruturas básicas de dados e conhecer seus algoritmos. Isso está muito mais próximo das perguntas de C / C ++ que você faria, exceto que você deverá usar estruturas de dados nativas onde isso facilita sua vida.
Para estar seguro, você deve se preparar até certo ponto para os três. Por exemplo, leia http://docs.python.org/tutorial/ e faça algumas anotações para si mesmo. Espero que você já saiba como programar. E tente algumas tarefas aleatórias e force-se a usar as bibliotecas que você pode ter perdido. Assim, por exemplo, leia algum arquivo CSV, extraia informações de forma programática de uma página da Web, construa um site pequeno com uma estrutura etc.
Respostas:
Aqui estão alguns exemplos fáceis:
fonte
Que tal algo que envolva compreensões de lista em Python ? Para mim, esses foram um dos grandes pontos de venda do C ++, depois que li sobre eles no Dive into Python .
"Escreva uma compreensão da lista que construa uma lista dos números pares de 1 a 10 (inclusive)".
Onde a resposta é semelhante a essa (observe que os valores do intervalo evitam um erro no poste):
Nesse caso, se você entender todos os conceitos listados em Mergulhe no Python, isso deve abranger a maioria dos recursos importantes.
fonte
range(2,11,2)
e no Python 3.xlist(range(2,11,2))
,.Python é passar por referência ou passar por valor também é uma pergunta muito boa.
fonte
Perguntas que me foram feitas:
fonte
Não tenho essas experiências, mas aqui estão alguns palpites:
Isso é algo que o programador python deve saber, caso contrário, você também pode contratar um programador C para a posição.
fonte
Eu iria ao longo da lista nesta resposta . Tente atualizar o que você sabe seguindo a lista o máximo que puder. Não se preocupe se não conseguir fazer isso até o fim.
fonte
Além de outros links, as pessoas forneceram. Eu também recomendo Recursos ocultos do Python . Apenas no caso de eles fazerem algumas perguntas complicadas para você.
fonte
Qual é o seu senso, eles tentarão testar se você conhece o Python, ver se é possível executar tarefas no Python ou se é possível programar (no Python)?
Essas são coisas muito diferentes.
Se eles querem que você mostre que conhece Python, eles podem forçá-lo a fazer coisas como criar um gerador e fazê-lo sem usar
yield
. Explique como as aulas funcionam. Explique a ordem de resolução do método C3. E assim por diante.Se eles querem que você mostre que você pode fazer as coisas no Python, você precisará ser competente com as estruturas básicas de dados e ter uma lista de bibliotecas que você acessaria para diferentes tipos de tarefas. Então você precisa se sentir confortável com dicionários, conjuntos, matrizes. Da mesma forma, você precisa saber sobre coisas como
BeautifulSoup
para analisar HTML, poder falar sobre uma estrutura que poderia ser usada para desenvolvimento na web etc. Você não precisa necessariamente saber como usá-las bem, mas deve saber onde vá, como descobrir mais e poder usá-los quando o entrevistador fornecer as coisas documentadas.Se eles quiserem mostrar que é possível programar (em Python), você precisará conhecer as estruturas básicas de dados e conhecer seus algoritmos. Isso está muito mais próximo das perguntas de C / C ++ que você faria, exceto que você deverá usar estruturas de dados nativas onde isso facilita sua vida.
Para estar seguro, você deve se preparar até certo ponto para os três. Por exemplo, leia http://docs.python.org/tutorial/ e faça algumas anotações para si mesmo. Espero que você já saiba como programar. E tente algumas tarefas aleatórias e force-se a usar as bibliotecas que você pode ter perdido. Assim, por exemplo, leia algum arquivo CSV, extraia informações de forma programática de uma página da Web, construa um site pequeno com uma estrutura etc.
fonte