Bonjour, laissez-moi commencer en disant que je ne peux pas savoir ce que sera l'avenir. Mais, en tant que PDG d'un réseau de développeurs de logiciels, une partie de mon travail consiste à identifier les tendances croissantes dans l'industrie. Je peux alors m'assurer que nous disposons des compétences nécessaires dans notre réseau de développeurs pour répondre à la demande. En d'autres termes : Je pense à ce genre de choses assez souvent !
Je me sens donc qualifié pour discuter des compétences que vous devriez acquérir pour assurer l'avenir d'une carrière dans l'ingénierie logicielle.
Avant d'examiner ces tendances, laissez-moi couvrir rapidement les principaux langages qui apparaîtront tout au long de cette réponse. Bien qu'il y ait un flux et un reflux naturel des langages (certains vont s'estomper et d'autres vont apparaître). Comprendre ce qui est tendance est essentiel si vous voulez penser à long terme.
Les compétences plus anciennes, comme HTML et CSS, ne vont pas disparaître de sitôt, mais elles deviennent banalisées. Il existe de nombreux développeurs qui peuvent faire un bon travail d'écriture de HTML. Donc, bien qu'il y ait peu de chances qu'il devienne défunt du jour au lendemain, la concurrence a fait baisser les prix ici.
Au sein de Scalable Path, nous travaillons avec des milliers de développeurs, et les rôles les plus difficiles à pourvoir sont souvent pour les technologies nouvelles et tendances, car il y a souvent peu de personnes ayant ces compétences et encore moins qui peuvent prouver qu'elles ont une expérience commerciale dans ces domaines. C'est donc cette pénurie qui fait monter le prix de ces compétences.
Nous embauchons toujours des développeurs connaissant ce langage. Je pense que sa part de marché va certainement augmenter au cours de la prochaine demi-décennie. Il y a juste tellement d'élan ici que même si la marée change, les systèmes hérités signifient que JavaScript sera toujours dominant dans cinq ans.
Les frameworks basés sur JavaScript sont aussi, logiquement, vraiment populaires. Avoir de l'expérience dans l'un des éléments ci-dessus pourrait doubler votre taux horaire. Pourtant, de nombreux développeurs s'inquiètent de passer du temps à apprendre un nouveau framework au cas où il ne serait pas largement adopté commercialement. Bien qu'il y ait un risque - Ember, par exemple, semble être tombé en disgrâce - votre temps est loin d'être perdu. Les frameworks ont tendance à évoluer de manière itérative et en apprendre un nouveau n'est pas un engagement drastique.
Python a définitivement une tendance à la hausse et ce depuis des années. C'est un langage populaire pour l'apprentissage automatique, l'IA et l'IdO. Il a succédé à R en tant que langage principal pour la recherche scientifique il y a quelques années et n'a cessé de se renforcer. En raison de sa flexibilité et de sa vitesse, je m'attends à ce qu'il devienne l'un des langages à la croissance la plus rapide dans les années à venir. L'Internet des objets est l'un des domaines dans lesquels Python est utilisé. Jetons donc un coup d'œil rapide à ce sujet.
Parler couramment Python et JavaScript vous préparera à presque toutes les tendances dont je parle ci-dessous. Mais lorsqu'un autre langage sera nécessaire, je le mentionnerai.
Regardons certaines des tendances qui seront alimentées par les ingénieurs logiciels :
Intelligence artificielle : L'IA est en train de devenir un terme fourre-tout (de la même manière que " algorithme " l'est depuis quelques années), mais la surutilisation (et l'utilisation souvent inexacte) du terme ne signifie pas que son impact n'est pas réel ! Je regroupe également l'apprentissage automatique sous cette rubrique, car il s'agit simplement d'une façon de réaliser l'IA.
L'intelligence artificielle continuera à s'infiltrer au goutte-à-goutte dans tout ce que nous faisons. Un domaine qui me fascine est la façon dont elle est susceptible de devenir suffisamment bonne pour que vous puissiez " parler " d'une idée de conception vaguement définie à un outil d'interface utilisateur, et qu'il génère les écrans conçus fictifs à partir de ces demandes.
Ce que vous devriez apprendre pour développer l'IA :
- Python
- R
- Lisp
- Prolog
- Java
Réalité augmentée : En parlant de l'espace UX/UI, celui-ci est en fait statique depuis longtemps. Depuis la révolution des écrans tactiles en fait. L'avenir proche devrait être fascinant pour les concepteurs d'interfaces utilisateur, car la réalité augmentée est en train de passer de la science-fiction à la réalité. Cela se produit en partie parce que les coûts baissent. Ce qui est généralement un signe que nous sommes proches d'une large adoption. Il est probable que le mobile adopte de plus en plus la RA, car les deux s'imbriquent si naturellement. C'est pourquoi je vois la RA devenir plus populaire que la RV (voir section suivante) - les utilisateurs finaux n'ont pas besoin de nouvelles technologies. Cela et Apple et Google ont tous deux sorti leur propre développeur de RA.
Ce que vous devriez apprendre pour développer la RA:
- ARCore framework avec Java
- ARKit Framework avec Swift ou Objective-C
VR : Bien que nous ne voyons pas encore beaucoup de projets VR, c'est, sans aucun doute, un domaine fascinant. Si elle est adoptée par le grand public, cette technologie pourrait entraîner des changements extrêmement innovants dans notre vie quotidienne. Bien entendu, il est difficile de prédire ces changements. Comme pour la RA, nous ne pouvons pas imaginer où elle nous mènera, et nous ne savons pas non plus si/comment elle arrivera à maturité. Ce que nous savons, c'est que cela commencera par les casques. Désormais plus légers et moins coûteux (moins de 200 dollars), les casques sont prêts à devenir monnaie courante. En supposant qu'ils ne subissent pas le même sort que les Google Glass, nous pourrions n'être qu'à quelques années de changements sociétaux similaires que l'iPhone/app store a apportés.
Ce que vous devriez apprendre pour développer la RV :
- JavaScript
- Java
- C++
- C#
L'IdO commence tout juste à entrer dans le langage courant. Il vise à créer un réseau d'appareils connectés, du porte-clés à l'électroménager, qui collectent et analysent des données afin de se comporter de manière plus intelligente. Nest est un exemple courant d'appareil IoT. Le déploiement a été plus lent que prévu en raison de problèmes liés à la commercialisation des données de l'IdO. Mais à mesure que ces obstacles sont levés, je m'attends à voir la technologie utilisée de nombreuses façons semblables à celles des Jetsons. For example:
- Doors that recognize you and unock
- Fridges that order your favorite food before you run out, or encourage you to eat healthier.
- Gardens that water themselves
- Devices that won’t let you forget them
The 1st gen devices like Alexa are going to evolve and become ubiquitous. But they will certainly extend beyond the home into:
- Cars
- Cities and Public Spaces
- Healthcare
It’s definitely a growing sector. We don’t see many IoT projects yet. I think this is because a lot of it is sitting within Google and Amazon and there is little startup work out there.
What you should learn to develop AoT:
- Python
- JavaScript
Blockchain: Whether or not you buy into the long-term blockchain and crypto space, there is no denying it is a huge and growing sector. You just need to look at the $100 million VC’s just pumped into CoinBase to know there are a lot more developer roles in this area. C'est, sans aucun doute, l'espace qui connaît la croissance la plus rapide pour nous.
Ce que vous devriez apprendre pour développer sur la Blockchain :
- Python
- C++
- JavaScript
- Solidity
Tous les changements ne seront pas aussi visibles que la RA et la RV cependant. Une grande partie de la " magie " se produira dans les coulisses.
Big Data : Il n'y a pas que Python et JavaScript. Une autre pénurie de compétences concerne les développeurs Hadoop. Là encore, cela est dû à l'augmentation rapide de la demande en la matière. Ce qui indique à son tour qu'il jouera un grand rôle dans les prochaines années. Elle est étroitement liée à l'augmentation des tendances en matière d'analyse des big data. Les entreprises voudront analyser davantage et plus rapidement. Ces tendances vont donc continuer à croître, car à peu près tout ce dont je parle dans cette réponse essaie de collecter et d'analyser des données pour mieux vendre vos biens et services.
Les développeurs quantiques : Bien que fascinant, le développement dans le monde de l'informatique quantique sont peu susceptibles d'entraîner de nombreux rôles pour les "développeurs d'algorithmes quantiques" à court terme. Cela dit, Google et IBM pensent tous deux qu'ils atteindront cette année l'étape de la "suprématie quantique". Il s'agit du moment où un ordinateur quantique traite un algorithme qu'un ordinateur traditionnel ne pourrait pas traiter au cours d'une vie humaine. Le temps qu'il faudra pour combler le fossé entre cette réalisation et la correction complète des erreurs est encore très incertain.
Espérons que cette réponse vous aidera à voir les tendances en matière de génie logiciel, ce qui est un excellent guide pour suivre les changements évolutifs dans l'industrie.