Better Programmer (Part 03): Give Up doing these 5 things to become a successful MQL5 Programmer

20 agosto 2021, 07:46
Omega J Msigwa
4 170

Table of Contents

Noobs are the most misunderstood coders, when It comes to coding world. Unpredictable is one of the biggest behaviors of a noob. You never know what they are coming up with inside their code, even if they tell you what they want to implement. Among all the reasons, the biggest reason is that they are Inconsistent in what they are doing.

In this third article of this series, we are going to see the 5 Habits to give up to have a successful MQL5 coding career.

Noob vs Pro

01: Give up fighting for the past

"The secret to change is to focus all your energy, not fighting the old but building the new."
— Socrates

On your early days of MQL5 programming or even later, you might have created an Expert Advisor (EA), a Library, an Indicator or a piece of code which the majority of your customers gave you negative reviews for.

Or maybe you created an EA or two which had a lot of bugs that caused unwanted trade executions and hence caused you to lose not only your funds but also it destroyed reputation to your customers on the Codebase, Freelance or something. That is bad, to be honest, but it is worse recalling those moments and dwelling your thoughts on them.

Instead of wasting your time recalling those painful moments in your mind, that make you feel a miserable coder, why not use that same amount of time to focus on improving yourself in the areas that you notice you are weak in?

  • If you make a lot of bugs then focus on learning how to debug that particular area, or the general debugging principles, if needed.
  • Read the documentation on that area and do many practices.
  • Ask people on the Forum what might be wrong if you are still not sure.

Looking at your old forum topics in which you asked what you may call now dumb questions, for the sake of criticizing yourself is a waste of time and resources (Electricity, Data & Computer storage).

Thoughts like:

  1. "I should have coded that way"
  2. "I should have used that Indicator in my EA"
  3. "My Indicator could have been a lot better if I'd just …"

and similar will lower your self-esteem, if you use them as regrets for the past that you cannot change. If there are changes that you want to be implemented, then start doing it now for your future systems.

02: Give up not believing in yourself

If you want to write a certain system, don't wait for permission or validation from who you consider Expert/Professional.

I often see noobs posting their code on the forum that pretty much gives them the result they want. But the reason they ask is because they don't believe in themselves — they want it to be validated by experts, they are not sure whether what they have found on their own might be the solution to what they have been struggling with.

In coding, I believe, the code itself tells you if you are right or wrong. If it has no bugs, you fully understand it and you know exactly what you want.

If it works the way you want it, then it is very close to being right. The best way to know that it is terribly wrong is to start seeking validation from every programmer (noobs included here) since everybody has their own different way of writing code that leads to the common goal you want to achieve. 

It's the human way to have different opinions and there is nothing wrong with that. So, there is no specific one way to implement something though some ways are better than the others. That's why you have to know what you are implementing and what you want as a result. Do it, then debug it, and test it's effectiveness.

Believing in yourself does not mean not sharing your views on the Forum, just doing everything on your own — no! Don't get me wrong. You only have to know the difference between staying open for new better ideas or just wanting to be validated by professional programmers.

03:  Give up the belief that everyone should code like you

It's unhealthy to expect that everyone should code your way. It's unhealthy to surround yourself with people who think and code like you. If you are a noob and you surround yourself with your fellow noobs, I don't know what to tell you, LOL!

As explained in the previous point, we are humans we have different consciousness, ways of understanding and views towards tackling a certain problem. So don't get discouraged when someone has different view and code than yours, what matters is that you all have the common goal you want to achieve.

If you see someone's code on the forum don't rush explaining your ways of coding but rather provide the solution for the problem he/she is struggling because who knows maybe his coding ways are better to him/her than yours? It's not your job to change all programmers into into generic (non adaptive) robots that stick to the same patterns 24/7 all over the world.

Being different is what makes creativity possible and makes our coding career exciting. 

"Consider how hard it is to change your self and you will realize what little chance you have in trying to change others."
—Jacob M. Braude.

Do not confuse between someone's coding ways and solutions to answers on the forum. Ways might include their libraries they prefer or Indicators of their choice but solutions is mainly what will make it possible for things to work out in their way(s).

04: Give up being a taker

"Givers advance the world, takers advance themselves and hold the world back."
—Simon Sanek

It's time to stop only consuming code on the codebase and free products on the market, and to start producing stuff to help others just like you were helped when you began coding. 

Share with the world what you have learned and what you already know even when you are still learning it you know what's funny (Professional programmers are good learners, while noobs believe they know it all already).

You will accelerate your learning by putting yourself into the equation. This does not apply to posting codes and products on the markets. I believe it matters so much on the forum, since everybody that's in there is a programmer. Respond to questions that you know answers and pay attention to those you don't. I can't tell you how many professional programmers that I see everyday are actively participating on helping noobs on  the forum (I appreciate that).

05: Give up trusting only yourself

"Talent wins games but team-work and Intelligence wins championship."

—Michael Jordan

Noobs are unfamiliar with the term Open Source and don't know how to use it, they are scared to death when someone request to see their extended code in the forum so that they can answer their question better by figuring out exactly might be wrong. That's why I said previous on the article Introduction they are misunderstood coders. I can relate this to noobs thinking that their hard coded code is so special (though it has bugs that they can't even spot and fix themselves), they think someone might steal some special code and use it to make a holy grail System, not knowing that providing few descriptions about a certain problem and less code and ways you have tried makes it hard to respond to a topic … so they end up having no responses on the forum and not to mention no understanding.

All this bad stuff is caused by noobs trusting only them selves.

Being a web developer I can't tell you how many times I have seen great projects that some of them are million if not billion dollars projects that are Open Source on Github

I believe there is no better way to accelerate growth and popularity of a project if not allowing other developers to add their contribution on 

"Two heads are better than one."
— African saying


To be honest I'm not this magnificent, not perfect in MQL5 programming or in my web development career. I'm still a student in this Coding thing and there is no ending to learning it, because it never stops teaching. I always strive to improve and to become better at it everyday. The reason I have the guts to share this with you (to teach while being a student) is to help people with the same passion as me to Become a Better Programmer.

Let's walk this journey together!
Best Regards
Better Programmer (Part 04): How to become a faster developer Better Programmer (Part 04): How to become a faster developer
Every developer wants to be able to write code faster, and being able to code faster and effective is not some kind of special ability that only a few people are born with. It's a skill that can be learned by every coder, regardless of years of experience on the keyboard.
Patterns with Examples (Part I): Multiple Top Patterns with Examples (Part I): Multiple Top
This is the first article in a series related to reversal patterns in the framework of algorithmic trading. We will begin with the most interesting pattern family, which originate from the Double Top and Double Bottom patterns.
Combinatorics and probability theory for trading (Part I): The basics Combinatorics and probability theory for trading (Part I): The basics
In this series of article, we will try to find a practical application of probability theory to describe trading and pricing processes. In the first article, we will look into the basics of combinatorics and probability, and will analyze the first example of how to apply fractals in the framework of the probability theory.
Better Programmer (Part 02): Stop doing these 5 things to become a successful MQL5 programmer Better Programmer (Part 02): Stop doing these 5 things to become a successful MQL5 programmer
This is the must read article for anyone wanting to improve their programming career. This article series is aimed at making you the best programmer you can possibly be, no matter how experienced you are. The discussed ideas work for MQL5 programming newbies as well as professionals.