J'ai été contacté pour faire un travail de contrôle à distance des écrans LED sur TCP / IP, mais mon expérience et ma préparation concernent principalement le langage de programmation de haut niveau. J'ai dit cela à la personne qui m'a contacté au sujet du travail et il m'a dit que:
"si vous vous appelez un programmeur, vous devez savoir toutes ces choses"
Un programmeur devrait-il vraiment connaître les détails de la programmation de bas niveau? Ou puis-je le traiter comme un concept de boîte noire, comme une connaissance théorique mais pas nécessairement le faire ou mettre en œuvre des solutions linguistiques de bas niveau, sachant que la programmation de bas niveau n'est pas mon expertise?
low-level
high-level
emploi
la source
la source
Réponses:
Votre contact ne sait pas de quoi il parle. Il existe de nombreux langages, méthodologies, technologies, etc. qu'une seule personne ne peut pas très bien connaître tous les détails nécessaires. Ce que vous devez savoir en tant que programmeur, c'est apprendre ce dont vous avez besoin pour faire le travail et avoir une approche de résolution de problèmes que vous pouvez appliquer pour arriver à une solution, quel que soit le langage de programmation que vous devez utiliser.
Admettre ce que vous ne savez pas, c'est bien, mais vous pouvez également prouver que vous êtes capable d'apprendre suffisamment pour atteindre le résultat souhaité, peu importe ce à quoi vous êtes confronté. Les bons programmeurs sont tout simplement de bons résolveurs de problèmes qui peuvent implémenter leurs solutions dans divers langages de programmation.
Je ne travaillerais pas pour quelqu'un qui a l'attitude de votre contact.
la source
Je suis fortement en désaccord avec cette déclaration. Ce serait comme demander à un chef de cuisiner quoi que ce soit, à un conducteur de conduire n'importe quel type de véhicule à moteur ou à un médecin de connaître toutes les maladies, ce qui est une supposition ridicule.
Pour être programmeur, il faut savoir donner un logiciel d'écriture dans une langue afin d'effectuer une tâche de manière automatisée. Les langues et les tâches varient d'un programmeur à l'autre, tout comme les plats qu'un chef sait préparer, un chauffeur sait comment opérer ou un médecin sait diagnostiquer varie en fonction de la spécialisation que l'on souhaite être dans chaque profession.
la source
Parlé comme une personne qui n'a jamais écrit de ligne de code dans sa vie. Ce sera la même personne qui pensera que vous devriez pouvoir le faire dans la moitié du temps que vous citez. Ne discutez pas avec un idiot.
Vous avez montré beaucoup plus de connaissances et de caractère en connaissant vos limites. Cette personne parle de choses dont elle ne sait rien.
Je suppose que chaque charpentier devrait savoir sculpter un meuble orné. Si un pilote peut piloter un avion, il peut tous les piloter.
la source
La plupart des programmes CS à l'école vous donneront quelques connaissances en programmation de bas niveau. Par exemple, j'avais des classes d'assembleur utilisant le processeur 8088 (OK ... donc ça me date un peu). Je pense, cependant, que de nombreuses écoles de métiers contournent ces connaissances de nos jours - lancez un commentaire si ce n'est pas vrai.
En fin de compte, il est toujours bon de savoir ce qui se passe au niveau de la puce - en outre, vos langues de haut niveau finiront par y arriver lors de son exécution.
Cependant, demander à quelqu'un de vous dire que vous n'êtes pas programmeur parce que vous ne savez pas actuellement que la programmation de bas niveau est ignorante. Si vous devez posséder ces compétences pour le projet en cours, vous devez avoir suffisamment d'intelligence ou de motivation pour acquérir les compétences dont vous avez besoin, puis les appliquer.
Je devrais sérieusement envisager de ne pas prendre ce projet si le client vous parle déjà de cette façon - vous ne savez jamais où cela pourrait aller.
la source
Je le méprise vraiment quand les gens disent "Vous devez connaître X pour vous appeler programmeur". Vraiment? Eh bien, certaines personnes travaillent sur COBOL toute la journée et l'adorent. Ils sont peut-être devenus si bons dans ce domaine et dans leur domaine de problèmes qu'à côté d'eux, nous sommes tous des prétendants.
Sérieusement, respectez les gens pour résoudre les problèmes auxquels ils sont confrontés de manière cool et intéressante. Comprenez que la grande résolution de problèmes vient d'une diversité d'horizons. Pas s'ils ont maîtrisé une supposée "liste de contrôle" de compétences que tout le monde est censé connaître pour qu'ils puissent tous penser de la même façon. C'est l'exact opposé de ce que nous voulons. La «liste de contrôle» de chacun est et devrait être différente. Plus c'est différent, mieux c'est. La programmation résout les problèmes de nos jours. Respectez ceux qui le font bien et comprenez que tout le monde vient à la table avec des forces différentes. C'est la seule façon dont nous allons nous entraider pour travailler efficacement en équipe. Ce n'est pas parce que connaître "C" ou quelque chose aide vraiment ce gars à être génial, parce que vous ne le faites pas
la source
Je vous suggère de lire ceci:
http://www.joelonsoftware.com/articles/LeakyAbstractions.html
Comme expliqué, lorsque vous utilisez une abstraction, ce qui est de niveau inférieur a toujours une influence sur ce que vous faites. Il peut s'agir de performances, de causes d'échec, de raisons de sécurité, etc.
Donc, définitivement, vous devriez maintenant parler de ces trucs. Pas spécialement un spécialiste de l'architecture asm ou CPU. Mais en savoir suffisamment pour vous documenter lorsque vous avez besoin d'en savoir plus est, en effet, un must have.
la source
Son argument est un bon exemple de l' erreur logique de No True Scotsman .
Cependant, la différence entre la programmation de bas et de haut niveau n'est pas le langage, c'est le domaine de connaissance des applications. Attribuer une valeur à true peut signifier allumer une LED ou activer des événements de clic de souris sur un widget. La langue s'en fiche.
Par exemple, jetez un œil à cette bibliothèque pour travailler avec une matrice LED sur un Arduino. Ce n'est pas sorcier ici, et vraiment n'importe quel programmeur serait en mesure de le comprendre avec un petit effort s'il ne mettait pas un "bas niveau oh non!" blocage mental.
la source
Chaque langage de programmation a ses avantages et ses inconvénients. En apprendre quelques-uns, vous donnerait une excellente perception de ce qu'il faut utiliser et de la façon de l'utiliser efficacement lors de l'exécution d'un projet.
En tant que programmeur, vous pouvez vous spécialiser sur un PL spécifique, en l'utilisant comme votre seul outil pour résoudre tout problème, vous pouvez également connaître beaucoup de PL mais vous spécialiser sur rien et beaucoup plus entre ces extrêmes.
Peut-être que la personne qui vous a dit que "Phrase" est frustrée, peut-être que vous n'étiez pas la seule personne de contact à qui il a parlé.
connaître le problème et savoir quel ensemble de compétences est nécessaire pour être en mesure de résoudre le problème efficacement est une bonne caractéristique d'un programmeur. Hélas dans votre cas, puisque vous n'avez pas les compétences requises, vous pouvez peut-être référer votre personne de contact à un autre programmeur avec les compétences nécessaires.
à votre santé,
gardien
la source
Avoir les connaissances théoriques c'est bien. Être capable d' apprendre la langue de bas niveau lorsque cela est nécessaire est très important.
Mais en ce qui concerne "si vous vous appelez programmeur, vous devez savoir toutes ces choses", qui peut tout savoir sur tout? Avant même de les faire?
la source
Je vais reformuler
À
la source