Bonjour à tous!
Je pose la quesiton à divers endroit afin d'avoir un maximum de retours ^^
Voici la genèse, il y a quelques mois, j'ai voulu me lancer dans l'apprentissage développement web dans le cadre d'une éventuelle reconversion à venir, j'ai vite compris que le monde du développement web se divisait entre le front et le back .
Le front m'attirait plus et c'est toujours le cas et j'ai vite identifié un parcours que je voudrais réaliser, enfin pour la grande majorité du dit parcours il s'impose de lui même. HTML/CSS --> JS --> Choisir un framework parmis Angular Vue ou React (pour ma part c'est ce dernier qui me tente).
Cependant voila, je suis un psychopathe à tendance mégalo et je n'aime pas faire les choses à moitié... Du coup, la question qui me turlupine...
Par rapport au front le monde du back ressemble d'avantage pour moi à une jungle qu'à un parcours...
SQL / NoSQL --> Bases de données
PHP --> Dynamisation des pages pour communiquer avec les BDD on y retrouve ensuite des framework tels que Simfony ou Laravel...
Du coup ma question est la suivante, j'aurais peut être du commencer par là
A quoi servent les fonctionnalités back end JS et ses framework Node.JS ou encore Python avec son framework Django etc...
Est-ce une autre façon de faire que SQL/PHP?
Car si il existe des fous furieux qui connaissent tous les langages tous les dev BE ne se coltinent pas tous les langages. Du coup comment s'orienter dans cette jungle... On trouve bcp de sujet sur le front mais j'avoue que je ne trouve pas trop ce que je cherche niveau info sur le back... Peut-être m'y prends-je mal...
Je précise que je suis toujours en cours d'apprentissage front et j'en suis à la partie JS...
Mais j'aimerai déjà avoir une vision d'ensemble du fonctionnement back et ensuite commencer à avoir une ébauche de parcours pour plus tard pour me diversifier (la vision à long terme m'aide à rester motivé ^^ )
Je le répète mon bu n'est pas de devenir fullstack au début, mais juste d'avoir un bagage de base afin de pouvoir me débrouiller et d'avoir une vue d'ensemble. Notamment si par exemple si JS/Node.js permet de se passer de PHP et si tel est le cas est-ce une bonne idée...
Merci à vous pour vos renseignements... Pour les plus "anciens" la questions a déjà du être posé mais je n'ai rien trouvé alors désolé.
Hello,
Alors premièrement : Non, personne ne connait tous les langages de dev, c'est impossible. Cependant, à partir du moment où tu connais un langage (surtout un langage orienté objet), on peut facilement s'adapter à tout autre langage, ce qui peut donner l'impression que certains connaissent tous les langages.
Concernant ta question sur le backend, réellement, il n'y a pas vraiment de différences entre les framework des différents langages, ça reste une question de technologies utilisées à l'endroit où tu vas travailler.
On voit beaucoup de NodeJS, Python, PHP, C# et Java. Pareil pour la BDD, tu peux voir de tout que ce soit du SQL ou du NOSQL (PostgreSQL, MariaDB, MySQL, MongoDB, MS SQL, DB2, ...)
Tout va dépendre de tes préférences.
Cependant, si tu comptes ne pas trop galérer dans un premier temps, prend un langage avec lequel tu es à l'aise. Vu ton parcours, je dirais PHP ou Node JS.
Après, personnellement, pour de l'apprentissage, je partirais quand même sur un langage typé (C#, Java, ...) pour avoir les problématiques de communication entre les différents composants, l'utilisation des Interfaces et tout autre.
Le meilleur conseil que je peux te donner, c'est de ne pas trop de cloisonner à ton langage de prédillection, car tu te fermeras des portes pour l'embauche.
J'espère que ma réponse t'auras aiguillé un minimum.
Hello :)
Alors ça existe des gens qui connaissent tous les langages populaire (php, angular, vue, react, python, html, css, java, .net et golang, éventuellement rust) mainteantn vraiment tous les langages, il y en a trop, peu de dev connaissent rust, ou earlang, en théorie ce sont les meilleurs langages d'un point de vue purement performances, mais trop de complexité inutile, tu gère toi même l'attribution de la mémoire ou du travail coté CPU par exemple
Maintenant tu n'a pas besoin de tout connaitre, tu dois maitriser un stack de langages, et pour les autres langages il faut que tu apprennes à lire une doc (par exemple je sais utiliser Golang, mais je ne l'ai jamais appris, j'ai juste lu la doc, quand tu sais lire une doc tu est capable d'utiliser tous les langages tous les langages, sans forcément le maitriser, mais juste assez pour utiliser)
Ensuite pour les différentes sources de backend, alors le back PHP et JS répondent à des problèmatiques différentes, en vrai faudrait plutot parler de back SQL et NoSQL, l'avantage du SQL c'est que c'est une base de données relationnelle, la lecture est bien plus rapide grace aux index la recherche se fait par pointeur, c'est idéal pour un forum, un site ecommerce ou à peu prèt 95% des sites web, le NoSQL est bien plus rapide en écriture, il réponds à des demandes plus spécifiques comme le traitement de fichier très lourds (plusieurs dizaines de millions de lignes) et pour le tracking sous forms d'historique d'events
Maintenant il y a une troisième catégorie de base de données, c'est la base de données Hybride, c'est orienté documents, alors je peux pas trop en parler je n'ai jamais testé, et je crois qu'il n'y a que Microsoft Azure qui propose ce genre de base de données, bon en vrai il y a aussi une quatrieme catégorie c'est la base de données quantique, mais t'en occupes pas de ça x)
Maintenant au dela des process, l'éxistence de bases JS NoSQL c'est surtout une question de cohérence, quand on est sur un projet développé en NodeJS (enfin un framework node: ExpressJS, NextJS, NuxtJS, Angular...) ces frameworks sont calibré pour du NoSQL même si on peut faire du SQL, et en gros c'est plus pratique parce que en NodeJS il n'y a pas de vrai back, ça ne fonctionne qu'avec des clients, en gros quand tu fais du "back" en NodeJS en vrai tu fais un appel API vers un client qui est containerisé dans un serveur, ce n'est pas un appel direct dans un serveur mais un genre de front déguisé en back qui fait appel a un service au lieux d'un serveur (bon j'ai vulgarisé comme je peux ^^')
Pour l'apprentissage, en vrai en tant que novice je suis d'un autre avis, faudrait que tu restes sur ton stack, html, css, php, js, et apprends vraiment CSS en profondeur, c'est un langage bien plus difficile que tu ne le penses et que ce que pense beaucoup de devs, quand tu aura un niveau junior (tu te débrouille bien avec ton stack, tu dev de façon naturelle sans forcément maitriser à fond) la oui il faudra que tu regardes un peu d'autres langages, mais ne prends pas des langages au hasard, tu ne sera plus dans une optique d'apprentissage, mais dans une optique de connaitre un autre langage pour répondre a une contrainte que ton stack ne peut satisfaire
Par contre un autre conseil, apprends le devops, ça n'existe plus le métier de devops, tous les developpeurs doivent maitriser le devops (Docker, Docker compose, Cloud (GCP ou AWS), Teraform ou Pulumi, Linux...) ça c'est plus quand tu sera junior, et cette fois dans une optique d'apprentissage, par contre Docker ce serait bien que tu apprennes à l'utiliser tout de suite, c'est l'outil le plus important (d'ailleurs un avantage avec docker, c'est que tu peux désinstaller tout ton environnement de dev, tu vires PHP, tu vires WAMP/Laragon, tu vires mysql, tu ne gardes que ton IDE :p)
Merci à vous pour vos réponses,
Dans un premier temps je pensais plutot poursuivre avec le JS avec node.js et du SQL et par la suite une fois à l'aise avec l'ensemble des tech poursuivre avec éventuellement du PHP histoire d'être bien polyvalent tout en gardant ma spé front, car le but d'apprendre du back c'est surtout pour le moment lancer mes propres "serveurs" pour tester mon front (notamment plus tard quand je me lancerai dans des projets plus importants).
Quant à Docker je ne connais pas, je vais me pencher dessus.
Alors tu peux te contenter d'apprendre la base de PHP si tu veux etre principalement sur Node
Ensuite pour tes serveurs, alors si tu passes par un serveur NodeJS, apprends à utiliser AWS Lambda ou Google Cloud Run, c'est du serveur cloud, et niveau difficulté ça va pas trop compliqué ;)
Pour AWS tu as 1an où tu peux utiliser quelques services gratuitement, lambda en fait partie, et Google cloud platform te donnes un quota de bande passante gratuit par mois (un truc du genre 50'000 requetes par mois gratuit et 100Go par mois)
Ensuite gardes dans un coin de ta tête l'outil serverless, t'en aura besoin plus tard mais pour l'instant t'en occupes pas trop c'est un peu compliqué à utiliser
Pour ce qui est de Docker, pour faire simple ça fonctionne comme une machine virtuelle, mais ce sont des container, ils communiquent avec ton PC, et tu peux monter une machine Linux et un environnement pour pouvoir dev en local dans les même condition que en ligne, du coup ça t'immunise contre le syndrome "mais ca marche sur ma machine!", et ça te permet d'avoir plein de version de php node apache nginx en images sans que ça prenne de place dans ton pc, ça c'est les avantages de base
Dans la finalité, et grossomerdo pour vulgariser x)
Par contrte je pensais que Docker c'était un genre de mini-boites à empiler qui sont isolés avec un pont entre le container et le PC, c'est juste des commandes qui tournent en tache de fond en fait :o
Pas complètement. ^^
J'ai mes applis qui tournent avec PHP/MySQL/Postgres/Node et je n'ai aucune de ces technos sur ma machine, tout tourne dans des conteneurs.
Pareil j'ai tout mon environnement sur Docker, pratique pour PHP, selon le client j'ai besoin de monter PHP7.4 ou PHP8.1, et pour les projets persos je passe par PHP8.2, et un container Nginx pour pouvoir faire du https en local, et pareil pour Node, j'ai un container Node18 pour les projets pro et Node19 pour les projets persos x)
il n'y a pas vraiment de différences entre les framework des différents langages, ça reste une question de technologies utilisées à l'endroit où tu vas travailler.
Dans tous les cas, j'ai vu que dans la partie formation il y a quelques videos explicatives de ce que fait docker et comment le mettre en oeuvre...