Quels que soient le (s) langage (s) de programmation ou le (s) système (s) d'exploitation utilisé (s) ou l'environnement pour lequel ils développent, que doit savoir tout programmeur?
Quelques antécédents:
Je suis intéressé à devenir le meilleur programmeur que je peux. Dans le cadre de ce processus, j'essaie de comprendre ce que je ne sais pas et cela me serait très utile si je le faisais. Bien qu'il existe de nombreuses listes autour de "tout ce que tout développeur [langage de programmation] doit savoir", je n'ai encore rien trouvé de similaire qui ne se limite pas à un langage spécifique.
Je m'attends également à ce que cette information présente un intérêt et profite aux autres.
la source
Comment penser comme un utilisateur et non comme un programmeur geek expérimenté?
la source
Quand demander de l'aide, et quand NE PAS demander de l'aide.
la source
Comment lire le code des autres
la source
Familiarité avec les systèmes de contrôle de version. Il n'est pas nécessaire que ce soit tout le monde, mais les concepts de base qui peuvent être appliqués à tous doivent être connus.
la source
Voici mes 10 bits:
la source
C’est peut-être trop subtil, mais je pense que c’est "savoir quel problème résoudre." Beaucoup de programmeurs (et de gens normaux) font un effort énorme pour résoudre des problèmes qui ne sont tout simplement pas très importants. ou bien ils créent une solution, avec beaucoup de travail supplémentaire, ce n’est pas vraiment ce dont on a besoin.
la source
Comment se détendre C'est le secret de la productivité.
Finalement, la volonté et la caféine ne suffisent pas. Cette contraction constante que nous faisons est très dommageable.
Ceci est une grosse affaire.
la source
Type de données de base et théorie des algorithmes. Des choses comme la notation Big O, les tableaux, les files d'attente, etc.
la source
Comment choisir le bon outil pour la bonne tâche, et ne pas participer à des guerres enflammées sur ses outils de programmation préférés.
la source
Eh bien, voici mon 0,02 $:
la source
Vous ne pouvez pas tester la qualité d'un produit.
la source
Chaque programmeur doit comprendre les modèles de conception .
la source
Je suis un peu en retard à celui-ci, mais je vais aller avec les connaissances énoncées par Edsger Dijkstra:
Si vous ne pouvez pas écrire un bon paragraphe, il est probable que vous ne pouvez pas écrire un bon code non plus.
la source
if (BlowUpTheSystem = 1)
. Accordé, si les tests unitaires sont corrects, vous ne gagnerez probablement que du temps. Mais alors le temps est assez important.Ne vous investissez pas trop émotionnellement dans une technologie, un système d’exploitation ou une langue donnée, ne vous attachez pas à une religion ou n’êtes pas religieux - aucune d’entre elles n’est parfaite - à long terme, vous voudrez peut-être créer votre propre carte comme à propos de chaque différent.
Pensez-y comme aux voitures - vous n’avez peut-être jamais conduit une voiture en particulier, mais elles ont toutes des clés, des volants, des accélérateurs et des freins - vous devriez pouvoir y entrer et en partir rapidement une fois que vous avez déterminé où. Traitez les systèmes d'exploitation et les langues de la même manière et concentrez-vous sur l'apprentissage des concepts essentiels qui les sous-tendent, même si vous êtes au cœur des spécificités d'un cas donné.
Et au fil du temps, essayez de comprendre et d’apprécier l’ascendance, le patrimoine et les points communs des différentes technologies qui vous aideront à garder la perspective. Sachez par exemple que, même si l’arbre évolutif est en train de se ramifier et de se retrouver dans des impasses, la technologie a tendance à converger de manière répétée autour des "meilleures pratiques" et des "économies d’échelle" ( par exemple, notez qu'un Mac n'est pas si différent d'un PC sous le capot ces jours-ci ...).
Enfin, rappelez-vous que peu importe le plaisir que vous ressentez avec tout cela, la technologie représente essentiellement un objectif imparfait entre ce que votre esprit peut envisager et ce que vous produisez réellement. Faites de votre mieux, apprenez à apprendre et restez adaptable ...
la source
Comment programmer en C.
la source
Que le jour où vous arrêtez d'apprendre devrait être le jour où vous n'êtes plus programmeur.
la source
Tests unitaires et débogage.
la source
Cela a déjà été mentionné mais je pense que cela mérite sa propre réponse.
la source
Personne ne veut utiliser un logiciel. Ils veulent des problèmes résolus.
la source
Coffee et IntelliSense sont vos meilleurs amis.
la source
Comment observer un gros objet compliqué et le décomposer en petits objets simples qui accomplissent toujours la même tâche quand ils sont à nouveau assemblés.
la source
Ne faites jamais confiance à un utilisateur ( surtout si l'application est publique!), Ils feront souvent tout ce qui est en leur pouvoir pour détruire votre application d'une manière ou d'une autre.
Préparez-la pour l'avenir et pour qu'elle soit extensible - vous ne savez jamais quand vous souhaitez l'étendre dans quelques années et vous réalisez combien d'effort il faudrait pour recoder le code mal créé.
la source
Le programmeur ne sait pas tout et doit toujours essayer d'apprendre de nouvelles langues / technologies, etc.
la source
Les bases d'une bonne conception d'interface utilisateur et de design de communication (ou graphique) .
Je vois tellement d'applications et de projets ruinés par un design médiocre ou une utilisation peu aisée. Le simple fait d’apprendre les bases peut faire toute la différence. De plus, les techniques de résolution de problèmes visuels (c.-à-d. Comment communiquer visuellement un concept) constituent un défi stimulant qui devrait vous ouvrir les yeux sur de nouvelles façons de voir, ce qui à son tour devrait avoir un impact sur votre code.
Un livre recommandé est le livre de conception de The Non-Designer de Robin Williams
Voici ce que Joel Spolsky en dit :
la source
Chaque programmeur doit savoir apprendre rapidement. Souvent, vous entrez dans un emploi et on vous demandera de développer une technologie que vous n’avez jamais utilisée. Ils pourraient vous donner environ une semaine pour vous mettre sur pied (si vous êtes chanceux) avant de vous demander d'écrire un code de qualité production.
la source
Contrôle de version. Et pour citer ma petite amie: "Je ne veux pas seulement que tu fasses la vaisselle, je veux que ça te plaise !"
la source
Les exigences changent, votre code devra s'adapter, et ce ne sera peut-être pas vous qui devrez l'adapter.
Il y a eu plusieurs questions ici liées à des sujets qui sont affectés par cela.
la source
Du haut de ma tête:
Très peu de problèmes de programmation nécessitent des calculs autres que les additions, les soustractions, les multiplications et les divisions. Si vous envisagez d'utiliser le calcul pour résoudre un problème, recherchez-le de manière exhaustive avant de le faire.
Chaque fois que vous vous demandez comment quelque chose devrait fonctionner, vous le faites mal. Ce n'est pas votre travail d'être télépathique.
La personne qui vous donne les spécifications sait rarement tout ce qu'il veut jusqu'à ce que vous l'ayez résolue.
Plus de la moitié de la qualité de programmeur provient des relations avec les êtres humains. Interagir avec votre équipe, gérer votre responsable et affiner l'utilisateur final sont la moitié du travail.
Un bon code est écrit pour être lu par les gens autant que pour votre compilateur.
La meilleure pratique et la réalité pratique seront en conflit plus que ne le pense le programmeur, mais moins que le gestionnaire. Quand ils semblent être en conflit, c'est à vous de définir et de comprendre le conflit, puis de céder à la pratique. La solution subtile et intelligente n’est meilleure que la solution laide et brutale si elle est plus rentable à long terme.
Les bons outils ne peuvent pas faire de bons programmeurs, mais les mauvais outils nous rendent tout aussi affreux.
Ne méprisez jamais une technologie, mais cherchez toujours la meilleure alternative.
Plus vous connaissez de langues, mieux vous maîtriserez celle que vous utilisez.
Ne soyez pas dérangé par la lente progression des pensées orientées vers la programmation dans votre vie quotidienne. Même lorsque nous ne sommes pas près d'un ordinateur, nous souffrons tous de limitations de bande passante, de performances liées à la commutation de tâches et nous devons charger des éléments à partir du stockage de sauvegarde. Les ordinateurs sont supposés imiter la pensée humaine et les analogues sont partout.
la source
Lire le code des autres ne va pas gâcher votre cerveau, mais plutôt comprendre pourquoi vous ne l'auriez pas fait de cette façon (si mieux ou pas, c'est une autre question).
Cela vous donne la programmation expérience gedankenexperiment , et parfois vous trouvez quelqu'un implémentant quelque chose de bien meilleur! J'aime beaucoup mieux.
Cette réponse s'étend naturellement à la lecture de votre propre code, elle utilise donc le contrôle de version et le format DIFF, et donc 42.
la source