Nous vivons dans un monde défini par le logiciel. De l'application de navigation sur votre téléphone aux réseaux sociaux que vous consultez en permanence en passant par le navigateur Web que vous utilisez pour lire cet article, les logiciels sont partout autour de nous.
Parce que notre monde dépend tellement des logiciels, la demande de développeurs de logiciels a explosé. Le Bureau of Labor Statistics des États-Unis, par exemple, prévoit que l'emploi des développeurs de logiciels augmentera de 22% entre 2019 et 2029 (par rapport à un taux de croissance moyen de 4% pour toutes les professions).
Et ce ne sont pas non plus des emplois subalternes et à bas salaires. Le même rapport BLS met le salaire médian des développeurs de logiciels à 107 510 $ par an (51,69 $ l'heure). Sans oublier, l'immense concurrence pour les développeurs de logiciels signifie que de nombreuses entreprises sont prêtes à offrir des avantages fantastiques, des horaires de travail flexibles et le remboursement de la formation continue.
Compte tenu de tout cela, le développement de logiciels est un domaine formidable à explorer si vous n'êtes pas sûr de ce que vous voulez faire pour une carrière. Mais que faut-il réellement pour devenir développeur de logiciels? Avez-vous besoin d'une spécialisation en informatique? Les camps d'entraînement valent-ils votre argent?
Pour le savoir, j'ai interviewé deux développeurs de logiciels professionnels: Chana Reynolds et Sergio Mendoza. Tous deux ont occupé des postes différents dans diverses entreprises et ont progressé rapidement dans leur carrière. Plus intéressant encore, tous deux venaient également d'autres domaines avant de se lancer dans le monde de la technologie.
Ci-dessous, je partage les conseils de Chana et Sergio pour les futurs développeurs de logiciels. Que vous soyez un étudiant actuel qui envisage de développer des logiciels ou un professionnel souhaitant changer de carrière, vous trouverez cet article plein d'informations précieuses.
Le développement logiciel vous convient-il?
Avant de commencer à apprendre le développement de logiciels, vous devez savoir dans quoi vous vous embarquez. Bien que nous vous encourageons certainement à poursuivre dans cette voie si cela vous intéresse, vous devez être conscient des compétences et de la personnalité nécessaires.
Contrairement à la perception populaire, apprendre à coder n’est pas une capacité surhumaine. Bien sûr, certaines personnes ont plus de talent naturel pour cela que d'autres, mais le talent ne peut vous mener que si loin. Beaucoup plus important que le talent est la volonté de faire un travail acharné d'apprentissage.
Chana, par exemple, venait d'une formation en psychologie sans aucune expérience de codage. Cependant, en raison de son engagement à apprendre, elle a pu progresser assez rapidement. Elle n’est pas arrivée là où elle est maintenant parce qu’elle était plus intelligente ou meilleure que les autres personnes de son programme; elle a juste travaillé plus dur et n'a pas abandonné.
Il est également important d'avoir les bonnes attentes pour le travail quotidien de développement logiciel. Beaucoup de gens imaginent qu'apprendre à coder est un ticket pour un travail plus facile qui rapporte plus d'argent.
Bien que la partie plus d'argent puisse être vraie (voir les statistiques salariales ci-dessus), le développement de logiciels est un travail difficile! Vous devez être à l'aise avec un sentiment constant d'ignorance et d'insuffisance, résoudre des problèmes sans solutions évidentes. Si vous recherchez un emploi dans lequel vous vous sentez toujours compétent et au top, le développement de logiciels n’est probablement pas pour vous.
Si ce qui précède ne vous fait pas peur, continuez à lire pour découvrir comment commencer à apprendre le développement de logiciels.
Comment apprendre le développement logiciel
Apprendre à coder est une tâche intimidante. Et si vous êtes débutant, il est facile de perdre beaucoup de temps à essayer de trouver les bonnes ressources d’apprentissage.
Pour simplifier un peu le processus, voici un aperçu des trois principales façons d'apprendre à coder (et des réflexions sur chacune d'entre elles).
Camps d'entraînement au développement
Si vous avez même un intérêt passager à apprendre à coder, vous avez probablement vu des annonces pour des camps de développement de logiciels.
Bien qu'ils puissent différer dans leurs détails, tous offrent plus ou moins la même chose. Vous passez de quelques mois à un an en apprentissage intensif, dans l’espoir de pouvoir trouver un emploi par la suite.
Les camps d'entraînement peuvent certainement être un moyen efficace d'apprendre à coder; Chana et Sergio ont tous deux commencé de cette façon. Cependant, ils ont chacun souligné que tous les camps d'entraînement de codage ne sont pas créés égaux et que certains seront meilleurs pour certains styles d'apprentissage que d'autres.
Sergio, par exemple, a appris l'essentiel de ses principes fondamentaux de codage grâce à un camp d'entraînement en ligne à son rythme à la Flatiron School. Puisqu'il travaillait également à temps plein comme barman, ce format fonctionnait bien pour son emploi du temps. Mais il a noté que faire un camp d'entraînement en ligne nécessite beaucoup de discipline, donc ce ne sera pas la meilleure solution pour le style d'apprentissage de chacun.
Chana, de son côté, a appris à coder grâce à un programme en personne à temps plein offert par Galvanize (où elle travaillait à l'époque). Puisqu'elle a appris le mieux dans un environnement très structuré, ce style de camp d'entraînement lui convenait. Mais encore une fois, cela ne signifie pas que c'est mieux pour tout le monde.
Quel que soit le type de camp d'entraînement que vous choisissez, assurez-vous de faire vos recherches. Voici quelques éléments clés à considérer:
- Le programme offre-t-il un placement ou un coaching de carrière en plus de la formation en codage?
- Les diplômés de ce programme continuent-ils à réussir? Recherchez le nom du camp d'entraînement sur LinkedIn pour voir où leurs diplômés finissent par travailler.
- Comment allez-vous payer le boot camp? Pouvez-vous payer au fur et à mesure? Pouvez-vous reporter le paiement jusqu'à ce que vous ayez trouvé un emploi? Une aide financière est-elle disponible?
- Aurez-vous un portefeuille de projets à montrer aux employeurs potentiels une fois le camp d'entraînement terminé?
Autodidacte
Bien que Sergio et Chana se soient lancés dans le développement de logiciels via des camps d'entraînement, ce n'est pas la seule voie. Vous pouvez certainement vous apprendre les compétences de codage dont vous avez besoin pour trouver un emploi. Cependant, vous devez avoir les bonnes attentes et la bonne approche.
Évidemment, apprendre à coder demande beaucoup d'autodiscipline et d'organisation. Il n’ya pas d’instructeur ni d’échéances régulières pour vous tenir responsable. Et l'absence d'un programme clair peut rendre difficile de savoir sur quoi concentrer votre apprentissage.
Cependant, ne vous laissez pas décourager! Tania Rascia, l'auteur de l'un de mes blogs de développement préférés, est une développeur de logiciels autodidacte qui a fait la transition d'une carrière de chef. Vous pouvez lire son histoire de carrière inspirante ici.
Si vous suivez la voie autodidacte, il est très utile de disposer de ressources et de programmes de qualité pour vous guider. Voici quelques-uns pour vous aider à démarrer:
- freeCodeCamp – Une bibliothèque entièrement gratuite de didacticiels interactifs basés sur du texte pour vous emmener du débutant absolu au codeur compétent.
- Treehouse – Si vous préférez les didacticiels vidéo, Treehouse reste l'une des meilleures ressources que nous ayons trouvées pour apprendre à coder.
- Apprenez à coder en 2020, soyez embauché et amusez-vous en cours de route – Un programme de codage autodidacte composé de ressources gratuites sur le Web. Particulièrement utile si vous souhaitez apprendre le développement Web et JavaScript.
Enfin, sachez que vous pouvez toujours faire un camp d'entraînement plus tard si vous décidez que la route autodidacte ne vous convient pas. Passer en revue certaines des ressources ci-dessus est un excellent moyen de plonger vos orteils dans le domaine et de voir si vous souhaitez poursuivre le développement de logiciels.
Apprentissage en cours d'emploi
Les camps d'entraînement et les ressources en ligne sont un excellent moyen d'apprendre les bases du codage, du fonctionnement de la technologie. Cependant, Sergio et Chana ont déclaré avoir appris beaucoup plus de leurs premiers stages et emplois qu'ils ne l'avaient jamais fait au cours de leur formation formelle en codage.
Tout d'abord, travailler dans un véritable travail de développement vous apprend à travailler en équipe. Bien que certains camps d'entraînement vous apprennent les bases de cela à travers des projets de groupe, rien ne remplace le travail sur une vraie application de production. Et si vous êtes un développeur autodidacte, cette expérience sera d'autant plus précieuse que vous n'avez probablement jamais travaillé en équipe auparavant.
Au-delà de cela, être un développeur de logiciel professionnel est bien plus qu'écrire du code. Vous devez apprendre à communiquer avec les designers, les chefs de produit et les autres parties prenantes. Vous apprenez les rudiments du débogage d'une application de production (ce qui est difficile à étudier à l'école). Et tu te rends compte que tu passes autant de temps à parler Comment pour construire quelque chose comme vous le construisez.
En raison de cette réalité, ne vous inquiétez pas du fait que votre premier emploi dans le logiciel paie beaucoup d’argent ou que vous soyez dans une entreprise prestigieuse. Il est bien plus précieux de trouver un stage ou un emploi où vous avez la chance d’apprendre. À partir de là, vous pouvez vous concentrer sur l'avancement vers des emplois qui rapportent beaucoup d'argent.
Comment réseauter en tant que développeur de logiciels
Si vous pensez qu'apprendre à coder est tout ce dont vous avez besoin pour obtenir un emploi de développeur de logiciels, vous vous trompez. Bien que le vivier de talents n'ait pas encore complètement rattrapé la demande de développeurs, vous allez toujours être en concurrence avec de nombreuses personnes qui ont les mêmes CV.
Pour progresser sur le terrain, le réseautage est donc essentiel. J'ai été heureux d'apprendre de Chana et Sergio que la plupart des conseils de réseautage standard s'appliquent. Parce que nous avons tout un article sur la façon de réseauter, je ne répéterai pas ces détails ici. Cependant, je souhaite discuter de quelques conseils de mise en réseau qui s'appliquent spécifiquement à l'ingénierie logicielle.
Premièrement, l'un des principaux avantages de faire un camp d'entraînement est qu'il est livré avec un réseau intégré. De toute évidence, vous pouvez réseauter avec d'autres étudiants de votre cohorte.
Mais n’ayez pas peur d’aller plus loin et de contacter les anciens de votre programme. Ils étaient à votre place il n'y a pas si longtemps, ce qui signifie qu'ils aimeraient probablement vous aider. Bien sûr, ne soyez ni dans le besoin ni désagréable. Abordez le réseautage avec curiosité et non dans l’espoir de trouver un emploi.
Chana a également noté que si les rencontres de développeurs de logiciels peuvent être un bon point de départ, ne vous limitez pas à l'industrie du logiciel. De nos jours, presque toutes les entreprises ont besoin de quelqu'un pour créer des logiciels, alors voyez si vous pouvez tirer parti des connexions dans votre secteur et votre réseau actuels. Même en demandant: «Que faites-vous?» lorsque vous rencontrez une nouvelle personne peut ouvrir des portes que vous n'imaginez peut-être pas.
Vous ne savez pas quoi dire lorsque vous contactez des professionnels du logiciel? Voici comment rédiger un e-mail de mise en réseau qui reçoit une réponse.
Conseils d'entretien pour les développeurs de logiciels
Vous avez donc appris les bases du codage, établi des liens et maintenant vous avez des entretiens programmés. Que pouvez-vous faire pour vous préparer au succès et vous démarquer de la concurrence?
À la conquête de l'entrevue technique
L'une des parties les plus intimidantes des entretiens pour les postes de développeurs est qu'ils vous obligent souvent à faire une sorte d'entrevue technique. La forme classique de ceci est l '«entretien sur tableau blanc», dans lequel vous résolvez un problème de programmation sur un tableau blanc devant un intervieweur.
Bien que cela puisse être effrayant et étrange, il est possible de se préparer. Sergio recommande un livre intitulé Cracking l'entrevue de codage, qui donne un aperçu du fonctionnement des entretiens dans de grandes entreprises comme Amazon, Facebook et Google. Il suggère également d'utiliser LeetCode, HackerRank et Codewars pour pratiquer le type de problèmes susceptibles de survenir lors d'une interview de codage.
Cependant, Chana et Sergio ont noté que les entretiens sur tableau blanc concernent moins si vous pouvez résoudre un problème spécifique et plus sur la démonstration de votre processus de résolution de problèmes. L'intervieweur veut avoir un aperçu de votre façon de penser.
Et quoi que vous fassiez, n’arrêtez pas de parler ou de résoudre le problème. Se tenir silencieusement devant le tableau blanc pendant des minutes à la fois est tout aussi gênant pour l'intervieweur que pour vous.
Avoir un portefeuille solide
En plus de préparer l'entretien technique, assurez-vous d'avoir un portfolio que vous pouvez inclure dans votre candidature et discuter lors de votre entretien. Tout bon stage de codage vous obligera à en créer un, mais assurez-vous d'en créer un si vous suivez la voie autodidacte.
Pour voir des exemples d'excellents portefeuilles, consultez ce tour d'horizon.
Soyez une vraie personne
Au-delà de vos connaissances techniques, n'oubliez pas que les gens embauchent des personnes qu'ils aiment.
Lors de l'embauche pour une startup, en particulier, l'adéquation culturelle est tout aussi importante que les compétences techniques car tout le monde passe beaucoup de temps ensemble. N'ayez donc pas peur de bavarder, de faire des blagues et d'approcher l'intervieweur comme une vraie personne.
Poser des questions
Les entrevues ne consistent pas seulement à savoir si l’intervieweur pense que vous êtes un bon candidat; vous devez décider si vous souhaitez travailler avec eux. Assurez-vous donc d'interroger l'intervieweur.
Posez des questions sur la culture, les valeurs et le quotidien de l'entreprise. Si vous ne le demandez pas, a noté Chana, c'est un gros drapeau rouge pour elle en tant qu'intervieweuse.
Ne faites pas semblant
Enfin, n’essayez pas de faire semblant. Si vous ne connaissez pas la réponse à une question, dites-le simplement. Les entreprises sont beaucoup plus intéressées à embaucher des personnes humbles qui sont prêtes à apprendre que des gens qui savent tout. Comme l'a dit Chana, «Agir avec curiosité est un excellent moyen de compenser le fait de ne pas savoir.»
FAQ sur la carrière des développeurs de logiciels
Pour conclure ce guide pour devenir développeur de logiciels, voici les réponses à quelques questions courantes sur le terrain.
Quelle (s) langue (s) dois-je apprendre?
En fin de compte, cela n’a pas d’importance. Chana et Sergio ont tous deux souligné que la véritable compétence en programmation est indépendante du langage. Un développeur expérimenté doit être capable de se lancer dans n'importe quelle base de code, même dans un langage inconnu, et de comprendre ce qui se passe.
Cela dit, il est préférable de se concentrer sur une seule langue lorsque vous commencez. Passer d'une langue à l'autre ne vous distraira pas de l'apprentissage des concepts de base de la programmation. Étant donné qu'il est largement utilisé et qu'il est (relativement) facile à apprendre, nous vous recommandons de commencer par JavaScript. C'est également la langue sur laquelle se concentrent la plupart des camps d'entraînement.
Combien de temps faut-il pour devenir développeur de logiciels?
La réponse à cela dépend de ce que vous voulez dire.
Si vous demandez combien de temps il faut pour obtenir un emploi, cela dépend de votre éthique de travail et du temps disponible. Un étudiant très motivé avec peu d'engagements externes pourrait terminer un camp d'entraînement à son rythme en quelques mois. D'un autre côté, une personne ayant un emploi ou une famille à temps plein peut avoir besoin d'un an ou plus pour acquérir les compétences nécessaires.
Et au-delà de l'apprentissage des compétences, le temps qu'il vous faut pour obtenir un emploi dépend de votre capacité d'entrevue et de votre diligence dans le réseautage.
Comment progressez-vous dans votre carrière d'ingénieur logiciel?
Une fois que vous avez eu quelques emplois et appris les ficelles du métier, à quoi ressemble une progression de carrière typique pour un développeur de logiciels?
Au plus basique, vous passez du statut de développeur junior au niveau intermédiaire à celui de développeur senior. Au-delà de cela, il existe quelques chemins différents. Vous pouvez emprunter la voie d'entreprise typique de passer à la direction, pour éventuellement devenir un CTO (Chief Technical Officer).
Cependant, passer à la gestion est loin d'être la seule option. Chana, par exemple, est actuellement intéressée à passer à un rôle de dev-ops. Dans ces types de rôles, vous en faites moins dans la programmation des mauvaises herbes et vous réfléchissez davantage à des aspects plus larges de l'architecture des applications. À terme, quelqu'un sur cette voie pourrait devenir un architecte logiciel, conseiller les entreprises sur Comment pour construire les outils qu'ils veulent.
Enfin, vous pouvez passer de la programmation quotidienne de la production au développement de produits. Au lieu de créer une application, vous travaillez avec des concepteurs pour prototyper de nouveaux produits que l'équipe d'ingénierie peut ensuite exécuter.
Et comme le développement de logiciels est encore un domaine si jeune, il est possible de progresser assez rapidement dans votre carrière si vous avez la motivation et l’éthique de travail. Chana et Sergio, par exemple, ont réussi à passer du rôle de débutant à celui de senior en quelques années seulement.
Avez-vous besoin d'un diplôme pour devenir développeur de logiciels?
Vous serez peut-être surpris que je n’ai pas mentionné à ce jour un baccalauréat ou tout autre type de diplôme.
Contrairement à de nombreuses industries, avoir un diplôme est très rarement nécessaire pour être développeur de logiciels. Tant que vous pouvez démontrer vos compétences à travers un portfolio et une entrevue, où (ou si) vous êtes allé à l'université n'a pas d'importance.
Avez-vous besoin d'une spécialisation en informatique?
Si une formation en informatique peut certainement aider en tant que développeur de logiciels en herbe, elle est loin d’être requise. Une grande partie de l'enseignement de l'informatique traite plus de la théorie des ordinateurs que de la pratique.
Si vous êtes intéressé par l'informatique en tant que majeur, allez-y! Mais ne pensez pas que vous devez changer de spécialité ou retourner à l’école pour l’informatique. En effet, avoir une expérience dans un domaine différent peut faire de vous un meilleur candidat à un poste puisque vous pouvez vous inspirer d'autres façons de penser.
Avez-vous besoin de compétences avancées en mathématiques?
Avant d'apprendre quoi que ce soit sur la programmation, je supposais que cela impliquait beaucoup de mathématiques avancées. Bien que certains domaines du développement de logiciels nécessitent des calculs lourds, ce n'est pas vrai dans l'ensemble.
La plupart des mathématiques que vous utilisez sont de l'arithmétique ou de l'algèbre de base. Apprendre à coder, c'est beaucoup plus penser logiquement et résoudre les problèmes de manière méthodique. Il s’agit d’une compétence stimulante en soi, mais elle n’exige pas que vous connaissiez le calcul différentiel.
Où aller en partant d'ici
Ouf! Je sais que c’était beaucoup d’informations et j’apprécie que vous ayez persévéré jusqu’à la fin.
Parce que nous avons couvert tellement de terrain, voici un bref résumé de la façon de devenir développeur de logiciels:
- Apprenez à coder, soit via un camp d'entraînement ou une ressource en ligne comme freeCodeCamp ou Treehouse.
- Au fur et à mesure que vous apprenez à coder, créez un portfolio que vous pourrez montrer à des employeurs potentiels.
- Réseau autant que possible. Accédez à des rencontres de développeurs (même virtuelles), contactez votre réseau existant et interrogez d'autres développeurs.
- Commencez à postuler à des emplois et à vous préparer aux entretiens. Ne laissez pas les entretiens techniques vous intimider.
- Une fois que vous avez votre premier emploi, il devient beaucoup plus facile de trouver les suivants. Commencez à réfléchir à ce sur quoi vous souhaitez vous concentrer et à progresser dans votre carrière.
Enfin, rappelez-vous que si ce chemin peut être extrêmement enrichissant, ce ne sera pas facile. Soyez tenace et n’abandonnez pas. Nous croyons en toi!
Un grand merci à Chana Reynolds et Sergio Mendoza pour leur temps et leur expertise dans cet article. Vous pouvez en savoir plus sur chacun d'eux ci-dessous:
Crédits image: développeur de logiciels au bureau