carrière de programmeur. Chapitre 3. Université

Suite de l'histoire "Carrière de programmeur".

Après avoir terminé l’école du soir, il était temps d’aller à l’université. Dans notre ville, il y avait une université technique. Il y avait également une faculté de « Mathématiques et informatique », qui possédait un département de « Systèmes informatiques », où l'on formait les futurs informaticiens - programmeurs et administrateurs.
Le choix était restreint et j'ai postulé pour la spécialité « Programmation en génie informatique ». Il y avait 2 examens d'entrée à venir. En langage et en mathématiques.
Les examens étaient précédés d'un entretien, et du choix de la forme de formation - budget ou contrat, c'est-à-dire gratuitement ou contre de l'argent.

Mes parents étaient présents à mon entretien et s'inquiétaient de l'admission. Bien entendu, ils ont choisi la forme contractuelle de formation. En passant, cela coûtait environ 500 $/an, ce qui représentait beaucoup d'argent en 2003, surtout pour notre petite ville. Je me souviens bien du dialogue de mon père avec la fille du bureau des admissions :
La fille: Vous pouvez essayer de passer des examens avec un budget limité, et si cela ne fonctionne pas, passer à un contrat. Vous pouvez payer en plusieurs fois.
Père: Non, nous avons déjà décidé de postuler pour un contrat
La fille: Ben pourquoi, tu ne risques rien
Père: Non, c'est toujours un risque. Dites-moi, est-ce que tout le monde postule pour un contrat ?
La fille: Oui, tout le monde le fait. Probablement que seuls les abrutis complets ne peuvent pas
Père: Alors nous avons une chance... dit-il en souriant, et nous avons signé les documents d'admission

Bien sûr, les performances du lycée étaient encore fraîches dans la mémoire de mes parents, donc au fil des années, je comprends pourquoi ils disaient cela.

L'été, avant l'admission, j'ai continué à acheter des livres pour la totalité des 40 $ que ma grand-mère m'avait donnés sur sa pension.
Du mémorable et significatif :
1. "UML2.0. Analyse et conception orientées objet". Un livre qui m'a appris à concevoir des logiciels de toute complexité, à réfléchir à l'architecture, à tout décomposer en composants, à écrire des cas d'utilisation et à dessiner des diagrammes UML. C’est la connaissance dont les seniors, les dirigeants et les architectes ont besoin. Ceux qui matérialisent un système à partir du vide, alors qu’il n’y a qu’une description de l’idée.
Je connais des gens qui ont déjà plus de 30 ans et qui ne peuvent toujours pas prendre de décision sans un ordre d'en haut, d'un développeur de rang supérieur. En freelance et en travail à distance, lorsque vous travaillez souvent en tête-à-tête avec un client, ces connaissances sont également inestimables.
Ils sont également pertinents pour les développeurs indépendants qui créent de nouvelles applications et services. Bien que peu de gens se soucient d'une conception détaillée. C’est pour cela que nous avons des logiciels d’une telle qualité, engloutissant toute la mémoire, avec une UX tordue.
2. "Norme ANSI C++ 98". Ce n'est pas tout à fait un livre, mais il contient plus de 800 pages d'informations générales. Bien sûr, je ne l'ai pas lu section par section, mais j'ai plutôt fait référence à des règles de langage spécifiques lors du développement de mon compilateur C++. La profondeur de la connaissance de la langue, après étude et mise en œuvre de la norme, ne peut être décrite par aucune épithète merveilleuse. On peut dire que vous savez tout sur la langue, et même plus. Travail très long et minutieux pour étudier la norme. Mais j'avais 5 ans d'université devant moi, donc personne ne me poussait
3. "Delphi 6. Guide pratique.". Ce fut un saut rapide dans le monde de l’interface graphique et de la forme flatteuse. Il n’y avait quasiment pas de seuil d’entrée et je connaissais déjà assez bien Pascal. Pendant mes études universitaires, j'ai écrit la part du lion des programmes commerciaux à Delphes. Il s'agissait d'un logiciel destiné aux étudiants universitaires diplômés, à la comptabilité des petites entreprises et au gouvernement. établissements. Ensuite, il y a eu plusieurs commandes indépendantes. Au milieu des années XNUMX, Delphi dominait le marché du développement Windows. Jusqu'à présent, lors du paiement dans les magasins locaux, vous pouvez voir des programmes avec des polices et des commandes familières, ce qui distingue immédiatement une application Delphi de toute autre.
4. "Tutoriel MFC". Ayant maîtrisé Delphi, il était logique de continuer à créer des UI en C++. C'était beaucoup plus difficile, tout ne s'est pas bien passé et c'était compréhensible. Cependant, j'ai également amené cette technologie au stade de l'application dans des projets commerciaux. Une société antivirus allemande distribue encore aujourd’hui mon programme écrit en MFC.
5. "3 disques avec MSDN Library 2001". Je n’avais pas Internet tout de suite et, autant que je me souvienne, la bibliothèque MSDN n’était pas en ligne en 2003. Dans tous les cas, il m'a été plus facile d'installer le livre de référence MSDN sur mon PC local et de trouver facilement la documentation pour n'importe quelle fonction WinApi ou classe MFC.
carrière de programmeur. Chapitre 3. Université
Les livres les plus importants lus au cours de la période 2002-2004

Ce sont des livres qui ont été lus au cours de la période 2002-2004. Bien sûr, il s’agit désormais d’un héritage minable, qui est réécrit par lots à l’aide des technologies .NET et Web. Mais c’est mon chemin, peut-être que certains d’entre vous ont eu un chemin similaire.

Premier semestre

A la fin de l'été, c'est l'heure des examens d'entrée à l'université. Tout s'est bien passé. J'ai réussi l'examen de langue et de mathématiques et j'ai été inscrit en première année de spécialité Programmation des Systèmes Informatiques.
Le premier septembre, comme prévu, j'ai assisté aux premiers cours de ma vie. «Le temps passé par les étudiants est le moment le plus brillant de la vie», m'a dit ma mère. J'y ai volontiers cru.
Le premier jour, 3 paires de matières de formation générale ont été réussies, tout le monde a fait connaissance dans le groupe et, dans l'ensemble, l'université a laissé une impression agréable.
Finalement, ils ont commencé à nous enseigner la vraie programmation en C ! Et, en plus, ils ont enseigné l’histoire de l’informatique, du numérique et bien d’autres informations qui me concernaient. Même en jurant. l’analyse a été utile, car elle m’a permis de comprendre plus profondément ce qu’a écrit le très respecté Donald Knuth.

Les cours de programmation se sont déroulés pour moi dans une ambiance de conduite. Finalement, des gens sont venus me demander de l'aide. Je me sentais nécessaire. Au début du cours, on nous a confié la tâche d'écrire un programme. La tâche a été conçue pour une paire et demie, puis une demi-heure pour les tests. J'ai réussi à rédiger le devoir en 3 à 5 minutes, et le reste du temps, je me promenais dans le bureau et aidais les autres à comprendre le problème.
Il n’y avait pas assez d’ordinateurs pour tout le groupe, donc le plus souvent nous nous asseyions deux à la fois devant un seul ordinateur. Voyant mes capacités, trois, quatre, parfois même 5 à 6 personnes se sont assises près de mon bureau et n'ont pas hésité à s'asseoir pour apprendre ce que j'avais appris il y a quelques années grâce au livre de Kernighan et Ritchie.
Mes camarades de classe ont vu mes capacités et ont posé eux-mêmes des questions, ou m'ont proposé de simplement passer du temps après les cours. C’est ainsi que je me suis fait de nombreux amis, dont la plupart sont encore amis aujourd’hui.

En hiver, c'était l'heure de la première séance. Au total, il fallait suivre 4 matières : 2 types de mathématiques supérieures, histoire et programmation. Tout a réussi, certains 4 points, certains 3. Et on m'a attribué automatiquement la programmation. Les professeurs connaissaient déjà mes compétences, ils ne voyaient donc pas l’utilité de me tester. Je me suis présenté avec plaisir à la séance avec mon livret pour obtenir immédiatement une signature et j'étais sur le point de rentrer chez moi lorsque mes camarades de classe m'ont demandé de rester et de me tenir devant la porte. Bien. M'étant placé sur le rebord de la fenêtre, à la sortie du bureau, je me mis à attendre. Il y avait un autre gars à côté de moi, qui a également réussi l'examen automatiquement.
"Pourquoi restes-tu ici", ai-je demandé
— «Je veux gagner de l'argent en résolvant des problèmes. Pourquoi es-tu ici?
- "Moi aussi. Je ne vais tout simplement pas gagner d'argent. Si vous avez besoin d’aide, alors, par bonté de cœur, je prendrai une décision.
Mon adversaire hésita et marmonna quelque chose en réponse.

Au bout d'un moment, les camarades de classe ont commencé à quitter le public, emportant avec eux des morceaux de papier pliés contenant des problèmes de l'examen.
"Aidez-moi à décider", a demandé le premier casse-cou. "D'accord, je vais décider maintenant," répondis-je. Pas même 5 minutes ne s'étaient écoulées avant que je griffonne une solution sur un morceau de papier froissé avec un stylo à bille et que je la rende. Voyant que le projet fonctionnait, les gens commencèrent à quitter le public beaucoup plus souvent, et parfois même deux ou trois à la fois.
Il y avait trois piles de feuilles sur le rebord de ma fenêtre de travail. Un paquet contient des feuilles TODO nouvellement arrivées. Devant moi se trouvait une feuille d'In Progress, et à côté se trouvait un paquet de « Done ».
C'était mon heure de gloire. L’ensemble du groupe, soit près de 20 personnes, s’est tourné vers moi pour obtenir de l’aide. Et j'ai aidé tout le monde.
Et le gars qui voulait gagner de l'argent est parti précipitamment au bout de quelques minutes, réalisant qu'il n'y avait rien à attraper ici, toute l'attention était concentrée sur l'altruiste.
L'ensemble du groupe a réussi l'examen en 4e et 5e années, et j'ai maintenant 20 amis et une autorité inébranlable en matière de programmation.

Premier argent

Après la session d'hiver, des rumeurs se sont répandues dans toute la faculté selon lesquelles il y avait un gars capable de résoudre n'importe quel problème de programmation, qui nous était confié à la maison ou pendant la session. Et le bouche à oreille s'est répandu non seulement parmi les étudiants de première année, mais aussi parmi les étudiants de dernière année.
Comme je l'ai déjà écrit, j'ai développé des relations amicales avec tous les membres du groupe après la « meilleure heure » de l'examen, et nous avons commencé à communiquer très étroitement avec quelques gars. Nous sommes devenus de vrais amis et avons passé beaucoup de temps en dehors de l’université. Pour simplifier la présentation, appelons-les Elon et Alen (les pseudos sont proches des vrais).
Nous appelions Elon par son nom, mais Alain a été surnommé en l'honneur d'Alain Delon, pour sa capacité à séduire n'importe quelle beauté. Des filles tournaient littéralement autour de lui, en nombre varié. En termes de rencontres et de relations nouées pour la nuit, Alain Delon n'avait pas d'égal. C'était un véritable mâle alpha pour le sexe féminin, ce qui est tout à fait inhabituel pour la plupart des informaticiens. Outre les aventures amoureuses, Alain était dessinateur par vocation. Et s'il avait besoin de dessiner quelque chose, par exemple les bannières clignotantes alors populaires du format Web 1.0, il le faisait avec facilité.

On peut en dire beaucoup plus sur Elon. Nous le rencontrons encore aujourd'hui, dix ans après l'université. Dans ses premières années, c'était un gars maigre et plutôt silencieux. (On ne peut pas en dire autant du type au gros visage dans une jeep d’aujourd’hui). Cependant, j'étais le même : mince et taciturne. Je pense donc que nous avons rapidement trouvé un langage commun.
Souvent, après les cours, Elon, Alen et moi nous réunissions dans une brasserie recouverte d'une bâche. Premièrement, c'était en face de l'université, et deuxièmement, pour un « rouble » et 50 kopecks, on pouvait se procurer des friandises pour 2 heures de fête incendiaire. Comme la bière pression et les crackers. Mais le propos était différent.
Elon et Alen venaient d'autres villes et vivaient dans une chambre louée. Ils manquaient constamment d’argent et il y avait des moments où ils devaient avoir faim. Des moments heureux, où ils recevaient une bourse de 10 $ sur leur carte, étaient célébrés le même jour et il était alors temps de « se serrer la ceinture » et de vivre de ce que Dieu leur envoie.

Bien sûr, cette situation a motivé les étudiants en visite à chercher des moyens de gagner de l’argent supplémentaire. Et devant eux, à bout de bras, était assise une « tête brillante » en ma forme. Qui est également souple et refuse rarement d’aider les gens.
Je ne sais pas si j’ai bien décrit cette situation, mais finalement ces rassemblements au pub ont conduit à la création de la première entreprise informatique de ma carrière appelée SKS. Le nom était simplement composé des premières lettres de nos noms de famille. Notre jeune entreprise, représentée par trois fondateurs, a détruit ses concurrents et toute l'université au cours des quatre années suivantes.

Elon était un ROP. C'est-à-dire le chef du service commercial. À savoir, ses responsabilités incluaient la recherche de nouveaux clients pour notre activité d'externalisation. Le canal de vente était constitué de dépliants A4 imprimés horizontalement, avec une simple inscription : « Résoudre les problèmes de programmation ». Et ci-dessous se trouve le numéro de téléphone d’Elon.
Ce type de publicité extérieure était placé à chaque étage où les étudiants étudiant en programmation pouvaient apparaître.
Un autre canal, plus fort en termes de fidélisation de la clientèle, était le canal de vente par le bouche à oreille.

Le modèle économique était simple. Que ce soit par une recommandation ou une annonce, un étudiant universitaire nous a contacté. Il a décrit un problème de programmation qui devait être résolu dans un certain délai, et je l'ai résolu moyennant le prix étudiant. Elon s'impliquait dans les ventes et recevait son pourcentage. Alain Delon participait moins souvent à notre activité, mais si nous avions besoin de réaliser un dessin, une image ou d'attirer des clients supplémentaires, il était toujours utile. Avec son charme, il nous a amené beaucoup de nouvelles personnes. Tout ce que j'avais à faire était de traiter ce pipeline à une vitesse de 5 à 10 tâches par jour. Les délais étaient stricts – pas plus d'une semaine. Et le plus souvent, cela devait être fait hier. Par conséquent, de telles circonstances m'ont rapidement appris à écrire des programmes en « flux », sans me laisser distraire par tout, comme un tremblement de terre d'une magnitude de 5,9 ou un accident majeur hors de la fenêtre.

Pendant la saison la plus chaude, avant la session, c’est-à-dire en décembre et mai, il me semblait que j’avais toutes les tâches de l’université sur mon ordinateur. Heureusement, la plupart étaient du même type, surtout lorsque nous avons été contactés par un grossiste représenté par un représentant de tout un groupe. Ensuite, il était possible d'effectuer 20 tâches, par exemple en assembleur, en changeant seulement 2-3 lignes. Dans une telle saison, les pistes coulaient comme une rivière. La seule chose qui nous manquait, ce sont les disquettes. Entre 2003 et 2005, les étudiants pauvres de notre ville n'avaient pas la possibilité de transférer de l'argent via Internet. De plus, il n’y avait aucune garantie de paiement, ce que l’on appelle désormais le séquestre. Ainsi, la société SKS, en tant qu'exécutante des commandes, a pris rendez-vous sur le territoire de l'université et nous avons donné disquette avec une solution. Il n'y a eu quasiment aucun remboursement (de l'anglais remboursé - retour du paiement à la demande du client). Tout le monde était content et recevait ses 4 à 5 points s'il parvenait à apprendre ce que j'avais ajouté au fichier readme.txt sur la disquette. Cependant, une simple démonstration d'un programme pleinement fonctionnel provoque souvent un effet wow parmi les enseignants.

Le prix était ridicule, certes, mais nous l'avons pris en quantité. Par exemple, une tâche domestique typique coûte entre 2 et 3 $. Cours 10$. Le jackpot sous la forme d'un programme pour le travail d'un candidat est tombé une fois, et il s'élevait jusqu'à 20 $ pour une candidature d'un étudiant diplômé préparant sa soutenance. Pendant la saison chaude, ces revenus peuvent être multipliés par 100 clients, soit finalement plus que le salaire moyen de la ville. Nous nous sentions cool. Ils pourraient s'offrir des boîtes de nuit et s'y amuser, plutôt que de s'étouffer avec du cheburek pour leur dernier centime.

Du point de vue de mes compétences, elles se multipliaient à chaque nouvelle tâche d'élève. Nous avons commencé à recevoir des candidatures d’autres facultés, avec un programme de formation différent. Certains étudiants seniors utilisaient déjà Java et XML à leur plein potentiel lorsque nous nous sommes penchés sur C++/MFC. Certains avaient besoin d'Assembler, d'autres de PHP. J'ai appris tout un zoo de technologies, de bibliothèques, de formats de stockage de données et d'algorithmes pour résoudre des problèmes.
Cet universalisme m’est resté jusqu’à ce jour. Une variété de technologies et de plates-formes sont également utilisées lorsque vous travaillez sur des projets. Je peux désormais écrire un logiciel ou une application pour n’importe quelle plate-forme, système d’exploitation ou appareil. La qualité, bien sûr, varie, mais pour l'entreprise avec laquelle je m'occupe principalement, le budget est généralement important. Et pour eux, avoir un seul orchestre signifie réduire le budget exactement dans la mesure du nombre de développeurs que je peux remplacer avec mes compétences.

Si nous parlons du plus grand bénéfice que m’ont apporté mes études à l’université, il ne s’agirait pas de cours d’algorithmes ou de philosophie. Et elle n’apprendra pas à apprendre, comme il est de bon ton de dire à propos des universités. Premièrement, ce seront des personnes avec qui nous sommes restés en bons termes après la formation. Et deuxièmement, c'est la même société SKS qui a fait de moi un développeur professionnel, avec des commandes réelles et diverses.
Je voudrais retenir une phrase qui convient très bien à cette partie de l'histoire : Une personne devient programmeur lorsque d'autres personnes commencent à utiliser ses programmes et paient de l'argent pour cela..

Ainsi, la marque de l'entreprise SKS était largement connue non seulement dans les cercles étudiants, mais aussi parmi les enseignants. Il y a même eu un cas où l'un des professeurs est venu chez moi pour que je puisse l'aider à rédiger un programme pour ses besoins scientifiques. Il m'a, à son tour, aidé dans sa spécialisation. Nous étions tous les deux tellement absorbés par notre travail que nous nous sommes endormis tous les deux à l'aube. Il est sur le canapé et je suis sur une chaise devant l'ordinateur. Mais ils ont accompli leur tâche et tous deux étaient satisfaits du travail de chacun.

Tour du destin

La 4ème année universitaire a commencé. Dernier cours à l'issue duquel un baccalauréat est délivré. Il n'y avait pratiquement pas de matières d'enseignement général, mais uniquement celles liées à l'informatique et aux réseaux. Maintenant, je regrette parfois de ne pas avoir eu le temps ou de ne pas m'être intéressé à la même électronique ou à la structure interne des réseaux. Maintenant, je termine cela par nécessité, mais je suis sûr que ces connaissances de base sont nécessaires à tout développeur. D’un autre côté, on ne peut pas tout savoir.
Je terminais d'écrire mon propre compilateur C++, qui était déjà capable de vérifier le code pour les erreurs selon la norme et de générer des instructions d'assemblage. J'ai rêvé que j'étais sur le point de pouvoir vendre mon compilateur pour 100 $ la licence. J'ai multiplié cela par mille clients et mentalement
transporté vers un Hammer, avec les basses de 50 Cent provenant des haut-parleurs et des chaudasses sur la banquette arrière. Que faire à 19 ans, telles sont les priorités. L'astuce de mon compilateur maison était qu'il produisait des erreurs en russe, au lieu de l'anglais de Visual C++ et de gcc, ce qui n'est pas compréhensible pour tout le monde. J’ai vu cela comme une fonctionnalité géniale que personne au monde n’avait encore inventée. Je pense qu'il ne sert à rien d'en dire davantage. Cela n'a pas abouti aux ventes. J'ai cependant acquis une connaissance approfondie du langage C++, qui me nourrit encore aujourd'hui.

En quatrième année, j'allais de moins en moins à l'université parce que je connaissais la majeure partie du programme. Et ce que je ne savais pas, je l’ai résolu en troquant avec un étudiant qui comprenait, par exemple, l’électronique ou la théorie des probabilités. Ce que nous n’avions pas imaginé à l’époque. Et des écouteurs invisibles sur un fil dans lesquels la réponse était dictée. Et sortir de la classe en courant pour qu'un gourou de sa spécialité puisse rédiger pour vous la solution de l'examen complet en 2 minutes. Ce fût un agréable moment.
Durant le même cursus, j'ai commencé à réfléchir à un vrai métier. Avec un bureau, de vraies applications commerciales et un salaire décent.
Mais à cette époque, dans notre ville, on ne pouvait trouver qu'un emploi de programmeur
« 1C : Comptabilité », qui ne me convenait pas du tout. Même si par désespoir, j’étais déjà prêt pour cela. À cette époque, ma copine me faisait pression pour que je déménage dans un appartement séparé.
Sinon, coucher avec ses parents à travers le mur n'est pas du tout comme il faut. Oui, et j'en avais déjà marre de résoudre les problèmes des étudiants, et je voulais quelque chose de plus.

Les ennuis sont sortis de nulle part. J'ai pensé à annoncer sur mail.ru que je cherchais un emploi avec un salaire de 300 $ pour le poste de programmeur C++/Java/Delphi. Nous sommes en 2006. À quoi ils ont répondu en gros quelque chose comme : « Peut-être devriez-vous écrire à Bill Gates avec de telles demandes de salaire ? Cela m'a bouleversé, mais parmi un tas de réponses similaires, il y avait une personne qui m'a amené à travailler en freelance. C'était la seule opportunité dans notre Las Vegas pauvre de gagner beaucoup d'argent en faisant ce que je savais faire.
Ainsi, les études à l’université se sont progressivement transformées en un travail d’échange indépendant. En clôturant le sujet de l'université, on peut dire ceci : je ne suis pas allé en 5ème année. Il y avait une programmation et un concept tel que « fréquentation gratuite », que j'ai utilisé à 146 %.
La seule chose à faire était de défendre un diplôme de spécialisation. Ce que j'ai fait avec succès avec l'aide de mes amis. Il vaut la peine de dire que grâce à ce cours, j'avais déjà quitté mes parents pour un appartement loué et acheté une nouvelle voiture. C'est ainsi qu'a commencé ma carrière de développeur professionnel.

Les chapitres suivants seront consacrés aux projets individuels, aux échecs les plus graves et aux clients les plus inadéquats. Une carrière en freelancing de 5 à 40 $/heure, le lancement de ma propre startup, comment j'ai été banni de la bourse de freelance Upwork et comment de freelancing je suis devenu chef d'équipe dans la deuxième plus grande compagnie pétrolière au monde. Comment je suis revenu au travail à distance après le bureau et le démarrage, et comment j'ai résolu les problèmes internes de socialisation et de mauvaises habitudes.

A suivre ...

Source: habr.com

Ajouter un commentaire