«Je suis un imbécile inutile et je veux arrêter» - 10 questions pour un programmeur, version pilote



Bonjour, Habr!

Rappelez-vous l' histoire de Steve Jobs et Dennis Ritchie ? Nous ne voulons pas arranger les différends et relire la morale, mais la vérité reste vraie - des milliers de technophiles cool sont assis dans l'ombre et leurs histoires sont cachées dans un placard.

Nous, à la rédaction de Habr, avons l'intention de corriger cela. Désormais, nous interrogerons régulièrement des personnes sur lesquelles elles n'écrivent pas dans les médias et qui ne sont pas pourchassées sur les réseaux sociaux. Donc, si vous avez quelque chose à dire sur vous, préparez-vous.

Pour vous faire comprendre à quoi cela ressemblera, commençons par notre exemple. Sous cat 10 questions générales que nous poserons à tout le monde. Pour le pilote, fillpackart leur a répondu. (Ce mois-ci, j'ai pris plusieurs entretiens apparemment bons avec lui: un , deux , trois ). Lisez, et si vous voulez parler de vous de la même manière, écrivez-moi ou baragol .


Philip Rangin, fils d'un ingénieur d'Ivanov. Il a commencé à écrire en C ++ à l'âge de 16 ans à l'université, puis a étudié le .net. Maintenant ingénieur principal en développement de logiciels dans un bon bureau à l'étranger. En plus des langages courants, il écrit en F # et OCaml.

1. Parlez-nous de la fonctionnalité que vous avez implémentée et dont vous êtes fier.


"Je n'ai rien fait pour être fier." Toute ma vie professionnelle, j'ai résolu des problèmes très triviaux. Par conséquent, je suis fier de ce que je suis capable de faire, mais pas de ce que j'ai fait.

Je pense que je pourrais être fier si je pouvais implémenter une bonne IA.

2. Et maintenant - sur le fakap le plus féroce.


- Une fois, toute la journée, j'ai essayé sans succès d'obtenir OCaml sous Windows (n'essayez pas de répéter). Cela n'avait rien à voir avec le travail, et le lendemain matin, lors du rassemblement, il fallait mentir. Je regarde - un bug est attaché à moi que je n'ai même pas regardé. Eh bien, je pense, "il ne peut pas y avoir de bogue que je ne puisse pas corriger en deux jours!" Lors du rassemblement, il a dit qu'il y avait travaillé, et dans deux jours il y aura des relations publiques.

En conséquence, j'ai travaillé dessus pendant trois mois.

Le bug était lié à l'interaction de deux énormes systèmes. Il a été reproduit en permanence. Pendant trois mois, j'ai construit différentes hypothèses et les ai testées, en faisant des erreurs encore et encore - j'ai même abandonné la construction d'une maison à Skyrim. Ce furent les trois pires mois de ma vie.

J'ai fini par le fermer comme «Pas de repro». Je suis venu voir le réalisateur, j'ai dit: "Je suis un imbécile inutile, et je veux arrêter pour ne pas te tourmenter." Mais en réponse, ils ont considérablement augmenté mon salaire.

3. Décrivez votre espace de travail: du fauteuil et du moniteur aux environnements de programmation et à vos utilitaires préférés.


- Je travaille avec des systèmes d'exploitation Windows parce que j'ai une pile .net et parce que Windows a la meilleure interface utilisateur. Je suis assis à une table que je me suis faite. Il est énorme, convient à cinq personnes.

Je n'ai pas le pire devbox, mais avec un inconvénient majeur - j'ai essayé d'économiser de l'argent et j'ai acheté un pourcentage d'AMD. Ce fut un terrible échec. Malgré la puissance déclarée élevée, cette merde passe mes tests à 5 !!! fois plus lent que son homologue Intel.

Maintenant, je n'ai qu'un seul moniteur. J'ai l'intention d'en acheter quelques autres pour ne pas faire honte. Mon IDE préféré est Visual Studio 2017 en collaboration avec Resharper. Éditeur de texte préféré - Visual Studio Code en conjonction avec un milliard d'extensions. Les télécharger et regarder comment VSCode évolue est l'un de mes hobbies.

J'adore git, mais j'aime probablement Visual Studio Team Services plus que GitHub.

4. Selon quel principe choisissez-vous un emploi? Pile, produit, conditions de vie, argent?


- Pour le moment, les facteurs clés pour moi sont le paiement et la capacité de travailler pour un tiers de mes capacités. Il me semble que j'ai grillé et que je ne suis plus prêt à travailler pour une entreprise idéologiquement. Même la peur d'être licencié et de perdre mon mode de vie habituel ne peut pas me faire plonger profondément dans le projet. Et je suis le père d'un enfant et demi - la peur est très sérieuse. Mais l'uniformité et l'insensé de tout ce que je fais maintenant me font presque souffrir physiquement.

Parfois, il me semble qu'avec cette approche, je n'ai pas le droit moral de chercher un emploi. Je me justifie par le fait que par rapport au système, il est impossible d'être moral ou immoral. L'abstraction des entreprises aide à se distancier de la pensée que l'on peut nuire à de vraies personnes - je ne prends donc le travail que de grandes entreprises.

En même temps, cela me confond à quel point l'argent que je reçois pour ma ville pour une demande de traction est énorme. Comme si la grande compétence du développeur me donnait le droit de vivre dix fois mieux qu'un groupe de personnes qui, à la sueur de leur visage, font un travail utile huit heures par jour.

Parfois, il me semble, puisque j'ai pu rejouer l'entreprise sur un compte de sécurité sociale, je suis en quelque sorte digne de ce que j'ai. Pour cette raison, je perds contact avec la réalité, et il me semble que c'est ainsi que cela devrait être.

Je ne sais pas comment combiner cela, mais j'aime développer et détester travailler en tant que développeur. J'essaie de me rassurer que je n'ai tout simplement pas trouvé de projet intéressant, mais en même temps je n'y crois pas moi-même. C'est vraiment difficile de vivre avec.

5. Quelles technologies et langages que vous utilisez souhaitez-vous corriger?


- Je voudrais:

  • Inférence de type et immunité à la composition pour tapuscrit et C #. Ensuite, j'ai pu créer une méthode qui accepte quelque chose qui est garanti immuable, et pas comme maintenant - ReadonlyDictionary, qui n'est pas vraiment en lecture seule (a transmis le dixnari habituel à son constructeur, lui a laissé un lien et mute tranquillement).
  • Pour que les développeurs C # envoient, enfin, en enfer avec une compatibilité descendante, des utilisations farfelues qui ne fonctionnent que dans un seul fichier et rendent YaP plus moderne. Sérieusement, dans une langue pour laquelle les codes de style IDictionnary <IMyStupidType, IMyStupidType2> Foo (Func <IMySupidType, int, bool, string> reallyStrangeCallback ne sont pas rares , c'est une décision très étrange.
  • Champs de sauvegarde automatique en C #, une sorte de sucre sur Func <T1, T2> .
  • Des contrats pour C # prêts à l'emploi (par exemple, à Roslyn) au lieu de solutions tierces qui transforment mon IDE en quelque chose d'inhibiteur.
  • Un analogue de jsx pour le langage F #. Si aucun de vous ne le fait la semaine prochaine, qu'il en soit ainsi - je le comprendrai.
  • Pour que la communauté se rende compte que les tests unitaires sont des déchets inutiles, et les langues avec typage dynamique (à ne pas confondre avec les faibles) sont le plus grand échec de l'histoire de l'industrie.
  • Pour que l'architecture du processeur soit plus conçue pour une approche fonctionnelle.
  • Optimisation de la récursivité de la queue dans JS / TS afin que je puisse comprendre ma récursivité de la queue partout sans me reposer sur la taille de la pile. Il y en a une dans la spécification, mais les gars qui ont vu la v8 ont juste décidé qu'il n'était pas si important de suivre les spécifications de la langue lors du développement d'un runtime pour elle.
  • Saisie statique facultative dans JS prête à l'emploi, mais pas opposée à la dactylographie. Contrairement aux créateurs du script temporel, je le considère comme un YaP indépendant avec un design multi-paradigme très moderne et puissant.
  • Pour que les choses comme l'assemblage Web prennent fermement leur place dans les pratiques et les normes du développement frontal.
  • Amélioration significative des clients Web Github et similaires. Idéalement, la possibilité de travailler confortablement avec le code d'un projet sérieux dans le navigateur.
  • Plus de conventions sur la compatibilité. Combien serait-il plus facile si jvm était capable d'interpréter et de désigner jit cil.

6. Où vaut-il mieux apprendre de l'expérience de quelqu'un d'autre - dans une université, à konfakh, à Habr? Quelque part ailleurs?


- J'ai étudié à l'université, mais j'ai été expulsé plusieurs fois. Été à la conf, je lis constamment Habr. Il ne me semble pas avoir appris quoi que ce soit d'utile de ces sources. Eh bien, ou je suis heureux de le penser.

Mon but est de lire des livres et de se faire des amis avec les développeurs. Je pense que la plus grande influence sur mes compétences a été faite par la communication avec des gens intelligents qui sont engagés dans le développement.

7. Si vous aviez des ressources illimitées (temps, argent, pouvoir, personnes), quel projet prendriez-vous?


- Ce serait formidable de faire la simulation la plus précise possible du monde humain, afin que nous puissions y tester comment amener la société à l'état le plus heureux. Quoi qu'il en soit, comment il se comportera dans différents cas.

8. Comment vous détendez-vous? Que faites-vous en dehors du travail?


«Je marche dans les bois et je pense, parfois avec de la bière, jouer de la guitare et parfois jouer à des jeux vidéo.» Je dirais que mon hobby est de penser et de rêver.

J'ai plusieurs de mes projets avec des amis. J'aime particulièrement leur donner des revues de code passivement agressives ("pourriez-vous motiver à utiliser une décision aussi mal conçue?") Et regardez comment cela change notre relation.

Parfois, je fais toutes sortes de conneries humanitaires comme une interview. Je commence constamment à écrire des livres, même si je n'en ai encore terminé aucun.

9. Parlez de 3 livres préférés - éducatif, science populaire et fiction.


Formation - «CLR via C #» par Jeffrey Richter. Tant de connaissances sur la façon dont un runtime détaillé est organisé en un seul travail est une vraie trouvaille. Si vous mémorisez ce livre, vous passerez par n'importe quel compte de sécurité sociale sur donneter. Je mentionnerais également les "Structures de données fonctionnelles" de Chris Okasaki. Pas très utile d'un point de vue pratique, mais elle a retourné ma foi en la programmation - la mise en œuvre de structures de données me provoque un frisson métaphysique.

Scientificpop - Je ne sais pas si Code Complete peut être considéré comme tel, mais j'aime vraiment le relire. L'auteur écrit des choses incroyablement évidentes, et sur tous les projets où j'ai travaillé, pour une raison quelconque, personne ne pouvait suivre suffisamment ces principes simples.

Artistique - «American Tragedy» de Dreiser. Je n'aurais jamais pensé qu'un monstre numérique aussi pragmatique comme moi puisse sympathiser avec une fille abandonnée, puis morte. Mais j'étais empathique et cela m'a beaucoup frappé.

10. Si, juste sous vos yeux, l'IA se réveille, que lui direz-vous?


«Je lui suggère de concevoir l'intelligence artificielle, puis de comparer laquelle est la meilleure.» Si le nouveau était meilleur, je lui demanderais de concevoir l'intelligence artificielle, puis ...

Si l'IA s'avérait être un puissant encodeur, je l'utiliserais pour créer un argument de fer selon lequel Golang est une impasse dans le développement de la programmation. Parce qu'il y a beaucoup de ces holivars dans ma vie, et je n'ai pas de budget pour étudier Golang pour créer un bon argument.

Bonus: posez n'importe quelle question à un autre développeur.


- Étudier quelle technologie avez-vous le plus appréciée au cours du processus?

Source: https://habr.com/ru/post/fr420321/


All Articles