Cet article a été coécrit par Gene Linetsky, MS. Gene Linetsky est fondateur de jeunes pousses (start-up) et ingénieur en logiciel dans la région de la baie de San Francisco. Il travaille dans le secteur de la technologie depuis plus de 30 ans. Actuellement, il est directeur de l'ingénierie chez Poynt, une entreprise technologique qui construit des terminaux de points de vente intelligents pour les entreprises.
Cet article a été consulté 67 960 fois.
Le métier de développeur est un métier d'avenir, lucratif qui plus est. Par contre, si l'on veut réussir, il faut avoir de sérieuses compétences à faire valoir. En quoi consiste au juste ce métier ? À défaut d'être le meilleur (mais qui peut savoir ?), vous pouvez rejoindre ce groupe de ceux qui font le monde de demain. Pensez-vous avoir l'expertise technologique et le relationnel nécessaire pour développer un bon produit ? Quelques conseils vous permettront de bien démarrer une carrière de développeur et ça commence toujours par une bonne séance de brainstorming.
Étapes
Partie 1
Partie 1 sur 3:Connaitre les grandes lignes
-
1Commencez par choisir le type de logiciels que vous voulez développer. La plupart des logiciels appartiennent à deux grandes familles : le « développement d'applications » et le développement des systèmes informatiques. La première catégorie regroupe tous les logiciels qui servent directement aux particuliers et aux entreprises. Ce peuvent être des applications pour les mobiles, des jeux vidéos, des logiciels de comptabilité. La deuxième catégorie comprend toute la programmation pour créer et assurer la maintenance des systèmes d'exploitation en utilisant ce qu'on appelle des cycles de développement (en cascade, en V...). Dans ce secteur, entre aussi tout ce qui concerne le fonctionnement des réseaux et la sécurité des données [1] .
-
2Apprenez un langage de programmation. Tout un chacun peut avoir des idées de logiciels, mais seul un développeur est capable de leur donner vie. Même si vous vous spécialisez dans le graphisme, il vous faudra savoir programmer et créer des prototypes. Ce ne sont pas les langages qui manquent. Les plus fréquemment utilisés en informatique sont les suivants.
- Le langage C : le C est un langage assez élémentaire, car très ancien. Il a servi de base aux nombreux langages qui suivent. Il sert à faire tourner votre « hardware » (votre matériel : UC, périphériques, etc.). Certes, il est ancien, mais il est encore bien répandu et il a des défenseurs.
- Le langage C++ : l'inconvénient majeur du C, c'est qu'il n'est pas orienté objet. C'est là qu'intervient le C++ qui, lui, l'est ; c’est aujourd'hui le langage le plus utilisé au monde. Les logiciels célèbres comme Chrome, Firefox, Photoshop et bien d'autres sont développés en C++. Il est également très utilisé pour développer des jeux vidéos. Les développeurs en C++ sont très recherchés.
- Le langage Java : c'est en quelque sorte un C++ évolué, car il est multiplateforme. Pratiquement tous les ordinateurs, quels que soient leurs systèmes d'exploitation (Mac, PC, Linux), peuvent faire tourner ce qu'on appelle une JVM (Java Virtual Machine), laquelle permet de lire n'importe quel programme en Java. Ce langage est très largement utilisé dans le monde de la conception des jeux vidéos et des logiciels professionnels. C'est la raison pour laquelle on vous incite fortement à le connaitre et à le pratiquer.
- Le langage C# : c'est un langage orienté Windows et il est à la base de l'architecture .NET de Microsoft. Il est assez proche du Java et du C++. Si vous connaissez déjà Java, vous n'aurez aucun mal à maitriser le C#. Si votre projet est de faire un programme pour Windows ou Windows Phone, assurément, c'est ce langage qu'il vous faut.
- Le langage Objective-C : à l'image du langage précédent, on a ici un langage, cousin du C, qui sert à programmer pour les appareils Apple. Vous avez dans l'idée de développer une appli pour l'iPhone ou l'iPad, c'est ce langage qu'il vous faut. Si vous voulez travailler en « freelance », c'est un incontournable.
- Le langage Python : il est extrêmement facile à apprendre, peut-être un des plus faciles. C'est un langage plus particulièrement destiné au développement Web.
- Le langage PHP : ce n'est pas à proprement parler un langage, mais il est incontournable si vous vous destinez à la programmation pour le Web. On recherche toujours beaucoup les développeurs en PHP, même si les salaires ou les contrats ne sont pas aussi intéressants.
-
3Sachez où trouver les ressources qui vous permettront d'apprendre ces langages. Il y a d'abord les livres de programmation. Ils s'achètent chez tous les bons libraires spécialisés ou en ligne, comme chez Amazon ou chez les revendeurs en ligne. Ce qu'il y a de pratique avec les livres (les bienfaits s'entend !), c'est qu'on les a sous la main dès que se profile une difficulté.
- Sinon, il y a Internet. C'est par dizaines de milliers que se comptent les cours, les tutoriels, les vidéos dédiés à la programmation. Tous ne sont pas d'un bon niveau ni très clairs. Cependant, nous vous conseillons les sites suivants : CodeAcademy, Code.org, Bento, Udacity, Udemy, Khan Academy, W3Schools...
-
4Suivez des cours (particuliers ou en classe). Même si vous n'êtes pas obligé de décrocher des diplômes, il est intéressant de suivre des cours de programmation. Avec de l'assiduité et de la persévérance, on peut en effet apprendre par soi-même, mais il est des cas où un bon professeur peut vous faire gagner beaucoup de temps. Dans le même temps, sur des concepts difficiles, on apprend aussi beaucoup mieux.
- S'inscrire à des cours coute une certaine somme. Veillez à ne suivre que des cours qui vous seront d'une réelle utilité.
- Si beaucoup de développeurs se sont formés « sur le tas » avec au départ comme seul bagage, leurs compétences, sachez que si vous décrochez un diplôme de l'enseignement supérieur (4 années au moins), vous mettez toutes les chances de votre côté. Votre formation est solide, diversifiée. Plus tard, vous pourrez intégrer des cours plus complexes, plus pointus, comme les cours de logique et de maths appliquées à l'informatique.
-
5Commencez par travailler sur un projet qui vous plait. Avant de vous lancer dans de la programmation à grande échelle, commencez par construire un programme qui vous plait, qui vous tient à cœur. Vous en profiterez pour utiliser abondamment le langage que vous maitrisez. Vous affinerez ainsi vos connaissances et vous pourrez faire figurer ce projet sur votre CV.
- Par exemple, au lieu de prendre le calendrier qui est implanté sur votre ordinateur, vous pouvez décider d'en faire un personnalisé et adapté à vos besoins.
- Si vous êtes branché jeux vidéos, créez des jeux sans trop vous préoccuper du graphisme. Ce qui compte, c'est que vos jeux soient novateurs et amusants. Dans votre CV, s'ils sont intéressants, ils auront toute leur place.
CONSEIL D'EXPERT(E)Fondateur de jeunes pousses et directeur en ingénierieGene Linetsky est fondateur de jeunes pousses (start-up) et ingénieur en logiciel dans la région de la baie de San Francisco. Il travaille dans le secteur de la technologie depuis plus de 30 ans. Actuellement, il est directeur de l'ingénierie chez Poynt, une entreprise technologique qui construit des terminaux de points de vente intelligents pour les entreprises.Gene Linetsky, MS
Fondateur de jeunes pousses et directeur en ingénierieLa pratique est la meilleure façon d'acquérir de l'expérience. Gene Linetsky, ingénieur en informatique et créateur d'une startup, nous dit : « Être ingénieur logiciel ne consiste pas à savoir programmer, l'important, c'est tout ce qui permet de transformer un code en un produit que les gens peuvent utiliser. Quand vous faites cela, vos clients vont généralement revenir en disant que ça ne fonctionne pas. Effectuer la maintenance de ses produits est le véritable apprentissage de l'ingénieur logiciel. »
-
6Posez des questions. Internet est un incroyable moyen de dialoguer, d'échanger avec d'autres développeurs. Si vous êtes en face d'une impasse, décrivez clairement vos difficultés dans des forums ou sur des sites comme StackOverflow. Faites cela de façon sérieuse, expliquez que vous avez essayé ceci et cela, mais que ça n'a pas marché. Vous verrez, il y aura toujours quelqu'un de serviable qui vous tirera d'embarras !
-
7Programmez tous les jours. Travaillez sur votre projet personnel au moins une heure par jour. Vous évitez que la « mécanique ne se rouille » et, forcément, vous apprenez chaque jour des nouveautés, des astuces. Beaucoup de développeurs le disent : c'est en travaillant sur des projets que l'on apprend le mieux à programmer et que l'on s'améliore [2] .
- Astreignez-vous à rédiger des lignes de code chaque jour ou bien fixez-vous une date butoir à ne pas dépasser. Essayez de travailler en semaine afin de dégager vos weekends.
Publicité
Partie 2
Partie 2 sur 3:Développer un programme
-
1Commencez par une séance de brainstorming. Le bon programme est celui qui va servir à accomplir une tâche qui améliore ou facilite la vie des gens, des entreprises… Commencez par jeter un coup d'œil aux programmes déjà existants dans le domaine que vous visez et voyez s'il y a une possibilité d'amélioration, d'extension. Le bon programme est celui que les autres vont trouver intéressant, utile.
- Vous avez un ordinateur, regardez les tâches qu'il accomplit. N'y aurait-il pas un programme (à définir !) qui faciliterait telle ou telle activité ?
- Inscrivez toutes les idées qui vous viennent à l'esprit. Même si elles semblent surréalistes, déplacées, voire débiles, il est possible que cela débouche sur une grande idée.
- Examinez de près ce que font les autres programmes. À quoi servent-ils ? Peuvent-ils être améliorés ? En quoi sont-ils défaillants ? Si vous trouvez des réponses à ces questions, vous pourriez bien trouver une idée de programme.
-
2Dressez un avant-projet. Ce document servira à mettre en avant les principales caractéristiques du programme et vos objectifs. Ce document doit être utilisé tout au long du développement, ainsi vous resterez bien sur votre projet, vous ne vous éparpillerez pas. Lisez ce guide sur la façon de construire un avant-projet.
-
3Commencez par faire un programme simple. Il doit tourner autour de quelques fonctionnalités essentielles (cœur du programme). On doit déjà y trouver les fonctions principales qui répondent à l'objectif que vous vous êtes fixé. Le prototype est un petit programme qui vous servira de base jusqu'à ce que vous lui trouviez un désign final. Par exemple, vous avez décidé de faire une sorte de calendrier. Votre prototype devra être à la base un calendrier tout simple (avec les bonnes dates !) dans lequel il est déjà possible d'incorporer des évènements.
- Un prototype, par définition, change sans cesse tout au long du développement du projet. Il change parce que vous avez dû surmonter une difficulté ou parce que, en cours de route, vous avez eu une nouvelle idée.
- Un prototype a toujours quelque chose d'inachevé, il n'est pas très beau et c'est normal. Pour l'instant, tout ce qui est habillage, désign est le dernier de vos soucis. L'essentiel est que le programme tourne correctement et accomplisse sa tâche. Pour rester sur l'exemple du calendrier, votre prototype peut très bien n'afficher que du texte.
-
4Testez votre prototype encore et encore ! Les bugs sont évidemment la hantise des développeurs. Il y a les erreurs de codage, de syntaxe, des effets inattendus, etc., tout pour rendre un logiciel inopérant. C'est la raison d'être des tests. On ne laisse jamais de côté une erreur, il faut absolument y remédier. Quand on corrige un bug, on en profite aussi pour voir s'il n'y aurait pas d'autres faiblesses du même genre. Demandez à votre famille, vos amis, vos collègues de tester votre dernier programme et de vous faire leurs rapports d'erreurs. Toute critique est formatrice, même si elle est parfois déplaisante.
- Par exemple, si l'on reprend l'idée du calendrier, essayez de mettre de fausses dates ou des dates dans le futur pour voir ce que ça donne.
- Entrez exprès de mauvaises valeurs. Par exemple, si vous avez un formulaire dans lequel il faut rentrer un âge, entrez un mot et voyez ce que ça donne.
- Si votre programme a une interface graphique, cliquez sur tout ce qui est censé être actif. Voyez si tout se passe bien quand vous revenez en arrière ou si vous devez taper une série de boutons. Tout doit être vérifié plusieurs fois dans des conditions différentes.
-
5Fignolez vos logiciels. L'architecture est prête, tout fonctionne, mais votre logiciel est quelque peu « brut de décoffrage ». Le temps du prototype est terminé, il est temps de passer à la phase de désign et de maniabilité. C'est une étape qui réclame du temps, car elle requiert de la minutie. Les commandes et les menus doivent être fluides, l'interface graphique doit être belle et facile à utiliser. Évidemment, il ne doit pas y avoir de bugs majeurs, ni même secondaires et le tout doit être emballé dans de beaux décors.
- Travailler le désign et la fonctionnalité d'une interface graphique peut s'avérer une tâche complexe et difficile. D'ailleurs, c'est même une profession à part entière, radicalement différente de celle de programmeur ou de concepteur de programmes. Si vous n'êtes pas très versé dans ce domaine, tâchez juste de faire un logiciel pratique et esthétiquement pas trop laid. Sachez que le recours à un designeur professionnel n'est pas donné ! Si vous avez un budget pour ça, n'hésitez pas ! C'est un plus !
- Si donc vous disposez d'un budget « désign », sachez qu'il existe de très nombreux professionnels qui travaillent en « freelance » (travailleurs indépendants) et qu'ils sont prêts à prendre en charge votre projet. Si vous le pouvez, faites-le rentrer comme membre à part entière de votre équipe.
-
6Déposez vos projets sur GitHub. Ce site vous permet de déposer vos projets en cours de construction afin qu'ils soient vus par d'autres personnes (votre équipe d'alphatest, par exemple). C'est aussi un lieu d'open source, c'est-à-dire que n'importe qui peut récupérer le code pour l'améliorer. Vous aurez ainsi un retour (positif ou négatif) sur votre codage. Les autres y trouveront peut-être des solutions à leurs propres problèmes. En bref, c'est une vraie communauté basée sur l'échange. C'est, comme vous le soupçonnez, une belle adresse pour apprendre et aussi pour étoffer son CV.
-
7Pensez aussi à la distribution de votre logiciel. Une fois fini, libre à vous de mettre votre travail sur le marché. Si vous décidez d'en faire profiter les autres, il y a plusieurs façons d'opérer.
- Pour de petits programmes ou pour une équipe qui débute, un site personnel peut suffire. Veillez à ce que tout soit bien expliqué, mettez-y des tutoriels, des captures d'écran. Il faudra installer un système de paiement fiable si vous comptez le faire payer. Et si ça marche, il faudra un serveur capable d'assumer des milliers de téléchargements.
- Si vous développez des programmes pour certains appareils ou certains systèmes d'exploitation, sachez qu'il existe des boutiques en ligne (« digital stores ») qui pourraient vous servir. Ainsi, si vous développez des applis pour les appareils Android, vous pourrez les vendre via Google Play Store, Amazon App Store ou sinon, vous pouvez avoir votre propre site.
Publicité
Partie 3
Partie 3 sur 3:Trouver du travail comme développeur
-
1Essayez de décrocher des contrats. Ça paie moins bien que d'être embauché à plein temps par une société et c'est aussi moins sûr, côté stabilité de l'emploi. Cependant, au fil du temps, vous allez pouvoir vous constituer un CV solide qui vous garantira de futurs contrats. Allez sur des sites comme Elance ou ODesk pour trouver du travail. Certes, il est dur de décrocher un premier contrat, mais une fois que vous en aurez achevé un et que vous aurez eu de bons retours, les contrats s'enchaineront.
- Hacker News est également un bon site pour décrocher des contrats et des emplois en freelance. Cliquez sur la partie « Ask » (site en anglais uniquement).
- Pour décrocher un contrat, il est tentant, pour éliminer la concurrence, de proposer un travail à bas prix, mais c'est une mauvaise idée à moyen et long terme. Non seulement vous risquez de travailler à perte au regard des heures passées, mais vous allez vous attirer les foudres des autres. Vous passerez pour quelqu'un qui ne suit pas les règles, ils vous mettront en quarantaine. Or, être en réseau dans ce milieu est essentiel pour réussir.
- Si vous travaillez bien (et en respectant les délais !), peut-être cela débouchera-t-il sur un emploi à plein temps. Mettez toujours vos atouts en avant !
-
2Travaillez le plus possible en réseau. Assistez dès que vous le pouvez à des séminaires, à des « hackatons », évènement où des développeurs se réunissent pour faire de la programmation informatique collaborative sur un thème donné sur plusieurs jours. C'est dans ce genre de réunions qu'on apprend plein de choses, non seulement sur le codage lui-même, mais aussi sur la façon d'aborder et de résoudre des problèmes. On y rencontre des gens du sérail. Les développeurs ont la réputation, non fondée, d'être des individualistes, qui travaillent seuls devant leurs claviers. Cependant, si l'on regarde ceux qui ont brillamment réussi dans ce secteur et qui sont des développeurs à temps plein, il s'agit de personnes qui travaillent avec des équipes parfois nombreuses.
-
3Postulez pour des emplois à plein temps. Avec derrière vous de nombreux contrats remplis, vous pouvez commencer à prospecter et à postuler, grâce à votre CV, en passant des annonces sur de grands sites comme Monster ou Indeed. Sachez qu'il y a aussi plein de sites spécialisés dans la recherche de développeurs, comme GitHub Jobs, StackOverflowe Job Board, AngelList, CrunchBoard, Hirelite et Hacker News [3] .
-
4Diversifiez vos compétences. Tout bon développeur de logiciels se doit de maitriser plusieurs langages. Dans votre temps libre, initiez-vous à un ou deux autres langages. Cela vous ouvrira d'autres horizons de programmation (vers le jeu vidéo par exemple) et votre profil sera d'autant plus intéressant qu'il sera étoffé.
-
5Au départ, ne regardez pas trop du côté de la paie. Tout le monde n'aura pas une paie mensuelle à 6 chiffres ! Tant s'en faut ! Ce marché du développement informatique est très porteur. Si vous estimez que vous n'êtes pas assez payé eu égard à vos compétences et votre travail, à vous de les faire valoir dans une autre entreprise qui sera ravie de vous accueillir. De toute façon, il faut bien accepter un premier emploi, histoire de se mettre un peu « le pied à l'étrier ». Vous aurez ensuite le temps de vous forger un plan de carrière.Publicité