English Русский 中文 Español Deutsch Português 한국어 Français Italiano Türkçe
より優れたプログラマー(第07部): 成功したフリーランス開発者になるためのメモ

より優れたプログラマー(第07部): 成功したフリーランス開発者になるためのメモ

MetaTrader 5 | 26 1月 2022, 11:01
477 0
Omega J Msigwa
Omega J Msigwa

はじめに

フリーランスは、MQL5で取り上げる価値のあるエリアの1つです。多くの開発者は自分のコーディング能力から利益を得たいと考えており、他の開発者も挑戦と経験を望んでいます。これらは、フリーランスに関して、私や他の人たちの成功と失敗の経験からまとめられた見解です。これらの経験を共有することによって、この記事は、フリーランスに関して、より良いプログラマーになるための道に向かって誰もが改善することを目的としています。私や他の人にとって何がうまくいき、何がうまくいかなかったかをこの記事で見れば、ご自分の独立した旅への洞察が得られるでしょう。

MQL5で成功したフリーランサーになる

 

「結果が半分でよくない限り、費やす努力を半分にしてはいけない」

目次

  1.  わからない仕事には応募しない
  2.  調査する
  3.  顧客に過度の労力をかけることは避ける
  4.  MQL5.comに固執する
  5.  顧客に対して技術的にならない
  6.  自分自身とクライアントに正直になる
  7.  クリーンなコードから始める
  8.  あなたはコーダーであるだけでなく、問題解決者です
  9.  あなたを出し抜こうとしている顧客にご注意
  10.  上手く行う
  11.  少数を選択する
  12.  彼らの友達になる

01: わからない仕事には応募しない

報酬が高いからといって、やり方がわからない仕事に応募してはいけません。あなたがそもそもフリーランスの開発者になろうと思った最初の理由は報酬の高さだと思います。作業しながら学び、やり方をみつけることができると思い込むのは簡単です。私の経験では、この考え方はフリーランスでは通用しません。何を求めているかを正確に知っている真剣な顧客や、締め切りの厳しい仕事に対してはなおさらです。

プログラミングのほとんどの分野では、学習と習得には多くの作業と努力が必要です。何かを学んでそれを数時間で効果的に実装できると考えるのはいただけません。

私がフリーランスで行った2番目の仕事は、インジケーターを何個か作成して何個かをMQL4からMQL5に変換し、それらすべてを使用する1つのエキスパートアドバイザーを作成する仕事でした。報酬はたったの30ドルでしたが引き受けることにしました。私はインジケーターの学習、コーディング、使用を行っていません。インジケーターの主題に精通していなかった(今日に至るまで)ので、正直なところ、依頼者が仕事のディスカッションセクションですべてのロジックと要望を完全に説明した後、彼が望むインジケーターを作成するのは難しいだろうとわかっていました。その仕事を引き受けた結果、81日で仕事を終えることになりました。

長い仕事実行時間MQl5フリーランス

全期間を通じて1日あたりに支払われた金額を計算すると、

30 / 81  = 0.37 $

となります。私はその間ずっと1日あたり37セントを稼いでいたのです。なんという時間の無駄でしょう。81日は長く聞こえると思いますが、毎日作業していたわけではありません。大変で退屈で、やる気が沸かず、何もしなかった週もあります。仕事を引き受けるという過ちを犯したからといって仲裁もしたくありませんでした。何があっても終わらせたかったのです。

知らない特定の主題に関する仕事を見つけて学びたい場合は、書き留めて、仕事外の通常の学習ルーチンでそれを行うことによって学んでください。同じ仕事がおそらく将来現れるでしょう。


02: 調査する

最近成功した開発者である友人のAbdul Wahabさんが次のように言ったとき、私は強く同感しました。

abdul wahabとomega joctanの会話


仕事の内容は一目でわかるかもしれませんが、それほど簡単には理解できません。そのため、応募しようとしている仕事ごとに要件を調査することは常に良い考えです。これを行うことは、自分がやろうとしている仕事を詳細に理解するのに役立つかもしれません。また、適切な情報を備えているため、あなたが仕事を理解して適切な人材であることを確認するために真剣なクライエントが尋ねるかもしれない質問に答えるのにも役立つでしょう。

次は例です。

作業仕様例


簡単そうに見えて報酬が高いからといってそのような仕事に飛びつく前に、簡単な調査を行って次の2つの重要なことを特定してください。

  1.  自分のMQL5またはMQL4の経験で、顧客が望むものを実装できるか
  2.  価値があるか(経験とお金)

調査を行うということは、必ずしもグーグルだけで調査することではありません。それはまた、結果についての実践と批判的思考によって自分で試すことです。


03: 顧客に過度の労力をかけることは避ける

先週見かけたフォーラムの投稿を見てみましょう(https://www.mql5.com/ja/forum/371968)。

すべてはここから始まりました。

MQL5フリーランスでの無責任な開発者の例


医師が治療を知らない人から病気とその治療法について完全に知りたいと思うのはばかげています。開発者が顧客から期待どおりにコードが機能しない理由を知りたいと思うのも同じです。

Fernando Carreiroさんのこのトピックへの返信が好きです。


MQL5フリーランスでの無責任な開発者へのFernando Carreiroさんの返信


顧客が自分で調べて何が悪いのかを見つけることができれば、開発者として理解できない問題に遭遇した場合、そもそも開発者は必要ありません。それが顧客にとってどのように難しいかを考えてください。実際のところ、顧客が答えを知っていて、それがコーディング関連の問題であることに気付いた場合、顧客は答えに対して何ができるでしょうか。

顧客の仕事に何が起こっても全責任を負うのはあなたです。それはあなたがしなければならないことであり、仕事に応募したのは顧客ではなくあなただからです。


04: MQL5.comに固執する

フリーランスにMQL5.comの範囲外の仕事が投稿されることが何度かありました。pineスクリプトの変換、WebライセンスEAシステム、およびそれらに関連する他の多くのジョブなどです。あなたがそれらの分野の専門家でそれらがMQL5フリーランスでやりたいことでない限り、このタイプの仕事を引き受けることはお勧めしません、

これらの仕事では競争がほとんどないか全くないので、次にそれらの仕事を引き受ける数少ない人の1人になるためにそれらの分野を学びたくなるかもしれません。

報酬がいくらであっても、これらの仕事には引き受ける価値がありません。

これが理由です。

MQL5.com(MQL5、MQL4、Python)プログラミング言語でないため、新しいことを学ぶ必要があります。また、フレームワークやライブラリなどは多数ありすぎるため、遭遇したものすべてについて学ぶことはWeb開発者としてお勧めしません。もちろん、これらのタイプの仕事はフリーランスのセクションでは非常にまれです。たまにしか使わないものについて学ぶのは悪い考えです。

もう1つは、これらのジョブではコードの記述だけではなく追加の作業が必要になることです。次は例です。

以前に提供したWebサーバーフォームの例でのエキスパートアドバイザーのライセンス取得

完全なソリューションを利用する場合は、PostgreSQLのような安全なデータベースをホストするためのクラウド上のホスティング環境が必要になります(ホスティングは無料ではありません。覚えておいてください)。 データベースからの読み取りと書き込みが必要になります。Flask、express、Node jsなどの追加の)バックエンドフレームワークと、セキュリティ対策と有効性のための間にある多くのプロセスが必要になる可能性があります。

以下にまとめてみます。

すべてが実装された後でまだ、MetaTraderプラットフォームでまったく機能しないまたは思うように機能しない可能性があります。


05: 顧客に対して技術的にならない

フリーランスの顧客の90%は、コードや、取引や自動取引システムに関連する技術的なことについて何も知りません。自分がしたことについて彼らに説明するときは常に、技術的になることを避けたいでしょう。常に彼らがすでに慣れ親しんでいる親しみやすい言葉を使います。表現に使う言語は、彼らが何を望んでいるか、そしてあなたが彼らがそれを達成するのをどのように手伝えるかを直接説明する必要があります。

以下は、クライアントと会話する悪い方法の例です。

Mql5フリーランスの顧客との悪い会話の例

(この会話は100%リアルではありません。テキストの一部をPhotoshopで編集しました)

顧客が聞きたいことと見たいことを伝えて見せてください。それ以上でもそれ以下でもありません。彼らがすでに慣れ親しんでいる言語を話すことによって、あなたが彼らを理解しているように思えるので、さらに好感を得られるでしょう。

次は、クライアントとの良い会話の例です。

クライアントの例との良い会話

(この会話も100%ではありません。Photoshopで編集しました)

顧客が仲間の開発者またはコーディング方法を教える相手であるかのように話すことは現金です。


06: 自分自身とクライアントに正直になる

これはほとんどの開発者にとって難しい部分です。自分自身に正直である必要があるというのは、特定の仕事に応募するときに提供する価格とフリーランスで特定の仕事を納品する日数について正直である必要があるということです。

可能な限り最低の価格と最短の納品日で、応募の戦いに勝つことは簡単です。しかし、これはあなたの価値を下げるための一番の方法であり、無意識のうちに価値の低い仕事や価格に敏感な顧客にあなたを導きます、私が言えるのは、このようなあ仕事にはほとんどの場合良い結末がないということです。

正当な理由がないのに、より高い価格で応募することはお勧めしません(誤解しないでください)。しかし、仕事とそれにかかる時間を評価することはあなたにとって良いことだと思います。仕事に100ドルの価値があると思うなら、それでいいのです。MQL5開発者はこれについて考えたと思います。そのため、顧客の価格とは別に仕事に価値があると思われる価格で応募する機会が開発者に与えられています。

かつて、すでに作成されたエキスパートアドバイザーにニューラルネットワークを追加する仕事に応募したことがあります。顧客が支払う意思のある価格は50ドルから300ドルでした。私は3日間/250ドルで応募しました。後で顧客に拒否されましたが、彼から次のようなメッセージを受け取った後、彼が正直であることに気づきました。

「申し訳ありませんが、一緒に仕事をすることはできません。最高のオファーを提供するコーダーを探しており、すでに見つけました。」

通ったオファーを知りたくて聞いてみると、顧客からの返事がありました。

「40ドルで、今日納品すると言われました。」

自分が無能なプログラマーであると感じさせられました。しかし、驚いたことに、1週間後、顧客が作業を完了するために別の開発者を探しているという通知をジョブセクションで受け取りました。なぜ仕事が仲裁に終わったのかわかりませんが、何かがうまくいきませんでした。

遅かれ早かれ後悔するであろう最も困難な仕事に雇われるためだけに、最安かつ最速の選択肢になるのは良い考えではありません。

顧客に正直であるというのは、あなたが何ができるか、そして彼らがあなたに何を期待すべきかを彼らに伝えるということです。正直であることは、あなたがクライアントに信頼できるオープンな開発者であることを示し、クライアントの信頼を得るのに役立ちます。


07: クリーンなコードから始める

顧客にすぐに雇われることができるようにと顧客にデモンストレーションするためだけにごみのようなソフトウェアのサンプルを作成してはいけません。仕事を終了して他の仕事に進むためだけに、すばやくコーディングしてはいけません。すれば、顧客は、あなたが彼らのために作成した製品ががらくたであることに気付いた瞬間にあなたを完全に避けるようになります。

仕事がどんなに小さく思えても、常に、二度とやる機会がないかのように行ってください。最良のコード実装を検討し、例外が発生した場合に例外を処理するコードを記述してください。最も重要なのは、デバッグすることです。

最初から最後までクリーンなコードを記述します。

また、製品をデモンストレーションするためだけにクリーンでないコードを記述することに没頭し、後でクリーンアップすることを考えてはなりません。これは製品の品質低下の原因となりえる悪い習慣です。作業の最後に到達したときにクリーンアップするのを忘れる可能性が非常に高いためです。


08: あなたはコーダーであるだけでなく、問題解決者でもあります

開発者として、あなたは多くの点で顧客よりも経験豊富です。与えられた作業仕様に従ってプログラムをコーディングするだけでなく、顧客が望ましい結果を達成するための最良の方法を提案することで、顧客を支援する必要もあります。

例は、一般的なターゲットではなくATRインジケーターを使用して取引ターゲット(StoplossおよびTakeProfit)を設定することを提案することです。 

顧客が悪い決断をしていると思うときはいつでも気軽に伝え、彼らが望むような製品を達成するために試すべきより良いことを提案することができます。例は、顧客に資金管理ルールがないことに気付いた場合に、エキスパートアドバイザーに資金管理ルールを設定するように提案することです。

顧客に彼らの考えがばかげていると伝えることは仲裁に終わる一番の方法であり、次にフリーランスであなたと一緒に働きたいクライアントがゼロ(0)になる確実な方法なので、避けるべきです。

解決策や意見は慎重にしてください。顧客が最初に望んでいたものから大きく逸脱しないようにしてください。彼らがすでに望んでいるものに固執してください。

また、あなたのやり方が収益性の高い取引につながり、短期間に高いリターンを生み出す可能性があることを保証しないようにしてください。トレーダー側を認めながら、常に開発者側に固執する必要があります。


09: あなたを出し抜こうとしている顧客にご注意

あなたよりあなたの仕事をよく理解しているように見える顧客と出会うことが何度かあります。中には、開発者仲間や、別の言語などからコーディングについて少し知識がある人がいるかもしれません。

何らかの奇妙な理由で、これらのクライアントの中には、仕事の仕様とは別に、あなたが何をすべきか、何をすべきでないかをあなたに伝えることによってあなたを出し抜くことを望むでしょう。(コーディングする必要のある関数、使用する必要のあるライブラリなど。)

彼らは特定の仕事においてあなたの顧客なので、無視されるべきではありません、彼らは正しいかもしれないですがあなたに何をしてほしいかを知っているかどうかはわからないので、あなたは正しいことをしないように説得されるべきではありません。

医者が患者を手術しようとしているところを想像してみてください。医者が手を洗い始めるとすぐに、患者が「そのような些細なことをしないで、手術をするだけで大丈夫ですよ」と言ったとします。医者は自分がしていることの結果を知っており、自分が何をすべきかについての最終決定権を持つべきであるはずです。

コーディングを要する多くのことは取引に直接貢献せず、プログラムを簡単かつ安全に使用できるようにするためのもので、知識の少ない顧客がそれらをプログラムに含めないように指示する場合があります。

クライアントがあなたに何かをしないように、または他の方法でするように言ったときは常に、あなたがしていることの重要性を伝え、そうすべきでない良い理由を求めてください。クライアントがあなたが必要だと思わないことをするように言ったときも同じです。あなたが両方ともその状況に同意しない場合は、顧客が望むことをする前に警告を出します。


10: 上手く行う

これは、長期的に成功するフリーランサーになりたいプログラマーにとって最も重要なことだと思います。

上手く仕事をしていれば、顧客に気づかれ、たくさんの顧客を得るのは当然のことです。

顧客があなたと再び仕事をしたいと思うのは、プロファイルに表示される素晴らしい履歴書と開発者評価のためだけではありません。また、フリーランスで自分の仕事をするのにふさわしい人を盲目的に探すリスクを望む顧客はいないので、顧客があなたを友人に紹介する可能性が高いです。

成功したすべてのフリーランス開発者のうちに、上手く仕事をやっていない人を見たことがありません。

機会が与えられたどんな仕事でも最善を尽くしてください。そうすれば、仕事を終えるだけに集中している開発者の大多数に先んじることができます。


11: 少数を選択する

「多くの過ちを犯さない限り、人生で正しく行うべきことはほんのわずかです。」
- ウォーレン・バフェット

一度に多くの仕事に応募したり引き受けたりすると、納品やクライアントとのコミュニケーションの効率が低下します。選択肢が多すぎるので、うまくいかないまたは期待を満たさない仕事をあきらめる可能性が高くなります。

フリーランス部門で応募できる仕事の上限は24時間あたり10件です。フリーランスを試した最初の日は、少なくとも8件は獲得できると期待して10件に応募しました。その頃、その週はちょっとお金を稼ぎたかったので、フリーランスをやってみたいと思いました。その結果、私はそれらすべてで拒否されました。数日後アプローチを変えて1つの仕事に応募して採用されました。

何が問題だったのでしょうか。

応募が多すぎたため、またサポートできる履歴書もなかったため、1人の顧客にコミットして自分がその仕事にふさわしい人物であると納得させることができませんでした。説得のためにすべての顧客に送った同一の長い技術的な手紙も機能しませんでした。

これは求人応募だけに当てはまるわけではありません。採用されている仕事にとってさらに重要です。一度に1つではないにしても、いくつかの仕事を引き受けるのは良い習慣です。最初に1つ終了してから、他に進みます。これは、顧客が望まない貧弱な製品の大量の納品ではなく、高品質の納品につながります。

少数を選択することは、少数の仕事の選択だけでなく、扱う仕事の種類の選択にも当てはまります。

記事のほとんどで、私はプログラマーとして専門にすることについて話しました、フリーランスに関しては、得意でありそしてまだもっと改善を切望している分野に特化した仕事を選ぶ必要があります。

12: 彼らの友達になる

頻繁に商品やサービスを購入する忠実な顧客なしで成功するビジネスはありません。

フリーランスを成功させたいのであれば、長期的には、顧客との友好関係を築き、顧客が次回あなたを雇いたいと思うようにすることを検討する必要があります。 

購入するもの、使用するサービス、行く場所の大部分が自分が信頼するものであるという現実の生活の中で、これは共感できることであると願っています。人は、外国人の店よりも友人の店で何かを購入する可能性が高いです。 

MQL5プロファイルで利用可能な友達リストに顧客を追加することで、顧客と簡単に友情を築くことができます。また、彼らが雇いたいときはいつでもあなたが自由であることを彼らに知らせることができます。

次の形式で優先するhire-meリンクを作成して、彼らが簡単に雇えるようにします: https://www.mql5.com/ja/job/new?prefered=yourusername


終わりに

この記事はこれで終わりです。フリーランサーとして成功するのに役立つ何か前向きなものが手に入ったかと思います。この記事で欠けている知恵がありましたら、自由に追加してください。

MetaQuotes Ltdにより英語から翻訳されました。
元の記事: https://www.mql5.com/en/articles/9995

マーケット価格予測に対する汎用回帰モデル(第2部): 自然、技術、社会の過渡関数 マーケット価格予測に対する汎用回帰モデル(第2部): 自然、技術、社会の過渡関数
本稿は前稿からの論理的続編で、最初の記事で出された結論を確認する事実にハイライトを当てています。これらの事実は、その出版後10年以内に明らかになったもので、マーケット価格変化のパターンを説明する3つの検出された動的過渡関数を中心としています。
DoEasyライブラリのグラフィックス(第89部): 抽象標準グラフィカルオブジェクトのプログラミング基本機能 DoEasyライブラリのグラフィックス(第89部): 抽象標準グラフィカルオブジェクトのプログラミング基本機能
現在、ライブラリでは、一部のパラメータの削除や変更など、クライアントターミナルのチャート上の標準のグラフィカルオブジェクトを追跡できます。現時点では、カスタムプログラムから標準グラフィカルオブジェクトを作成する機能はありません。
MetaTrader用の高度なEAコンストラクター - BotBrains.app MetaTrader用の高度なEAコンストラクター - BotBrains.app
この記事では、自動売買ロボットのためのノーコード開発プラットフォームであるBotBrains.appの機能を紹介します。自動売買ロボットを作成するために、コードを書く必要はありません。必要なブロックをスキームにドラッグアンドドロップし、パラメータを設定して、それらの間の接続を確立するだけです。
MQL言語を使用したゼロからのディープニューラルネットワークプログラミング MQL言語を使用したゼロからのディープニューラルネットワークプログラミング
この記事は、MQL4/5言語を使用してディープニューラルネットワークを最初から作成する方法を読者に教えることを目的としています。