Uma Visão Transformada em Realidade

Jan 03 2023
Histórico: Olá a todos, sou Kolla Ananta Raj, estudante do 4º ano de graduação dupla do Departamento de Engenharia Elétrica do IIT Kharagpur, com um CGPA atual de 9,27 no final do meu 7º semestre.

Fundo:

Olá pessoal,

Eu sou Kolla Ananta Raj, um estudante de dupla graduação do 4º ano do Departamento de Engenharia Elétrica do IIT Kharagpur, com um CGPA atual de 9,27 no final do meu 7º semestre. Tenho explorado aprendizado de máquina e ciência de dados nos últimos 1,5 anos, tendo colocado minhas mãos em diferentes tipos de coisas - trabalhando em projetos de pesquisa, implementando ML e modelos estatísticos em meus estagiários corporativos, participando de hackathons de ciência de dados e participando do Inter Encontro Tecnológico IIT . Ter experimentado uma variedade de coisas melhorou minhas habilidades de maneiras diferentes. Na minha opinião, conhecimento e habilidades andam de mãos dadas, um sem o outro leva ao desastre, especialmente no caso dos entusiastas do Machine Learning.

Preparação:

Gostaria de separar minha preparação para o verão em duas partes - preparação para ML e programação competitiva.

Programação Competitiva (CP):

Eu recebi conselhos de vários idosos sobre o padrão de teste e o envolvimento do CP nas rodadas de teste da ML Corp. Percebi que o CP é uma parte importante das rodadas de codificação. Eu já tinha uma formação básica em estruturas de dados e algoritmos do curso de Algoritmos I e Laboratório que fiz no meu 4º semestre como parte da conclusão do meu Minor em Ciência da Computação. Antes dos verões já tinha um pouco de prática em CP através da participação em alguns concursos.

Peguei a lista de tópicos do InterviewBit e comecei a estudar a partir de recursos online (principalmente palestras do youtube), depois pratiquei problemas desse tópico específico do leetcode. Dei concursos de codeforces, às vezes virtuais, e consegui resolver 2 questões no Div 2 de forma consistente e 3 questões ocasionalmente. Isso continuou nos primeiros dois meses do verão, onde eu gastava cerca de 1 a 2 horas para CP todos os dias. No último mês de preparação do CP, resolvi questões relacionadas a tópicos do InterviewBit e resolvi a planilha DSA de Striver .

Aprendizado de máquina (ML):

Também comecei minha preparação para o ML em meados de maio. Comecei revisitando o curso clássico de Machine Learning de Andrew NG no Coursera e fiz anotações passo a passo sobre cada conceito. Eu sabia que perguntas sobre conceitos de ML são muito comuns em entrevistas e, portanto, focar nos principais conceitos de ML era minha principal prioridade. Em seguida, também revisitei a especialização Deep Learning no Coursera de Andrew NG para recapitular os conceitos de várias arquiteturas DL. As notas sobre CS229 e CS231 de Stanford cobrem conceitos semelhantes e foram úteis para revisões de última hora.

Para estudar desenvolvimentos recentes de ML, como XGBoost, etc., recebi ajuda da lista de reprodução de ML de Krish Naik . Usei tópicos da lista de reprodução e li artigos e blogs de alguns sites famosos, como o de ciência de dados. Conceitos difíceis de entender em blogs podem ser claramente compreendidos em vídeos de Krish Naik. A playlist contém cerca de 160 vídeos e abrange quase todos os conceitos de Machine Learning em geral.

Probabilidade e estatística também foram partes importantes da minha preparação para os testes e entrevistas. Juntei notas da minha aula de probabilidade e estatística e também notas concisas do Stats110 . Bom conhecimento de probabilidade condicional, distribuições e expectativas era necessário para entrevistas e testes de ML. Tentei resolver os 50 livros de problemas desafiadores para praticar a probabilidade e acabou sendo realmente conceitual e útil. A forma como o livro aborda os problemas é muito fascinante. Para quebra-cabeças, usei o site brainstellar para praticar aleatoriamente algumas perguntas complicadas e os capítulos 1 e 4 do livro Heard on the Street .

Passei cerca de 5 a 6 dias revisando meus conceitos de SQL também. Foi muito importante do ponto de vista do teste. Estudei conceitos OOPs de Corey Schafer no Youtube e alguns artigos GFG.

Passei cerca de 2 a 3 horas na preparação de ML e cerca de uma hora em probabilidade e quebra-cabeças. Não estudei todos os dias, mas tentei manter esse ritmo o tempo todo. A preparação para o ML às vezes se torna aleatória porque às vezes nos deparamos com conceitos que não conhecemos e temos que passar por eles primeiro, o que acaba criando uma cadeia de aprendizado, portanto, não há um roteiro específico a seguir para a preparação do ML.

Testes Experiência -

Eu sabia que havia muito poucas empresas de dados nos dias 1 e 2, então também me inscrevi para funções de software.

Para empresas nos dias 1 e 2, eu tinha como objetivo Microsoft ML, Amex ML, APT Data e Adobe. O padrão de teste para todas essas empresas foi semelhante, onde os principais conceitos de ML foram solicitados (cerca de 20 perguntas do MCQ) junto com 2 a 3 perguntas de codificação. Perguntas SQL e subjetivas também foram feitas. As questões de CP eram de dificuldade média. As questões de ML eram de dificuldade média, mas algumas questões eram difíceis e exigiam um conhecimento conceitual muito bom para serem resolvidas. Uma coisa única sobre os testes em APT foi que eles aceitaram o envio de código CP apenas em python.

Entrevista/Preparação de CV -

Após o início dos testes, tínhamos apenas 2 semanas antes das entrevistas. Eu já havia planejado trabalhar na preparação da minha entrevista e criar uma defesa de currículo.

  • Fazer um bom currículo é muito importante, todo o seu trabalho deve ser destacado de forma bastante impactante. Coisas redundantes devem ser removidas e apenas coisas relevantes e úteis para o entrevistador devem ser mantidas.
  • Para a defesa do currículo, anotei todos os pontos-chave do meu currículo de onde as perguntas poderiam ser feitas. Entendi claramente todas as arquiteturas e conceitos mencionados e li sobre eles todos os dias antes das entrevistas.
  • Preparar notas curtas sobre cada estágio/projeto/concurso mencionado ajudaria a responder às perguntas da entrevista. Isso é muito importante, pois principalmente a discussão em uma entrevista acontecerá em torno do trabalho realizado nelas.
  • Tentei criar muitas perguntas que um entrevistador poderia fazer sobre o meu trabalho.
  • Reuni muitas perguntas padrão de entrevista de ML e comecei a revê-las todos os dias.

No dia 1, eu tinha duas listas restritas, Microsoft ML e APT Data. De alguma forma, não fui selecionado para a Amex, embora meu teste tenha corrido muito bem.

Finalmente chegou o dia e eu tinha minhas entrevistas marcadas a partir das 8h do dia 31 de julho. Na entrevista APT, consegui a primeira entrevista às 8h. Para o APT, tive 2 rodadas de entrevistas:

  1. Primeira rodada do APT : O entrevistador foi muito cooperativo e se apresentou primeiro e pediu uma breve apresentação minha. Após a introdução, fui solicitado a explicar um dos meus últimos projetos ou experiências de estágio. Passei a explicar meu trabalho começando com a declaração do problema, depois a abordagem, os desafios enfrentados e, por último, o impacto criado pelo meu trabalho. Em seguida, perguntas sobre codificação foram feitas na plataforma hackerrank. Me fizeram duas perguntas de codificação, uma na lista encadeada e outra na abordagem de dois ponteiros. Primeiro propus uma solução de força bruta e depois a otimizei 2 vezes. O entrevistador preferiu python como linguagem de codificação. Depois disso, algumas perguntas avançadas sobre python foram feitas. A entrevista durou mais de 50 minutos aproximadamente.
  2. Segunda Rodada do APT: 5 minutos após a conclusão da Rodada 1, fui convidado a participar da Rodada 2. Eu me preparei rapidamente e me preparei para a entrevista. A segunda rodada de entrevistas também começou com uma nota semelhante, começando com minha introdução seguida pela explicação de um de meus estágios. Segui uma abordagem semelhante para explicar meu trabalho todas as vezes (Problema-> Abordagem->Desafio->Impacto). Então, novamente, fui solicitado a codificar 2 perguntas na plataforma Hackerrank, onde minha tela foi compartilhada. Me fizeram perguntas sobre problemas de balanceamento de colchetes e uma soma de matriz de prefixo. Também me perguntaram se eu conhecia SQL e quanto eu me classificaria em 10 com base nas habilidades de SQL. Esta entrevista também durou cerca de 50 min. No geral, minhas duas entrevistas correram bem e ambas as entrevistas APT foram feitas às 10h.
  3. Primeira Rodada da Microsoft:Por volta das 11h minha entrevista estava marcada. Pediram-me para percorrer o meu currículo e explicar um dos meus projetos. Fui questionado sobre todos os pontos que escrevi e muitas perguntas relacionadas à implementação industrial do meu trabalho. Respondi com confiança às perguntas, algumas perguntas eram difíceis, então pedi a ela que me desse 2 minutos para pensar sobre a pergunta. Também me fizeram perguntas avançadas e aprofundadas sobre as arquiteturas de ML que mencionei em meu currículo. Em seguida, avançando na entrevista, expliquei meu trabalho em um estágio que fiz durante o verão do ano passado. Fui novamente questionado sobre todos os aspectos do meu trabalho e, especificamente, o trabalho futuro e a implementação industrial foram os pontos-chave dos quais mais perguntas me foram feitas. Eu mencionei RandomForest como um dos modelos de ML que usei para fazer o modelo, portanto, recebi muitas perguntas de RandomForest e DecisionTrees e, por fim, acabei derivando todas as árvores de decisão com um bom exemplo e declarando todas as fórmulas. Esta entrevista durou cerca de 50min.

Conclusão:

Todo o processo do CDC acontece em um ritmo muito rápido. Eu estava em pânico no dia anterior às minhas entrevistas. Foi uma noite de pensamentos absurdos e estranhos sobre o dia seguinte, mas no final das contas eu dormi bem naquela noite.

Permaneci calmo antes de minhas entrevistas e mantive a confiança em mim mesmo. Manter a calma permite que todo o processo de entrevista ocorra à vontade. Então eu acho que a pessoa deve manter a calma e manter a autoconfiança durante todo o processo porque isso é algo que te dá força.

Gostaria de mencionar que não duvide de suas capacidades se você não obtiver um Dia 1 ou Semana 1, não é uma medida de suas habilidades ou capacidades. Existe um fator de sorte associado ao CDC, portanto, não é o fim de todo o processo. Dê o seu melhor a cada vez, isso é o que importa.

Espero que minha experiência possa te ajudar de alguma forma. Sinta-se à vontade para se conectar comigo no LinkedIn para qualquer dúvida.