Un peu de fond
J'ai 28 ans aujourd'hui et je n'ai jamais eu de formation officielle en développement de logiciel, mais j'ai deux diplômes d'études supérieures équivalant à un baccalauréat en relations publiques et à un Executive MBA axé sur la gestion de projet. Je travaille dans ces domaines depuis environ 6 ans et il y a deux ans et demi, j’ai démissionné de mon travail et j’ai décidé de changer de direction.
Après un mois de réflexion, j'ai décidé de commencer à développer en freelance le développement de petits sites Web dans WordPress. J'ai moi-même appris la voie et aujourd'hui, je peux dire que je mène une carrière humble mais réussie, développant des thèmes et des plugins de toutes pièces pour mes clients - la plupart des agences externalisant une partie de leur travail de développeur pour des sites Web de moyenne / grande taille.
Mais parfois, j’ai le sentiment que ne pas avoir suffisamment étudié les mathématiques ou ne pas avoir une compréhension formelle des choses me retient vraiment lorsque je dois faire concurrence ou travailler avec des développeurs plus expérimentés. Je suis constamment à la recherche de moyens d'en apprendre davantage, mais il me semble que je manque des bases.
Malheureusement, passer quatre années de plus en informatique n’est pas une option pour le moment, j’essaie donc d’apprendre tout ce que je peux à partir de livres et de ressources en ligne. Cette méthode ne fera jamais que la NASA m'emploie mais je m'en fiche vraiment pour le moment. Mon objectif est d’abord de passer la barre et de pouvoir me considérer comme un véritable programmeur.
Je passe actuellement mon temps libre à étudier Java pour les programmeurs (pour maîtriser une langue que tout le monde dit est difficile / exigeante), à lire des extraits de Code Complete (pour dénicher les meilleures pratiques) et aussi dans Code: Le langage caché de l'ordinateur Matériel et logiciel (pour comprendre le fonctionnement interne des ordinateurs).
TL; DR
Ma situation actuelle est la suivante: je suis fondamentalement capable d’écrire n’importe quel système complet en PHP (avec l’aide de Google et quelques livres), d’intégrer Ajax, SQL, etc., et peut-être un peu plus lentement que ce qu’attend un développeur expérimenté. en raison de toutes les recherches impliquées.
Mais hier, je me suis retrouvé coincé à essayer de trouver (pas à Google) une solution pour le test FizzBuzz, car je n'avais pas mémorisé l' opérateur de module de if($n1 % $n2 == 0)
méthode .
Que suggéreriez-vous comme un bon moyen de résoudre ce dilemme? Quels sujets / livres devrais-je étudier pour que je puisse résoudre les problèmes plus rapidement et peut-être davantage "à la manière des programmeurs"?
EDIT - Il semble y avoir une certaine confusion quant à ce que je ne savais pas résoudre FizzBuzz.
Peut-être que je ne me suis pas exprimé correctement: je connaissais les étapes nécessaires pour résoudre le problème. Ce que je n'ai pas mémorisé, c'est l'opérateur de module. Le problème était de transposer les mathématiques de base au programme, pas de connaître les mathématiques de base.
J'ai pris le test pour le plaisir, après avoir lu à ce sujet sur Coding Horror . J'ai juste décidé que c'était une bonne ligne de comparaison de base entre moi et les développeurs formés de manière formelle.
Je viens d’utiliser cet exemple pour montrer que le fait de ne pas avoir traité les mathématiques dans un environnement informatique auparavant me fait perdre du temps à rechercher des éléments fondamentaux tels que les opérateurs de module pour pouvoir résoudre des problèmes simples.
stuck b/c I didn't memorize %
problème, il est intéressant de noter qu’il existe d’autres moyens de le faire: (en supposant que $ n2! = 0) if (is_int ($n1 / $n2))
ou if (($n1 / $n2) == (int) ($n1 / $n2))
connaître des mots-clés est une chose, et savoir comment exprimer les idées sous-jacentes en l’absence de solution intégrée est: un autre.
I'm basically capable of writing any complete system in PHP (with the help of Google and a few books)
et que vous combinez ceci avec le fait que vous ne le sachiez pasif($n1 % $n2 == 0)
, je m'interroge sur l'exposition que vous avez eue à des choses écrites en PHP. Je pense que la plupart des choses que vous faites vont au-delà d’un simple calcul modulo. Pourriez-vous donner un aperçu de ce que vous pensez pouvoir faire?