Profession: Programmeur. Tout n'est pas clair

Nous avons écrit sur le front-end et le back-end , sur le développement et les tests mobilesmais c'étaient des cas particuliers. Lorsqu'une personne accède à la première ou à la prochaine profession, elle dit rarement qu'elle deviendra développeur pour iOS ou proctologue, en règle générale, cela ressemble à un «programmeur» et à un «médecin». La spécialisation vient plus tard, avec l'expérience. Mais pour affirmer fermement que vous voulez devenir programmeur, médecin, architecte, géologue, etc., vous devez vous débarrasser de la romantisation de la profession et l'aborder de manière sensée et significative. Même si vous avez soudainement décidé de devenir programmeur, pour "entrer dans l'informatique après 35". Si nous parlons de programmeurs du point de vue de la romance, ce sont des gens qui transforment nos idées en code et rendent la vie meilleure, plus facile, plus pratique. Pour le dire franchement, le travail d'un programmeur est un travail tendu, souvent routinier, avec de nombreux avantages et inconvénients. Nous en parlerons.

Artiste - Nadezhda Kotkina, posée - cyber_roach

Qu'est-ce?


Le terme "programmeur" peut cacher des programmeurs à profil étroit, des développeurs de logiciels, des ingénieurs, des analystes de systèmes, etc. Néanmoins, tous les programmeurs sont unis par une seule chose - la possibilité de mettre des exigences humaines dans le code machine afin de rendre le travail ou le divertissement automatisé, pratique, simple. Le programmeur crée des instructions pour l'ordinateur, à la suite de l'exécution de ces instructions, une sorte de résultat cible est obtenu. 

Vous devez vous demander si vous êtes un futur programmeur, si ...

... votre motivation vient de l'intérieur, vous aimez le processus de contrôle d'un ordinateur, vous voulez non seulement utiliser un programme (jeu, application), mais aussi savoir comment cela fonctionne, le modifier.

... vous ne vous attendez pas à des revenus fous et ne pensez pas que la programmation est un nouveau rock and roll, principalement le désir de créer de la magie: transformer des idées en code.

... vous savez comment améliorer n'importe quel programme, n'importe quel site, n'importe quelle application mobile. Vous savez exactement ce que vous voulez du programme et souhaitez apprendre à créer un code parfait.

Où est-il nécessaire?


Aujourd'hui, les programmeurs sont nécessaires partout et je ne pense pas que cette tendance va changer dans les 10-15 prochaines années. Les programmeurs sont nécessaires dans l'industrie, la science, l'espace, les affaires, la médecine, les transports et même pas dans les entreprises informatiques (plaisanter avec des blagues, savez-vous combien il est difficile de trouver un bon programmeur ou développeur 1C pour une boutique en ligne sur 1C-Bitrix?!). En général, même dans l'institut de l'église et de la charité, il y a une demande de programmeurs. Et c'est formidable, car vous pouvez non seulement choisir le métier de programmeur, mais aussi le relier à votre passe-temps: chimie, biologie, mécanique, communications, et même histoire et linguistique. De plus, si vous combinez les compétences en développement de logiciels et les bases du cœur de métier, votre prix de marché augmentera considérablement et la concurrence changera.

Par conséquent, vous devez comprendre non pas trop où travailler, mais dans quelle mesure le développement est plus proche de vous.

  • — (, , , , IoT ..). .
  • - ( ) — - , , - . WEB, .
  • — , . , , .
  • — , , — (, , ..). .
  • , — , . , , . , COVID-19, :-)
  • ( ) — , . , . 
  • DevOps/DevSecOps — , . « , », DevOps , .
  • Le développement appliqué et les logiciels sont un monde de développement séparé où vous pouvez écrire un bureau sur Delphi et gagner des millions, connaître COBOL et être le spécialiste le plus attiré du marché, parcourir Java et être dans les rôles principaux de la communauté, etc. C'est un chemin de développement risqué, principalement pour les développeurs expérimentés, mais si vous tombez amoureux de C / C ++ / Java ou d'une sorte de «latin de la programmation» - pourquoi pas? 

Encore une fois, je liste les principaux domaines, mais en fait, à leur interface, de nouveaux domaines prometteurs sont formés, par exemple, le traitement du langage naturel (NLP), AR / VR, le développement de jeux, l'automatisation des tests, etc. 

Il est important de comprendre une autre division.

  1. - , , , , UI/UX .. , ( ?:-))
  2. -- , : , CRM, ERP, , , , -, 1 .. , , - , , . 

Au cours de l'enseignement de la programmation, vous maîtriserez sûrement tous les domaines et toutes les tâches.Par conséquent, littéralement six mois après le début de la formation, vous aurez une idée des côtés vers lesquels vous allez vous déplacer. Par exemple, j'ai un ami qui ne voulait rien faire d'autre que celui lié au bourrage logiciel des lecteurs. En conséquence, il a dépassé Barnes & Noble, a travaillé avec des projets Google et travaille maintenant en Chine (il est satisfait, en bonne santé et fan de vie dans le pays). Chacun a son propre chemin.

Exigences professionnelles de base


Écrire du code n'est pas en soi la tâche la plus difficile, il est beaucoup plus difficile de comprendre les exigences, de les interpréter et de les traduire dans un langage convivial. Travailler avec le client du code (ici, nous entendons le client, les collègues, les employeurs, etc.) est toujours des nerfs et des aventures, car eux-mêmes ne savent pas ce qu'ils veulent, ils pensent de manière simpliste et considèrent la technologie omnipotente. Mais si vous prétendez être un programmeur professionnel, vous devez non seulement froncer les sourcils, mais aussi travailler activement avec les gens, avec des tâches techniques, des exigences, etc. Cela distingue le programmeur d'un simple encodeur. 

  • Pensée critique - la capacité de mettre en évidence l'essentiel des exigences, d'aborder votre propre code et le code de quelqu'un d'autre en termes d'optimisation et d'amélioration continues; compétences pour trouver les meilleures façons de résoudre les problèmes.
  • — . , , . — .

  • , , — , . , « », .
  • — , . , ?! , ! , , , , , . , , - . , , 00:09, + ;-)
  • — , . , , . 

  • — , , code style .
  • — . , , SDK, API, . — 6-12 .
  • — , , , . , -, ( , ). , , . 

Je vous exhorte à ne pas croire aux contes de fées sur les programmeurs introvertis. Si vous voulez évoluer dans la programmation, restez éloigné de votre introverti. Si vous voulez être un introverti, vous tomberez rapidement sur le plafond du développement professionnel, car la communication est toujours nécessaire dans les activités du développeur. Même sur un site distant, vous devrez communiquer avec des collègues, participer à des rassemblements, des rétrospectives et des discussions. 

Le besoin de connaissance des langues étrangères


Est-il possible de se passer du développement de la connaissance d'une langue étrangère (en particulier anglaise)? Pouvez. Il suffit d'apprendre la syntaxe et les mots d'un langage de programmation, vous pouvez penser et communiquer exclusivement en russe. L'ignorance de la langue ne sera pas un obstacle à la croissance de carrière, au développement et aux communications dans tant d'entreprises. 

Cependant - qu'est-ce qui donne la connaissance d'une langue étrangère?

  • . , ( ).
  • .
  • , , , .. , .
  • .
  • -.
  • .

Il y a eu beaucoup de discussions sur Habré au sujet d'un niveau suffisamment confortable de maîtrise de l'anglais pour travailler dans l'industrie informatique. À mon avis, pour ne pas être sourd et muet, vous avez besoin d'un minimum d'intermédiaire supérieur ou intermédiaire avec une parole active (par exemple, vous êtes bon en grammaire, mais avez un bon niveau de langue dans le programme d'études, dans la communication personnelle ou en stage).

Où étudier


Dans les universités russes modernes, il existe de nombreuses spécialités de programmeurs, il existe des programmes de premier cycle et des cycles supérieurs, il existe des formats d'enseignement supplémentaires. Si vous ne faites que choisir votre université, alors, bien sûr, cela vaut la peine de vous adresser à une faculté spéciale, ou à la physique, aux mathématiques et à d'autres spécialités techniques.

Si vous avez besoin de la programmation comme outil auxiliaire pour la spécialité principale, alors recherchez une option adjacente (comme la cybernétique médicale et l'informatique), ou étudiez en parallèle avec la spécialisation principale.

Si vous avez déjà une éducation, il y a pour vous l'auto-éducation, divers cours, des écoles en ligne, des universités d'entreprise, etc. Vous pouvez apprendre la programmation avec ces outils d'apprentissage, soit en toute indépendance, soit même avec un mentor.Vous pouvez lire sur la formation continue ici .


J'attire votre attention particulière: l'enseignement supérieur est toujours important, car il est important pour l'employeur, il est nécessaire lors d'un déménagement dans un autre pays, et il fournit également la base, la base, qui nous permettra de nous développer rapidement dans toute nouvelle direction.

De plus, peu importe le langage de programmation que vous apprenez, combien il est important que vous connaissiez les mathématiques, les algorithmes, l'informatique, l'administration des réseaux et des serveurs, les principes de mise en réseau, les piles, etc. Et cette fondation n'est tout simplement pas mauvaise dans les universités. 

Meilleurs livres et outils d'apprentissage


Chaque spécialité a son propre ensemble de livres et de ressources pour la formation, mais il y a des choses que tout le monde devrait lire.

  • L'art de la programmation, Donald Knuth
  • Les perles de la programmation, John Bentley
  • « »,
  • « . , », .
  • «. », .
  • « . Ebay?»,
  • « », .
  • « . »,
  • «. »,
  • « »,
  • « . »,
  • « -»,
  • «-. », ,

Ces livres contiennent non seulement des connaissances pratiquement utiles, mais aussi motivent froidement, façonnent la pensée et la vision du monde du programmeur. Et je vous conseille vivement: lire, lire développe votre pensée, votre mémoire et vous rend invincible dans toute interview.

De vos ressources préférées:

  • Codecademy est une plate-forme interactive universelle pour l'enseignement des langages de programmation. Les coups de langue, les réalisations, la gamification sont autant de motivations.
  • Udacity est une ressource de langue anglaise pour l'apprentissage de la programmation.
  • Codewars est une énorme collection de tâches de test pour la formation des compétences dans n'importe quel langage de programmation.
  • Coursera - aucun commentaire, juste la meilleure conférence "méli-mélo".
  • MIT OpenCourseware est une mer de cours du Massachusetts Institute of Technology.

Voici un bon aperçu des cours , compilé par un autre auteur, plus de détails sur les cours de langue russe. 

Une autre sélection énorme et fraîche d' utiles en ligne pour les programmeurs.

Conseil: même si vous êtes parfois trop paresseux pour étudier, écoutez les conférences au moins en arrière-plan, afin de vous plonger dans la terminologie, faites attention à certains moments imperceptibles lors d'une étude intense.


Mythes de la profession


Il y a beaucoup de mythes et de rumeurs sur les programmeurs: sur le caractère, l'impolitesse, l'incapacité à construire une vie personnelle, etc. Mais ce sont des cas particuliers que l'on retrouve dans la profession. Par exemple, à une époque, j'étais proche du domaine de la médecine et je peux dire qu'il y a aussi beaucoup de femmes mariées au travail et mariées au travail, beaucoup d'introvertis durs et grossiers, mais des gars professionnels (plutôt lapidés). Et en général, il est difficile d'imaginer "l'enclave" du bonheur dans un domaine particulier.


Et si le programmeur est aussi un joueur ... Vous pouvez toujours en trouver un couple ;-)

Par conséquent, j'analyserai les quatre mythes les plus populaires.

  1. . . , - , , , . , , — , , . 500 . , . « » «» , . , : . 
  2. . , . , , , , , , , - , . , . , , ( !), , , , , , — , , , .
  3. . , . , , CTO, CIO .. . 
  4. . . ? ;-)


Si vous apprenez à être programmeur, un jour vous voudrez certainement tout quitter, car le chemin vous semblera trop long. Vous vous lasserez des tâches d'entraînement monotones, chaque compilation infructueuse provoquera un désespoir ennuyeux et douloureux, vous rêverez de pointeurs, de récursions et de principes de POO (enfin, ou appels de fonction infructueux). Toute cette agitation semblera folle loin non seulement de votre premier projet indépendant, mais aussi de la première fusion d'entreprise ... 

Le désir de quitter est le premier signe que vous allez dans le bon sens, que vous êtes vraiment tendu et ne jonglez pas avec du code en utilisant la méthode copier-coller de Google (même pas avec GitHub!). Ce n'est que lorsque vous êtes tellement formé à des tâches simples qu'elles deviendront désagréablement ennuyeuses pour vous que vous pourrez passer en toute confiance à une nouvelle étape avec une excellente base de connaissances. 

L'astuce est simple: ne laissez pas tomber. Faites une pause, dormez avec ces pensées, abandonnez l'entraînement pendant une semaine et revenez. Vous ne remarquerez pas vous-même comment quelque chose "clique" dans votre tête et tout se met en place et le voici, la première fusion, le premier code de révision, le premier commit open source, la première performance à la réunion, votre projet animal, les premières tâches sur Poteaux intermédiaires. Ne vous arrêtez pas - tout sera!


All Articles