English Русский 中文 Español Deutsch 日本語 Português 한국어 Français Türkçe
Programmatore Migliore (Parte 07): Note su come diventare uno sviluppatore freelance di successo

Programmatore Migliore (Parte 07): Note su come diventare uno sviluppatore freelance di successo

MetaTrader 5Esempi | 28 aprile 2022, 16:42
227 2
Omega J Msigwa
Omega J Msigwa

Introduzione

Freelance è una delle aree di cui vale la pena discutere in MQL5 poiché molti sviluppatori vorrebbero guadagnare dalla loro capacità di programmare mentre altri vorrebbero semplicemente la sfida e l'esperienza. Queste sono le opinioni che sono state organizzate da me e da altre esperienze di successo e infruttuose quando si tratta di freelance. Attraverso la condivisione di queste esperienze, questo articolo ha lo scopo di migliorare chiunque nel proprio percorso per diventare un programmatore migliore quando si tratta di freelance. In questo articolo, vedrai cosa ha funzionato e cosa non ha funzionato per me e gli altri solo per darti un'idea del tuo viaggio indipendente.

diventa un freelancer di successo in MQL5

 

" Non dedicare metà dello sforzo a meno che tu non voglia accettare metà dei risultati "

Sommario

  1.  Non fare domanda per un lavoro che non conosci
  2.  Fai la ricerca
  3.  Evita di impegnare troppo il tuo cliente
  4.  Attieniti a MQL5.com
  5.  Evita di sembrare tecnico ai tuoi clienti
  6.  Sii onesto con te stesso e con i tuoi clienti
  7.  Inizia con un codice pulito
  8.  Non sei solo un programmatore ma anche un risolutore di problemi
  9.  Fai attenzione ai clienti che cercano di superarti in astuzia
  10.  Fallo bene
  11.  Scegli solo alcuni
  12.  Diventa loro amico

01: Non fare domanda per un lavoro che non conosci

Non fare domanda per un lavoro che non sei sicuro di saper fare, solo perché il guadagno è alto. Dal momento che i soldi sono dolci e credo siano il primo motivo per cui hai deciso di diventare uno sviluppatore freelance in primo luogo, è facile convincersi a pensare che capirai e risolverai le cose mentre lavori. Per mia esperienza, questa mentalità non funziona nel freelance, soprattutto per i clienti seri che sanno esattamente cosa stanno cercando e per i lavori con scadenze strette.

Vedi, la maggior parte delle aree della programmazione richiede molto lavoro e impegno per imparare a padroneggiarle, quindi pensare che imparerai qualcosa e sarai in grado di implementarlo efficacemente per diverse ore è disgustoso.

Il secondo lavoro che ho svolto come freelance è stato un lavoro per creare diversi indicatori, per convertirne alcuni da MQL4 a MQL5 e per creare un Expert Advisor che li utilizzasse tutti. Il lavoro costava solo 30 $, ma ho deciso di accettarlo. Onestamente, sapevo che gli indicatori che voleva sarebbero stati difficili per me da creare, dopo che mi aveva spiegato completamente tutta la logica e cosa voleva nella sezione di discussione del lavoro, perché ero un novellino in materia di indicatori (fino a oggi), perché non li imparo, non li codifico o non li uso. Come risultato di aver accettato quel lavoro, ho finito per eseguire il lavoro in 81 giorni.

tempo di esecuzione lavoro lungo in MQl5 freelance

Se facciamo i calcoli su quanto sono stato pagato al giorno per tutto il tempo.

30 / 81  = 0.37 $

Ho guadagnato 37 centesimi al giorno per tutto il tempo. Che spreco di tempo! So che 81 giorni sembrano lunghi, ma fidati di me quando dico che non lo farai tutti i giorni. Ci sono alcune settimane in cui non ho fatto nulla perché era difficile e noioso e non era qualcosa che volevo fare. Né volevo l'arbitrato, perché ho commesso io un errore nell'accettare il lavoro e volevo finirlo in ogni caso.

Se vedi un lavoro su un determinato argomento che ignori e vuoi imparare, prendine nota e impara facendolo al di fuori del lavoro nell'ambito delle tue normali routine di apprendimento. Lo stesso lavoro si presenterà probabilmente in futuro.


02: Fai la ricerca.

Sono pienamente d'accordo con il mio amico Abdul Wahab che è uno sviluppatore di successo.

conversazione con abdul wahab and omega joctan


Potresti capire a prima vista in cosa consiste il lavoro, ma non sarai in grado di capirlo tutto così facilmente. Ecco perché è sempre una buona idea ricercare i requisiti di lavoro per ogni lavoro per il quale stai cercando di candidarti. Questo potrebbe aiutarti a capire nel dettaglio il lavoro che stai cercando di fare, inoltre sarai dotato delle giuste informazioni che ti aiuteranno a rispondere alle domande che un cliente serio potrebbe farti per assicurarsi che tu sia la persona giusta che capisce il lavoro.

Per esempio:

esempio di specifiche di lavoro


Prima di affrettarti a prendere un lavoro del genere perché sembra facile e il prezzo è alto, fai una semplice ricerca per identificare queste due cose importanti:

  1.  È possibile per me implementare ciò che vuole un cliente, in base alla mia esperienza con MQL5 or MQL4
  2.  Ne vale la pena (l'esperienza e il denaro).

Fare la ricerca non significa necessariamente ricercare solo su google. Significa anche provare da soli con la pratica e il pensiero critico sul risultato.


03: Evita di impegnare troppo il tuo cliente

Diamo un'occhiata al post sul forum che mi sono imbattuto la scorsa settimana https://www.mql5.com/en/forum/371968

Tutto è iniziato qui:

sviluppatore irresponsabile sull'esempio freelance MQL5


È folle per un medico voler conoscere appieno la malattia e la sua cura da una persona che ignora il trattamento. Lo stesso di uno sviluppatore che vuole sapere perché il codice non funziona come previsto da un cliente.

Adoro il modo in cui Fernando Carreiro ha risposto all'argomento quando ha detto


Risposta di Fernando Carreiro sullo sviluppatore irresponsabile Mql5 freelance


Se un cliente può fare una ricerca da solo e scoprire cosa c'è che non va, non c'è bisogno di uno sviluppatore in primo luogo se ti imbatti in un problema che non riesci a capire come sviluppatore. Pensa a quanto potrebbe essere difficile per un cliente. In effetti, cosa può fare un cliente con una risposta se sa e si rende conto che si tratta di un problema relativo alla codifica?

Assumiti la piena responsabilità di tutto ciò che accade al lavoro del tuo cliente perché è quello che sei lì per fare e sei tu quello che ha fatto domanda per il lavoro, non un cliente.


04: Attieniti a MQL5.com

Succede più volte nel freelance che le persone pubblichino lavori al di fuori dell'ambito di MQL5.com. Lavori come la conversione di uno script pine, il sistema EA di licenze Web e molti altri correlati a questi. Non ti consiglio di accettare quei tipi di lavori a meno che tu non sia un esperto in quelle aree ed è quello che vuoi fare in MQL5 freelance.

Questi lavori spesso hanno poca o nessuna concorrenza al punto che potresti essere tentato di imparare quei campi in modo da poter diventare tra le poche persone ad accettare quei lavori la prossima volta.

Non vale la pena accettare questi lavori, indipendentemente dai cartellini dei prezzi che potrebbero avere.

Ecco perché

Dal momento che sono al di fuori del linguaggio di programmazione MQL5.com (MQL5, MQL4 e Python), richiedono che tu impari qualcosa di nuovo. Come sviluppatore web, inoltre, non ti consiglierei di conoscere tutti i framework, le librerie, ecc. che potresti incontrare perché ce ne sono troppi, senza contare che questi tipi di lavori sono così rari nella sezione freelance da rendere una cattiva idea imparare qualcosa che utilizzerai di tanto in tanto.

Un'altra cosa è che questi lavori non finiscono solo nella scrittura di codice, richiedono un lavoro aggiuntivo. Per esempio:

Licensing di un Expert Advisor in un esempio di modulo di server Web che ti ho fornito in precedenza.

Se scegli una soluzione completa, avrai bisogno di un ambiente di hosting sul cloud per ospitare un database sicuro come PostgreSQL (l'hosting non è gratuito, tienilo a mente), dovrai leggere e scrivere dal database, qualcosa che potrebbe richiedere framework di back-end web aggiuntivi come Flask, express o Node js... e molti processi intermedi per misure di sicurezza ed efficacia.

Per farla breve.

Dopo tutte le implementazioni potrebbe ancora non funzionare affatto o nel modo in cui desideri che funzioni nelle piattaforme MetaTrader.


05: Evita di sembrare tecnico ai tuoi clienti

Il 90% dei clienti del freelance non sa nulla di codice o dei tecnicismi del trading e dei sistemi di trading automatizzati. Quindi evita sempre di sembrare tecnico quando stai cercando di spiegare loro qualcosa che hai fatto per loro. Usa sempre un linguaggio con cui hanno già familiarità e spiega direttamente ciò che vogliono e come li aiuterai a raggiungerlo.

Esempio del cattivo modo di avere una conversazione con un cliente:

Esempio di pessima conversazione con un cliente su Mql5 freelance

(Questa conversazione non è reale al 100%, ho modificato parte del testo in Photoshop)

Racconta e mostra ai tuoi clienti ciò che vogliono rispettivamente sentire e vedere, niente di più niente di meno. Questo gli farà piacere ancora di più perché sembri capirli parlando la lingua che già conoscono.

Esempio di buona conversazione con un cliente.

Esempio di buona conversazione con un cliente

(Questa conversazione non è reale al 100%, ho modificato parte del testo in Photoshop)

Non parlare mai con il tuo cliente come se fosse un tuo collega sviluppatore o qualcuno a cui stai cercando di insegnare a programmare.


06: Sii onesto con te stesso e con i tuoi clienti

Questa è la parte difficile per la maggior parte degli sviluppatori. Quando dico che devi essere onesto con te stesso, intendo dire che devi essere onesto nei prezzi che offri quando fai domanda per un determinato lavoro e nel numero di giorni in cui sei disposto a fornire un determinato lavoro come freelance.

È facile vincere la battaglia di richiedere il prezzo più basso e la scadenza più breve possibile. Ma questo è il modo migliore per abbassare il tuo valore e ti porterà inconsciamente a lavori meno preziosi e clienti che sono sensibili al prezzo, tutto quello che posso dire è che quel tipo di lavoro non ha una bella conclusione la maggior parte delle volte.

Non incoraggio a chiedere prezzi più alti senza una buona ragione (non fraintendetemi). Ma penso che sia una buona cosa per valutare il lavoro e il tempo che il lavoro potrebbe richiedere. Se pensi che il lavoro valga 100 $, così sia. Penso che gli sviluppatori MQL5 ci abbiano pensato, ecco perché hanno dato a noi sviluppatori la possibilità di applicare il prezzo che pensiamo valga il lavoro, a parte il prezzo del cliente.

Ricordo che una volta ho chiesto un lavoro per aggiungere reti neurali a un Expert Advisor già creato. Il prezzo che un cliente era disposto a pagare variava da 50$ a 300$. Ho richiesto 250 $ per 3 giorni. Successivamente sono stato rifiutato dal cliente, mi sono reso conto che era onesto dopo avermi inviato un messaggio come il seguente.

"Mi dispiace non poter lavorare con te, smi rivolgerò a un programmatore con un'offerta migliore, ne ho già trovato uno"

Ero curioso di sapere quale fosse l'offerta che aveva conquistato il cliente, quindi ho chiesto quale fosse l'offerta e il cliente ha risposto

"Ha detto 40 $ e consegnerà il lavoro oggi".

L'offerta mi ha fatto sentire un programmatore incompetente. Ma con mia sorpresa una settimana dopo ho ricevuto una notifica nella sezione del lavoro che il cliente stava cercando un altro sviluppatore per completare il lavoro. Non sono sicuro del motivo per cui il lavoro è finito in arbitrato, ma qualcosa è andato storto.

Non è una buona idea diventare l'opzione più economica e veloce solo per essere assunto nei lavori più difficili di cui presto o tardi ti pentirai.

Quando dico di essere onesto con i tuoi clienti intendo ch dovresti dire loro di cosa sei capace e cosa dovrebbero aspettarsi da te. Inoltre dì loro quando ti sembra di non capire cosa vogliono che tu faccia. Essere onesto ti aiuterà a guadagnare la fiducia dei tuoi clienti poiché significa dimostrare loro che sei uno sviluppatore aperto di cui possono fidarsi.


07: Inizia con un codice pulito

NON creare un campione di software spazzatura solo per dimostrarlo ai tuoi clienti in modo che possano assumerti immediatamente. Non codificare rapidamente le cose solo per completare il lavoro e passare ad altri lavori. In questo modo i tuoi clienti ti eviteranno la prossima volta, nel momento in cui si renderanno conto che il prodotto che hai creato per loro è una schifezza.

Non importa quanto piccolo possa sembrare un lavoro, fallo sempre come se non avessi la possibilità di farlo di nuovo. Considera le migliori implementazioni del codice e scrivi il codice che gestisca le eccezioni nel caso in cui si verifichino e, cosa più importante di tutte, esegui il debug.

Scrivi un codice pulito dall'inizio alla fine.

Inoltre, non perderti nella scrittura di codice non pulito solo per dimostrare un prodotto, pensando che lo ripulirai in seguito. Questa è una cattiva abitudine che può portare a un prodotto di scarsa qualità poiché è molto probabile che dimenticherai di pulirlo quando alla fine del lavoro.


08: Non sei solo un programmatore ma anche un risolutore di problemi

Come sviluppatore, sei più esperto del tuo cliente sotto molti aspetti. Non devi solo codificare il programma in base alle specifiche di lavoro fornite, devi anche aiutare i tuoi clienti suggerendo quali potrebbero essere i modi migliori per ottenere i risultati desiderati.

Ad esempio, potresti suggerire l'uso dell'indicatore ATR per impostare obiettivi di trading (Stoploss e TakeProfit) piuttosto che obiettivi generici. 

A volte puoi sentirti libero di dire loro che pensi che stiano prendendo una decisione sbagliata e suggerire cose migliori che dovrebbero provare per ottenere il tipo di prodotto che desiderano. Ad esempio potresti suggerire a un cliente di avere regole di gestione del denaro nel suo Expert Advisor quando noti che non ne ha uno.

Dire al tuo cliente che la sua idea è stupida è il modo migliore per finire in arbitrato e un modo sicuro per avere zero (0) clienti con cui lavorare con te la prossima volta nel freelance. Evita di farlo.

Fai attenzione alle tue soluzioni e opinioni. Assicurati che non si discostino troppo da ciò che il cliente desiderava inizialmente. Attieniti a ciò che già vogliono.

Inoltre, assicurati di non garantire che i tuoi metodi possano portare a un trading redditizio e a generare rendimenti più elevati in un breve periodo. Devi sempre attenerti allo sviluppo, tenendo presente il lato del trader.


09: Fai attenzione ai clienti che cercano di superarti in astuzia

Ci sono molte volte in cui incontrerai clienti che sembrano capire il tuo lavoro meglio di te. Alcuni di loro potrebbero essere colleghi sviluppatori o qualcuno che ha un po' di conoscenza della programmazione da un'altra lingua o qualcosa del genere.

Stranamente, alcuni di questi clienti vorranno superarti in astuzia dicendoti cosa dovresti fare e cosa non dovresti fare, al di là delle specifiche del lavoro. Ti diranno le funzioni che dovresti codificare, le librerie che dovresti usare, ecc.

Dato che sono i tuoi clienti, in quel particolare lavoro, non dovresti ignorarli, forse hanno ragione, ma assicurati che non ti dissuadano dal fare la cosa giusta perché non puoi essere sicuro che sappiano cosa vogliono che tu faccia .

Immagina un dottore che cerca di operare il paziente, non appena inizia a lavarsi le mani il paziente esordisce dicendo al dottore 'Non c'è bisogno di fare tutte quelle piccole cose, fai solo l'operazione, starò bene '. Credo che il dottore conosca le conseguenze di ciò che sta facendo, quindi è lui che dovrebbe avere l'ultima parola su ciò che dovrebbe fare.

Ci sono molte cose da programmare che non contribuiscono direttamente al trading, ma che rendono i nostri programmi facili e sicuri da usare. Un cliente meno esperto potrebbe chiederti di non includerli nel suo programma.

Ogni volta che un cliente ti dice di non fare qualcosa o di farla, spiegagli il significato di ciò che stai facendo e chiedigli perché non dovresti. Lo stesso vale quando un cliente ti dice di fare qualcosa che ritieni non sia necessario, se non siete entrambi d'accordo su quella situazione, fornisci un avvertimento prima di fare ciò che il cliente vuole.


10: Fallo bene

Credo che questa sia la cosa più importante di tutte per qualsiasi programmatore che voglia diventare un freelancer di successo a lungo termine.

Se fai bene il tuo lavoro verrai notato dai clienti e succederà naturalmente che otterrai molti clienti.

Questo non dipende solo da un bel curriculum e dal rating di sviluppatore che mostrerà il tuo profilo. saranno i clienti stessi a voler lavorare di nuovo con te ed è molto probabile che ti riferiranno ai loro amici poiché nessun cliente vuole andare alla cieca nel freelance alla ricerca della persona giusta per svolgere il proprio lavoro.

Passando in rassegna tutti gli sviluppatori freelance di successo, non ho visto mai nessuno che non fa bene il suo lavoro.

Assicurati di fare del tuo meglio in ogni lavoro che ti capita e sarai in testa alla maggior parte degli sviluppatori che si concentrano solo sul completamento del lavoro.


11: Scegli solo alcuni

"Devi fare solo poche cose per bene nella tua vita a meno che tunon faccia troppe cose sbagliate".
-- Warren Buffett

Chiedere/prendere troppi lavori alla volta ridurrà la tua efficienza nella consegna del lavoro e nella comunicazione con un cliente. Probabilmente rinuncerai a qualsiasi lavoro che non sembri andare bene o che non soddisfi aspettative poiché avrai troppe opzioni.

Il limite per candidarsi ai lavori nella sezione freelance è di 10 ogni 24 ore. Lo sapevo il primo giorno in cui ho provato il freelance quando ho fatto domanda per 10 lavori con l'aspettativa di ottenerne almeno 8. Durante quel periodo, volevo guadagnare velocemente, provando a fare il freelancer. Di conseguenza, sono stato respinto da tutti. Sono stato assunto diversi giorni dopo aver cambiato approccio quando ho fatto domanda per un solo lavoro.

Cosa è andato storto?

Avendo fatto domanda per troppi lavori, non sono stato in grado di impegnarmi con un cliente e convincerlo che ero la persona giusta per il lavoro. In più, non avevo ancora un curriculum a supportarmi. Il lungo testo tecnico che ho inviato a tutti i clienti per convincerli non ha funzionato.

Questo non riguarda solo le domande di lavoro, conta ancora di più nel lavoro per cui vieni effettivamente assunto. E' buona abitudine intraprendere pochi lavori, se non uno alla volta. Finiscine un lavor, quindi passa a un altro. Ciò porta a una consegna di alta qualità piuttosto che a una consegna di quantità elevate di prodotti scadenti che nessun cliente desidera.

'Scegli solo alcuni' non significa solo scegliere alcuni lavori, ma anche scegliere solo alcune tipologie di lavori.

Ho parlato della specializzazione nella maggior parte dei miei articoli sui programmatori, quindi quando si tratta di freelance devi anche scegliere lavori specializzati in quelle aree in cui sei bravo e che desideri ancora migliorare.

12: Diventa loro amico

Non c'è attività di successo senza clienti fedeli che acquistano frequentemente beni o servizi.

Se vuoi essere un freelancer di successo, a lungo termine, devi considerare di costruire relazioni amichevoli con i tuoi clienti e rendere più facile per loro volerti assumere la prossima volta. 

Spero che tu possa relazionarti con questo nella vita reale, dove la maggior parte delle cose che acquisti, i servizi che usi e i luoghi in cui vai sono quelli di cui ti fidi. È più probabile che tu acquisti nel negozio di un amico piuttosto che in quello di uno sconosciuto. 

Puoi facilmente fare amicizia con il tuo cliente aggiungendolo all'elenco dei tuoi amici disponibile sul tuo profilo MQL5. Puoi anche far loro sapere che sei disponibile per loro ogni volta che desiderano assumerti.

Semplifica loro la tua assunzione creando un link preferito 'assumimi' in questo formato https://www.mql5.com/ru/job/new?prefered=yourusername


Conclusione

Questo è tutto per questo articolo. Credo che tu abbia acquisito qualcosa di positivo che ti aiuterà a diventare un Freelancer di successo. Sentiti libero di aggiungere perle di saggezza che non hai in questo articolo.

Tradotto dall’inglese da MetaQuotes Ltd.
Articolo originale: https://www.mql5.com/en/articles/9995

Ultimi commenti | Vai alla discussione (2)
Abdul Wahab
Abdul Wahab | 4 nov 2021 a 10:26
Sembra grande, continua così, grazie
Teepee Fortune
Teepee Fortune | 16 nov 2021 a 15:59
Hai fatto un grande lavoro
Scopri perché e come progettare il tuo sistema di trading algoritmico Scopri perché e come progettare il tuo sistema di trading algoritmico
Questo articolo mostra le basi di MQL per i principianti che vogliono progettare il loro sistema di trading algoritmico (Expert Advisor) attraverso la progettazione di un semplice sistema di trading algoritmico, dopo aver passato in rassegna alcune delle basi di MQL5
Programmazione di una rete neurale profonda da zero utilizzando il linguaggio MQL Programmazione di una rete neurale profonda da zero utilizzando il linguaggio MQL
Questo articolo ha lo scopo di insegnare al lettore come creare una rete neurale profonda da zero utilizzando il linguaggio MQL4/5.
Sviluppo di un Expert Advisor di trading da zero Sviluppo di un Expert Advisor di trading da zero
In questo articolo, discuteremo come sviluppare un robot di trading con una programmazione minima. Naturalmente, MetaTrader 5 offre un elevato livello di controllo sulle posizioni di trading. Tuttavia, utilizzare solo la capacità manuale di effettuare ordini può essere piuttosto difficile e rischioso per gli utenti meno esperti.
Programmatore Migliore (Parte 06): 9 abitudini che portano a una codifica efficace Programmatore Migliore (Parte 06): 9 abitudini che portano a una codifica efficace
Non si tratta sempre di scrivere il codice che porta a una codifica efficace. Ci sono alcune abitudini che ho trovato nella mia esperienza che portano a una codifica efficace. Ne discuteremo alcuni in dettaglio in questo articolo. Questo è un articolo da leggere per ogni programmatore che vuole migliorare la propria capacità di scrivere algoritmi complessi con meno problemi.