Je programme très légèrement depuis quelques années et je n'avance pas beaucoup. C'est quelque chose qui m'intéresse vraiment, mais je ne suis simplement pas motivé. Ensuite, je pense que j'ai compris ce qui me tue. Tous les livres que j'ai lus, tous les screencasts que j'ai regardés, semblent avoir raté une chose importante:
Comment passer des instructions d'impression, des variables, etc., à des tâches plus compliquées?
Par exemple, prenons un site comme Posterous. Pour ceux qui ne le savent pas, c'est une plateforme de blogs qui accepte les articles de blog par e-mail. L'auteur du blog a un e-mail spécial @ posterous.com auquel il envoie des articles de blog, et ils sont automatiquement formatés et publiés.
Comment un développeur utiliserait-il sa boîte à outils de fonctions et d'instructions pour accomplir quelque chose comme ça sur le back-end?
Je suis désolé si cette question semble vraiment large, cela m'a juste frustré. J'ai l'impression d'avoir une bonne compréhension des concepts de base, mais je ne sais pas comment faire quoi que ce soit.
la source
Réponses:
La clé est de décomposer la tâche en étapes distinctes que vous savez comment faire (ou pouvez savoir comment faire). Ce que vous savez faire est basé sur votre niveau d'expérience.
Prenons votre exemple de courrier électronique Posterous:
Exigences: Acceptez les courriels @ posterous.com, formatez-les et publiez-les sur le site Web.
Tâche 1) Acceptez l'e-mail.
Les e-mails devront très probablement être récupérés à partir d'un serveur de messagerie. Vous devrez rechercher les appels API pour récupérer les e-mails de votre serveur de messagerie particulier. Vous devrez également comprendre comment extraire le contenu du corps de l'e-mail (probablement un autre appel d'API).
Tâche 2) Formatez l'e-mail.
De la tâche 1, vous avez probablement le contenu en mémoire quelque part. Formatez-le pour qu'il soit conforme à l'étape 3 ...
Tâche 3) Publiez le contenu sur le blog.
Si vous ajoutez cette fonctionnalité email2blog, vous disposez probablement déjà d'un mécanisme pour publier des articles de blog. Utilisez ce mécanisme et au lieu d'accepter quelque part une zone de texte sur votre site Web, remplacez-le par le contenu de votre étape 2.
Maintenant, comment pouvons-nous obtenir des instructions d'impression, si des instructions et des fonctions pour accomplir chacune des tâches.
Remarquez comment dans la tâche 1, j'ai mentionné deux fois les appels d'API? Les appels d'API sont essentiellement des fonctions que quelqu'un d'autre a écrites pour que vous puissiez utiliser leurs fonctionnalités. Si vous savez comment appeler des fonctions, vous pouvez rechercher l'appel d'API correct dont vous avez besoin pour récupérer le courrier du serveur de messagerie.
Je n'ai pas beaucoup discuté du formatage, mais si vous savez comment manipuler les chaînes, vous savez comment formater. Le formatage d'une page html est un exercice d'ajout de balises telles que
<b>bolded text</b>
dans votre chaîne quelque part.Dans la tâche 3, j'ai mentionné qu'il y avait une sorte de mécanisme pour publier des blogs. S'il s'agit d'une plateforme de blogs existante, vous en serez assez familier. Sinon, vous devez en savoir plus sur HTTP Post et d'autres éléments liés au cadre Web.
Si après avoir lu tout cela, vous ne savez toujours pas de quoi je parle, j'espère que je vous ai convaincu qu'il n'y a pas de substitut à l'expérience. Alors allez-y et construisez quelque chose! Ne vous inquiétez pas trop de faire des erreurs noob car chaque développeur était autrefois un noob.
la source
L'essentiel est de trouver quelque chose que vous voulez faire et de le faire .
C'est ainsi que la plupart des grandes entreprises ont démarré.
Google? Brin et Page étaient passionnés par l'indexation du Web.
Metafilter? Matt Haughey était passionné d'écriture et de partage.
Twitter? Dorsey était passionnée par la simplicité, et vous n'obtenez pas beaucoup plus simple que 140 caractères.
Stackoverflow? Joel et son équipe étaient passionnés par les réponses.
Les langages, comme PHP, Perl, Python et Ruby ont tous été conçus de la même manière. GNU / Linux aussi. Quelqu'un a eu une égratignure et a commencé à la démanger, puis a sorti ses outils pour une consommation générale.
Jetez donc un coup d'œil et décidez où se trouve votre démangeaison, puis commencez à écrire un programme pour éliminer cette démangeaison. Peut-être que vous aimez jouer à des jeux, afin que vous puissiez écrire des jeux. Vous avez peut-être un problème avec les balises ID3 de votre collection mp3 et vous devez y remédier. Ou peut-être que vous êtes intéressé par l'histoire de la famille et que vous souhaitez explorer le Web à la recherche de références à des personnes ou des lieux de votre histoire. Ou peut-être voulez-vous interagir avec le monde réel d'une manière ou d'une autre. Ou peut-être que vous souhaitez développer le logiciel FLOS - jetez un œil à GitHub, Gitorious et Sourceforge.
Trouvez quelque chose qui vous passionne et commencez à programmer, et bientôt vous aurez d'énormes programmes avant de vous en rendre compte. Et c'est pourquoi la planification d'une certaine sorte est une bonne idée;)
la source
Lentement et progressivement.
Habituellement, pour les grands projets, vous ne commencez pas simplement par plonger dans un code d'écriture. Quelqu'un quelque part doit avoir un plan. Ils écrivent quelque chose, les caractéristiques du système qu'ils veulent. Ensuite, ils commencent par la première page / fenêtre / quoi que ce soit. Ensuite, ils en ajoutent un autre. Tout en ajoutant lentement fonctionnalité après fonctionnalité, correction bug après bug. Cela ne vient pas seulement de naître, il doit y avoir une vue d'ensemble, une conception globale.
Pour aller mieux, il faut s'entraîner! Commencez avec un petit projet. Quelque chose de simple et qui vous intéresse aussi. Planifiez ce que vous faites avant de le faire, vous verrez que ce n'est pas si difficile de " faire quoi que ce soit".
la source
Vous pouvez regarder autant de screencasts, lire autant de livres et suivre autant de tutoriels que vous le souhaitez mais sans jamais avoir envie d'aller nulle part. Vous devez trouver quelque chose que vous souhaitez créer. Ensuite, décomposez-le et essayez de le créer. Vous entrerez dans beaucoup de choses que vous ne savez peut-être pas. Mais vous les recherchez et apprenez les tâches les plus complexes au fur et à mesure.
la source
J'ai également rencontré ce défi et j'ai trouvé ma solution dans l'ensemble: j'avais besoin d'une source externe pour me conduire à être plus productif.
Vous pouvez être aussi fasciné par la technologie que n'importe qui, aussi enthousiaste à l'idée de programmer que n'importe qui, et aussi intelligent et rapide à apprendre que n'importe qui, et cela n'aura de sens que si vous ne vous salissez pas les mains et ne faites rien. Mais il peut être difficile de savoir par où commencer, et même si vous avez une idée par où commencer, il peut être difficile de faire rouler la balle.
Si vous êtes un bon débutant, vous avez probablement juste besoin de quelques idées. Essayez quelques casse - tête de programmation ou regardez des utilitaires simples que vous utilisez régulièrement et demandez-vous "Puis-je faire cela? Si je le faisais, que changerais-je?"
C'est vraiment intimidant de s'asseoir devant un éditeur ouvert ou une feuille de papier vierge et de dire "D'accord, cerveau, créez! " Mais si vous le décomposez, pensez à quel genre de chose vous pourriez avoir une raison de faire, et conduisez-vous de là, vous pouvez aller plus loin.
Et, si vous trouvez que vous ne pouvez pas vous faire du code, demandez à quelqu'un de vous donner un travail à faire, avec un délai et des exigences et tout. Cela vous mettra en marche.
la source
Le fait que vous ayez des connaissances de base est bon - je ne suis pas moi-même un pro, mais je peux vendre ce que je fais, donc je dois faire quelque chose de bien. Je recommande d'apprendre les bases de votre langue et de la plate-forme pour laquelle vous développez (et il semble que vous l'ayez).
Commencez par définir ce que vous essayez de faire et donnez une idée de la façon dont vous allez le faire, il s'agit de résumer les choses en détails, car cela vous aide à comprendre les choses plus rapidement. Ensuite, il suffit de Google ce que vous essayez de faire dans la langue que vous utilisez si vous êtes coincé - même poser des questions sur Stack Overflow (j'ai moi-même déjà posé plus de 70 questions, hehe)!
Personnellement, j'ai appris par googler, je n'ai même pas ramassé les bases au début, ce que j'aurais dû faire, mais déjà au moment où je faisais de très bonnes choses, je ne savais toujours pas ce qu'était un "tableau". ;)
la source
Je pense que pour développer vos compétences sur le back-end des interfaces, vous devriez commencer à manipuler les données. La plupart des grands projets concernent le déplacement, la transformation et l'affichage de données.
Je sais par moi-même que je n'ai pas bien saisi les grands projets jusqu'à ce que je me sente à l'aise avec plusieurs types d'accès aux données et de manipulation de fichiers.
la source
Sauter dans quelque chose qui est un peu au-dessus de votre tête et le découvrir peut être un excellent moyen d'étendre vos compétences. Vous voudrez peut-être essayer de regarder certaines des séries de livres de cuisine O'Reilly:
http://oreilly.com/store/series/cookbooks.html
Le format Problème / Solution / Discussion des sons comme il pourrait être exactement ce que vous cherchez, le code « recettes » qui DO intéressant quelque chose et une discussion sur la façon dont cela fonctionne.
la source
Je pense que vous ne parvenez pas à vous mettre au défi de faire plus.
Si vous êtes vraiment curieux de savoir comment faire quelque chose, allez le chercher! Si vous voulez savoir comment fonctionne Posterous, commencez par quelque chose de petit, comme rechercher le type d'outils dont vous avez besoin, comment obtenir des informations d'une zone de texte sur un site Web. Ensuite, vous construisez progressivement sur cela. La question suivante pourrait être de configurer une connexion e-mail à un site Web et à une base de données.
Vous avez le meilleur outil dont vous aurez besoin, Internet.
la source
En plus de décomposer le projet en tâches, la clé est également d'apprendre la réutilisation du code. Divisez votre code en modules que vous pouvez réutiliser dans d'autres projets où vous devez faire la même chose.
Par exemple, dans cet exemple de projet, vous effectuerez probablement un travail de base de données pour stocker les articles de blog. Vous pouvez écrire une classe de base de données pour vous connecter à la base de données, faire des requêtes, obtenir les résultats, etc. Ensuite, dans tous les projets futurs, vous pouvez utiliser cette même classe et pouvoir travailler facilement avec la base de données.
la source