Pour ceux qui ne me connaissent pas, je suis un ingénieur Frontend avec plus de 10 YOE qui a également créé BigDevSoon - SaaS (plateforme d'apprentissage de code nouvelle génération où vous apprenez en créant des éléments dès le premier jour.) Plus de 10 000 utilisateurs bientôt/ 1 000 $ MRR ce mois-ci.
Même si j'aime créer des interfaces utilisateur modernes dans React, la transformation du rôle "Frontend" au fil des années m'a obligé à plusieurs reprises à être un développeur Full-Stack, à créer des BFF (Backend for Frontend), à analyser et à réfléchir. des tonnes de structures de données et travailler avec des bases de données. D'une autre manière, nous ne sommes plus des développeurs de « sites Web » et pour suivre le rythme, nous devons apprendre et nous adapter tout le temps.
Dans les temps de marché difficiles d'aujourd'hui, il m'a fallu plus d'un mois pour décrocher mon dernier emploi, vous pouvez en savoir plus sur ce voyage ici. En passant des entretiens de type marathon avec souvent plus de 10 étapes, j'ai compris les nouveaux modèles et comment nous devons nous adapter plus facilement aux emplois décrochés.
L'une des tendances que j'ai remarquées concerne la communication et les compétences générales, par ex. "Enregistrez votre vidéo de bienvenue et parlez-nous de vous." ou 3x+ entretiens comportementaux/culturels "Que feriez-vous dans x situation et pourquoi, expliquez." mais c'est un sujet pour un autre jour que je n'aborderai pas dans cet article.
Une seule chose que je mentionnerai pour ce qui précède et qui vaut la peine d'être faite si vous n'êtes pas encore un "influenceur", c'est d'essayer de vous enregistrer et même d'essayer de réaliser une fonctionnalité de démonstration que vous avez créée, un projet parallèle ou de présenter vous-même et votre carrière (par exemple, résumez votre CV, votre expérience, vos projets passés en 3 à 5 minutes maximum). Vous écouterez cela et découvrirez peut-être que votre voix est trop basse ou que vous stressez trop devant la caméra. C'est un bon exercice pour surmonter cette peur et imaginer franchir 9/10 étapes et échouer à parler avec un PDG/TL/Manager simplement parce que vous n'avez pas pratiqué cela. Ce serait dommage.
Un autre sujet concerne les problèmes de pratique bien connus, mais croyez-moi, vous n'avez pas besoin de maîtriser l'ensemble du DSA, y compris des choses comme l'algorithme de Dijkstra ou les arbres rouge-noir (même si cela vous sera utile pour réussir vos prochains entretiens).
Il suffit d'un peu de travail et de préparation pour ne pas être pris au dépourvu et résoudre ces "petits problèmes" que de nombreuses entreprises utilisent de nos jours pour filtrer les candidats et ne pas perdre de temps sur de longs entretiens. en investissant leurs ressources (par exemple les personnes qui ont besoin d'un entretien, etc.)
Ce qui manque à de nombreux développeurs "Waterfall" après les camps d'entraînement/cours, ce sont des compétences en résolution de problèmes, ces programmes vous prennent souvent par la main et ne vous permettent pas beaucoup de réfléchir par vous-même - ne disant pas que c'est mal mais pour devenir meilleurs. différentes techniques sont nécessaires et pour réussir des entretiens sous pression, cela fait une énorme différence de pouvoir trouver rapidement des solutions aux problèmes que vous avez reconnus il y a 10 minutes et que les intervieweurs s'attendent à ce qu'ils soient résolus en moins d'une heure.
Apprenons-en davantage à ce sujet à partir de l'un des exemples que j'ai vécus, puis je partagerai une habitude quotidienne qui m'a aidé lors de mes entretiens et présenterai quelques problèmes pratiques de résolution de problèmes intéressants.
Donc, un palindrome est une valeur qui se lit de la même manière vers l'arrière ou vers l'avant. Par ex. racecar est un palindrome mais bonjour n'est pas un palindrome car lorsque vous inversez cette valeur, ce serait olleh à la place.
Je suis en appel avec un recruteur de l'une des entreprises pour lesquelles je postulais et nous avons cette petite conversation décontractée car c'était l'une des premières étapes dans cette entreprise. Et maintenant BOUM, les 10 dernières minutes de l'interview "Hé, une dernière question, pourrais-tu écrire une solution de code pour le problème du palindrome ?" ... et j'ai été un peu pris au dépourvu.
Mais nous avons compris ceci, en sautant instantanément sur https://jsfiddle.net/ et en écrivant :
function isPalindrome(string) { return string.split('').reverse().join('') === string; }
Fier de moi, mais le recruteur dit "S'il vous plaît, n'utilisez pas de méthodes intégrées.".
Ok, pas de problème du tout, nous manquons bientôt de temps mais j'ai compris.
Passez du temps à trouver une solution idiote, quelque chose comme ceci :
function isPalindrome(string) { let isValid = true; for (let i = 0; i < string.length / 2; i++) { if (string[i] !== string[string.length - i - 1]) { isValid = false; } } return isValid; }
et bien sûr, le recruteur a commencé à parler de la notation Big O. Nous avons encore parlé et j'ai été arrêté, à nouveau pris au dépourvu.
Disons qu'une solution acceptable serait quelque chose comme ceci :
function isPalindrome(string) { const normalizedString = string .toLowerCase() // Convert to lowercase .replace(/[^a-z0-9]/g, ''); // Remove non-alphanumeric characters for (let i = 0; i < normalizedString.length / 2; i++) { if (normalizedString[i] !== normalizedString[normalizedString.length - i - 1]) { return false; } } return true; }
Nous faisons 2 choses ici, d'abord, nous avons normalisé une chaîne donc pour Un homme, un plan, un canal : Panama, nous obtenons amanaplanacanalpanama et nous quittons la boucle tôt plutôt que de toujours parcourir "la moitié de la valeur de la chaîne".
Ce n'est qu'un exemple, mais apprenons ce qui ne va pas.
Leçons apprises, j'ai commencé mon travail sur leetcode. Toujours 1+ problème par jour, mais en choisissant principalement parmi la difficulté Facile/Moyenne et en essayant de se concentrer sur les problèmes qui « sont de nature humaine » comme les recruteurs les utilisent habituellement, par ex. Meilleur moment pour acheter et vendre des actions On m'a confié une tâche dans l'une des entreprises suivantes pour laquelle je postulais et je l'ai résolue. J'aime interroger ChatGPT sur l'entreprise pour laquelle je postule et recommander des problèmes pratiques qui pourraient être pertinents, en ajoutant même un message du recruteur comme contexte supplémentaire. (Oui, vous pouvez leur demander par e-mail à quoi s'attendre lors de l'entretien s'ils ne l'expliquent pas très bien).
Après un certain temps, vous commencerez à voir des modèles, des problèmes de tableau, des problèmes de chaîne, des pièces de connexion et à vous améliorer, car les méthodes que vous utilisez pour résoudre ces problèmes peuvent être partagées même si les cas de test diffèrent ou si la nature du problème est différente. complètement différent.
Alors que nous ajoutons de plus en plus de fonctionnalités à notre plate-forme, je ferai un plug-in sans vergogne avec les problèmes de pratique sur BigDevSoon, 41 d'entre eux en ce moment, en essayant de garder les choses simples (KISS) et de sélectionner les problèmes les plus pertinents. + quelques autres pour l'échauffement (Niveau Facile).
J'en énumère ci-dessous 10 que je trouve intéressants à résoudre.
Et c'est tout ! Il y a beaucoup à apprendre de ces problèmes pratiques, chacun étant une façon amusante d'activer votre cerveau.
Mon objectif depuis longtemps est de diffuser une approche d'apprentissage par projet à travers la communauté et de faire fonctionner BigDevSoon, une application sur laquelle nous travaillons depuis 3 ans. C'est une grande réussite pour nous.
Continuez à coder en GRAND ! ?♂️
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!