Comment augmenter ma connaissance « avancée » de PHP plus loin? (Rapidement) [fermé]

StackOverflow https://stackoverflow.com/questions/2948323

  •  05-10-2019
  •  | 
  •  

Question

Je travaille avec PHP depuis des années et obtenu une très bonne maîtrise de la langue, créé de nombreux systèmes avancés et moins avancés qui fonctionnent très bien.

Le problème que je suis en cours d'exécution en est que j'apprends que lorsque je trouve un besoin de quelque chose que je ne l'ai pas appris avant. Cela me fait de rechercher des solutions et autres code qui gère le problème, et je vais donc en apprendre davantage sur une nouvelle fonction ou la structure que je ne l'avais pas vu auparavant. Il est ainsi que je l'ai appris beaucoup de mes meilleures techniques (telles que l'étude des cours mis par Amazon, Google ou d'autres grandes entreprises).

Le principal problème avec ce concept est de ne pas être en mesure d'apprendre quelque chose si vous ne savez pas qu'il existe. Par exemple, il m'a fallu plusieurs mois de programmation pour en savoir plus sur la fonction empty(), et je simplement vérifierait la longueur de chaîne à l'aide strlen() pour vérifier les valeurs vides.

Je suis maintenant obtenir dans la construction de systèmes plus grands et plus gros, et je l'ai commencé à lire des blogs comme highscalability.com et fait des recherches sur les données de réplication MySQL et serveur pour l'extension. Je sais que la structure de votre code est très important de faire le travail complet des systèmes.

Après avoir lu un blog récent sur la structure de reddit, il m'a fait demander s'il y a des « systèmes accepté » standard ou là-bas.

J'ai regardé dans les cadres (je l'ai utilisé Kohana, que je regrettais, mais a décidé que les cadres PHP ne sont pas pour moi) et je préfère ma propre bibliothèque de fonctions plutôt que d'avoir un cadre.

Ma structure actuelle est un mélange entre WordPress, Kohana et mes connaissances.

Les façons que je peux voir comme potentiellement bénéfique sont:

  • Blogues les
  • Lire les tutoriels
  • Travailler avec quelqu'un d'autre
  • Lire un livre

Quelle serait la meilleure façon (s) pour « arriver au niveau suivant » le niveau d'être un développeur très bon système?

Était-ce utile?

La solution

Tout le monde qui veut être un programmeur PHP, prend toujours seul le premier mot et ignore complètement le second.

Alors que la « programmation » est bien plus important que « PHP », être un professionnel PHP, devrait être un programmeur en premier lieu.

Alors, je voterais pour le dernier - lire des livres. Pas sur PHP, mais la programmation en général. Grady Booch de Martin Fowler 's et même l'ancien ceux de.
Il serait être aussi agréable de jeter un oeil à d'autres langues, comme Java ou Python. Pour ne pas passer à eux, mais à apprendre d'eux.

Autres conseils

  

Je préfère ma propre bibliothèque de fonctions   plutôt que d'avoir un cadre

Vous faites référence à une « bibliothèque de fonctions » et « un » cadre » comme des concepts distincts (bien!) Alors pourquoi ne pas essayer de monter la barre un peu et transformer cette bibliothèque de fonctions dans un cadre? Rappelez-vous ceci est un excellent moyen d'apprendre, mais pas la meilleure façon d'avoir des compétences commercialisables;)

Il est aussi un excellent moyen d'apprendre mauvais Alors avant de commencer, vous devez faire des recherches.

Le "must have" caractéristiques

Il y a certaines caractéristiques ont presque tous les cadres, et il y a une raison pour cela. leur recherche; savoir pourquoi ils sont présents et que leurs variations sont; choisir les implémentations que vous préférez inclure dans votre cadre.

Caractéristiques des plates-formes non-PHP que vous voulez comprendre et Emuler

Je ne sais pas ce qui vous intéresse donc je vais arrêter là.

publier!

Cette partie est importante, parce que Nathan est droite : votre travail doit être vu, contesté, critiquées et corrigées par d'autres personnes. Ne laissez pas cette lampe sous le boisseau - il doit être vu; mettre sur le code Google ou SourceForge ou quelque chose, et si les gens vont déranger regarder sérieusement que vous devez prendre au sérieux; vous devez maintenir des tests unitaires et des tests de régression; vous devez utiliser le contrôle de version; vous avez besoin de commentaires bien, avec un grand /* header comment */ en haut de chaque fichier et commentaires doc génératrices utiles pour chaque classe et de ses membres.

Résumé

Si vous faites tout cela, vous pouvez apprendre (à un niveau élevé) sur d'autres plates-formes. Vous pouvez certainement « ding 40 » en tant que développeur PHP. Vous pouvez en apprendre davantage sur les tests unitaires; sur les tests de régression. Vous pouvez en apprendre davantage sur la documentation efficace.

garanti votre cadre sortira « idiosyncrasique et probablement sucky », mais vous pouvez apprendre beaucoup de l'écrire. Il suffit de garder à l'esprit que le cadre est pas un produit; c'est un voyage ... de toutes sortes.

  1. Regardez dans fonctions cachées de PHP et interfaces prédéfinies de PHP
  2. Apprendre des langues différentes. Apprendre des langues qui ont une courbe d'apprentissage plus raide que PHP. Chaque fois que je signale les avantages d'autres langues sur PHP, je suis accusé de dénigrement PHP, soit la plupart du temps des gens qui bien évidemment jamais vraiment maîtriser une autre langue de haut niveau. Mais je vais prendre le risque. Je suggère Ruby, Python, Perle et haXe (en contrepartie de type strict). Une fois que vous l'avez fait, essayez d'appliquer vos nouvelles connaissances en PHP. Ou tout simplement vous éloignez de PHP, au cas où vous ne voulez pas revenir en arrière (qui je pense n'est pas improbable).
  3. Apprenez à traiter critisizm. Votre réaction au poste de Nathan a montré très clairement que vous ne pouvez pas traiter encore. Il est tout à fait raison.
    • En regardant mon premier framework PHP maintenant, je dois dire que c'était assez merdique. A l'époque je pensais que c'était super (et il est encore mieux que beaucoup de code de production que je l'ai déjà vu déployé). Pourtant, il avait beaucoup de défauts. Sauf si vous êtes un génie au total, vos premiers cadres vont tout simplement regarder drôlement si vous regardez en arrière les quelques années plus tard (en supposant que vous évoluez).
    • En fait, tout cadre, vous allez créer regardera pire que progresse de temps (en supposant que vous ne cesse d'évoluer). Pour cette raison, vous pourriez tout aussi bien utiliser des cadres disponibles et se concentrer davantage sur le développement d'applications. Si le cadre que vous utilisez a des limites, envisager de contribuer plutôt que d'écrire un autre framework PHP.
    • Le moment de choisir d'écrire vos propres cadres (et pas seulement pour le plaisir / apprentissage, mais pour le déploiement de la production) est lorsque vos besoins dépassent ce que les autres cadres là-bas offre et non pas quand tu ne pas l'idée de travailler avec un. Il est une erreur commune que je me suis fait. Mais maintenant, je peux dire, je l'ai appris. Mais si vous demandez des conseils (malheureusement que je ne le faisais pas à l'époque), vous obtiendrez des réponses comme celles-ci.
    • Vous apprenez beaucoup de travailler avec le code que vous ne vous êtes pas écrire. Non seulement vous décrochez concepts promus par des cadres d'autres ont mis beaucoup de pensée dans, mais vous apprendrez également à être productif, flexible, capable de travailler en équipe et de faire le travail (tout en obtenant des résultats raisonnablement bons).
    • Je suppose que vous ne pouvez pas penser vraiment que vous êtes mieux que chaque équipe d'un projet open source PHP là-bas, sinon vous demander. Obtenez sur la nécessité instinctive obstinée de réinventer la roue tout jeune développeur a et grandir pour résoudre les problèmes Noone a abordé encore.
  4. En savoir, quelle est la différence entre une bibliothèque de composants et un cadre. Puisque vous pensez que vous pouvez remplacer un cadre avec « votre propre bibliothèque de fonctions », vous avez probablement pas compris, ce que le point de cadres est. Jetez un oeil à inversion dépendance , inversion de contrôle et d'injection dépendance .
  5. En savoir sur la conception de logiciels. Regardez les principes OO comme SOLID et GRASP .
  6. Essayez différents paradigmes. AOP, programmation fonctionnelle. Améliorer vos compétences en langues en utilisant OO avec l'orientation objet plus fort, comme Ruby, Objective-C ou Smalltalk.
  7. Regardez frameworks PHP tels que Flow3, Symfony, allumeur PHP et CakePHP. J'ai alprêt a souligné pourquoi je pense que vous devriez le faire.
  8. Comme indiqué dans un autre commentaire à moi, vous devriez envisager d'autres que les stockages SGBDR. SQL et POO vraiment ne vont pas bien ensemble. Jetez un oeil à SGBDOO, différentes couches d'abstraction de base de données, valeur-clés-magasins, document magasins tels que CouchDB et MongoDB, comme memcache etc serveurs cache distribue.

Voici quelques réflexions:

  • Essayez différentes choses. Apprendre une nouvelle langue. Quelques fois dans le processus d'apprentissage cette autre langue, vous fait réellement mieux sur les deux.

  • Contribuer à un projet open-source.

  • Haute évolutivité et PHP / MySQL ne sont pas amis. Il existe des technologies qui sont aujourd'hui construire juste pour cela. Node.js et Redis pour nommer un couple.

  • questions Réponse SO. D'autres problèmes des gens peuvent vous faire sortir des sentiers battus et vous améliorer le processus d'essayer d'aider, et vous aussi faire quelque chose de gentil à quelqu'un.

  • [va essayer d'ajouter ici si je pense à tout ce que je vient de se réveiller de boire du café: D]

Apprendre à faire ce que vous savez déjà ... d'une manière différente. Exemples:

  • dans une autre langue
  • sur une autre plate-forme
  • en parallèle / distribué
  • dans un cadre (oui, vous avez décidé qu'ils « ne sont pas pour vous » - peut-être essayer un autre, ils sont parfois très différents les uns des autres)

Peut-être que vous devriez regarder dans les cadres encore, je suggère d'avoir un regard sur le Zend Framework, car il est plus comme une bibliothèque de composants que vous pouvez utiliser comme bon vous semble, et n'impose pas vraiment une structure rigide, vous devez suivre (comme d'autres cadres font), même si elle propose un projet (tout à fait sain d'esprit IMHO) mise en page. Un bon point de départ serait Survivre à la fin profonde .

Les choses que vous n'avez pas encore parlé, et qui pourrait se révéler utile de savoir (surtout dans les grands projets):

Simple: faire . Les besoins vont vous faire apprendre. Trouver un moyen de participer à des projets de plus en plus avancés, que ce soit la source commerciale ou ouverte. Il n'y a pas d'autre moyen que vous pouvez vraiment apprendre quelque chose.

Je joindrait les forums de discussion et d'essayer de résoudre d'autres problèmes des peuples. Parfois, il y a des questions très difficiles qui vous obligent à faire des recherches. Si vous ne pouvez pas répondre, vous pouvez attendre quelqu'un qui peut et apprendre quelque chose alors.

En ce qui concerne les cadres, apprendre d'eux. Je roule mon propre aussi, puisque la plupart des cadres là-bas peut être assez lent. Bien assez rapide pour la plupart des sites là-bas.

Je recommande également regarder la bibliothèque PHP Facebook. Ils font des choses intéressantes là-dedans.

Le mieux que vous pouvez faire est d'acheter un livre sur algorithmes efficaces . Dans toutes les sciences de la vie informatique de l'étudiant, il arrive un moment où il / elle doit étudier les. Les problèmes qui sont discutés / résolus il y a des abstractions de presque tous les problèmes du monde réel, vous pouvez toujours le visage.

En outre des blogs de lecture sur la façon dont d'autres l'ont fait, il est parfaitement bien car il vous aide à comprendre comment utiliser en pratique (et peut-être mettre en œuvre même) les principes d'algorithmes efficaces.

Cordialement.

Pas assez peut dire de travailler avec d'autres développeurs. Je sais que 3 développeurs en particulier, 2 que je travaille avec un jour après jour, qui me épater avec leurs connaissances. Je demande leur avis sur tout ce que je fais, pas parce que je deviner mes propres idées, mais plus que je veux entendre d'autres idées, en particulier des personnes que je respecte en tant que développeurs. J'apprends plus de ces personnes que tout autre moyen. Si vous n'avez pas accès à d'autres développeurs supérieurs, puis après certainement sur le SO ou d'autres forums dev et demander des opinions des peuples, demander aux gens comment ils aborder un projet / question spécifique. Vous ne serez apprendre de nouvelles techniques / méthodes / fonctions généralement à moins que vous les voyez utilisés (comment savez-vous ce qu'il faut chercher si vous ne savez pas qu'il existe?)

En outre, comme déjà dit, prendre part à une application OS. Aller à sourceforge et trouver un projet ayant besoin d'un développeur. Ou téléchargez une application et essayer d'écrire un plugin pour (je suis en train d'écrire un plugin pour Invision 3.0 atm et apprendre quelques choses.)

L'espoir qui aide.

Lire tout autre code des personnes. Vous avez votre propre bibliothèque maintenant, mais vous pourriez obtenir quelques éclaircissements lors de la lecture de la source d'autres applications. Ensuite, demandez-vous les « pourquoi de. Être l'auteur de blog, au lieu du lecteur. En outre, insister davantage sur le programmeur que la langue. regarder plutôt des solutions qui résolvent déjà un problème et essayer de les reproduire avec vos propres connaissances. Bonne chance et beaucoup de plaisir!

L'approche de regarder à tout autre code de programmeurs est certainement une bonne façon d'apprendre « bon » ou pratiques « mauvais ». Après avoir lu tout autre code que vous développez un « sentiment » pour un bon code.

Je recommande vraiment des frameworks comme Zend Framework, Symfony, CakePHP ou Agavi parce que beaucoup de contributeurs regarder ce code et les développer sans cesse vers la solution « idéale » (qui bien sûr ne sera jamais atteint ...);) Vous peut toujours prendre la décision de développer vos propres classes au lieu ceux des offres de cadre ...

Avec un tel contexte PHP longtemps que vous pourriez envisager de contribuer à un cadre open source. Des discussions avec d'autres développeurs vous faire avancer de façon plus rapide.

Affichage du code à d'autres et demander des commentaires constructifs a le même effet. Vous ne savez jamais comment vous êtes bon jusqu'à ce que vous comparer vos compétences avec les autres. Toujours de manière constructive. Ce serait un processus naturel en contribuant à un cadre open source. ;)

Vous devriez travailler avec des exemples, travailler avec eux lorsque vous les développez et vous apprendrez à développer des exemples en les rendant plus fonctionnels et de donner plus de fonctionnalités.

Bien, il est bon de créer quelque chose que vous avez appris jusqu'à présent en PHP. Pour pratiquer plus, vous devez créer quelque chose comme, un système de réservation, etc. Tôt ou tard, vous serez en mesure de développer plus en apprenant plus lorsque vous étudiez plus en PHP qui conduira votre développement beaucoup plus mieux.

Vous pourriez demander à votre entreprise si elles pourraient vous payer un examen de certification Zend PHP. L'étude de cet examen vous obligerait à bien connaître PHP et de former en lisant beaucoup de la documentation, le guide d'étude Zend, ainsi que par la formation avec des examens blancs. Il est un moyen très efficace d'améliorer, et il semble tout à fait bien sur un CV.

« ma propre bibliothèque de fonctions » == « un cadre [idiosyncrasique et probablement sucky] ».

Je recommande l'apprentissage Symfony parce que les développeurs semblent toujours tendre à faire tout selon les « meilleures pratiques ». .. mais vous pouvez sans doute apprendre beaucoup de l'un des cadres populaires.

Ne pas écrire votre propre cadre. S'il vous plaît.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top