Dois-je aller à Data Science?

Le conseil que je donne toujours quand quelqu'un me demande par où commencer la science des données. Mieux vaut devenir ingénieur logiciel.



Ceci est mon opinion personnelle et facultative. Les contre-arguments dans les commentaires sont les bienvenus.

Le métier de spécialiste est désormais en vogue. Je ne dis pas que la science des données sera l'un des domaines d'activité les plus en vogue du 21e siècle, mais cela dévalorise à juste titre une autre profession utile et bien rémunérée - le développeur de logiciels.

Souvent, je reçois des messages de diplômés universitaires et seulement de personnes qui changent de profession, me demandant comment entrer dans la science des données. Au lieu de cela, je leur conseille de simplement aller dans l'informatique.

Ayant de l'expérience dans les deux domaines, je vais essayer de vous convaincre de faire le bon choix.
Logiciel EDISON - développement web
EDISON , -.


. , , , — .

, software engineering data science solve problems! ;-)

1. -


Il y a un ordre de grandeur de plus d'emplois en génie logiciel par rapport à la science des données.

Voici quelques captures d'écran après une recherche dans Google pour « expert en données » (« data scientist ») et « développement logiciel » (« ingénieur logiciel Have »).





7 616 postes vacants scientifiques contre 53 889 dans le développement de logiciels. C'est la même chose aux USA, dans d'autres pays.

Si vous croyez à Glassdoor (un service Web avec lequel vous pouvez surveiller le niveau des salaires et obtenir des avis des employés sur les entreprises), les scientifiques des données gagnent plus d'argent. Cependant, mon hypothèse non vérifiée est que les offres de données sont principalement destinées à des employés très hautement qualifiés.





Bien que, qui fait valoir, si on vous offre un million dans OpenAI - acceptez sans hésitation.

2. Il n'y a pas de consensus sur le fait qu'il s'agit généralement d'une «science des données»


La direction de l'entreprise a souvent une vague idée de ce que signifie l'expression «science des données». C'est également facilement possible, compte tenu des limites spécifiques de l'entreprise, qui consistent en ce qu'une entreprise ne peut pas toujours se permettre de suivre strictement la structure des rôles.

Cela signifie que les responsabilités d'un «expert des données» varient très, très différemment d'une entreprise à l'autre.


Un croquis conditionnel dont vous pourriez avoir besoin en fonction de vos tâches commerciales. Dans le spectre entre la résolution de problèmes commerciaux et la recherche, il existe des professions telles que Ingénieur logiciel ⇒ Ingénieur données ⇒ Ingénieur machine learning ⇒ Scientifique des données

Bien que la gamme idéale de rôles entre un ingénieur logiciel et un spécialiste des données puisse être imaginée, il est peu probable que dans la vie réelle cela soit incorporé dans la référence forme. Cela est particulièrement vrai pour les startups subissant le processus de mise à l'échelle lorsqu'elles ne font que construire l'infrastructure.

En conséquence, les candidats embauchés travaillent sur les problèmes actuels de l'entreprise et ne remplissent pas le rôle d'expert pour lequel, d'une manière générale, ils ont été embauchés.


J'ai des témoignages de mes collègues (scientifiques des données) qu'ils écrivent du code backend en tant que développeurs de logiciels. Je connais d'autres «chercheurs de données» qui ont réussi à résoudre les problèmes financiers de leurs entreprises.

Cela peut fortement contraster avec vos attentes, surtout si elles se sont formées sous l'influence des concours Kaggle.

3. La solitude du coureur de fond selon les données


La plupart des entreprises n'ont tout simplement pas besoin d'autant d'experts en données que d'ingénieurs logiciels. Jusqu'à présent, d'autres entreprises n'ont embauché que leur premier (et pour le moment - le seul) spécialiste des données.

Pour cette raison, de nombreux chercheurs de données travaillent seuls, même s'ils sont assis à la même table avec les développeurs.

Cela peut rendre difficile l'obtention de commentaires et d'un deuxième avis. Les ingénieurs logiciels ne comprennent pas du tout la modélisation prédictive ou sont trop occupés par des problèmes complètement différents.

Au contraire, l'un des avantages de l'équipe de développement logiciel est la capacité de toujours dire à ses collègues: «Je pense que vous devez implémenter ABC dans XYZ. Votre opinion? ".

Alors, préparez-vous mentalement à discuter des problèmes avec vous-même ou ... avec un canard en caoutchouc.

4. La science des données a un caractère de recherche prononcé


Préparez-vous à des conversations désagréables avec la direction sur le sujet sur lequel ce sur quoi vous travaillez depuis 2 semaines ne sera pas utilisé.

Le travail sur les problèmes résolubles et insolubles est l'une des différences fondamentales entre le développement de logiciels et l'IA.

Étant donné les erreurs et les limites inhérentes au développement de logiciels - avant de commencer, vous avez essentiellement une idée de ce qui est faisable et de ce qui ne l'est pas. Vous ne pouvez pas dire la même chose du Machine Learning. On ne sait pas si le modèle s'avérera efficace jusqu'à ce qu'il soit mis en œuvre.

5. Les affaires ne sont pas encore prêtes pour l'IA


Même à une époque où presque toutes les grandes entreprises introduisent l'intelligence artificielle, la plupart d'entre elles n'ont pas l'infrastructure appropriée pour la prendre en charge.

L'une de mes connaissances, le chef du département Data Science dans une startup en développement intensif, a récemment partagé sa sagesse de startup avec un verre de café: d'

abord vous identifiez le problème, puis construisez l'infrastructure, et ensuite attirez des experts en données. Et tout cela se passe très rapidement. (Non textuellement)

Une autre de mes amies, spécialiste de la science des données dans une entreprise bien connue, s'est récemment plainte lors d'une conversation qu'elle avait été forcée de former un modèle d'intelligence artificielle sur les mégadonnées sur son ordinateur portable, et non dans le cloud.

Si certains problèmes spécifiques n'ont pas été résolus dans le nouvel endroit où vous êtes venu, ou même que l'entreprise n'est pas prête à introduire la science des données dans ses processus, alors préparez-vous à créer quelque chose de précieux à la limite de sa force.

6. Le génie logiciel donne des compétences générales


Devenir ingénieur logiciel junior, c'est comme obtenir un MBA en technologie. Vous apprendrez un peu de tout.

Vous en apprendrez plus sur les bases de données, la technologie cloud, le déploiement, la sécurité et l'écriture de code propre.

Vous apprendrez à gérer l'assemblage du logiciel en observant votre Scrum Leader, développeur principal ou chef de projet. Vous recevrez du mentorat.

Si vous vous retrouvez dans une entreprise avec une équipe d'ingénieurs établie, il est presque garanti que vous améliorerez rapidement vos compétences et acquerrez une expérience globale masquée.

7. Le développement de logiciels en tant qu'activité est beaucoup plus flexible.


Avec une expérience plus globale de la technologie, le développement de logiciels offre plus d'options lorsque vous décidez qu'il est temps de changer quelque chose.

DevOps, sécurité, interface, backend, systèmes distribués, intelligence d'affaires, ingénierie des données, science des données ...

Je connais de nombreux développeurs qui sont passés du développement logiciel à la science des données. Si vous regardez les descriptions de travail pour la science des données, vous remarquerez immédiatement qu'elles nécessitent beaucoup de compétences générées par le développement de logiciels.


Si vous pouvez créer des projets E2E, vous pouvez également faire plus que simplement créer un modèle pour le concours Kaggle. Vous pouvez prendre ce modèle, le créer, configurer l'autorisation et les paiements électroniques, puis monétiser. Ceci est votre propre startup.

Je ne dirai jamais que la science des données est inutile en dehors de sa portée. Prendre des décisions basées sur les mégadonnées est tout simplement un tueur à notre époque. Mais cela conduira également au fait que les méthodes de science des données seront de plus en plus demandées dans d'autres travaux, car l'entreprise se concentre de plus en plus sur les mégadonnées.

8. L'apprentissage automatique deviendra un outil courant pour les développeurs de logiciels.


À mesure que l'IA devient plus pratique et plus facile à utiliser, les développeurs de logiciels commenceront à l'utiliser pour résoudre leurs problèmes.

Je peux enseigner (dans l'après-midi) à un développeur à construire des classificateurs sklearn. Cela ne signifie pas que mon padawan créera le prochain AlphaGo, mais cela lui donne une alternative à la logique conditionnelle codée en dur basée sur les entrées de l'utilisateur.

Les spécialistes du Big Data ont des connaissances spécialisées, telles que les statistiques, ils ont une intuition particulière sur le fonctionnement des modèles. Mais les ingénieurs DevOps et Sécurité ont également leurs propres connaissances spécialisées.

Je dirais qu'il ne s'agit pas ici de savoir comment les compétences diffèrent, mais que certaines sont utilisées moins souvent et d'autres plus souvent. Un ingénieur expérimenté se déplace plus rapidement entre les ordres de grandeur des spécialisations, tandis qu'un débutant apprend à partir de zéro.

Bien que je ne pense pas que nous verrons une fusion complète de la science des données avec le développement de logiciels. Au contraire, la science des données deviendra un autre domaine d'expertise dans le développement de logiciels.

9. L'IA ne remplacera pas les ingénieurs logiciels dans un avenir prévisible


Aussi stupide que cela puisse paraître, en 2014, j'ai commencé à développer des logiciels, de peur que l'IA rende tout autre travail obsolète.


Et pourtant, depuis, nous ne nous sommes pas vraiment rapprochés de l'avenir technologique. L'adoption de la technologie est lente et nous sommes plus loin d'une IA forte que vous ne pouvez l'imaginer.

Par rapport à d'autres professions, l'apprentissage automatique est encore plus éloigné de l'automatisation du développement logiciel. Bien que nous ayons des startups qui créent des produits sympas, tels que la complétion de code avec support AI, le codage lui-même n'est pas vraiment un vrai travail. Le présent travail consiste à résoudre des problèmes en utilisant la technologie.

Jusqu'à présent, à l'ère de la pré-singularité, la capacité à écrire des programmes restera une compétence précieuse et très bien rémunérée pendant longtemps.

Conclusion


Tout d'abord, tout cela est principalement mon IMHO. Deuxièmement, je sais que j'ai mélangé des scientifiques des données, des ingénieurs d'apprentissage automatique et des développeurs d'intelligence artificielle en un seul tas - et je comprends parfaitement la différence entre eux. Néanmoins, il vaut la peine de considérer ces arguments de manière réfléchie, car c'est votre vie et votre carrière.

Ne prenez pas trop au sérieux ce que j'ai dit. Je préférerais que vous enquêtiez sur ce problème et que vous preniez votre propre décision. Cela fait partie du travail de tout expert en données, en général :)

En fin de compte, ils nous paient principalement pour résoudre les problèmes.

Traductions sur le blog Edison:


All Articles