Il est temps de résumer les résultats du concours, qui était dans l'article " Programmeurs, allez aux interviews ". Les conditions du concours étaient les suivantes: donnez un exemple de la tâche la plus inhabituelle de votre entretien. Il est temps de faire le point sur la compétition et de tenir le vote final! Aller!
Quête soumise par les lecteurs
Nous avons sélectionné, à notre avis, les tâches les plus intéressantes et vous pouvez les évaluer. Nous n'avons pas limité le nombre d'exemples, donc certains utilisateurs en ont donné plusieurs à la fois.
1. Utilisateur avec un surnomJakushevapporté deux tâches ( première et deuxième ).
Première tâche:
Eh bien, je ne sais pas à quel point la tâche est intéressante, mais absolument stupide: «Écrivez« Hellow, World! ". Dans C.Deuxième tâche:
Ils aiment toujours ça sur "baremetall": Il y a un contrôleur très simple avec un minimum de RAM, par exemple, PIC16F873, il "renifle" RS-485. Un paquet composé de nombres de 32 bits est transmis sur l'interface. Le format, le début et la fin du paquet sont connus, on sait que chaque numéro est transmis un nombre pair de fois. On sait également que le canal est fiable à 100%. Et le flux peut être TRÈS long. Mais 1 nombre de l'échantillon est transmis un nombre impair de fois. Comment le trouver?2. Utilisateur avec surnomnick758 a donné le problème suivant:
La tâche de l'entrevue. Quelle sera la sortie du programme? Résolvez sans courir. Il y a des erreurs mineures dans le texte de sorte qu'il ne se compile pas tout de suite.3. Un exemple tiré d'une interview d'un utilisateurVolCh
Le puzzle le plus addictif de ce genre que j'ai vu.
float bon_jovi[4][4]= { {0, 2, 0.5, 2}, {1, 3, 3 , 0}, {2, 0.5, 0, 1}, {0, 0, 0, 0} } #define FIRST_SONG 3 #define LAST_SONG 1 #define CD 0 #define ARTIST 1 void f(float *p, int jazz, int hiphop) { int high_rating=0; int low_rating=high_rating int music; float sum=0.0; for (music = jazz; music <= hiphop; music++) { sum += *(p++) if ( p[music]) high_rating++; else ++low_rating } p--; sum += *(--p) printf("%d %d %f", high_rating, low_rating, sum) } int main() { f(&bon_jovi[CD][ARTIST], LAST_SONG, FIRST_SONG) return 0; }
:
- un interpréteur PL simple (un sous-ensemble de pascal semble être): variables, arithmétique,
- la tâche de détecter la désynchronisation des générateurs d'horloge de deux ordinateurs avec une architecture fictive (?) et un assembleur avec la grille peer-to-peer la plus simple, plutôt même une connexion directe
- codage en direct à distance: écrire et lever un simple CRUD dans symfony sans générateurs dans docker (je ne me souviens pas que Docker était une condition ou l'a décidé moi-même)
- dessiner un modèle approximatif du domaine jira, dessiner un diagramme des services: serveurs, magasins, files d'attente, SGBD, etc.
4. Utilisateuriamdev95a apporté un puzzle amusant :
Il y a deux registres: R1 et R25. Tâche comique (mais bien réelle) devadim_bv
Il y a deux commandes:
C1: R1: = K * R2 - R1
C2: R2: = K * R1 + R2
Il y a un nombre cible N
Entrée: K, N, R1, R2
Vous avez besoin: d'imprimer la séquence minimum à partir de commandes qui vous permettent d'obtenir N dans R1 ou dans R2 (dans l'un des deux registres)
Ou n'imprimer rien
On sait que K! = 0, R1! = R2, K, R1, R2 sont des nombres naturels, N est un entier.
Le problème de la blague Phystech "a été résolu par tout le département, mais a décidé de passer l'examen": Trier un tableau d'octets de 8 téraoctets.Il est en votre pouvoir de déterminer le gagnant! Votez pour la mission d'entretien la plus intéressante. Selon les résultats du vote, le gagnant recevra un prix intéressant! Nous résumerons les résultats du vote le dimanche 11 octobre.