Je sais que cela peut sembler un peu vague, alors je vais essayer d'expliquer un peu plus loin ...
Après avoir été développeur indépendant pendant de nombreuses années, je suis maintenant à la recherche d'un rôle de développeur web commercial. Ma seule expérience avec les serveurs et l'hébergement est le téléchargement via FTP et le jeu avec CPanel / WHM un peu. Le rôle que je cherche est le développement Web PHP, MySQL, HTML, les rôles de type CSS, mais dans de récentes interviews, on m'a posé des questions sur la configuration des choses sur le serveur, que je n'avais aucune idée de ce qui se disait ... ce qui n'était pas idéal!
Sans en savoir plus que moi, il est difficile d'expliquer exactement ce que je cherche à apprendre, mais ce sont essentiellement les éléments du serveur que je devrais connaître en tant que développeur Web? Si vous êtes un développeur Web, avez-vous des relations avec le serveur en dehors du téléchargement de fichiers, et si oui, quoi? Est-ce que des choses comme Subversion (SVN) et des systèmes de contrôle de version sont souvent mis en place par l'équipe de développement Web, est-ce que cela pourrait être ce dont ils parlaient?
not a very valuable web developer
est ce que j'essaie de surmonter, donc je suis heureux de l'apprendre correctement, je ne sais tout simplement pas comment procéder au mieux pour cet apprentissage et sur quels domaines se concentrer en premier.Réponses:
C'est une grande série de questions, mais je soupçonne une question que beaucoup de gens doivent aborder, en particulier lorsqu'ils commencent à progresser dans une carrière qui a commencé avec une forte concentration sur le front-end.
Vous mentionnez que vous optez pour un rôle qui inclut le développement PHP et MySQL. Ce sont des choses qui doivent s'exécuter sur le serveur. Pour être en mesure de faire de bons jugements techniques en tant que développeur, vous devez comprendre comment ces choses fonctionnent sur le serveur et comment elles interagissent avec le front-end Web. Donc, vous devez clairement développer une compréhension du serveur.
Plutôt que d'essayer de comprendre à l'avance le corps exact de connaissances dont vous pourriez avoir besoin sur le serveur, je vous recommande de plonger et de construire quelque chose, y compris l'installation de tous les logiciels côté serveur vous-même. Un excellent moyen de se mouiller les pieds est d'installer Linux sur votre ordinateur. Vous pouvez utiliser quelque chose comme VirtualBox pour le laisser fonctionner avec votre système d'exploitation actuel. Installez MySQL, installez et configurez le serveur pour PHP et essayez de faire fonctionner tout ensemble. La grande chose est, ces jours-ci, un ordinateur portable modérément bien équipé peut exécuter tout cela et être le "serveur".Cela pourrait être difficile au début, surtout si vous n'avez pas d'expérience avec Linux et la ligne de commande. En tant que développeur, vous devez au moins en savoir suffisamment pour pouvoir passer à travers cet exercice et cela vous donnera un bon départ pour trouver comment approfondir vos connaissances.
Il y a trois domaines dans lesquels vous devrez probablement vous mettre à niveau:
Si vous deviez utiliser Ubuntu, vous pouvez suivre les instructions de base ici pour vous mettre en route. Remarque, vous devrez faire un peu de montée en puissance sur les bases de Linux avant de commencer à installer et à jouer avec les serveurs Web / composants de base de données.
En ce qui concerne la façon dont les développeurs doivent interagir avec le serveur, au-delà du téléchargement de fichiers, je pense que cela varie beaucoup d'une organisation à l'autre.
Le fait est qu'il n'y a pas une seule réponse pour savoir exactement comment vous devrez toucher le serveur, mais au cours de votre carrière, cela ira certainement au-delà du téléchargement de fichiers via quelque chose comme FTP. Commencer par apprendre les bases maintenant vous aidera.
la source
Mon premier conseil est de ne pas vous limiter exclusivement à un seul rôle. C'est formidable d'être un spécialiste et d'avoir une connaissance approfondie d'un ensemble de compétences particulier (PHP, par exemple). Cependant, il est tout aussi important d'avoir une vaste connaissance qui couvre le reste de votre domaine.
D'après mon expérience, la plupart des équipes ne cherchent pas à embaucher quelqu'un qui a les connaissances pour réécrire les fonctionnalités de base de PHP, mais plutôt quelqu'un qui peut gérer tout problème qui leur est posé (bien que ce niveau de connaissance ne nuise certainement pas). Ou au moins quelqu'un qui peut aider à résoudre tous les problèmes rencontrés par l'équipe. Par exemple, imaginez une situation dans laquelle votre application tombe en panne et les clients sont affectés. Vous pouvez soit lever les mains et dire "Je n'ai aucune idée de quoi faire ..." ou vous pouvez SSH sur le serveur, commencer à analyser les journaux, remarquer que l'espace disque d'un système de fichiers particulier est plein et procéder au nettoyage. Ceci est un exemple mineur mais je pense que le point est clair. Avec ces connaissances de base, en tant que développeur, vous pouvez écrire un script qui surveille ce système de fichiers particulier et le nettoie une fois qu'il atteint un certain seuil. Vous êtes maintenant devenu beaucoup plus précieux pour votre manager.
Une autre chose que j'ai apprise au cours de ma carrière, c'est que les choses avancent vite et si vous ne suivez pas, vous allez être laissé pour compte. Plus vous en savez sur tout votre environnement (y compris les aspects commerciaux), mieux vous vous portez. Cela ne veut pas dire que vous devez être un expert dans tout ce que vous faites, mais au moins avoir les connaissances nécessaires pour ne pas être étiqueté comme étant désemparé. Plus vous êtes familier, plus vous êtes adaptable et plus un atout est précieux pour votre entreprise.
Pour répondre spécifiquement à vos questions ...
Familiarisez-vous avec l'ensemble de la pile d'applications. Sachez quel serveur Web, base de données, mécanismes de mise en cache, etc. qui sont utilisés. Et quelles versions aussi. Ayez suffisamment de familiarité pour pouvoir recréer l'environnement sur votre propre serveur. Ce qui, en soi, est d'une importance vitale. Vous devez vous efforcer d'avoir plus ou moins les mêmes environnements de développement et de production, car cela réduit les surprises ( http://12factor.net/dev-prod-parity ).
Cela dépend vraiment de l'équipe. Dans mon cas particulier, les développeurs jouent un rôle énorme dans la mise en scène des environnements. Nous connaissons le fonctionnement interne de l'application et sommes donc les mieux placés pour déterminer quelles technologies de serveur sont en place pour l'exécuter. J'imagine que toutes les équipes n'ont pas une telle approche pratique, mais avoir suffisamment de familiarité pour pouvoir s'impliquer dans les discussions est un grand avantage. Plus précisément, en ce qui concerne le contrôle de version, vous, en tant que développeur, êtes très affecté par la technologie choisie (Git, Subversion, Mercurial, etc.) et devez donc vous efforcer de vous impliquer dans le processus de décision.
Et maintenant?
Quant à ma suggestion sur la meilleure façon d'aborder l'apprentissage de tout cela? Déplacez vos pieds . Ne vous inquiétez pas d'essayer de lire tout ce que vous pouvez sur le sujet, la plupart s'écouleront probablement de votre cerveau au moment où vous aurez terminé. Au lieu de cela, commencez à développer quelque chose à partir de zéro. Commencez avec Vagrant ; il vous permettra de créer et de gérer facilement une machine virtuelle que vous pourrez utiliser comme nouveau terrain de jeu. Ensuite, installez un serveur Web et une base de données et commencez à créer. Si vous avez une idée d'application, parfait, allez-y ... sinon, trouvez un tutoriel ou essayez de recréer une application existante. Il s'agit simplement de se familiariser avec l'ensemble du processus. De plus, en tant que développeur PHP, assurez-vous de consulter PHP: The Right Way... il contient vraiment beaucoup d'excellentes informations. Et surtout, ne vous stressez pas. J'imagine que vous avez suivi le chemin d'un développeur parce que c'est quelque chose que vous aimez et que vous êtes passionné ... ne perdez pas de vue cela!
la source
Se concentrer sur ce que vous devez savoir sur les serveurs pour être développeur Web? ...
En fait, étonnamment peu. Vos principaux domaines de connaissances devraient être la programmation, le HTML, le PHP, etc.
Ce que vous devez savoir, c'est comment exécuter les choses localement et lorsque vous faites cela, vous utilisez votre box comme un «serveur». Ainsi, lorsque vous exécutez localement, vous utilisez un navigateur Web pour afficher les pages, comme avec tout site Internet ... sauf que le vôtre le sera
http://localhost
ouhttp://127.0.0.1
Quant à la configuration de cgi, http, etc. Je ne m'attends pas à ce que vous ayez besoin de le savoir. Vous pouvez toujours parcourir un livre général sur la configuration d'un serveur Web pour le système d'exploitation dans lequel vous travaillez et ce serait une couverture suffisante pour connaître les conditions générales.
Pour une vue d'ensemble, je recommande d'entrer dans Linux et d'apprendre à installer et configurer des machines telles que des serveurs Web. Mais seulement si vous vous intéressez réellement à ces choses. Pas seulement pour impressionner lors des interviews.
Enfin, je vous recommanderais d'envisager de prendre des notes lors des entretiens sur des domaines que vous ne connaissez pas suffisamment. Il serait utile que votre question soit plus précise sur les termes, etc. que vous ne connaissiez pas.
la source
Vous devez savoir ci-dessous les choses pour terminer le cycle de développement Web.
1) IDE (Netbeans et Eclipse etc.)
2) Tout langage de programmation pour le codage. (PHP, java, etc.)
3) Technologie frontale pour la conception de pages (HTML, CSS, etc.)
4) Base de données sauvegardée pour stocker et récupérer des données. (MySQL, etc.)
3) Système de contrôle de version pour vérifier et récupérer votre référentiel de formulaire de code.
4) outil de compilation pour compiler votre code avec des fichiers dépendants. (Fourmi, Maven)
6) Serveur Web pour déployer et exécuter votre code.
7) Besoin de connaître le processus de déploiement de base sur les serveurs pour exécuter et tester votre composant Web et ejb. (Tomcat, serveur Web-Logic)
la source
En plus de la réponse de DemetriKots, j'ajouterais également des solutions de déploiement automatisé et d'intégration continue. La configuration initiale du serveur n'est qu'une étape, et le déploiement via FTP est douloureux et sujet aux erreurs, sans solution appropriée pour annuler les mauvais déploiements.
la source