Une vision transformée en réalité

Jan 03 2023
Contexte : Bonjour à tous, je suis Kolla Ananta Raj, étudiante en 4e année en double diplôme du Département de génie électrique de l'IIT Kharagpur, avec une MPC actuelle de 9,27 à la fin de mon 7e semestre.

Arrière plan:

Bonjour à tous,

Je suis Kolla Ananta Raj, étudiante en 4e année en double diplôme du Département de génie électrique de l'IIT Kharagpur, avec une MPC actuelle de 9,27 à la fin de mon 7e semestre. J'explore l'apprentissage automatique et la science des données depuis un an et demi, après avoir mis la main sur différents types de choses - travailler sur des projets de recherche, mettre en œuvre des modèles ML et statistiques chez mes stagiaires en entreprise, participer à des hackathons Data Science et participer à Inter Rencontre technique IIT . Ayant expérimenté une variété de choses, j'ai amélioré mes compétences de différentes manières. À mon avis, les connaissances et les compétences vont de pair, l'une sans l'autre conduit au désastre, en particulier dans le cas des passionnés d'apprentissage automatique.

Préparation:

J'aimerais séparer ma préparation estivale en deux parties : la préparation au ML et la programmation compétitive.

Programmation compétitive (CP) :

J'avais pris conseil auprès de divers seniors sur le modèle de test et l'implication du CP dans les séries de tests de ML corp. J'ai réalisé que le CP est une partie importante des cycles de codage. J'avais déjà une formation de base en structures de données et algorithmes du cours Algorithmes I & Lab que j'ai suivi au 4e semestre dans le cadre de ma mineure en informatique. Avant les étés, j'avais déjà un peu de pratique en CP en participant à certains concours.

J'ai sorti la liste des sujets d'InterviewBit et j'ai commencé à étudier à partir de ressources en ligne (principalement des conférences sur YouTube), après quoi j'ai pratiqué les problèmes de ce sujet particulier à partir de leetcode. J'ai donné des concours sur codeforces, parfois virtuels, et j'ai pu résoudre 2 questions en Div 2 de manière cohérente et 3 questions occasionnellement. Cela a duré pendant les deux premiers mois de l'été, où je passais environ 1 à 2 heures pour CP chaque jour. Au cours du dernier mois de préparation au CP, j'ai résolu des questions thématiques d' InterviewBit et résolu la feuille DSA de Striver .

Apprentissage automatique (ML) :

J'ai commencé ma préparation ML vers la mi-mai aussi. J'ai commencé par revisiter le cours classique d'apprentissage automatique d' Andrew NG sur Coursera et j'ai pris des notes étape par étape sur chaque concept. Je savais que les questions sur les concepts de ML sont très courantes dans les entretiens et, par conséquent, me concentrer sur les concepts clés de ML était ma principale priorité. Puis j'ai aussi revisité la spécialisation Deep Learning sur Coursera par Andrew NG pour récapituler les concepts des différentes architectures DL. Les notes sur CS229 et CS231 de Stanford couvrent des concepts similaires et ont été utiles pour une révision de dernière minute.

Pour étudier les développements récents de ML tels que XGBoost, etc., j'ai pris l'aide de la liste de lecture ML de Krish Naik . J'ai utilisé des sujets de la liste de lecture et lu des articles et des blogs de certains sites célèbres tels que versdatascience. Les concepts difficiles à comprendre à partir des blogs pourraient être très clairement compris à partir des vidéos de Krish Naik. La playlist contient environ 160 vidéos et couvre presque tous les concepts de Machine Learning en général.

Les probabilités et les statistiques étaient également des éléments importants de ma préparation aux tests et aux entretiens. J'ai rassemblé des notes de ma classe de probabilités et de statistiques ainsi que des notes concises de Stats110 . Une bonne connaissance de la probabilité conditionnelle, des distributions et des attentes était requise pour les entretiens et les tests de ML. J'ai essayé de résoudre les 50 livres de problèmes difficiles pour pratiquer la probabilité et cela s'est avéré être vraiment conceptuel et utile. La façon dont le livre aborde les problèmes est très fascinante. Pour les puzzles, j'ai utilisé le site Web brainstellar pour pratiquer au hasard quelques questions délicates et les chapitres 1 et 4 du Heard on the Street Book.

J'ai également passé environ 5 à 6 jours à réviser mes concepts SQL. C'était très important du point de vue du test. J'ai étudié les concepts OOPs de Corey Schafer sur Youtube et quelques articles GFG.

J'ai passé environ 2 à 3 heures sur la préparation ML et environ une heure sur les probabilités et les énigmes. Je n'ai pas étudié tous les jours mais j'ai essayé de maintenir cette séquence pendant toute la durée. La préparation au ML devient parfois aléatoire car parfois nous rencontrons des concepts que nous ne connaissons pas et devons d'abord les parcourir, ce qui constitue finalement une chaîne d'apprentissage, il n'y a donc pas de feuille de route spécifique à suivre pour la préparation au ML.

Tests Expérience -

Je savais qu'il y avait très peu d'entreprises de données les jours 1 et 2, alors j'ai également postulé pour des rôles de logiciel.

Pour les entreprises les jours 1 et 2, j'avais visé Microsoft ML, Amex ML, APT Data et Adobe. Le modèle de test pour toutes ces entreprises était similaire où les concepts clés de ML étaient posés (environ 20 questions QCM) ainsi que 2 à 3 questions de codage. Des questions SQL et subjectives ont également été posées. Les questions du CP étaient de difficulté moyenne. Les questions de ML étaient de difficulté moyenne, mais certaines questions étaient difficiles et nécessitaient de très bonnes connaissances conceptuelles pour être résolues. Une chose unique à propos des tests dans APT était qu'ils n'acceptaient la soumission de code CP qu'en python.

Entretien/Préparation de CV -

Après le début des tests, il ne nous restait que 2 semaines avant les entretiens. J'avais déjà prévu de travailler sur la préparation de mon entretien et de créer une soutenance de CV.

  • Faire un bon CV est très important, tout votre travail doit être mis en valeur de manière très percutante. Les éléments redondants doivent être supprimés et seuls les éléments pertinents utiles à l'intervieweur doivent être conservés.
  • Pour la soutenance de CV, j'ai noté tous les points clés de mon CV à partir desquels des questions pouvaient être posées. J'ai clairement compris toutes les architectures et tous les concepts mentionnés et j'ai lu à leur sujet tous les jours avant les entretiens.
  • Préparer de courtes notes sur chaque stage/projet/concours mentionné aiderait à répondre aux questions d'entrevue. Ceci est très important car la discussion dans une interview se déroulera principalement autour du travail effectué dans ces derniers.
  • J'ai essayé de créer beaucoup de questions qu'un intervieweur pourrait poser sur mon travail.
  • J'ai rassemblé de nombreuses questions d'entretien ML standard et j'ai commencé à les parcourir chaque jour.

Le premier jour, j'avais deux listes restreintes, Microsoft ML et APT Data. D'une manière ou d'une autre, je n'ai pas obtenu de liste restreinte pour Amex, même si mon test s'est très bien passé.

Enfin, le jour est venu et j'ai eu mes entretiens programmés à partir de 8 heures du matin le 31 juillet. Lors de l'entretien APT, j'ai obtenu le premier créneau d'entretien à 8 heures du matin. Pour APT, j'ai eu 2 séries d'entretiens :

  1. APT First Round : L'intervieweur a été très coopératif et il s'est présenté en premier et a demandé une brève présentation de moi-même. Après l'introduction, on m'a demandé d'expliquer un de mes derniers projets ou expériences de stage. J'ai ensuite expliqué mon travail en commençant par l'énoncé du problème, puis l'approche, les défis rencontrés et enfin l'impact créé par mon travail. Ensuite, des questions de codage ont été posées sur la plateforme hackerrank. On m'a posé deux questions de codage, l'une sur la liste chaînée et l'autre sur l'approche à deux pointeurs. J'ai d'abord proposé une solution de force brute puis l'ai optimisée 2 fois. L'intervieweur a préféré Python comme langage de codage. Après cela, quelques questions python avancées ont été posées. L'entretien a duré plus de 50 minutes environ.
  2. APT Second Round : Dans les 5 minutes suivant la fin du Round 1, on m'a demandé de m'asseoir pour le Round 2. Je me suis rapidement préparé et je me suis préparé pour l'entretien. La deuxième série d'entretiens a également commencé sur une note similaire, en commençant par mon introduction suivie de l'explication d'un de mes stages. J'ai suivi une approche similaire pour expliquer mon travail à chaque fois (Problème-> Approche-> Défi-> Impact). Là encore, on m'a demandé de coder 2 questions sur la plateforme Hackerrank où mon écran était partagé. On m'a posé des questions sur les problèmes d'équilibrage des parenthèses et une somme de tableau de préfixes. On m'a également demandé si je connaissais SQL et combien je m'évaluerais sur 10 en fonction des compétences SQL. Cet entretien a également duré environ 50 min. Dans l'ensemble, mes deux entretiens se sont bien déroulés et les deux entretiens APT ont été réalisés à 10 heures.
  3. Premier tour de Microsoft :Vers 11 heures, mon entretien était programmé. On m'a demandé de parcourir mon CV et d'expliquer un de mes projets. J'ai été grillé sur chaque point que j'avais écrit et on m'a posé de nombreuses questions liées à la mise en œuvre industrielle de mon travail. J'ai répondu aux questions avec confiance, certaines questions étaient difficiles alors je lui ai demandé de me donner 2 minutes pour réfléchir à la question. On m'a également posé des questions avancées et approfondies sur les architectures ML que j'avais mentionnées dans mon CV. Ensuite, en poursuivant l'entretien, j'ai expliqué mon travail dans le cadre d'un stage que j'avais effectué l'été dernier. J'ai été à nouveau grillé sur tous les aspects de mon travail, et plus précisément, les travaux futurs et la mise en œuvre industrielle ont été les points clés à partir desquels on m'a posé le plus de questions. J'avais mentionné RandomForest comme l'un des modèles ML que j'ai utilisé pour créer le modèle, on m'a donc posé beaucoup de questions de RandomForest et DecisionTrees, et finalement j'ai fini par dériver l'ensemble des arbres de décision avec un bon exemple et en énonçant toutes les formules. Cet entretien a duré environ 50 minutes.

Conclusion:

L'ensemble du processus CDC se déroule à un rythme très rapide. Je paniquais la veille de mes entretiens. Ce fut une nuit de pensées absurdes et étranges sur le lendemain, mais finalement j'ai bien dormi cette nuit-là.

Je suis resté calme avant mes entretiens et j'ai gardé confiance en moi. Rester calme permet à l'ensemble du processus d'entretien de se dérouler à l'aise. Donc je pense qu'il faut rester calme et avoir confiance en soi tout au long du processus car c'est quelque chose qui donne de la force.

Je voudrais mentionner que ne doutez pas de vos capacités si vous n'obtenez pas un jour 1 ou une semaine 1, ce n'est pas une mesure de vos compétences ou capacités. Il y a un facteur chance attaché au CDC, donc ce n'est tout simplement pas la fin de tout le processus. Donnez votre meilleur coup à chaque fois, c'est ce qui compte.

J'espère que mon expérience pourra vous aider d'une manière ou d'une autre. N'hésitez pas à me contacter sur LinkedIn pour toute question.