L'objectif de cet article est de vous donner un aperçu de Flutter et de React Native. Nous allons comparer ces deux technologies multiplateformes afin de vous aider à choisir la meilleure option pour le développement de vos futures applications. 

On peut affirmer sans risque de se tromper que la popularité des applications mobiles n'est pas près de disparaître. Au contraire, le battage médiatique dont ils font l'objet augmente chaque jour, tout comme le nombre de personnes qui préfèrent utiliser diverses applications sur leurs smartphones. Il va sans dire que tant qu'il y a une demande, il y a une offre. Néanmoins, si les développeurs veulent rester dans le coup et créer en un rien de temps des applications mobiles modernes et de qualité qui fonctionnent aussi bien sur iOS que sur Android, ils doivent trouver des outils efficaces pour y parvenir. C'est alors que des cadres multiplateformes comme Flutter et React Native entrent en jeu.

Une seule question demeure. Y aura-t-il un vainqueur dans la bataille entre Flutter et React Native ? Nous allons le découvrir.

Flutter vs React Native : informations de base


À vrai dire, le débat sur la meilleure solution, React Native ou Flutter, est à la mode depuis un certain temps. Je déteste vous décevoir dès le début, mais il n'y a toujours pas de consensus sur ce sujet. Les deux outils ont leurs avantages et leurs inconvénients, et chacun a sa propre base de fans. Il est donc peu probable que vous trouviez une réponse définitive à la question de savoir quel cadre est le meilleur. Néanmoins, il y a de fortes chances que vous puissiez choisir votre préféré en lisant les informations contenues dans cet article.

À lire : que faut-il pour devenir un expert de la programmation 

Quelques mots sur Flutter


Flutter est le nom d'un kit de développement logiciel (SDK) multiplateforme de Google. Bien qu'il s'agisse d'un framework relativement récent (le monde l'a vu en 2017), Flutter a rapidement gagné en popularité auprès des développeurs. Depuis sa sortie, Flutter n'a cessé de croître et de s'améliorer, ce qui est tout à fait gratifiant. Cet environnement de développement d'applications mobiles fonctionne avec Dart, un langage de programmation qui a également été créé par Google. Par conséquent, les développeurs C ++ et Java peuvent facilement travailler avec ce cadre réactif. L'outil est équipé d'un grand nombre de widgets utiles et possède une base de code unifiée, qui convient au développement d'applications iOS et Android.

Quelques mots sur React Native


React Native est un autre framework open source qui offre la possibilité de développer des applications mobiles robustes simultanément pour différents systèmes d'exploitation. React Native appartenant à Facebook, la plupart des applications de la famille Facebook, comme Instagram, Skype et Facebook lui-même, sont construites à l'aide de cette technologie. React Native utilise JavaScript et React.js comme langages de programmation. Il va sans dire qu'il s'agit là d'un avantage considérable pour les développeurs, car pour la plupart d'entre eux, il n'est pas nécessaire d'apprendre de nouvelles technologies à partir de zéro. Contrairement à Flutter, React Native a une histoire plus longue puisqu'il a été introduit en 2015. L'un des principaux avantages de cet outil réside dans ses bibliothèques et ses nombreux didacticiels, mais nous y reviendrons plus tard.

Comparaison en face à face de Flutter et React Native


illustration de l'article Maintenant que vous avez examiné de plus près les deux concurrents, il est temps de parler de chacun d'entre eux plus en détail, en soulignant les similitudes et les différences, ainsi que les forces et les faiblesses de chaque cadre multiplateforme. Nous avons effectué des recherches approfondies et comparé Flutter et React Native sous différents aspects afin de fournir des informations utiles pour vous aider à choisir l'option la plus adaptée.

Installation et personnalisation


Il serait faux de prétendre que le processus d'installation de chaque framework est extrêmement simple. Quant à React Native, vous pouvez l'installer à l'aide d'une commande en une ligne dans le gestionnaire de paquets npm. Il convient de noter que vous devrez installer Node.js et le gestionnaire npm au préalable pour y parvenir. Outre l'installation du framework lui-même, vous aurez besoin d'outils tels que le SDK Android et le JDK.

Pour ce qui est de l'installation de Flutter, les choses sont un peu plus compliquées, car vous devrez d'abord le télécharger depuis le site officiel dans le bon répertoire et décompresser l'archive. Ensuite, vous devrez ajouter le dossier au PATH manuellement, ce qui prend plus de temps que la commande en une ligne. En plus de cela, vous aurez besoin de composants supplémentaires, comme dans le cas du RN. D'une manière générale, l'installation et la configuration des deux plates-formes exigent presque le même niveau d'effort. Toutefois, si vous avez déjà installé Node.js et npm, la configuration de React Native sera un peu plus facile que celle de Flutter.

Composants de l'interface utilisateur


En termes de composants graphiques, Flutter est légèrement en avance sur React Native en raison d'un aspect - il dispose d'un nombre considérable de widgets avec lesquels vous pouvez jouer avec les paramètres de conception de l'interface utilisateur autant que vous le souhaitez. Les widgets appelés Material Design et Cupertino imitent le design des applications Android et iOS, respectivement.

RN, en revanche, utilise des modules natifs ainsi que de nombreux éléments d'interface utilisateur provenant de bibliothèques externes. Quant à ce dernier, c'est à la fois un avantage et un inconvénient, car sans accès aux bibliothèques tierces, React Native peut offrir moins de composants graphiques que Flutter.

Développer


Lorsqu'il s'agit de frameworks en termes de temps passé sur le développement, il ne fait aucun doute que React Native est le leader de la course car il offre une plus grande efficacité et fiabilité. Comme mentionné précédemment, RN utilise des composants natifs qui sont immédiatement prêts à l'emploi, ce qui signifie que le processus de développement est simple et relativement rapide. Grâce à cette approche, un développeur peut réduire le temps nécessaire au développement d'une application multiplateforme à part entière.

Flutter, quant à lui, utilise son propre ensemble de widgets qui s'adaptent également bien aux différentes plateformes. Cependant, étant donné que cette plateforme est nouvelle dans le monde du développement d'applications mobiles, certains widgets nécessitent une manipulation supplémentaire pour personnaliser les choses comme vous le souhaitez.

Les deux plateformes disposent d'une fonction de rechargement à chaud qui permet au développeur de redémarrer l'application en fonction des modifications apportées pendant le développement et d'accélérer l'ensemble du processus.

Ainsi, en ce qui concerne le temps de développement, les deux plateformes sont excellentes, mais React Native est en avance sur Flutter. Cette dernière promet certes la convivialité et la facilité d'utilisation, mais le temps de développement doit encore être réduit.

Performance


Bien qu'il n'y ait pas beaucoup d'exemples de tests de performance d'applications développées sur ces deux plateformes, React Native est légèrement derrière Flutter si l'on raisonne de manière théorique. La raison du succès de Flutter est le langage de programmation Dart qu'il utilise. Le fait est que Flutter compile tout le code Dart en code natif, ce qui lui permet d'éviter le pont JS et d'afficher de meilleures performances en conséquence.

React Native, quant à lui, utilise JS-bridge pour interpréter et rendre les composants graphiques. Il nécessite donc une API Java ou Objective-C pour rendre un composant iOS ou Android particulier. De ce fait, les performances globales peuvent être inférieures. Cependant, comme pour le développement d'applications dans un environnement natif, avec une optimisation appropriée, les développeurs obtiennent des performances remarquables des projets React Native. 

Architecture
En raison du fait que Flutter est nouveau dans le monde du développement d'applications multiplateformes, la plupart des développeurs ont du mal à comprendre quelle architecture est la meilleure à mettre en œuvre dans une application. Actuellement, Flutter propose plusieurs modèles d'architecture, chacun d'entre eux étant très fiable et convivial. La solution la plus populaire est le BLoC (Business Logic Component). Dans le même temps, si vous trouvez Flux ou Redux plus pratique, Flutter vous permet d'utiliser également ces architectures. En parlant de modèles d'architecture React Native, ce sont Flux et Redux qui sont les plus privilégiés par les développeurs utilisant cet outil.

Documentation
Pour les développeurs d'applications mobiles, il est important de disposer non seulement d'une boîte à outils facile à utiliser, mais aussi d'une documentation bien organisée. Si l'on compare les deux solutions multiplateformes sur ce critère, Flutter l'emporte. La documentation que propose ce cadre est complète et très instructive. Une fois que vous vous serez habitué à Flutter, vous trouverez rapidement tout ce dont vous avez besoin. React Native, quant à lui, dispose également d'un grand nombre de guides utiles. Si la documentation de l'IA nécessite des ajustements et des améliorations, sa communauté est beaucoup plus importante, ce qui signifie que les développeurs peuvent trouver des solutions à tous les problèmes beaucoup plus rapidement et facilement. Pour résumer la documentation, on peut dire qu'il n'y a ni gagnant ni perdant dans cette bataille.

Soutien et fiabilité de la communauté
Il va sans dire que pour les développeurs ayant peu d'expérience en programmation, le soutien des communautés qui aident à résoudre les problèmes et à partager les connaissances sur les nouvelles technologies est important.

Il est tout à fait naturel qu'une technologie multiplateforme qui existe depuis plus longtemps ait une plus grande base de fans et soit plus fiable. Bien sûr, nous parlons de React Native. Depuis sa sortie en 2015, la communauté RN s'est considérablement développée et continue de gagner en popularité auprès des développeurs professionnels et des nouveaux venus. Étant un représentant plus jeune, la popularité de Flutter commence tout juste à prendre de l'ampleur, mais le framework peut déjà se vanter d'avoir une communauté assez importante qui est prête à aider en cas de besoin.

Avantages et inconvénients de React Native et de Flutter


Pour

Flutter 


- La possibilité de recharger à chaud les matériaux ;
- Une base de code pour plus de deux plateformes ;
- Des performances plus élevées ;
- Un grand nombre de widgets ;
- Prise en charge des appareils plus anciens ;
- Une documentation bien organisée ;
- Beaucoup de composants hors de la boîte ;
- Facile à utiliser.


React Native


- Matériaux rechargeables à chaud ;
- Une base de code pour plus de deux plateformes ;
- Composants graphiques natifs ;
- Réduction du temps de développement ;
- Une communauté plus expérimentée ;
- Utilisation du langage JavaScript le plus populaire ;
- Un grand nombre de bibliothèques ;
- Facile à apprendre.


Cons


Flutter


- Communauté moins expérimentée ;
- L'absence de certaines fonctionnalités dans les bibliothèques ;
- La nécessité d'utiliser des scripts uniques ;
- Grande taille des applications créées avec Flutter.


React Native


- Performances inférieures ;
- Documentation (pas aussi bien organisée que Flutter) ;
- Pas d'applications natives, mais seulement des applications proches des applications natives ;
- Forte dépendance à l'égard des bibliothèques externes ;
- Taille plus importante des applications Android écrites en React Native


Flutter vs React Native : qui est le gagnant ?
Personne.

Vous devez être confus en ce moment. Laissez-nous vous donner la réponse détaillée. Il y a toutes les chances qu'un gagnant soit encore déterminé à l'avenir. À ce jour, ni Flutter ni React Native ne peuvent se targuer d'une primauté dans cette course, les deux technologies ayant leurs forces et leurs faiblesses. Oui, React Native est un outil multiplateforme plus robuste qui utilise l'un des langages de programmation les plus populaires, JavaScript. Cependant, Flutter évolue plus rapidement, s'adapte parfaitement aux besoins du monde technologique actuel et devient chaque jour plus populaire auprès des développeurs de logiciels.

Espérons que, maintenant que vous en savez assez sur chaque plateforme, vous serez en mesure de prendre une décision réfléchie et de choisir celle qui répond le mieux à vos besoins et à vos attentes. 

Il y a quelques semaines, je suis tombé sur un sujet intéressant sur Quora. Le sujet porte sur la manière de devenir un meilleur développeur de logiciels. J'ai aimé les réponses et j'ai pensé qu'il serait utile d'améliorer vos techniques de développement des compétences grâce à ces huit habitudes simples.

1. Prototype


Jeff Nelson, l'inventeur du Chromebook, a fait une remarque à ce sujet. C'est que, lorsqu'il apprend de nouveaux concepts, l'ingénieur se concentre sur la construction de petits prototypes. Dans de telles situations, il écrit brièvement quelques dizaines de programmes pour démontrer une idée simple. Selon le développeur, ce prototypage améliore considérablement votre expérience d'apprentissage.

2. "Murs de briques" (c'est-à-dire des barrières).


Un autre conseil intéressant nous vient du développeur web Damien Roche, qui parle de ses notes surnommées "murs de briques". Il répertorie tous les problèmes difficiles dont la résolution prend plus d'une heure. Et s'il n'utilise pas cette liste pendant une longue période, c'est le signe qu'il s'est détendu et qu'il est temps de se fixer de nouveaux objectifs.

3. Temps


Ed Prentice, ingénieur en logiciel, est un autre de ceux qui ont une attitude positive vis-à-vis de la liste des bonnes habitudes qu'il dit suivre. Les premiers éléments de sa liste tournent autour de l'idée fondamentale de gagner le plus de temps possible : automatiser tout ce que vous pouvez. Pour ce faire, utilisez un puissant IDE (plateforme de gestion de projet et de code source, permettant de construire, tester et déployer une application) et configurez-le pour qu'il fasse ce que vous savez faire vous-même : créez des macro-commandes pour les choses que vous répétez souvent, apprenez les raccourcis et la ligne de commande.

4. Définissez des tâches stimulantes pour vous-même et enseignez la programmation à un autre.


Le même Ed Prentice va au-delà de la seule automatisation dans sa longue liste d'habitudes. Il donne d'autres conseils, comme celui de se fixer une tâche difficile. Il vaut également la peine d'enseigner quelque chose à quelqu'un ou de l'aider à comprendre, même si cela ne concerne pas le développement, ainsi que de consulter fréquemment le réseau de sites Stack Exchange pour trouver des sujets avec des questions auxquelles vous savez répondre et ainsi améliorer vos connaissances. Après tout, partager et apprendre des expériences des autres est une habitude que vous devriez développer.

5. Répétition


Un autre utilisateur du site Quora, Raphael Buch, révèle deux habitudes que les programmeurs appellent entre eux, "Kaizen et Kata". Cela signifie que chaque fois que vous devez apporter des modifications au code, vous devez d'abord réécrire et remodeler ou polir le code comme un joyau. Deuxièmement, vous devez vous concentrer sur l'écriture des mêmes lignes, encore et encore, en apportant des changements profonds à chaque tentative. Avec chaque répétition, il vous sera plus facile de trouver les erreurs dès le début. "Si vous ne trouvez pas les erreurs tout de suite, cela peut entraîner des problèmes bien plus importants par la suite", déclare Raphael.

6. Diviser pour mieux régner.


L'auteur et programmeur Debasish Ghosh essaie déjà de garder cette habitude de lire beaucoup de code, bon ou mauvais. Selon lui, il est tout aussi important de lire le mauvais code que le bon, car nous voyons beaucoup de modèles qui ne devraient pas être utilisés de cette manière. Il recommande également d'utiliser une politique de division et de conquête lorsque vous vous attaquez à des tâches complexes. Commencez par des tâches simples, puis explorez les détails plus complexes. Une autre bonne habitude est de passer du temps sur des projets open source. 

7. Commencez par la conception


Ankit Gupta, ingénieur logiciel chez Amazon, affirme que son habitude efficace est de penser à la conception avant de passer au déploiement. "Je suis d'accord pour dire qu'il y a des choses qui ne seront résolues que dans cette deuxième phase, mais un bon design mène à une bonne architecture", affirme-t-il.

8. À la recherche de bogues


Robert Walker, créateur de Tune Smithy et de Bounce Metronome, fait partie de ces personnes qui ont l'habitude de noter chaque erreur, aussi petite soit-elle. C'est un excellent moyen de ne rien oublier, car les gens ne tiennent souvent pas compte de leurs petits faux pas. Walker note les problèmes dans des fichiers séparés à côté du code du projet et revoit les anciens problèmes si nécessaire.

Et vous ? Développez-vous également des logiciels et avez-vous une habitude que vous suivez habituellement ? Partagez ensuite vos expériences avec tout le monde ici dans les commentaires.

 

Bonjour à tous et j'ai aujourd'hui une question inhabituelle que beaucoup vont sembler drôle ou indigne de confiance, mais maintenant je vous dis honnêtement ce que vous devez savoir pour devenir un vrai hacker, parce que nous avons tous joué à Watch Dogs, tous regardé la série télévisée MR.Robot et bien sûr tout le monde a déjà voulu pirater le compte des petites amies dans les réseaux sociaux, mais bummer, les mains sont croches et pas assez de connaissances.

Mais sur Internet, on ne trouve que toutes sortes de programmes qui ne fonctionnent pas, ou pire, des virus.

Vous allez maintenant apprendre ce qu'il faut faire pour devenir un vrai hacker.

Personnellement, ces connaissances me permettent d'obtenir toutes sortes de choses gratuitement, de gagner plus d'argent pour rien et même lorsque je joue à des jeux en ligne d'obtenir un avantage significatif, en général le hacking - est beaucoup plus intéressant que le simple hacking et maintenant je vais tout vous expliquer et même montrer quelques techniques que vous pourrez appliquer dès maintenant.

Alors allons-y, je comprends que tu veuilles tout, tout de suite et ici, alors je te dis un secret ou je te donne un lien vers un programme qui te permet de tout pirater en un clic, mais le problème, c'est que ça n'arrive que dans les films et les jeux et que sans savoir comment les sites et les programmes sont configurés, tu ne deviendras jamais un vrai hacker.

De plus, plus vous en saurez, plus vous serez fort en tant que hacker, mais même les enfants apprennent d'abord à marcher, alors vous devrez d'abord apprendre le langage du balisage hypertexte, plus précisément le html, cela peut paraître idiot, mais.. :

Tout d'abord, cela s'apprend en quelques jours.

Deuxièmement, il doit connaître tous ceux qui veulent être appelés un hacker, et la connaissance du langage de balisage vous aidera à rechercher des vulnérabilités sur des sites tels que sql-injection, ssrf, clickJacking, et bien d'autres, il ya un bonus que vous comprendrez une structure similaire de langues, mais prenez par exemple le notoire xml et rss.

Et si vous creusez un peu plus et apprenez css et javascript, alors votre pouvoir en tant que hacker augmentera encore plus, et les opportunités seront sensiblement plus grandes.

Le piratage ne se limite pas à des compétences purement techniques, n'oublions pas les techniques d'ingénierie sociale permettant de manipuler les gens pour obtenir quelque chose qui leur appartient, l'exemple le plus simple que je puisse vous donner maintenant et qu'absolument tout le monde peut utiliser aujourd'hui.

C'est ce qu'on appelle la substitution de caractères, je pense que vous avez tous déjà communiqué dans des forums, des salles de chat ou n'importe où ailleurs où les utilisateurs sont identifiés par leur surnom, donc si un utilisateur conditionnel, disons que le surnom est Arlion ici nous avons quelques options.

Voir expliqué sur les doigts maintenant devant vous deux surnoms apparemment identiques : 

Arlion vs ArIion

mais en fait, il s'agit de deux jeux de caractères complètement différents : dans le premier cas, Arlion est écrit simplement en alphabet latin, dans le second cas, la petite lettre l est remplacée par la grande lettre i, et comme la majorité des polices actuelles rendent ces caractères de manière identique, pour les autres utilisateurs, nous serons Arlion alors qu'en fait, nous ne sommes qu'un bon faux.

Et il semblerait que ce ne soit qu'une blague inoffensive, mais en fait, dans les bonnes mains, cela peut être un avantage sérieux, ces personnes ont l'habitude de faire confiance à ce que leurs yeux peuvent voir et ensuite tout dépend de votre imagination et comme je l'ai dit plus tôt, plus vous en savez, plus vous deviendrez un bon hacker.

Lire aussi 👇 :

🔥 Comment devenir programmeur : un guide étape par étape.

🔥 Le génie de notre temps : la biographie d'Ilon Musk

🔥 Voici le nombre de personnes qu'il faudra pour coloniser Mars.


C'est pourquoi il ne faut pas penser que le piratage informatique n'est qu'une compétence technique. Bien sûr, il s'agit avant tout de piratage, et ce que vous allez pirater, un programme ou un cerveau humain, chacun le décide pour lui-même.

Mais tout de même cool quand le hacker passe à la collation, c'est-à-dire quand il maîtrise les compétences sociales et techniques.

Je vous conseille donc d'apprendre le langage de programmation python. En fait, c'est l'un des langages préférés de tous les cybercriminels, et pour une bonne raison.

Le fait est que python est relativement facile à apprendre et que sa syntaxe est très simple, brève et efficace. Ainsi, lorsque vous devez écrire rapidement un analyseur syntaxique, un programme simple ou même un site Web, il est difficile de trouver un meilleur langage que python.

Et déjà à ce stade, vous serez assez bon à hacker les principes élémentaires, parce qu'en fait devenir un programmeur débutant .

Si vous vous rappelez qu'un hacker est avant tout un programmeur hautement professionnel, qui est passé du côté obscur, vous comprendrez pourquoi vous devez tout apprendre.

Cependant, même avec toutes ces compétences à bord, vous ne serez encore qu'un novice vert.

Ensuite, soyez patient et entrez dans le monde de l'informatique et plongez en particulier dans les réseaux et la cryptographie, quelque part en cours de route passez à linux et commencez à l'apprendre pour l'administration, il y a d'excellents livres sur linux que l'on peut facilement trouver sur internet, c'est quelque chose auquel vous devrez vous habituer, triste mais vrai.

La plupart des connaissances les plus précieuses ne se trouvent que dans les livres et nulle part ailleurs, ce qui signifie que vous devrez vous développer dans deux, trois directions en tant que programmeur, administrateur système et maître en ingénierie sociale, même si cela peut vous prendre beaucoup de temps.

D'un autre côté, personne n'a dit que ce serait facile.

Mais au final, vous comprendrez les réseaux, les programmes, les systèmes d'exploitation, les sites web, les serveurs et tout ce dont vous avez besoin pour réussir à craquer.

Malgré tout, gardez toujours à l'esprit que le piratage au sens commun du terme est toujours une violation de la loi, il est donc préférable de devenir un pirate avec un penchant pour le côté blanc, et ici, ça paie bien et la loi ne poursuit pas.

Définissez vos icônes de hacker, et bien sûr, abonnez-vous à la chaîne.

Bonne chance et n'oubliez jamais que le piratage informatique est un art.

 

 

Je tiens à dire tout de suite que je n'ai jamais rencontré quelqu'un qui connaisse parfaitement le C++. Je doute que même Björn Straustrup connaisse 100% du C++. La question de savoir si la sémantique C++ peut être formalisée, c'est-à-dire si elle est mathématiquement réalisable, fait l'objet d'un débat sérieux.

Quoi qu'il en soit, il y a cinq choses auxquelles vous devez prêter attention pour devenir un expert dans le domaine de la programmation informatique. Je ne veux pas vous induire en erreur et je ne vais donc pas suggérer quelque chose que je n'ai pas essayé moi-même.

Tout d'abord, vous devez programmer beaucoup, beaucoup. Essayez de travailler sur des projets différents. Parmi tous les éléments clés et les plus utiles auxquels il faut prêter attention, le plus important est ce que l'on appelle le "design pattern". C'est l'art d'inventer des noms pour des choses que vous connaissez déjà. Cela vous apportera beaucoup de bonnes idées. Mais le plus important est que vous deviendrez ainsi un expert dans ce que vous faites. Travaillez sur des projets libres et ouverts. Créez vos propres projets pour le plaisir. Encore et encore.

Le deuxième aspect le plus important est une compréhension approfondie des algorithmes et de la programmation en général. La programmation est un mélange très inhabituel de mathématiques et de logique. Étudiez l'algèbre de la logique, mais pas seulement les bases, mais l'ensemble du système. Comprendre comment la logique peut être appliquée à l'algèbre. Étudier les algorithmes et les structures de données, les graphes et la théorie des ensembles. Étudier la complexité et l'optimisation des algorithmes ainsi que les mathématiques discrètes. La maîtrise des systèmes numériques ne sera pas non plus superflue. Ce sont plus que des moyens d'apprendre à programmer, ce sont des moyens de comprendre le fonctionnement de vos programmes.

La troisième consiste à comprendre le fonctionnement du matériel informatique. C'est la partie que la plupart des programmeurs négligent ; et, à cause de cela, beaucoup de choses sont perdues. Essayez de travailler sur "Arduino" (une plateforme open-source conçue pour développer rapidement et facilement une variété d'appareils électroniques). Écrivez quelque chose pour cette plateforme.

La compréhension des personnes est le quatrième aspect. Tout cela va bien au-delà de l'" interface utilisateur " et de l'" interface utilisateur " ou de tout autre terme utilisé cette semaine 🙂 Chaque programme que vous créez sera utilisé par des personnes, même si vous êtes le seul à l'écrire. Étudier la sociologie, la psychologie et les sciences cognitives. Étudier la littérature et la poésie, les langues et les cultures étrangères.

Le cinquième aspect, curieusement, consiste à comprendre les différents aspects techniques, car vous y serez souvent confronté. Vous entendrez beaucoup de mots utilisés dans le jargon professionnel, ainsi que de nombreuses méthodologies de développement. Vous réaliserez que vous savez en fait toutes les choses que vous pensiez ne pas comprendre. C'est juste que tout a été appelé avec d'autres mots.

Si vous faites tout ce qui précède, vous apprendrez des choses que personne d'autre ne pourra vous enseigner. C'est la différence entre un expert et un simple travailleur compétent en programmation informatique. Vous comprendrez les principes sous-jacents. Plus important encore, vous verrez des opportunités que les autres ne voient pas.

En faisant ce que j'ai énuméré, vous deviendrez un expert. Mais laissez-moi vous dire d'emblée qu'il n'est pas du tout nécessaire de devenir un expert, même si vous voulez faire carrière. La plupart des personnes qui engagent d'autres personnes ne sont pas elles-mêmes des experts, c'est pourquoi elles engagent des experts.

Mais si vous êtes déterminé à aller jusqu'au bout, voici quelques informations supplémentaires pour vous.

Quand vous faites quelque chose, rendez-le plus difficile pour vous. Différents cadres et bibliothèques résolvent un grand nombre de problèmes et encapsulent une grande partie de la logique dans des méthodes. Mais vous ne pouvez pas vraiment apprécier une fonctionnalité sans savoir comment elle fonctionne en interne et ce que cela signifie de travailler sans elle. Travailler sur des projets avec des ressources limitées. Créez un additionneur binaire en utilisant des dominos. Fabriquez une horloge numérique fonctionnelle avec une lampe au néon, des résistances, des condensateurs, des diodes, des fils et une prise murale. Créez une machine de Turing à partir de blocs LEGO.

Voici quelques projets que je vous recommande de réaliser :

1-Solution récursive du puzzle de la Tour de Hanoi.
2-Un jeu d'aventure en mode texte.
3-Un jeu de société comme "Tic-Tac-Toe" ou "Reversi".
4-Un jeu vidéo interactif animé comme "Space Invaders".


J'ai choisi ces projets en partie parce qu'ils sont intéressants, mais aussi parce qu'ils peuvent vous apprendre beaucoup de choses. 

 

Luke est un hacker professionnel, mais il travaille en toute légalité. Dans son blog sur Medium, il nous a raconté comment il a obtenu ce travail si inhabituel.

Laissez-moi deviner - vous aimez les films d'espionnage depuis que vous êtes enfant. Vous n'étiez pas particulièrement intéressé par vos études, mais vos notes étaient correctes. Tu étais celui qui apprenait le plus vite. Et depuis que vous êtes jeune, vous êtes attiré par les ordinateurs. Quelque chose en vous voulait faire partie de la communauté des hackers, mais vous saviez que vous étiez une bonne personne et que vous ne vouliez pas gâcher la vie des autres ou finir en prison.

Alors, que faites-vous, demandez-vous. La réponse est de devenir un hacker "blanc" afin de pouvoir faire toutes ces choses illégales sans risquer la prison, mais en gagnant de l'argent.

Je tiens à vous prévenir tout de suite - je ne suis pas un expert. Je n'ai pu obtenir qu'une seule fois un emploi légitime de pirate informatique (et j'en ai toujours un). Mais j'ai beaucoup travaillé dans d'autres secteurs informatiques, en rêvant de me lancer dans la sécurité. J'ai fini par parler à beaucoup de gens et par lire beaucoup d'informations utiles.

Il n'existe pas de méthode unique pour obtenir votre premier emploi dans le domaine de la sécurité de l'information. Récemment, le hashtag #MyWeirdPathToInfosec a été lancé sur Twitter, où vous avez pu lire les histoires de différentes personnes sur la façon dont elles sont entrées dans ce domaine. Ils étaient complètement différents - certains avaient été en prison (ce qui n'est pas la meilleure option), d'autres avaient été musiciens auparavant, d'autres encore ont trouvé un emploi dès la sortie de l'université, d'autres enfin se sont vus offrir un emploi après avoir piraté une entreprise et raconté comment ils avaient procédé (je ne recommande pas non plus cette option).

La clé est de regarder autour de soi - les opportunités de carrière viennent souvent des endroits les plus inattendus.

Mon parcours dans la cybersécurité


Je me souviens de ma première expérience de "piratage". J'avais environ dix ans et j'apprenais à sauvegarder des pages web en local. Je suis allé sur la page d'accueil de Google, je l'ai téléchargé et je l'ai édité dans le Bloc-notes pour qu'il contienne le texte "Luke était là !". Lorsque j'ai ouvert la page éditée, j'étais ravi. Je pensais avoir trompé Google. Je pourrais juste attendre que les agents du FBI commencent à frapper à la porte. Peut-être que je devrais le dire à mes parents avant qu'ils ne le découvrent. 

A mon époque, il n'y avait pas de sites avec des défis pour les hackers. Il n'y avait presque aucune information à l'époque, du moins pas beaucoup que j'ai pu trouver. Ma première source d'information sur le piratage était un site Web de Carolyn Meinel intitulé "The (mostly) Secure Hacking Handbook". Les guides ont été tapés dans la police Comic Sans, qui est considérée comme un signe de mauvais goût par les designers des années 90 et 90. Parmi eux figuraient des classiques tels que "Telnet : l'outil de piratage ultime" et "Comment pirater avec Windows XP Partie 1 : la magie du DOS". Vous pouvez toujours les trouver sur le site.

Après mon diplôme, j'ai trouvé un emploi dans l'informatique, j'ai commencé à étudier l'informatique, j'ai presque terminé mes études, mais j'ai été renvoyé. Ensuite, je suis devenu major en musique et j'ai commencé à travailler comme musicien. J'ai travaillé sur des bateaux de croisière pendant quelques années, puis j'ai rencontré ma future femme, je suis allé au Royaume-Uni, je me suis marié, je suis revenu en Australie et j'ai trouvé un emploi de développeur web.

Pendant tout ce temps, mon amour du piratage n'a jamais faibli. Je n'ai jamais vraiment aimé le développement. J'avais un excellent travail avec des collègues formidables, mais il ne suscitait aucune émotion chez moi. Un jour que je travaillais sur un projet lié au commerce électronique et aux informations sensibles, mon patron m'a suggéré de suivre un cours sur la sécurité des données. J'ai écrit au PDG de l'agence locale de cybersécurité et lui ai demandé quels cours il pouvait recommander. Il m'a suggéré de passer la certification OSCP, ce que j'ai fait.

C'était probablement le tournant de ma carrière. Il m'a fallu deux mois pour apprendre. et tout mon temps libre était consacré à l'étude de l'art du hacking. Même lorsque j'étais fatigué, je ne pouvais pas dormir la nuit car mon cerveau ne pouvait s'arrêter de penser aux tâches à accomplir. C'est alors que j'ai compris que c'était le piratage, et non le développement, qui allait devenir mon métier.

Un mois ou deux après avoir passé l'OSCP, j'ai réussi le défi de piratage en ligne et j'ai obtenu mon premier emploi dans une agence de cybersécurité grâce à un recruteur qui avait publié l'offre.

Mais assez parlé de moi. Voici quelques conseils sur ce que vous devez faire pour obtenir un emploi de hacker.

Travailler activement en réseau avec la communauté des hackers "white-hat".
Contribuez aux outils à code source ouvert, écrivez les vôtres, enregistrez des podcasts, participez aux rassemblements de hackers et discutez avec les gens sur Twitter. Vous apprendrez beaucoup et rencontrerez toute une communauté de personnes amicales et intelligentes qui pourront vous aider.

Écrivez aux personnes que vous respectez.


Vous connaissez peut-être quelqu'un qui occupe le poste de vos rêves. Écrivez-leur et découvrez comment ils y sont parvenus. Au pire, vous serez ignoré, au mieux, vous aurez un mentor et obtiendrez des conseils importants qui peuvent changer votre vie.

 

Mériter votre confiance


Vous pouvez avoir toutes les qualifications de piratage du secteur, mais si vous parlez avec enthousiasme de certaines des pratiques commerciales illégales que vous avez mises en œuvre lors d'un entretien d'embauche, personne ne prendra le risque de vous engager. La communauté white-hat travaille souvent avec des informations top secrètes. Les employeurs et les clients doivent donc vous faire confiance.

Si vous ne pouvez pas répondre à une question technique lors d'un entretien d'embauche, il est préférable de dire "Désolé, je ne sais pas, mais je chercherai la réponse plus tard" plutôt que d'essayer de bluffer. Le recruteur vous découvrira, et il a besoin d'un employé honnête. De nos jours, les professionnels de la cybersécurité ne sont pas nombreux et les entreprises peuvent embaucher une personne peu expérimentée si elle a la bonne attitude et le bon état d'esprit. Pour un tel employé, une formation complémentaire en compétences techniques est simplement dispensée par la suite.

Obtenir une certification


Pour être honnête, de nombreuses certifications dans le secteur du piratage ne sont pas révélatrices de compétences techniques. Cependant, le fait de les avoir augmente vos chances d'être embauché. Les certifications montrent que vous êtes intéressé par le secteur et que vous avez consacré du temps et de l'argent pour améliorer vos connaissances.

Participer à des défis


Essayez-en quelques-uns chez HackerOne, BugCrowd, hackthebox.eu. Et assurez-vous de mettre vos réussites sur votre CV. De l'extérieur, ces défis peuvent ressembler à un jeu, mais les relever montre que vous vous intéressez à votre entreprise et que vous avez des compétences.

N'ayez pas peur des recruteurs
Les recruteurs ont la mauvaise réputation d'appeler constamment et d'utiliser des méthodes rusées pour obtenir les bons contacts. Mais tous les recruteurs ne sont pas comme ça. Trouvez-en un bon, avec les bonnes connexions. En particulier, vous devriez chercher quelqu'un qui se spécialise dans le secteur de la sécurité de l'information. Il est fort probable que le recruteur informatique moyen ne connaisse pas les bonnes personnes.

Orientez votre travail actuel dans la bonne direction


Êtes-vous un développeur ? Trouvez un bogue dans l'application que vous développez, montrez-le à votre patron et demandez des tests de sécurité plus sérieux. Êtes-vous un administrateur système ? Trouvez une vulnérabilité dans votre réseau (vous saurez où la chercher), signalez-la à votre patron et demandez-lui d'effectuer des tests supplémentaires. Quel que soit votre métier, vous pouvez vous forger une réputation de spécialiste local de la sécurité.

Vous pouvez désormais dire sur votre CV ou lors d'un entretien que vous étiez un spécialiste de la sécurité, même si votre titre officiel était "développeur". Vous pouvez également mentionner dans la colonne "responsabilités" que vous avez effectué des tâches de sécurité.