Auto-apprentissage du langage MQL5 à partir de zéro - page 17

 
Roman:

L'exact opposé de vous !
La chose la plus importante en programmation est de connaître le langage au niveau le plus bas possible !
Pour les débutants, un bas niveau est la syntaxe du langage sans enveloppes de code supplémentaires.
La décomposition, comme vous le dites, consiste à comprendre comment les organigrammes sont composés.
C'est pourquoi un programmeur n'est pas apprécié pour ses fantasmes philosophiques, mais pour sa connaissance pratique du langage.
Comment peut-on fantasmer sans les bases de la langue ? Où est la simple logique ?
Équivalent au langage d'un ingénieur en électronique, qui est l'auteur de ce fil, d'abord fournir des tensions à la carte, et ensuite se demander pourquoi la carte a brûlé ;))

Je ne suis pas d'accord. Lorsque vous vous fixez un objectif, vous n'avez pas besoin de connaître la langue, vous devez simplement comprendre ses capacités. Mais lorsqu'il s'agit de fixer un objectif, de le résoudre, de sélectionner des algorithmes et de coder, à toutes ces étapes, il est nécessaire. Définir un problème sans connaître la syntaxe de la langue est parfois un gros problème de mise en œuvre)))

 
Roman:

... Equivalent, en langage électronique, qui est l'auteur de ce fil, appliquer d'abord des tensions à la carte, et ensuite se demander pourquoi la carte a brûlé ;))

Bonjour Roman ! Excellente comparaison. Maintenant, je suis en programmation au même niveau qu'un ingénieur en électronique, lorsque je suis passé de la connaissance des principes des transistors à l'apprentissage des principes des circuits numériques K155.

Pourtant, en 1983, nombre de mes collègues ont réussi à réparer des ordinateurs de la série EU sans comprendre le fonctionnement des transistors. Ils n'avaient besoin que de connaître l'algèbre de la logique. C'était une digression - la nostalgie de l'époque soviétique !

Salutations, Vladimir.

 
Valeriy Yastremskiy:

Je ne suis pas d'accord. Lorsque vous fixez un objectif, vous n'avez pas besoin de connaître la langue, vous devez comprendre ses capacités. Mais toutes ces étapes sont nécessaires pour la définition du problème, sa résolution, la sélection de l'algorithme et le codage. Définir un problème sans connaître la syntaxe de la langue est parfois un gros problème de mise en œuvre)))

Alors, comment comprendre les possibilités si vous ne les connaissez pas ?))
La définition d'un problème est le stade extrême de la maîtrise des bases du langage, lorsque vous savez déjà ce qu'est une variable, quelles tailles elle peut avoir, sa portée, etc.
J'étais également à la croisée des chemins, lorsque je ne savais pas par où commencer, quelle langue apprendre et tout comprendre. C'était l'agonie, car j'ai essayé plusieurs langues pour trouver la vérité.
Mais lorsque j'ai finalement réalisé que mql était un langage similaire au C, j'ai commencé à apprendre le C de manière ciblée, en commençant par les bases.
Et quand j'ai terminé l'étude de base, j'ai été surpris de constater que je connais déjà pratiquement mql, et tout est clair pour moi, seule la syntaxe et les spécificités devraient être améliorées par les docks, c'est une fonctionnalité de mql.
Ayant compris l'approche procédurale de la programmation, j'ai commencé à m'intéresser à la POO après un an. Pendant longtemps, ce n'était pas clair pour moi, à cause des autres noms de la même chose.
Par exemple, méthode et fonction, quelle est la différence entre )) variable et membre de classe )) etc.
Mais pour y parvenir, vous devez comprendre la base même de l'approche procédurale, et lorsque vous commencez à comprendre progressivement la terminologie de la POO, la compréhension s'ouvre instantanément.
C'est là toute la différence, le choix de la voie d'apprentissage initiale. Comment écrire en russe sans connaître les lettres et les signes de ponctuation ?
Rappelez-vous où vous avez commencé, avec des crochets et des bâtons.

 
Roman:

L'exact opposé de vous !
Le facteur déterminant en programmation est la connaissance du langage, à un niveau aussi bas que possible !

Qu'est-ce que ça vous apporte ? Vous connaissez la langue à un niveau très bas. Vous savez quelles commandes assembleur sont remplacées par if, comment la boucle for est convertie en goto. Tu connais l'assembleur. Où est le profit dans tout ça ? Regardez les programmeurs Python. Ils ne savent rien de tout cela. Mais ils sont très bons dans la manipulation des fonctions, ils savent comment faire du Map/Reduce. Ils sont capables de les composer et de les saisir entre eux. Et où est MQL maintenant qu'ils n'écrivent plus autant dedans par rapport à Python ?

Romain:

Comment peut-on s'imaginer sans les bases de la langue ? Où est la simple logique ?
C'est similaire au langage électronique, qui est l'auteur de ce fil, d'abord pour fournir des tensions à la carte, et ensuite se demander pourquoi la carte a brûlé ;))

Selon votre compréhension de la simple logique, c'est une procédure en vente libre. De mon point de vue, c'est comme un langage d'assemblage : "ce que je vois est ce que je chante". Il n'y a pas de logique là-dedans, c'est juste une stupide compétence de frappe. Une dactylo peut le faire après une formation de deux semaines. Ce n'est pas de la programmation.

Romain:

En ce qui concerne la décomposition, comme vous le dites, c'est comprendre comment sont constitués les organigrammes.

Un organigramme est un diagramme pour les langages procéduraux. "Voici la boucle for, voici la boucle if". Personne n'écrit en langage procédural de nos jours. C'est un non-sens pour une application utilisateur de choisir, par exemple, C ou Pascal. Pour un noyau d'OS ou un autre langage procédural, c'est le meilleur. Mais il s'agit là d'un pourcentage infime des tâches et il est clair qu'il n'entre pas dans le cadre de la tâche à accomplir.
 
Vasiliy Sokolov:

Et à quoi servirait cette connaissance ? Vous connaissez la langue à un niveau très bas. Vous savez quelles commandes d'assembleur remplacent "si", comment la boucle "for" est convertie en "goto". Tu connais l'assembleur. Où est le profit dans tout ça ? Regardez les programmeurs Python. Ils ne savent rien de tout cela. Mais ils sont très bons dans la manipulation des fonctions, ils savent comment faire du Map/Reduce. Ils sont capables de les composer et de les saisir entre eux. Et où est MQL aujourd'hui où l'on écrit moins qu'en Python ?

Dans votre compréhension de la logique simple, c'est une chose terriblement procédurale. Dans ma compréhension de la logique, c'est comme en assembleur : "ce que je vois, je le chante". Il n'y a pas de logique là-dedans, c'est juste une stupide compétence de frappe. Une dactylo peut le faire après une formation de deux semaines. Ce n'est pas de la programmation.

Un organigramme est un diagramme pour les JD procéduraux. "Voici la boucle for, voici la boucle if". Ils n'écrivent pas dans des langages procéduraux de nos jours. C'est un non-sens pour une application utilisateur de choisir, par exemple, C ou Pascal. Pour un noyau d'OS ou un autre langage procédural, c'est le meilleur. Mais il s'agit d'un pourcentage infime des tâches et il est clairement en dehors de la portée de la tâche à accomplir.
Vasily, comment peux-tu imaginer apprendre à TC à programmer dans le paradigme OOP, en évitant les choses élémentaires, qu'il n'a pas) ? Non, bon, c'est peut-être possible, mais je ne peux pas imaginer...

Comme nous l'expliquons : "Programmation d'algorithmes (routines) = mauvaise approche. Vous devez programmer des systèmes complets sur le plan conceptuel, structurés de manière hiérarchique, appelés "objets", qui héritent des propriétés et des méthodes des autres dans un environnement logiciel".

Et il a immédiatement dit : "Ahhhh, pourquoi ne l'avez-vous pas dit avant ! Tout a un sens."))))
 
Vasiliy Sokolov:

Et quel serait l'avantage d'une telle connaissance ? Vous connaissez la langue à un niveau très bas. Vous savez quelles commandes d'assembleur remplacent "si", comment la boucle "for" est convertie en "goto". Tu connais l'assembleur. Où est le profit dans tout ça ? Regardez les programmeurs Python. Ils ne savent rien de tout cela. Mais ils sont très bons dans la manipulation des fonctions, ils savent comment faire du Map/Reduce. Ils sont capables de les composer et de les saisir entre eux. Et où est MQL aujourd'hui où l'on écrit moins qu'en Python ?

Dans votre compréhension de la logique simple, c'est une chose terriblement procédurale. Dans ma compréhension de la logique, c'est comme en assembleur : "ce que je vois, je le chante". Il n'y a pas de logique là-dedans, c'est juste une stupide compétence de frappe. Une dactylo peut le faire après une formation de deux semaines. Ce n'est pas de la programmation.

Un organigramme est un schéma pour les langages procéduraux. "Voici la boucle for, voici la boucle if". Personne n'écrit en langage procédural de nos jours. C'est un non-sens pour une application utilisateur de choisir, par exemple, C ou Pascal. Pour un noyau d'OS ou tout autre langage procédural, c'est le meilleur. Mais il s'agit là d'un pourcentage infime des tâches et il est clair que cela ne fait pas partie de la portée de la tâche à accomplir.

Pour votre information, Python est écrit en C.
Et Python a été conçu pour faciliter l'écriture du code. Mais après être devenu un langage populaire en raison de son apparente simplicité, les connaissances des codeurs restent au niveau de Python.
Et seuls les programmeurs qui connaissent le C écrivent des bibliothèques et des choses supplémentaires pour lui. Ce sont des programmeurs et non des codeurs.
C'est le point qu'une simple dactylo de code battra les codeurs avec sa compréhension du sujet.
Vous êtes juste un C#-nik, c'est pourquoi vous avez un tel regard, mais ne pensez même pas dans quelle langue ce langage C# est écrit)).

 
Roman:

Alors comment comprendre les fonctionnalités si vous ne les connaissez pas ?))
La résolution de problèmes est le stade extrême de la maîtrise des bases d'un langage, lorsque vous savez déjà ce qu'est une variable, quelles tailles elle peut avoir, les portées, etc.
J'étais également à la croisée des chemins, lorsque je ne savais pas par où commencer, quelle langue apprendre et tout comprendre. C'était l'agonie, car j'ai essayé plusieurs langues pour trouver la vérité.
Mais lorsque j'ai finalement réalisé que mql était un langage similaire au C, j'ai commencé à apprendre le C de manière ciblée, en commençant par les bases.
Et quand j'ai terminé l'étude de base, j'ai été surpris de constater que je connais déjà pratiquement mql, et tout est clair pour moi, seule la syntaxe et les spécificités devraient être améliorées par les docks, c'est une fonctionnalité de mql.
Ayant compris l'approche procédurale de la programmation, j'ai commencé à m'intéresser à la POO après un an. Pendant longtemps, ce n'était pas clair pour moi, à cause des autres noms de la même chose.
Par exemple, méthode et fonction, quelle est la différence entre )) variable et membre de classe )) etc.
Mais pour y parvenir, vous devez comprendre la base même de l'approche procédurale, et lorsque vous commencez à comprendre progressivement la terminologie de la POO, la compréhension s'ouvre instantanément.
C'est là toute la différence, le choix de la voie d'apprentissage initiale. Comment écrire en russe sans connaître les lettres et les signes de ponctuation ?
Repensez à vos débuts, avec des crochets et des bâtons.

Je ne sais pas quoi dire. Chacun a sa propre façon, je suppose. Je n'insiste pas. Mais les objectifs peuvent être résolus dans différents langages, et il se peut que l'on ne connaisse pas la syntaxe au moment de choisir un objectif, mais seulement les possibilités. Il existe des bibliothèques pour les sites web en python, et le site peut être fait en python, pxp, jumla, html ou tout autre, c'est une question de prix et de disponibilité de fonctionnalités prêtes (scripts), et ceci est un énoncé de problème et nécessite une connaissance plus approfondie du langage. Nous pouvons sélectionner les scripts suivants pour travailler avec les séries : MKL, Python, R et Matlab. Le MCL natif sera suffisant pour l'établissement des ordres par les MA.

Il faut que tout soit en harmonie. Connaître la mécanique de la voiture n'est pas la même chose que de bien la conduire. Mais ne pas connaître le mécanisme est mauvais pour les pannes sur la route).

Et à chacun son métier, souvent un bon codeur n'est pas un bon algorithmiste et vice versa. Si ces qualités vont bien ensemble, c'est cool et c'est cher en général, mais pas si souvent.))))

 
Bien sûr, l'approche procédurale isole le programmeur des énormes bibliothèques de POO qui contiennent des tonnes de solutions toutes faites. Et cet "isolement" affecte certainement le niveau de son codage. Mais on ne peut atteindre les bibliothèques qu'après avoir maîtrisé la base. C'est-à-dire qu'il est possible de structurer un programme comme un environnement d'objets, plutôt que comme une instruction fonctionnelle plate, seulement en ayant une base solide de théorie et de pratique initiales. Imho, bien sûr.
 
Vasiliy Sokolov:

Et quel serait l'avantage d'une telle connaissance ? Vous connaissez la langue à un niveau très bas. Vous savez quelles commandes d'assembleur remplacent "si", comment la boucle "for" est convertie en "goto". Tu connais l'assembleur. Où est le profit dans tout ça ? Regardez les programmeurs Python. Ils ne savent rien de tout cela. Mais ils sont très bons dans la manipulation des fonctions, ils savent comment faire du Map/Reduce. Ils sont capables de les composer et de les saisir entre eux. Et où est MQL aujourd'hui où l'on écrit moins qu'en Python ?

Dans votre compréhension de la logique simple, c'est une chose terriblement procédurale. Dans ma compréhension de la logique, c'est comme en assembleur : "ce que je vois, je le chante". Il n'y a pas de logique là-dedans, c'est juste une stupide compétence de frappe. Une dactylo peut le faire après une formation de deux semaines. Ce n'est pas de la programmation.

Un organigramme est un organigramme pour les langages procéduraux. "Voici la boucle for, voici la boucle if". Personne n'écrit en langage procédural de nos jours. C'est un non-sens pour une application utilisateur de choisir, par exemple, C ou Pascal. Pour un noyau d'OS ou tout autre langage procédural, c'est le meilleur. Mais il s'agit là d'un pourcentage infime des tâches et il est clair que cela ne fait pas partie de la portée de la tâche à accomplir.

C'est beaucoup, c'est la bonne façon de faire les choses. Idéalement, le client devrait être un bon codeur)))) Combien de nerfs seraient économisés)))

La connaissance d'un langage à bas niveau n'invalide pas la connaissance des langages de haut niveau, et permet simplement de mieux comprendre le fonctionnement du programme. Et s'il sait comment fonctionnent les boucles go-to et combien de mémoire elles consomment, il peut les optimiser si nécessaire. Pas plus que ça.

Pour être honnête, je ne comprends pas le sens de cet argument.

 
Valeriy Yastremskiy:

...

Et franchement, je ne comprends pas le sens de cet argument.

Je pense que Vasily veut essayer d'enseigner à un débutant la pensée POO, où tout sauf la POO elle-même est secondaire. Ne commencez pas par les variables, les opérateurs, les tableaux, mais commencez par les classes, l'héritage des propriétés, la construction de hiérarchies d'objets et la connexion de puissantes bibliothèques. Transférer de la "crèche" et aller directement à l'université.)))