Comment programmer 1C pour devenir développeur Java

Il y a quelques années, lorsque je cherchais des moyens de passer des programmeurs 1C aux développeurs Java, je me suis promené dans le noir, essayant de trouver une porte dont je n'étais pas sûr. J'ai essayé de trouver des histoires de réussite, mais en plus de quelques commentaires, je n'ai rien recherché sur Google. Le monde Java semblait énorme et le nombre de frameworks était infini. C'était complètement incompréhensible: quoi enseigner, quoi ne pas apprendre, ce qui est nécessaire au travail et ce que personne n'utilise. Si vous voulez aller à Java, perdez-vous dans les noms infinis de technologies et de frameworks et voulez savoir lesquels doivent être étudiés et lesquels ignorer - cet article est pour vous!



Quelques hypothèses initiales


  • dans cet article, nous ne discuterons pas de la question «pourquoi?», nous allons seulement - «comment?». Si vous êtes venu ici, vous savez vous-même pourquoi.
  • Je n'ai jamais reçu de formation liée à l'informatique, donc mes recommandations sont des recommandations d'une personne et d'une personne qui, au début de l'apprentissage de Java, n'a jamais écrit sur autre chose que 1Ca. Si vous avez un diplôme en développement logiciel, certaines des recommandations peuvent être superflues.
  • Je vais essayer de dessiner une image qui reflète une sorte de vacance moyenne. Naturellement, si vous souhaitez intégrer une direction étroite et spécifique comme les mégadonnées ou vice versa, vous feriez mieux d'en savoir plus sur cette direction.

Mauvaise nouvelle


Premièrement, si vous décidez de trahir 1C pour passer au développement Java - ne vous attendez pas à ce que le chemin soit facile et rapide. Très probablement, avec une diligence raisonnable, vous passerez pas moins d'un semestre sur la préparation, plus pas moins d'un an, pour sortir du mois de juin.

Deuxièmement, préparez-vous à ce que si vous êtes maintenant le premier 1Snik - vos revenus vont probablement se redresser lorsque vous deviendrez un milieu confiant. En règle générale, ce n'est pas moins de 2-3 ans de pratique, mais finalement tout dépend de vous.

Troisièmement, ne vous attendez pas à ce que votre expérience 1Set soit intéressante pour quelqu'un ici. Vous pouvez avoir 100 500 projets réussis et tout le mur en certificats 1Snal - cela n'intéressera personne. Vous serez un juin, ils vous parleront comme un juin et vous aurez des tâches comme un juin. Mais ici, il y a une cuillère de miel: même si vous n'êtes pas un top 1Snik, dans les problèmes SQL, vous atteignez très probablement des développeurs Java seniors.

Quelques astuces très louches que vous avez déjà entendues trois douzaines de fois, mais croyez-moi, elles fonctionnent à 100%:

  1. Passer 1 heure par jour est bien mieux que passer 7 heures une fois par semaine. Si vous décidez de partir, allez-y. Aucune excuse. Tous les jours. Très bien, vous pouvez vous reposer le dimanche.
  2. Si Anglais des notes val - améliorez-le! C'est une compétence qui vous sera utile: non seulement presque tout ce que vous pourrez lire sera en anglais, mais vous devrez également écrire du code dessus! Très probablement, la première chose dont vous avez besoin est la capacité de lire et de comprendre ce que vous lisez. En écoutant et en parlant, vous pouvez attendre un peu.

Préparation. Bases linguistiques


Vous devez choisir une langue. Sur Internet, un tas d'articles aux caractéristiques comparatives. En outre, vous pouvez conduire les noms de la langue dans la recherche de hh - voyez combien vous aimez ce que vous voyez là-bas. Faites attention non seulement aux salaires effrénés et à la bière le vendredi, mais aussi au nombre de postes vacants, et surtout au nombre de postes vacants pour lesquels vous êtes prêt à prendre le mois de juin.

J'ai choisi Java. Toutes les autres recommandations seront données dans ce contexte, si vous choisissez une langue différente - une partie importante de ce qui est écrit ici peut perdre son sens, mais vous pouvez dessiner des idées générales. Vous devriez probablement regarder dans la direction de PHP, car Bitrix et la transition vers celui-ci peuvent s'avérer plus faciles en termes de barrière administrative (il y a 1C, voici 1C, quelle est la différence? ..) et en termes d'absence de flux et de références de méthode dans le langage (bien qu'ils follement élevé).

Si vous choisissez aussi Java - ne vous embêtez pas avec Java EE, vous n'avez besoin que de Java SE. Qu'est-ce que Java ME et Java FX est généralement préférable de ne pas savoir)

Alors par où commencer? Je ne vous conseille pas de vous précipiter pour acheter le Horstmann en deux volumes et mille pages Spring 5 pour les professionnels et essayer d'apprendre tout cela. Même si vous racontez tout cela par cœur, les connaissances non soutenues par la pratique disparaîtront très rapidement. Commencez avec des sites de formation en ligne pour les programmeurs. J'ai résolu JavaRush. Probablement atteint le niveau 15. Cela a pris environ 1-2 mois (je peux mentir avec les chiffres, c'était il y a longtemps)

Descendez ensuite à HackerRank. Ne vous inquiétez pas de son nom - vous pouvez choisir le niveau de difficulté et le plus simple vous proposera des tâches de niveau pour inverser la chaîne. Assurez-vous que les tâches du niveau intermédiaire (moyen, points par 30) sont résolues sans problème. Bien que le système de notation échoue parfois et qu'il y ait de tels problèmes de 30 points, il est plus facile de résoudre toute tâche difficile de 60 points, mais fondamentalement, vous devez faire face. Cela vous prendra encore 1-2 mois.

Il est maintenant temps de lire Horstmann. Gardez à l'esprit que c'est un bon livre, mais il couvre Java dans son intégralité (uniquement le langage, pas les frameworks) et même les parties de celui-ci qui ne sont presque jamais utilisées. Ma recommandation: dans le premier volume, oubliez les sections liées à l'interface utilisateur et l'ensemble du deuxième volume. Et pourtant, si c'est serré, sautez le multithreading et la seconde moitié des génériques dans le premier volume - même ceux du milieu peuvent ne pas le savoir, ce n'est pas effrayant pour le mois de juin. Il est également important de ne pas tomber dans le piège des versions: un livre appelé Java 2 est l’antiquité. Vous avez besoin de la version 1.8 ou 9. Ou concentrez-vous sur la date de publication: 2015 et plus tard feront l'affaire.

J'espère que vous n'abandonnerez pas HackerRank en lisant Horstmann, peut-être que vous résoudrez même quelques 80-100 points. En général, il n'est pas nécessaire de soulever plus de 60 points, car il ne commence pas tant la programmation appliquée que «l'art pour l'art». Mais si vous sentez la force en vous-même - prenez parfois du temps, ce ne sera pas superflu. Et aussi, gardez à l'esprit que la plupart des tâches complexes sont des tâches algorithmiques classiques que vous pouvez google: le but des exercices de piratage n'est pas de proposer un algorithme à partir de zéro qui a été inventé depuis longtemps, mais de se renseigner sur l'existence de l'algorithme et de le mettre en œuvre lui.

Poursuite de la préparation. Cadres, outils et pratiques.


Après tout cela, vous êtes presque prêt à passer une entrevue. Encore un petit peu:

  • faites à nouveau attention aux collections et à la complexité de leur recherche. Tout le monde adore ce sujet. N'essayez pas de tout savoir: mieux vaut connaître les collections de base (ArrayList, LinkedList, HashSet, HashMap, peut-être même TreeMap) que d'en connaître trois douzaines, mais "en haut". C'est-à-dire vous devez comprendre comment fonctionne la collection à l'intérieur. Il y a une bonne chaîne sur YouTube, tout y est mâché pour le mois de juin. Exactement comme vous en avez besoin. Vous entrez dans la recherche «leçon sur les collections java» - le premier lien vers celle-ci. Il y a aussi une vidéo intitulée «ce que vous devez savoir avant une entrevue». Vous n'avez pas besoin de savoir directement tout ce qui y est répertorié, vous êtes toujours un juin, à mon avis, si vous maîtrisez les 2/3 de cela - ce sera ok.
  • qu'est-ce que le printemps (vous avez besoin de Spring Core et Spring Boot) - beaucoup a été fait là-bas, mais 95% de la pratique de son utilisation n'est pas plus compliquée que halovorld. Vous devez comprendre les concepts de base, tels que ce qu'est l'IOC et pourquoi il est généralement et confiant de posséder 1-2 façons de déclarer et d'injecter des beans (pas xml). Peut-être devriez-vous également essayer de créer plusieurs services REST sur Spring Web: il n'y a rien de compliqué, mais il y aura un avantage certain.
  • comment écrire des tests (regardez JUnit et Mockito) - dans 1, en principe, il n'y a pas de pratique telle que l'écriture de tests. En Java, le code sans test n'est pas du code, car le code est considéré comme inopérant sauf preuve du contraire.

Quand je dis «regardez [frameworkName]», je veux dire: faites au moins quelques projets personnels en utilisant l'outil approprié. Très probablement, cela vaut la peine de commencer par essayer chaque cadre séparément au niveau du monde bonjour, puis d'essayer de les rassembler dans un projet qui comporte au moins une certaine «utilité». Cela semble être une bonne idée (même si je ne l'ai jamais fait) - de sorte que les projets sont en quelque sorte liés au travail. Peut-être que c'est juste pour réécrire complètement la tâche que vous avez vue sur 1 en Java, peut-être une sorte d'assistant pour vous-même pour faire l'activité 1Snaya. Par exemple, si vous envisagez un échange REST avec un fournisseur sur 1 - implémentez le côté fournisseur en Java pour tester la fonctionnalité 1So: acceptez simplement les demandes et placez-les quelque part.

Tous vos projets domestiques doivent être compilés par Maven et versionnés par Git. Ce ne sont que des outils, cela vaut la peine de vous bourrer la main - et déjà vous cessez de les remarquer. En tant qu'environnement de développement, je vous conseille de prendre Idea, selon mes observations, presque tout le monde l'utilise maintenant. La version gratuite devrait vous suffire.

Si vous n'êtes pas limité dans les moyens - vous pouvez suivre certains cours sur le développement Java. Je crois que le cours de base ne vaut pas la peine d'être suivi, car tout ce qui y sera expliqué ne vaut pas la peine d'y consacrer du temps et de l'argent. Suivez un cours sur Spring Core ou JUnit: d'une part, vous allez acquérir des connaissances, parler avec de futurs collègues, d'autre part, vous ne serez pas mâché pendant 3 jours sur ce qu'est un cycle.

Quelque part entre les deux, vous devez lire la théorie de la programmation. Vous serez certainement interrogé sur SOLID et les modèles. Les motifs (ce sont aussi des motifs de conception) sont des choses très intuitives, bien que Wikipédia le décrive pour que le diable se casse la jambe; il vaut mieux lire des articles pas si abstrus . À mon avis, un tel ensemble suffit: Interface, Builder, Prototype, Singleton, Decorator, Proxies.

Allons à l'agence de sécurité sociale!


Employeurs
Vous devez connaître plusieurs types d'employeurs de base.

Le premier est les acheteurs de corps. Ce sont des employés. Les représentants les plus connus: Luxoft et EPAM. Ils embauchent des gens, puis les revendent à toutes sortes de Sberbanks. Les acheteurs de corps placent leurs employés directement dans le bureau du client et ils ne peuvent guère être distingués des employés du client. Souvent, le niveau d'exigences y est plus faible et le salaire plus élevé. Mais vous ne travaillerez pas dans quelles conditions: ce ne sont pas les projets les plus attractifs pour lesquels le client final n'a pas pu obtenir de développeurs du marché, il connaîtra le code du travail très à distance, et vous ne serez pas vous-même un employé à temps plein où vous serez travail (toutes sortes de goodies et de fêtes d'entreprise passeront par vous). Mais vous n'en avez pas besoin?

Les sous-traitants sont des bureaux qui sont embauchés par les clients finaux, mais le sujet de la vente n'est pas des personnes, comme les acheteurs de corps, mais la mise en œuvre de tâches. Tels, en règle générale, tentent de garder les développeurs loin du client et sont engagés dans de nouveaux projets. C'est un lieu de travail très digne, mais y aller avec une expérience comme la vôtre ne sera pas facile, mais pas impossible.

Les entreprises alimentaires sont des bureaux comme Yandex et, pardonnez-moi, Kaspersky, qui vendent leur code comme produit final, comme boîte. Il y a une opinion qu'il vaut mieux travailler ici: les salaires sont élevés, il y a beaucoup de cadeaux, des tâches intéressantes, des équipes professionnelles. Lorsque vous entendez parler d'anglais gratuit et de bière le vendredi - c'est probablement à propos d'eux.

Viennent ensuite les banques et les assurances. Tout peut être très différent ici: en règle générale, les banques ont un énorme héritage effrayant auquel personne ne veut aller et des projets de jeunesse à la mode et élégants, sur lesquels les vacances sont toujours en train de fermer. Vous comprenez, pour vous dans le premier groupe. Bien que, parfois, leur vanité peut aller au-delà, comme «un système critique pour la mission - pas un endroit pour les Jones». Ne faites pas attention à eux, c'est loin d'être tout.

Naturellement, cette liste ne décrit pas entièrement l'ensemble du marché du travail, il existe toutes sortes de startups, de vente au détail et bien d'autres.

Tout d'abord, ne mentez pas sur l'expérience. Croyez-moi, même si vous êtes "accidentellement" confondu avec un milieu sur une interview technique - au travail, vous serez toujours un juin. Par conséquent, dans le CV, vous ne devez pas inventer que vous avez déjà travaillé en tant que développeur Java pendant 15 ans, en profitant du fait que dans le titre de votre précédent article, il n'était pas fait mention de 1C. Mais certaines mesures peuvent être prises pour surmonter la barrière des RH. Ne sortez pas votre passé de 1Snoe. Sur quelques travaux récents, vous pouvez simplement écrire «Programmeur» ou «Développeur», et creuser les lettres «1C» quelque part dans la description. Vous ne dépenserez pas le plomb, mais les RH peuvent l'acheter.

Deuxièmement, ce serait une erreur de garder votre futur employeur dans l'ignorance de la façon dont vous avez pratiqué l'autoformation. Écrivez une demi-année de formation comme un lieu de travail distinct (il devrait être tout en haut), avec l'intersection en termes de temps avec le dernier lieu de travail. Appelez-le "développeur Java", le lieu de travail est "auto-apprentissage" ou "projets à domicile" et énuméré les technologies que vous avez essayées. Donnez un lien vers le profil sur le pirate.

Troisièmement, trouvez une raison convaincante pour laquelle vous voulez aller à Java. Je ne conseille pas de dire "je suis fatigué des infirmières comptables" ou "je ne veux pas que mon salaire s'effondre avec le taux de change du rouble" et plus encore "je veux sortir de ce gr ...". Le thème du développement est le mieux adapté: ils disent que j'ai déjà tout vu là-bas - nous devons avancer.

Quatrièmement: vous êtes un juin et des gens comme vous, chaque année des instituts, ils libèrent beaucoup plus qu'il n'y a de postes vacants en juin. Dans le même temps, ceux des instituts sont sans famille ni enfants et sont prêts à vivre au travail et à vivre au travail et ils n'ont pas besoin de payer une hypothèque. D'accord, l'expérience est de votre côté, mais ce n'est pas une expérience pertinente et elle ne sera pas considérée comme de grande valeur. Il en résulte que vous ne pouvez pas intimider le sn attendu. Si vous ne pouvez pas vivre avec le salaire de juin, gagner 1Snick pour un quart du pari est une bonne option pour la première année.

Promenez-vous parmi les chiens, souvenez-vous des questions, trouvez des réponses, puis recommencez à travers les chiens. À mon avis, 1 à 2 entretiens techniques par semaine est un niveau acceptable, afin de réussir à digérer l'expérience acquise et à ne pas trop retarder la recherche.

Travail de juin


La chose la plus importante ici est Tim Lead. Vous auriez dû le rencontrer à tech.sobes et «il aurait dû vous choisir et vous auriez dû le choisir» (c). Il est très important de ressentir cette chimie. Il s'agit d'une personne dont chaque mot dans les prochaines années, vous devez écouter, vous souvenir et accomplir. Cette personne vous entraînera vers les sommets du développement Java et vous initiera aux nuances les plus profondes de cette magie. Et de lui, peut-être même plus que de vous, cela dépend à quel point vous deviendrez cool et dans combien de temps.

Donc, mon jeune surnom 1C, si vous saviez «pourquoi?», Vous savez maintenant «comment?». Un voyage de mille kilomètres commence par une étape. Allez-y!

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


All Articles