-
Node.js ou Php
Salut,
je suis un débutant en développement web, j'ai commencer par le html & css que je maîtrise bien déjà. Ensuite j'ai fait un peu de javascript avec sa bibliothèque Jquery. En claire coté front-end je me défend pas mal.8-) Maintenant mon problème est que je veux me mètre au Back-end dans l'objectif de bosser en Freelance, pouvoir développer des site dynamique de A à Z seul. Du coup je vois qu'il y à le PHP avec ses frameworks et aussi Node.js. Etant nouveau je sais pas sur quelle techno m'orienter pour apprendre le backend, à noter que je veux gagner en terme de rapidité. J'aimerais avoir des avis d'autres développeurs pour m'aider à m'orienter.
Merci
-
Côté backend il y a bien plus que node.js ou php il y a java C# C++ Python et bien d'autres encore.
node.js offre l'avantage que tu utilise le même langage que pour le frontend
PHP est lui plutôt bien outillé côté framwork et assez léger à mettre en oeuvre.
Java offre un immensité de composants pour faire tout en n'importe quoi
C# fonctionne sur toute les plateforme avec une prédilection pour les serveurs windows il est riche et bien supporté.
C/C++ te permettent de faire tout avec un résultat (si tu bosse bien) très optimisé.
Python est souple rapide de mise en oeuvre
j'ajouterais TCL qui bien qu'il soit en perte de vitesse offre une approche pragmatique très simple et efficace.
Mais il y a pléthore d'autres solutions comme certaines base de données qui intègre un serveur web et propose des outils de développements intégré.
Par quoi commencer ?
perso je dirais php car il permet avec peut de moyen de débuter.
Mais il ne faut pas perdre de vu que le bricolage que permet php au début n'est pas une bonne solution à long terme. et il convient même si le langage permet de bricoler de viser une programmation structurée. là les frameworks peuvent aider.
node.js demande quant à lui un peu plus de discipline dès le départ mais c'est gagné pour la suite.
pour moi il ne faut pas choisir un langage à priori. pour débuter il faut en prendre un pour mettre en oeuvre les concepts qui sous-tendent le développement web. la notion de service MVC MVVM la séparation des couche, la persistance etc. et ce quelque soit le langage.
ensuite en fonction du projet du client choisir l'outil le plus adapté.
si tu dois faire une webapp qui s'intègre dans un système fait avec DOT.NET sur IIS lié à SQL Serveur InfoPath et SharePoint utiliser node.js n'a pas beaucoup de sens. tu y arriveras mais ce n'est pas cohérent.
A l'opposé faire une webapp en C# sur un serveur apache linux lié à prostgresql n'est peut être pas l'idéal. là encore ça marchera mais ça manque de cohérence.
faire une webapp en php pour la déployer dans SAP n'est là encore pas une super idée.
ces trois petits exemples juste pour te montrer qu'en fonction du contexte le choix du langage peut être très différent. et je n'ai pas parlé de fonctionnalité de la dite app.
il est une chose que tu retrouveras dans tout les cas quelque soit le langage sous des formes différence c'est la mise en oeuvre des différentes notions que j'ai citées plus haut.
et pour débuter c'est ça qu'il faut chercher à apprendre plus qu'un langage.
A+JYT
-
Je peux donc commencer avec Php orienté objet, puis ensuite venir sur Symfony?. Si je maîtrise tout ça je viens sur Angular et nodejs
-
"my 2 cents..."
Salut
Je ne suis plus expert mais ai 3 dev jeunes avec moi, et ce que je vois et comprends:
- tu commences à faire du JS côté front (JQuery), parfait, continue pour vraiment le maitriser: JS te permet maintenant de tout faire, front et back; mais il est loin d'être aussi structuré et structurant, didactique, guidé qu'un python et un bon framework comme Django, qui seraient les meilleurs choix pour débuter: ce n'est pas pour rien qu'on enseigne python partout sur le globe, que Google et Youtube ont commencé en python, etc. Ruby et Rails, encore plus fun et agréables mais moins "carré", sont une alternative à Python /Django, mais PHP/Symfony est loin d'être aussi "propre"...
- Continuer en JS ok, mais "simple et structurant" comme cela, comment? Chance (ou pas...), le bazar JS (vs la cathédrale Python) a d'innombrables variantes: oublie JS et vise ES (ES6, plus propre que l'ancien JS) voire TypeScript, mieux encore (et excellents outils Microsoft, Visual Studio, facile et agréable, complet). Quel framework pour être (bien) guidé? Angular 4. React est une boite à outils d'innombrables composants, dur de savoir lesquels choisir et pour quoi, alors qu'un vrai framework complet et propre ("nettoyé"), supporté par Google qui plus est, te guide: il existe en JS/ES, Typescript, ou Dart. Je te conseilles Dart, car Google a à coeur de créer des outils faciles pour débutants, comme G à la place de C++ ou Java, et Dart à la place de JS: essaie, un vrai bonheur! Tu "transpiles" du Typescript ou Dart en pur JS et ça marche partout (Node ou navigateur ou mobiles). MeteorJS est aussi un framework très complet facile et guidé en JS mais est en train d'adopter le front en React, plus complexe, et sans Dart, peut-être le plus facile des "JS-like"...
- Sur le serveur, JS etc. te permet effectivement de faire ton web en Node mais plus simplement, commence avec les bases temps réel et "serveur web" que sont Firebase de Google, parfait complément de Angular, et d'autres similaires. Le jour ou tu voudras vraiment toucher directement au serveur toi-même, alors tu t'installes ton Node.js et ta base, etc.
- Une fois pigé les JS-like (JS, ES, Dart, TypeScript, NativeScript, CoffeeScript...), tu peux (dois?) attaquer assez vite la programmation fonctionnelle avant d'être définitivement pollué par l'orienté objet: attention, challenge intellectuel mais intéressant, une autre manière de penser! JS te le permet, ce paradigme est idéal pour les UI, et tout est en train de basculer sur ce modèle aux USA, la seule manière ou presque de faire du multi-coeur et autres parallélisme intensif (fouille Elixir sur Phoenix, mon préféré sur serveur, mais surtout ELM sur navigateur, absolument magique pour débuter, avec des outils de programmation/débug fantastiques! Et encore une fois ça génère du JS...)
Conclusion: dans l'ordre à faire, à mon sens...:
1- Continuer en JS, universel: Firebase/ Angular en version Dart.
2- Apprendre autre chose, facile et fun: Ruby et son Rails.
3- Apprendre LE codage propre, académique, à tout faire, pas que Web: Python et son Django. (web, calcul, sciences, I.A., blockchain, ...)
4- Le "futur": Elixir et son Phoenix (les successeurs de Ruby et Rails), et ELM sur le front. Mais peu utile tout de suite, peu usité...