Seuil d'entrée : haut, bas, moyen
Parmi les programmeurs, on entend souvent parler du « seuil d'entrée » - un concept qui reflète la quantité d'efforts requis pour qu'un individu « junior » maîtrise un langage de programmation à un niveau suffisant pour écrire son premier programme sérieux et trouver un emploi. Le « seuil d’entrée » est constitué des connaissances :- caractéristiques de la syntaxe et nuances du langage ;
- bibliothèques;
- algorithmes et structures de données.
Web ou pas Web ?
la toile
Les programmeurs Web peuvent être divisés en développeurs Frontend et Backend . Il vaut la peine de comprendre ce que signifient ces termes. Les développeurs « Frontend » s'occupent du côté client, c'est-à-dire de ce que l'utilisateur verra. Le « backend » est la partie logicielle et matérielle du service – ce qui s'exécute sur le serveur. Pour un développeur Frontend qui décide quel langage de programmation choisir, le must est JavaScript et ses frameworks : Angular JS, React et autres. Les dialectes JS ne sont pas aussi populaires que leurs parents, mais peuvent aussi être utiles : CoffeeScript, TypeScript. Il existe également Flash AS, avant JScript et VBScript, mais seuls les dinosaures s'en souviennent =) De plus, vous devez comprendre HTML et CSS .Non Web (entreprise, ordinateur de bureau, mobile)
J'ai spécifiquement regroupé ces langages de programmation dans une catégorie au nom si étrange. La plupart d’entre eux peuvent être utilisés pour écrire des applications d’entreprise, de bureau et même mobiles. Python , un OOLP facile à comprendre, est devenu incroyablement populaire récemment grâce au développement du Machine Learning : ses adeptes utilisent largement Python. Le ML est un domaine informatique assez jeune, et bien que les premiers fruits aient déjà été reçus, je ne me précipiterais pas pour me lancer dans cette industrie lors du choix d'un langage de programmation. Tout d’abord, vous devez être TRÈS bon en mathématiques. Deuxièmement, la vague de popularité pourrait suivre le même chemin que celle de la « blockchain » ou de la « nanotechnologie ». De plus, comme vous vous en souvenez, Python est utilisé dans le développement web. C++ : classique, tout est construit sur la base des « plus ». Ce langage était l'ancêtre de tous les OOLP populaires, et un débutant devrait absolument y prêter attention. De nombreuses applications populaires sont basées sur celui-ci. Mais la forte probabilité de « se tirer une balle dans le pied » et la syntaxe difficile à comprendre annulent la probabilité qu'un débutant maîtrise ce mastodonte de la programmation. Kotlin - Java pour les hipsters - un mélange fou de POO et de programmation fonctionnelle. Récemment populaire en raison du fait qu'un développeur expérimenté qui passe de Java à Kotlin améliore considérablement sa productivité. Un développeur expérimenté s’habituera rapidement à ce langage. Soit dit en passant, il en va de même pour Scala, mais Kotlin est populaire sur Android. Java est facile à apprendre pour un débutant. Y compris, grâce à JavaRush : c'est ici que j'ai compris comment choisir un langage de programmation =) La syntaxe Java est claire, il y a une possibilité de se « tirer une balle dans le pied », mais pas critique.POO ou POP ?
Approche procédurale
L'approche orientée procédure implique l'écriture d'un programme composé d'énoncés séquentiels qui peuvent être assemblés en un seul tout pour résoudre efficacement une gamme spécifique de problèmes. Ces langages incluent : C , PureBasic et Pascal . Les mêmes qui découragent les lycéens et les collégiens. Il existe également un GO relativement jeune . Cependant, la familiarité avec les langages procéduraux est très utile pour un développeur potentiel. Pour moi, l'immersion dans les langages procéduraux est associée au système Mathematica (Wolfram) et aux activités de recherche universitaire. Grâce aux bonnes approches algorithmiques et à des procédures simples, évoluant de manière linéaire du début à la fin du programme, j'ai pu calculer des valeurspertinentes pour la physique théorique moderne. C'est grâce à ces langages « séquentiels » que l'on commence à comprendre qu'il est parfois plus facile d'écrire du code que de compter tout seul. L'étude du PPP offre une bonne formation algorithmique, qu'un employeur souhaite presque toujours voir chez un candidat lors de son embauche. Les fondements de tout et de chacun dans l’informatique reposent sur des langages procéduraux, alors ne les sous-estimez pas. D'ailleurs, les débutants qui décident quel langage de programmation choisir d'apprendre pensent souvent que le multithreading est l'apanage exclusif de la POO. C'est faux. Les langages de programmation procédurale permettent également d'effectuer des calculs parallèles.Approche orientée objet
Ceux qui ont débuté avec les langages procéduraux ont le plus souvent une bonne connaissance des mathématiques, des algorithmes et des structures de données (cela est dû à l'accent mis sur ces domaines de connaissances dans les universités techniques). Cependant, dans les réalités modernes, les programmeurs qui réussissent sont souvent ceux qui maîtrisent bien une autre approche de la programmation : celle orientée objet. L’idéologie de la POO permet de construire des systèmes véritablement mondiaux. La particularité de cette approche est sa similitude avec le monde réel :- divers objets interagissent les uns avec les autres et existent indépendamment les uns des autres.
- les objets ont une hiérarchie et sont capables d'adopter ou de modifier le comportement de leurs ancêtres.
- Vous pouvez opérer avec des concepts abstraits, mais seuls des objets réellement existants peuvent interagir.
Exemple Les langages procéduraux sont des outils permettant de résoudre des problèmes spécifiques. Et si votre tâche a subi un changement, même mineur, vous devrez probablement consacrer du temps et des efforts à réécrire tous les algorithmes. Представим программу, описывающую автосалон, который продает легковые и грузовые автомобor, How новые, так и подержанные. В proceduresном языке для каждого an object нужно описать функции, обрабатывающие ввод or вывод данных для нового легкового, нового грузового, б/у легкового и б/у грузового автомобилей. А что предлагает ООП? При an objectно-ориентированном подходе нужно просто описать базовый класс ТРАНСПОРТ, который будет хранить в себе характеристики, присущие и тому, и другому типу автомобилей:
И методы для ввода-вывода информации. Затем создадим an objectы, наследующие характеристики класса ТРАНСПОРТ: ЛЕГКОВУШКА и ГРУЗОВИК. Они содержат уточнённую информацию, присущую именно таким видам транспорта, а также методы ввода-вывода. Внезапно руководство салона решило расширить ассортимент и продавать еще и мотоциклы. Процедурный подход предложит переписать всю логику для новых и б/у мотоциклов с самого начала, в то время How ООП-язык позволит просто создать новый an object МОТОЦИКЛ, наследующий все характеристики суперкласса ТРАНСПОРТ и содержащий уточнения. А что будет, если добавлять разные транспортные средства? Процедурная реализация будет требовать больших трудозатрат, чем ООП. Причем чем больше ассортимент, тем меньше нужно будет делать манипуляций с an objectми. |
- ООП предполагает независимую разработку отдельных модулей, предоставляя программисту or команде выбирать способ и границы соприкосновений и обмена информацией.
- Разбиение на небольшие модули намного проще для восприятия, чем монолитные proceduresы. Благодаря этому сторонний разработчик быстро разберется в твоем codeе, а ты при необходимости войдешь в новый проект.
- Изменение одного an object может ниHow не отразиться на взаимодействии с другим, но способно повлиять на иерархию дочерних an objectов. Освоив такой подход, расширение и доработка программы становится тривиальной задачей.
-
Кроссплатформенность.
Java работает везде благодаря JVM —виртуальной машине Java. Один из главных плюсов этого языка — кроссплатформенность: не нужно думать о том, Howую библиотеку подключить, Howова архитектура у конкретного процессора. «Написано однажды —работает всегда».
-
Документация.
La base de documentation la plus large : documentation officielle Oracle, portails de formation, communauté en constante évolution. Les réponses à la plupart des questions qui se posent lors du développement peuvent être trouvées en quelques minutes, l'essentiel est de comprendre quoi taper dans le moteur de recherche =)
-
Popularité.
Java est le langage de programmation le plus populaire au monde : en plus des développeurs Android et Web mentionnés ci-dessus, presque tous les nouveaux développeurs d'entreprise écrivent en Java. Enterprise est un développement interne nécessaire aux besoins des grandes entreprises.
Chaque année, les haineux prédisent la « mort de Java », ils disent : « Oracle cessera de le supporter, et en général vous faites des bêtises ». C'est faux! De nouvelles versions de Java devraient être publiées tous les six mois. Les innovations et fonctionnalités les plus importantes de la dernière version peuvent être lues ici .
Pour moi, les lambdas en Java 8 ont été une révolution et une découverte, sans parler des nouvelles versions ! Maintenant, je travaille sur un projet « rétrograde », donc je ne m'attarde pas sur les innovations, mais le fait que Java perdure est un fait.
-
Android.
Android occupe avec confiance plus de 80 % du marché de la téléphonie mobile au cours des 4 dernières années ; les téléviseurs, les lecteurs multimédias et même les systèmes multimédias des voitures fonctionnent sous ce système d'exploitation. Et le développement de cet OS s'effectue principalement en Java. Imaginez quelles perspectives s’ouvrent. Lorsque j’ai décroché un emploi de développeur Android, je me suis intéressé : combien coûte le produit que je développe ? Il s'est avéré que le prix par an est d'environ 5 $. Une question raisonnable s'est posée : d'où venaient les fonds pour ce bureau, pour les salaires, les cookies, une table de ping-pong, des robots et d'autres « belles choses » ? C'est une question de quantité : notre application compte 20 millions d'utilisateurs.
-
Les salaires.
Et pour le dessert : le salaire d’un développeur Java est l’un des plus élevés du secteur. Vous allez apprendre la programmation dans un but précis : obtenir un bon travail.
Popularité d'un langage de programmation
Lorsque vous choisissez un langage de programmation, vous devez penser à l'objectif ultime de l'apprentissage : obtenir votre premier emploi. Pour évaluer la popularité de différentes langues, je me suis rendu sur un portail de recrutement populaire et j'ai commencé à examiner le nombre de postes vacants pour diverses demandes à Moscou. Vous pouvez voir les résultats ci-dessous.Java: | 277 |
python: | 227 |
php : | 188 |
c# : | 147 |
c++ : | 131 |
rubis: | 40 |
échelle : | 24 |
Kotlin : | 20 |
RÉSULTATS
Voici ce à quoi un débutant doit prêter attention lors du choix d'un langage de programmation :- Popularité (Java occupe systématiquement une position de leader) ;
- Seuil d'entrée (Pour Java - moyen : l'éventail de compétences requises par l'employeur est assez large) ;
- Matériel disponible (il n'existe pas de portails similaires à JavaRush en russe, donc la palme revient à deviner qui =));
- Domaines d'application : plus il y a de secteurs dans lesquels un langage de programmation peut être utilisé, plus le marché a besoin de spécialistes. J'ai déjà parlé de multiplateforme, mais je ne me lasserai pas de le répéter.
GO TO FULL VERSION