English 中文 Español Deutsch 日本語 Português 한국어 Français Italiano Türkçe
Стать хорошим программистом (Часть 3): 5 советов, чтобы лучше программировать на MQL5

Стать хорошим программистом (Часть 3): 5 советов, чтобы лучше программировать на MQL5

MetaTrader 5Примеры | 7 октября 2021, 08:17
2 508 1
Omega J Msigwa
Omega J Msigwa

Содержание

  1. Не держитесь за прошлое
  2. Начните верить в себя
  3. Примите тот факт, что не все думают так же, как вы
  4. Перестаньте только брать и начните отдавать
  5. Доверять можно не только себе

Введение

В мире разработки новички — самые непонятые программисты. Потому что зачастую в поведении начинающих программистов присутствует элемент непредсказуемости. Никогда не знаешь, что в итоге содержится в их коде, даже если при этом знаешь, что же они хотели реализовать. Одна из причин этого в их непоследовательности.

В этой третьей части серии статей представлены 5 полезных советов, которые помогут начинающим улучшить навыки программирования на MQL5.

Нуб vs Профи

1. Не держитесь за прошлое

«Секрет перемен состоит в том, чтобы сосредоточиться на создании нового, а не на борьбе со старым» (Сократ).

Возможно, как-то на заре карьеры MQL5-программиста вы создали советник, библиотеку, индикатор или просто код и получили кучу негативных отзывов от заказчиков или читателей.

Или вы написали пару советников, в которых оказалась куча багов. Из-за неправильной торговой логики вы потеряли не только собственные средства, но и репутацию в Маркете, Фрилансе и т.д. Конечно, это плохо. Но еще хуже постоянно вспоминать такие моменты и зацикливаться на них.

А ведь вместо того, чтобы постоянно думать о прошлых неудачах, о том, что заставляет вас чувствовать себя никчемным программистом, не лучше ли потратить это время на что-то действительно полезное? Например, можно развиваться в тех областях, где вы чувствуете себя неуверенно.

  • Если в ваших программах часто много ошибок, научитесь дебажить, изучайте принципы и приемы отладки.
  • Узнавайте новое, читайте документацию и практикуйтесь.
  • Ищите помощи других людей, к примеру, на форуме MQL5, если чувствуете, что сами не справитесь.

При этом, вероятно, не стоит возвращаться к своим старым темам на форуме — может показаться, что вы задавали не самые умные вопросы, из-за чего есть риск погрузиться в самокритику и снова потратить впустую время и ресурсы (я имею в виду электричество, процессор и память компьютера).

Мысли вроде:

  1. "Надо было это запрограммировать так"
  2. "Надо было в советник добавить тот самый индикатор"
  3. "Индикатор бы получился намного лучше, если бы я только…"

и подобные навряд ли можно назвать конструктивными — они занижают самооценку и заставляют сожалеть о вещах, которые уже нельзя изменить. Если вам что-то хочется изменить и это возможно, начните делать это здесь и сейчас, чтобы использовать в будущих системах.


2. Начните верить в себя

Если у вас появилось желание написать какую-то систему, не ждите разрешения или подтверждения вашей идеи от экспертов или более опытных программистов.

Я часто вижу, как новички постят на форуме код, который уже является вполне работоспособным и в принципе позволяет получить желаемый результат. А причина, по которой они идут на форум за советом, — неуверенность. Они ищут подтверждения или одобрения от старших товарищей, потому что не верят, что могли бы самостоятельно, без чужой помощи найти подходящее решение.

Мне видится, что в программировании сам код может сказать, правы вы или нет. Вы же сами прекрасно видите, когда код работает как надо и не содержит ошибок.

А если он работает именно так, как вы хотели, то решение можно смело назвать верным. А верный способ услышать, что код ужасно плох, — это начать искать одобрения от каждого встречного программиста (включая таких же начинающих, как и вы), потому что даже при общей цели у каждого может быть свое собственное мнение о том, как правильно писать код. 

Это в человеческой природе — иметь собственное мнение, и в этом нет ничего плохого. Поэтому нет какого-то одного единственно правильного решения, хотя некоторые реализации все же могут быть лучше других. Просто всегда нужно четко понимать, что вы разрабатываете и какой результат вы хотите получить. Пишите код, запускайте отладку и тестируйте.

При этом я не имею в виду, что всегда нужно полагаться только на себя, ничем не делиться на форуме, а делать все самому! Не поймите меня неправильно. Просто надо понимать разницу между двумя целями: вы открыты для поиска новых идей или же просто ищете подтверждение от более опытных программистов.


3. Примите тот факт, что не все думают так же, как вы

Это ненормально предполагать, что все пишут программы одинаково. Ненормально и непродуктивно окружать себя только теми, кто думает и работает так же, как вы. Если вы начинающий программист и все время проводите среди таких же начинающих, навряд ли можно ожидать значительного и качественного прогресса.

Все мы люди, все мы разные, у нас разное сознание, опыт и видение относительно того, как решать определенные проблемы. Поэтому не расстраивайтесь, если чьи-то взгляды отличаются от ваших. Вас может объединять некая общая цель, к которой вы стремитесь, но путь у каждого будет свой.

Это работает и в обратную сторону: если вам попадается на форуме непривычный код, не стоит учить автора программировать, если его код покажется вам непривычным. Лучше предложите идеи для решения проблемы, если знаете. Не в вашей компетенции и не в ваших силах изменить всех программистов, превратить их в универсальных роботов, которые бы использовали единый принятый стиль программирования.

Ведь именно в наших различиях кроются возможности для творчества, что делает пусть в программировании столь увлекательным. 

«Вспомни о том, как тебе тяжело изменить самого себя, так что уж говорить о том, чтобы пытаться изменить кого-то другого»
(неизвестный автор).

Не путайте обсуждение привычных стилей и методов программирования и решение проблем. Первые могут включать в себя использование или неиспользование библиотек или индикаторов, в то время как решение — это скорее про то, благодаря чему все заработает, и при этом автору не придется отказаться от привычного стиля.


4. Перестаньте только брать и начните отдавать

«Дающие продвигают мир. Берущие продвигаются вперед и сдерживают мир» (Саймон Синек).

Пора перестать качать готовые коды и библиотеки или искать бесплатные продукты на Маркете, не давая ничего взамен. Начните отдавать, создавать решения, помогать другим начинающим. 

Поделитесь с миром своими знаниями и опытом, даже если их пока не так много и даже если вы сами продолжаете учиться (а я надеюсь, вы продолжаете, ведь именно хорошие программисты постоянно развиваются, а "нубы" зачастую полагают, что уже всему научились).

Вы и сами будете учиться быстрее, если станете частью этого уравнения. Это не относится к публикации продуктов на Маркете. В большей степени, полагаю, это относится именно к форуму, где участниками являются программисты. Общайтесь, помогайте, отвечайте на вопросы — это ваш вклад в развитие сообщества. Как много опытных программистов активно участвуют на форуме, каждый день помогая начинающим, делясь опытом и знаниями — это так ценно!


5. Доверять можно не только себе

«В игре побеждает талант, но чемпионат выигрывают слаженность в командной игре и интеллект» (Майкл Джордан).

Многие начинающие не знакомы с термином Open Source и не работают с открытыми кодами. Их жутко пугает, когда кто-то просит показать больший фрагмент кода, чтобы полнее понять проблему и точнее ответить на вопрос автора. Отчасти поэтому я в начале статьи назвал начинающих самыми непонятыми программистами. Зачастую начинающие программисты думают, что их код такой особенный (несмотря на наличие ошибок, которые пока трудно определить и исправить без помощи других) и что кто-то может украсть этот особенный код и создать из него суперсистему, Святой Грааль. Из-за этого они боятся показать больше или дать более подробное описание алгоритма и в конечном итоге остаются непонятыми, а их проблема остается без ответа.

А все потому, что люди считают, что доверять можно только себе.

Будучи веб-разработчиком, я столько раз видел потрясающие проекты, некоторые из них могут стоить миллионы или даже миллиарды долларов, и при этом все они доступны в открытую на GitHub.

По мне, так лучший способ помочь проекту расти и становиться популярнее — это позволить другим программистам поучаствовать в нем, внести свой ценный вклад. Делитесь кодом и ищите единомышленников: 

«Одна голова хорошо, а две лучше» (поговорка).

Заключение

Я и сам далеко не совершенен ни как MQL5-программист, ни как веб-разработчик. Я так же продолжаю учиться и понимаю, что процесс обучения никогда не остановится. Я всегда стремлюсь совершенствоваться и становиться лучше. А причина, по которой у меня хватило смелости поделиться идеями (то есть учить будучи студентом), заключается в том, что я хочу помогать таким же программистам, как я, стать чуточку лучше.

Давайте совершенствоваться вместе!

Перевод с английского произведен MetaQuotes Ltd.
Оригинальная статья: https://www.mql5.com/en/articles/9746

Последние комментарии | Перейти к обсуждению на форуме трейдеров (1)
Igor Chemodanov
Igor Chemodanov | 8 окт. 2021 в 07:56
Ни о чём. Аффтар куёт бабло.
Стать хорошим программистом (Часть 4): повышаем скорость программирования Стать хорошим программистом (Часть 4): повышаем скорость программирования
Я полагаю, каждый разработчик хочет писать код быстрее. При этом возможность быстро и эффективно писать код — это не какая-то особая врожденная способность, доступная только избранным. Это навык, которым может овладеть любой программист, независимо от предыдущего опыта и объема набранных на клавиатуре текстов.
Графика в библиотеке DoEasy (Часть 84): Классы-наследники абстрактного стандартного графического объекта Графика в библиотеке DoEasy (Часть 84): Классы-наследники абстрактного стандартного графического объекта
В статье рассмотрим создание классов-наследников объекта абстрактного стандартного графического объекта терминала. Объект этого класса описывает общие для всех графических объектов свойства. Т.е. это просто некий графический объект. Для уточнения его принадлежности к реальному графическому объекту нам необходимо унаследоваться от него, и в классе объекта-наследника прописать свойства, присущие этому конкретному графическому объекту.
Многослойный перцептрон и алгоритм обратного распространения ошибки (Часть II): Реализация на Python и интеграция с MQL5 Многослойный перцептрон и алгоритм обратного распространения ошибки (Часть II): Реализация на Python и интеграция с MQL5
Уже доступен пакет Python для разработки интеграции с MQL, что открывает двери для многих возможностей, таких как изучение данных и создание и использование моделей машинного обучения. Эта встроенная интеграция MQL5 в Python открывает для нас много возможностей, которые позволяют построить от простой линейной регрессии до моделей глубокого обучения. Давайте разберемся, как установить и подготовить среду разработки и использовать некоторые библиотеки машинного обучения.
Стать хорошим программистом (Часть 2): избавляемся еще от пяти привычек на пути к лучшему программированию на MQL5 Стать хорошим программистом (Часть 2): избавляемся еще от пяти привычек на пути к лучшему программированию на MQL5
Статья обязательна к прочтению для всех, кто хочет улучшить свою карьеру программиста. Цель этой серии статей — помочь любому читателю, даже опытному, улучшить навыки программирования. Описанные в статье идеи работают как для начинающих MQL5-программистов, так и для профессионалов.