C#

Ma définition

C# est un langage de programmation orienté objet, il est notamment destiné à servir pour développer sur Microsoft .NET. C’est un langage dérivé du C et du C++. Il est utilisé pour développer des applications web et principalement des applications de bureau. J’ai découvert ce langage lors de mon Semestre 3 dans le cursus de l’ESIEA. C’est le langage principal que j’utilise au cours de mon alternance dans la réalisation des différentes tâches que j’ai pu effectuer.

Mes éléments de preuve

J’ai dans un premier temps découvert ce langage de programmation avec le projet Locadax durant lequel j'ai pu développer ma première application de bureau. Dans ce projet j'ai eu l'occasion de développer une gestion des images au sein de l'application, mais également la gestion de l'export sur cette application, pour ce faire j'ai dû mettre en place un modèle de données, puis développer des méthodes dans le view model de l'application pour ensuite utiliser ces méthodes directement sur les pages pour permettre l'export ou la mise à jour des images au sein de l'application. Grâce à ma maîtrise de cette compétence, j'ai utilisé la syntaxe spécifique au c# pour mettre en place ces fonctionnalités en les intégrant dans le code déjà existant sans causer de problème de régression.

Actuellement, au cours de mon alternance, j’utilise majoritairement le C# pour développer des fonctionnalités dans le projet Helios. Par exemple j'ai pu développer au cours de ce projet une application permettant aux utilisateurs de vérifier l'état de leur équipement. Pour réaliser ce projet j'ai utilisé mes compétences sur cette compétence pour mettre en place les différentes parties de l'application, les models de données optimaux et permettant une mise à jour en temps réel pour l'interface utilisateur. Ensuite j'ai mis en place les différentes méthodes permettant d'effectuer les calculs et les vérifications des données pour permettre à l'utilisateur de vérifier en un coup d'oeil si son équipement est prêt à être envoyé sur le terrain. Pour finir sur ce projet j'ai optimisé mon code grâce à des algorithmes mis en place grâce à Linq et ainsi permettant une lecture simple et efficace du code pour des modifications à venir. Pour conclure, grâce à mes connaissances dans cette technologie, j'ai réussi à mettre en place la base de l'application permettant une utilisation pour les clients.

Mon autocritique

Concernant ma maîtrise de cette compétence, je pense avoir un bon niveau sur cette compétence, je dirais que j'ai un niveau expert sur cette compétence. J'ai un niveau me permettant de développer la plupart des applications. Néanmoins, j'ai encore du mal à développer des algorithmes complexes en utilisant la syntaxe particulière de c#. Je pense avoir progressé très rapidement sur cette compétence au cours de mon alternance me permettant d'atteindre un bon niveau grâce aux conseils de mes collègues de travail. Cette compétence est différente en fonction de son utilisation. On peut l'utiliser pour développer des applications web et dans ce domaine je n'ai pas énormement d'expérience, également pour développer des API et j'ai des connaissances sur ce point. Mais la partie que je maîtrise le plus pour cette technologie, c'est le développement d'applications de bureau. Cette compétence a une importance et une place très importante dans ma carrière professionnelle, voulant continuer dans le développement de logiciels et les logiciels étant développés majoritairement en c#, c'est l'une des compétences principales pour moi. Je pense pouvoir dans deux ans obtenir un niveau proche de celui d'expert dans cette compétence.

Concernant mon recul sur cette compétence, si j'avais des conseils à donner, je me dirais que développer, comprendre la syntaxe particulière, par exemple pour la gestion des tableaux permet une gestion optimale et intéressante. Egalement, j'apprendrais plus tôt à utiliser Linq qui est un point obligatoire à travailler pour atteindre un niveau de compétence élevé sur cette compétence. Cette compétence comme expliqué précédemment est très importante dans mon projet professionnel car elle est centrale dans le développement d'applications de bureau et je veux continuer à travailler dans ce domaine. Pour continuer ma formation et progresser sur cette compétence, je continue d'apprendre auprès de mes collègues qui me donnent des cours sur différentes fonctionnalités de cette technologie.