
Un emploi en tant que développeur PHP junior/mid chez Droptica
Chez Droptica, nous recrutons régulièrement des développeurs PHP depuis un certain temps. On nous demande souvent ce qu'il faut exactement savoir pour rejoindre notre équipe, principalement par des personnes qui débutent leur carrière de développeur ou qui souhaitent changer de poste ou même de secteur.
L'étendue des connaissances en “développement PHP” est vaste et nos attentes concernant nos candidats peuvent ne pas être évidentes pour certains. Dans cet article, nous décrirons en détail ce que nous (et de nombreuses autres entreprises dans l'industrie) recherchons chez nos recrues.
Fondations solides
La maîtrise de l'utilisation des éléments de base de PHP est primordiale. Nos candidats doivent être capables de résoudre rapidement des tâches de programmation de base, et par tâches de base, j'entends des exercices de codage et des problèmes apparaissant au cours des trois premiers semestres d'études en informatique.
Les exemples de ces problèmes sont :
- types de données, instructions de contrôle de flux du programme
- boucles, boucles imbriquées, bouclage à travers des tableaux multidimensionnels
- opérations sur les chaînes, suppression des éléments de chaîne, modification de chaînes
- fonctions, bonnes pratiques dans la création de fonctions
- récurrence, une bonne compréhension des tâches nécessitant des fonctions récurrentes
- bases de la programmation orientée objet, création de classes, héritage, interfaces, classes abstraites
- algorithmes de tri simples
- structures de données, files d'attente fifo et lifo, arbres
Nous pensons que la liste ci-dessus est simplement indispensable car nous considérons qu'il est facile d'apprendre de nouveaux langages de programmation et frameworks tant que vous avez ces bases solides.
Comment apprendre les bases de manière efficace ?
Résolvez des problèmes et beaucoup d'entre eux. Si vous lisez un livre de base, faites TOUS les exercices. Apprendre la programmation n'est pas une course, alors ne cherchez pas à le faire le plus vite possible. Ce n'est pas parce que vous comprenez l'exemple fourni par l'auteur que vous maîtrisez le sujet. Vous devez passer par d'autres exemples et problèmes avant de pouvoir utiliser un élément donné de la langue couramment. Si nécessaire, codez “hello world” de dix ou vingt manières différentes jusqu'à ce que vous compreniez chaque caractère du code que vous venez d'écrire.
Je recommanderais également d'utiliser les listes de problèmes universitaires, car elles contiennent souvent 15 à 30 tâches pour chaque sujet, par exemple, des boucles ou des instructions de contrôle de flux. En résolvant un si grand nombre de problèmes, vous apprendrez sûrement à utiliser les éléments d'un langage de programmation.
Résoudre seulement deux ou quatre problèmes n'est pas suffisant.
Aller du spécifique au général, et non l'inverse
Je vais décrire cela plus en détail en me basant sur Drupal car c'est ce avec quoi nous travaillons (bien que le framework Symfony apparaisse de plus en plus souvent dans nos projets). Cet exemple s'applique à tout autre grand système.
Nous recevons de nombreux candidats capables de “construire” un site sur Drupal en utilisant le noyau, plusieurs modules prêts à l'emploi et quelques lignes de code PHP ; cependant, ils ne le comprennent souvent pas du tout. Ils copient et collent simplement un extrait de StackExchange ou d'autres sites et vérifient si cela fonctionne, sans comprendre ce qu'ils viennent de faire. De cette manière, il est parfois possible de livrer un site ou une application au client, mais souvent, cela ne fonctionnera pas exactement comme le client le souhaite, d'autres aspects ne seront pas respectés conformément aux spécifications. Cela est dû au fait qu'ils sont généralement incapables de livrer un système fonctionnant selon les besoins du client et servant à ses besoins commerciaux.
Nous recevons certaines recrues qui travaillent avec Drupal et construisent des sites depuis plus de cinq ans tout en étant incapables de changer une boucle de foreach à while.
Connaître Drupal est important et précieux, cependant, avoir des connaissances fondamentales en programmation est bien plus important. Ainsi, si vous voulez apprendre Drupal, apprenez les bases de la programmation en même temps. Si vous connaissez déjà Drupal, mais que vous ne connaissez pas les bases de la programmation... Eh bien, il est temps d'apprendre ! :)
Soyez un concepteur d'applications, pas un exécutant de code
Nous croyons que la programmation consiste essentiellement à implémenter des processus d'affaires à l'aide de code. C'est pourquoi nous attendons de nos candidats qu'ils soient capables de traduire des processus d'affaires en code d'application – interfaces, structures de données, diagrammes de classes, etc.
Lors des entretiens d'embauche, nous demandons à nos candidats comment ils concevraient une application simple. Par exemple : « Comment concevriez-vous une application web pour réserver des visites chez un vétérinaire ? » Ici, nous attendons une réponse générale concernant la construction d'une telle application, les technologies qui seraient impliquées, les actions disponibles dans le système, etc., ainsi que la capacité de décrire les tâches de programmation impliquées dans la mise en œuvre de cette application.
Nous ne demandons à personne de concevoir des systèmes très complexes, mais notre candidat doit être capable de produire un design préliminaire d'une petite application basée sur plusieurs tables de données interconnectées.
Quelle langue devriez-vous apprendre ?
L'anglais. La langue anglaise est vraiment importante pour nous, particulièrement puisque 90% de nos clients se trouvent en dehors de la Pologne. Nous voulons créer de super logiciels pour des clients du monde entier, et créer de super logiciels nécessite une excellente et constante communication avec nos clients – en anglais. C'est pourquoi chaque entretien d'embauche vérifie la maîtrise de la langue anglaise de nos candidats.
Résumé
Nous ne demandons que quatre choses :
- fondations solides
- utilisation de systèmes avancés et compréhension de leur fonctionnement
- capacité à concevoir des applications
- maîtrise de la langue anglaise au niveau B1/B2
Si vous souhaitez nous rejoindre et que vous répondez aux exigences, veuillez visiter notre page "Carrières" sur https://kariera.droptica.pl
Si vous souhaitez en savoir plus sur notre processus de recrutement et les exigences, demandez-nous via [email protected] ou messenger https://m.me/grzegorz.bartman https://m.me/maciej.lukianski