Comment devenir développeur Java en 1,5 an

Je m'appelle Sergey, j'ai 40 ans et maintenant je travaille en tant que développeur Java dans une entreprise allemande. Nous développons des logiciels pour brasserie évaluation des risques financiers et de crédit. C'est mon premier travail en tant que développeur. Auparavant, j'ai travaillé dans le domaine du support informatique et de l'intégration de systèmes. Le 1er février 2019, ma période d'essai de six mois s'est terminée et j'ai un contrat perpétuel en main. Je veux partager mon expérience sur la façon d'apprendre de manière autonome Java de manière à obtenir un emploi.



Ceci est mon bureau. Nous sommes autorisés à boire de la bière pendant les heures de travail, nous sommes en Allemagne.


Mon premier article: « L'émigration informatique en famille. Et surtout la recherche d'emploi dans une petite ville d'Allemagne, quand vous y êtes déjà


Mon deuxième article: " Obtenir un emploi en Allemagne sera plus facile ."


Clause de non-responsabilité


Je dirai tout de suite que toutes sortes d'options "apprendre à apparaître dans 10 jours" (21 jours, 30 jours, etc.) sont de l'utopie. Il n'y a pas de pilule rouge pour entrer rapidement dans la matrice. Mais pendant un an ou deux en parallèle avec le lieu de travail principal - c'est bien réel.


Ce que j'avais dans mon actif avant de commencer à apprendre Java


Au début, je voulais nommer l'article «Comment devenir développeur Java en un an et demi », mais j'ai changé d'avis. Je suis venu à la programmation non pas d'un domaine complètement différent, mais de l'informatique. Mais je n'ai pas travaillé dans le développement, mais dans l'accompagnement. Il est probable qu'il ne sera pas facile pour un camionneur de répéter mes étapes pour devenir programmeur. Bien que, si ma femme réussit dans ses 34 ans à se recycler en sciences humaines pures pour devenir développeur (ou testeur), j'écrirai un autre article.


Il vaut la peine de dire que je savais déjà quand j'ai décidé de devenir développeur.
À l'université pendant 2 semestres, nous avons étudié la programmation en C et C ++. Rien de spécial ou de connaissance approfondie. Rendu - oublié. De plus, en tant qu'étudiant, j'ai écrit quelques programmes Delphi simples pour moi. Et c'est tout. C'était il y a plus de 20 ans.


Ensuite, ma carrière ressemblait à ceci:


  1. Administrateur système
  2. Ingénieur système
  3. Député chef de département
  4. Superviseur
  5. Ingénieur de ceux-ci. soutien

Je n'ai pas fait de programmation directement.


Mon chemin


Cours en ligne.


J'ai commencé avec les spécialisations suivantes sur coursera.org :


Principes de base de la programmation Java et du génie logiciel - 4 mois

J'ai suivi les cours en ligne suivants:



Après cette spécialisation, j'étais plus ou moins familiarisé avec la langue, mais écrire le programme lui-même était encore irréaliste. Le dernier projet phare que je n'ai pas fait. C'était dur pour moi. Et pour être honnête, j'ai perdu mon enthousiasme. J'ai fait une pause.


Programmation Java orientée objet: structures de données et au-delà - 5 mois

Après un mois, j'ai décidé de reprendre les cours. Je suis allé à la spécialisation de cinq cours:



Je n'ai pas non plus maîtrisé le dernier projet capstone. Mais l'avant-dernier cours sur la liste des entretiens de Mastering the Software Engineering m'a aidé à bien me préparer pour le prochain entretien. Et j'ai pu écrire mon premier analyseur sans prétention d'un site simple en HTML pur. C'était déjà bien, mais pas impressionnant.


Comment coder - 3 mois

La prochaine étape était ces deux cours étranges sur edx.org :



J'ai écrit "bizarre" car il ne s'agit pas du tout de Java. Les auteurs du cours utilisent le langage de programmation spécial Beginning Student Language (BSL). J'ai lu quelque part qu'ils sont très utiles. Probablement, ces deux cours m'ont aidé à mieux comprendre certaines des astuces pour écrire des programmes et sont devenus une bonne aide pour écrire des tests unitaires dans le travail réel. Mais pour être honnête, vous pouvez les ignorer.


Structures de données et algorithmes - 2 mois

Je suis ensuite retourné sur coursera.org et j'ai commencé une nouvelle spécialisation, comprenant les quatre cours suivants:



Mais maîtrisé seulement les deux premiers. Les autres ne se sont même pas inscrits. Parallèlement à ces cours, j'ai commencé à lire le livre OCA, qui sera discuté plus tard.


Estampage sur place

À ce moment, j'ai réalisé que je marchais. La réussite de nouveaux cours n'a pas produit autant de connaissances nouvelles que les premiers. C'est-à-dire des connaissances semblent être ajoutées, mais cela ne me rapproche pas de trouver un emploi. Je ne comprenais pas comment avec une telle connaissance, on pouvait généralement trouver un emploi. Je ne pouvais toujours pas écrire quoi que ce soit de plus compliqué que l'analyseur. Eh bien, comment est-ce?!?!? J'ai même essayé d'écrire mon service d'analyse de site avec du blackjack et des prostituées, mais après une semaine de développement, mon projet s'est transformé en désordre des cours. Et je ne pouvais plus moi-même comprendre ce que j'écrivais là-bas. De plus, je ne comprenais toujours pas certains aspects du fonctionnement de la langue. Et c'est après avoir déjà passé environ un an sur tous ces cours !!! Douze cours en ligne et une année entière, Carl, tu y penses. En fait, ce fut un échec. J'étais sûr qu'en un an je pourrais devenir développeur grâce à ces cours. Je me trompais. J'avais besoin d'un plan B.


Alternative

J'ai commencé à chercher des cours qui m'aideraient à acquérir des compétences pratiques demandées dans le travail réel. Mais il n'y avait rien de raisonnable, ou cela valait de l'argent décent. Les mêmes cours d'otus ont coûté 50000 pendant six mois et les critiques à leur sujet sont contradictoires. Je n'étais pas préparé à de telles dépenses. J'étais prêt à creuser par moi-même et je cherchais comment cela peut être fait gratuitement ou à très peu de frais. En conséquence, tous les cours en ligne que j'ai rencontrés ont été divisés en deux catégories:


  • Le premier est conçu pour les débutants ou les personnes sans formation. Avec leur aide, vous atteignez le niveau «trois avec un moins». C'est moi! C'est à propos de moi!
  • Le second est destiné aux «bons gars» ayant une expérience de travail et souhaitant devenir «d'excellents étudiants». Comme ceux-ci: "Comment écrire des microservices en Java pour des projets à forte charge à l'aide de WildFly Swarm." De quoi s'agit-il ???

Et entre eux un vide béant. Eh bien, où suis-je et où sont tous ces microservices ??? Il s'est avéré que pour les «trochiks», il n'y a rien du tout. Ou il y en a, mais pour un bon prix. Et comment devenir un «bon gars» gratuitement, sans inscription ni SMS, n'est généralement pas clair.


Certification Oracle


J'ai alors décidé de devenir développeur Java certifié. Parce que l'expression "je suis un programmeur Java professionnel" sonne très cool et devrait vaincre le futur employeur sur-le-champ !!! En tout cas, alors j'ai pensé si naïvement.


OCA: Oracle Certified Associate Java SE 8 Programmer - 2 mois

Pour cela, j'ai acheté un livre:


OCA: Oracle Certified Associate Java SE 8 Programmer I Study Guide: Exam 1Z0-808

Il m'a fallu environ 2 mois pour maîtriser ce livre. Elle m'a vraiment ouvert les yeux sur de nombreux aspects et m'a fait comprendre comment la langue fonctionne en détail. C'était un bon pas en avant. Mais pas dans la recherche d'emploi, mais dans la compréhension du langage Java. Je suis allé à l'examen avec confiance que je réussirais bien, et je l'ai réussi. J'ai marqué 84% avec les 65% requis. J'étais extrêmement fier de moi.


Le coût de l'examen est de 245 $. En Russie, cela coûte un peu moins cher.


Estimer le coût d'une formation officielle d'Oracle pour préparer cet examen


OCP: Oracle Certified Professional Java SE 8 Programmer - 4 mois

J'ai entamé avec enthousiasme le deuxième livre des mêmes auteurs:


OCP: Oracle Certified Professional Java SE 8 Programmer II Study Guide: Exam 1Z0-809

Pour l'élaboration du deuxième livre, j'ai déjà passé 4 mois. Et cela s'est avéré vraiment difficile. Deux fois, j'ai pris des pauses une semaine, car il m'était vraiment difficile de comprendre les expressions lambda ou le multithreading. De plus, l'abondance des classes d'entrée et de sortie me tuait. Tous ces NIO et NIO2, qui sont tellement similaires et que vous deviez connaître. Quelle est la classe de base dérivée? Ce fut un vrai cauchemar. En conséquence, j'ai fixé la date de l'examen à un mois, puis je l'ai déplacée à deux semaines, puis à deux autres. Je manquais de temps, une interview se profilait à l'horizon. Et j'avais besoin de ce certificat. Je n'ai pas passé l'examen une troisième fois et je suis allé avec ce que j'avais. Contrairement au premier examen, je n'étais plus sûr d'un bon résultat. Je n'étais pas du tout sûr de pouvoir le passer. Il n'y avait aucune trace de fierté passée. La quantité d'informations à comprendre et à retenir dans le deuxième livre est cinq fois plus élevée que dans le premier. Mais j'ai également réussi cet examen. Heureusement, les tâches de test dans les livres se sont avérées plus difficiles que celles qui étaient à l'examen. Mais c'était une percée ... pour moi. Une percée en termes de connaissance et de compréhension du fonctionnement de la langue et des outils qu'elle propose.


Le coût de l'examen est également de 245 $.


Je peux dire que ces deux livres m'ont donné plus que tous ces cours en ligne que j'ai suivis auparavant. Mais je ne sais pas si je pourrais réussir ces examens du tout si je n'avais pas suivi les cours auparavant. Avec l'aide de ces examens, je suis passé au niveau «trois plus». Et c'était déjà quelque chose. Mais je n'ai pas non plus été en mesure de mettre en œuvre indépendamment un projet intéressant. WTF ????


J'ai réalisé que j'avais atteint le maximum de ce que je pouvais obtenir, et continuer à apprendre la langue était inutile. De plus, j'ai compris que mes connaissances, que j'avais tant de mal à acquérir, disparaissent rapidement sans pratique. Il était impossible de tirer, et j'ai commencé à me préparer pour l'entretien et à acquérir les compétences qui pourraient être requises lors de la candidature à un emploi.


De quoi avez-vous besoin pour obtenir un emploi?


Besoin de passer par une interview et une interview technique! Je n'écrirai pas sur la préparation de l'entretien. Ceci est un sujet pour un article séparé. Je n'écrirai que sur les connaissances nécessaires pour passer un entretien technique.


Préparation à l'entretien - 1 mois

J'ai acheté le livre suivant:


Cracking the Coding Interview, 6e édition: 189 questions et solutions de programmation

Je le recommande vivement. Elle aidera à préparer la partie technique de l'entretien. J'y ai passé environ un mois. Beaucoup de tâches étaient incompréhensibles, alors j'ai trouvé une autre copie en russe, et quand elle était complètement incompréhensible pour moi, je l'ai examinée.


Compétences supplémentaires

À ce stade, je surveillais déjà activement le marché du travail dans ma ville et j'ai choisi l'entreprise dans laquelle j'aimerais travailler. Ils avaient un poste de développeur Java. Parmi les compétences souhaitées dans le poste vacant, il y avait la connaissance d'Oracle SQL, GWT, Eclipse, SVN, Maven, Jenkins. Je n'avais pas besoin d'une connaissance approfondie de toutes ces technologies, j'avais besoin d'une simple compréhension de ce que c'est et de son fonctionnement. Alors que lors de l'entretien, vous pouvez dire, oui, je sais, mais pas profondément.


Oracle SQL - 1 semaine

Je connaissais déjà assez bien SQL, car comme devoir, je devais faire beaucoup de rapports arbitraires pour la gestion. Mais c'était T-SQL de Microsoft, et ici, SQL d'Oracle était requis. J'ai dû acheter un livre pour me souvenir des principaux points et comprendre la différence.


OCA Oracle Database SQL Exam Guide (examen 1Z0-071)

J'ai dirigé ce livre rapidement en une semaine. Et j'ai réalisé que j'étais prêt à 70% à passer un autre examen. Mais je n'étais plus à la hauteur.


SVN - 1 semaine

Système de contrôle de version distribué SVN. GIT ou SVN est utilisé dans la plupart des sociétés de développement de logiciels. Je n'ai pas trouvé de cours SVN, j'ai donc décidé de suivre un court cours sur GIT: " Contrôle de version avec Git " pour rester à jour avec le sujet. J'ai même pensé que s'ils posaient des questions sur SVN, je dirais que j'avais affaire à GIT. Et puis je vais m'orienter sur place. Si tout à coup quelque chose n'est pas clair, alors vous pouvez toujours dire que dans GIT c'est un peu différent. Et cela, d'ailleurs, a fonctionné.


GWT - 3 jours

La prochaine technologie sur la liste est GWT. Ayant passé plusieurs jours à chercher des informations, j'ai réalisé que je ne pouvais tout simplement pas comprendre ce cadre Google. S'il est simplifié, vous pouvez écrire des sites complexes en Java, et ce Framework convertit votre code en HTML + JavaScript et l'affiche dans le navigateur sans aucun module complémentaire ou module complémentaire. Trop cool. GWT J'ai décidé de sauter.


Eclipse - 3 jours

Eclipse est un environnement de développement, le principal outil de développement avec lequel je travaille quotidiennement. Je n'ai suivi aucun cours spécial. J'ai regardé plusieurs vidéos sur youtube, j'ai compris les techniques de base. J'ai tout essayé moi-même avec mes mains.


Maven, Jenkins - 15 minutes.

Il n'y a tout simplement plus de temps pour ces deux choses. L'interview était déjà le matin, alors je viens de lire 2 articles Wikipedia et je me suis couché.


Résumé


Le temps


Il m'a fallu environ 18 mois, 2 semaines, 6 jours et 15 minutes pour acquérir les connaissances et les compétences nécessaires pour obtenir la place d'un développeur. Je l'ai fait le soir, passant 1 à 3 heures en semaine. Et environ 5-6 heures le week-end.


De l'argent


J'étais prêt à passer mon temps et je n'étais pas prêt à dépenser de l'argent. Mais je devais encore les dépenser.


Cours:


  • Tous les cours en ligne que j'ai suivis gratuitement . Comment faire cela sur coursera.org que j'ai écrit ici .

Livres:



Examens:



Dépenses supplémentaires:


  • Voyagez dans une autre ville pour les examens, dans mon il n'y a pas de centres de certification - 120 €.

Total: 702 €


Malheureusement, cela n'a pas fonctionné complètement gratuitement. J'ai acheté des livres en anglais, car l'examen est également en anglais.


Résultat


Cette connaissance était suffisante pour passer un entretien et signer un contrat avec une entreprise allemande suffisamment cool. Je dirais même qu'ils suffisaient avec une marge.


Ils ont également suffi pour passer par une période d'essai de six mois et obtenir une place permanente dans le personnel des développeurs.


Au cours de ces 6 mois de travail en tant que développeur, j'ai fermé plus de 200 applications pour le développement, l'achèvement et la correction d'erreurs dans le code de sous-systèmes et modules complètement différents. Et je n'ai pas refusé une seule candidature "parce que je ne pouvais pas". Oui, je devais et dois maintenant comprendre de nouvelles choses, chercher des informations, me plonger dans les détails. Je fais quelque chose lentement, mais c'est intéressant pour moi et le processus se poursuit. Et ils paient bien pour ça !!!


Mais ne pensez pas que je suis très intelligent. Je suis le gars le plus simple qui a décidé de changer sa vie pour le mieux. Je suis comme toi. Et si je le pouvais, alors vous le pouvez aussi!


Express est le chemin


En fait, pour devenir développeur, il m'a fallu non pas un an et demi, mais deux. Mais cela est dû à ma propre stupidité (lire à ce sujet dans mon canal de télégramme ). Directement dans la réalité, j'ai passé 1,5 an. Mais il n'est pas nécessaire de répéter mes erreurs. Je pense qu'il est possible d'obtenir le même résultat en un temps plus court. Nous jetons tout l'excédent et obtenons quelque chose comme ceci:


Première partie - 5 mois


Nous suivons les cours de spécialisation en programmation Java orientée objet suivants : Structures de données et au-delà sur le curseur:



En parallèle, nous lisons un livre:



Sur la base des résultats, nous réussissons l'examen.



Deuxième partie - 2 mois


Nous suivons les cours de spécialisation Structures de données et algorithmes suivants:



En parallèle, nous lisons un livre:



Troisième partie - 4 mois


Nous lisons le livre:



Sur la base des résultats, nous réussissons l'examen.



Quatrième partie - 1 mois


Nous examinons ce que l'employeur attend spécifiquement des candidats et passons une semaine sur chacun des 4 technologies, programmes ou frameworks les plus nécessaires (Git, Eclipse, Maven, Spring, etc.). De plus, nous étudions le domaine dans lequel travaille l'employeur, ses produits, le cas échéant, etc.


Année totale. Pendant un an - c'est réel.


Restez en contact


À propos de la façon dont j'ai changé ma vie à 40 ans et déménagé avec ma femme et mes trois enfants en Allemagne, j'écris dans ma chaîne de télégramme @LiveAndWorkInGermany . J'écris sur comment c'était, ce qui est bon et ce qui est mauvais en Allemagne, et les plans pour l'avenir. Brièvement et pour affaires. Rejoignez-nous - ce sera intéressant.

Source: https://habr.com/ru/post/fr439432/


All Articles