Svantaggi del codice kata


41

Il codice kata è un concetto che propone di affinare l'abilità del programmatore facendo piccoli problemi molte volte cercando di migliorare il codice ad ogni iterazione. Il nome deriva da un'analogia con il kata di arte marziale in cui le forme (alias kata) sono pratiche che vengono ripetute più volte portando a miglioramenti.

Dalla reazione che ho avuto alla mia ultima domanda sull'argomento, vorrei sapere quali sono gli svantaggi di questo approccio?


+1 per contrastare l'improduttivo -1 applicato. Sembra una domanda valida, così come i miei dubbi su Code kata, ma non riesco a capire perché.
Mattnz,

9
fino ad oggi non avevo idea di cosa trattasse questo kata. Ora l'ho appena verificato e immagino sia solo un nome di fantasia per qualcosa che ogni programmatore sano di mente fa e impara automaticamente mentre si sviluppa: esercitarsi. Quindi lo svantaggio per me sarebbe: ci vuole solo tempo extra che potrebbe essere utilizzato diversamente.
stijn

11
Hmm ... a quanto pare, uno dei maggiori svantaggi del codice kata sembra essere la gente che sta criticando il codice kata senza capire quali siano i codici kata :-)
Jörg W Mittag

19
@ JörgWMittag - Questo perché il termine 'kata' è una cattiva analogia poiché implica la pratica della forma rigida con scarso significato pratico nelle situazioni del mondo reale. Applicare parole di arti marziali, come "cintura nera" o "kata", a situazioni di programmazione o di lavoro mi infastidisce.
jfrankcarr il

Risposte:


22

In linea di principio, non vedo svantaggi nel codice kata. Si tenta di svolgere più volte lo stesso compito, con approcci e lingue diverse. Ma

  1. è piuttosto difficile introdurlo in un posto di lavoro. Di solito ci si aspetta che tu sia competente o ragionevolmente produttivo. Non sto dicendo che non sarebbe utile (meglio dedicare un po 'di tempo a migliorare le capacità di una nuova assunzione piuttosto che pagare per il codice non così buono che scriverà in futuro) ma è comunque difficile.
  2. devi effettivamente cercare di migliorare in un certo senso. Scrivere lo stesso codice nello stesso modo mille volte non ti farà migliorare (anzi ti attenuerà). Devi capire i tuoi errori precedenti, cosa è andato storto o non ha funzionato come previsto. Questa è la parte più importante È una forma di studio personale, quindi devi studiare.

1
Ho accettato questa risposta perché affronta direttamente la domanda (anziché la terminologia "kata") e si concentra sui potenziali problemi della pratica del codice kata. Questo non vuol dire che le altre risposte non sono buone - in effetti, sarei felice di accettarne più di una!
Sardathrion - Ripristina Monica

43

Penso che programmare il kata, come il kata di arti marziali, riguardi principalmente la forma piuttosto che la funzione. Potrebbe insegnarti a scrivere un codice elegante, ma non ti insegnerà a risolvere i problemi per cui stai scrivendo il codice. Penso che un modo migliore per migliorare come programmatore sia quello di risolvere enigmi che richiedono una reale risoluzione dei problemi e di lavorare su progetti più grandi che ti insegneranno il valore di un codice ben fatto in un modo che il kata del codice non potrà mai insegnarti.

A parte questo, penso che termini come "code kata" e "artigianato del software" siano più legati alla romanticizzazione della nostra professione che alla descrizione di qualcosa di nuovo o utile.


4
Fai quel +2 per quella frase.
Erik Dietrich,

6
Mentre sono d'accordo sul fatto che risolvere i problemi è un buon modo per migliorare come programmatore, imparare a scrivere codice elegante può essere anche una ricerca utile. Vorrei che alcuni degli sviluppatori originali di codice che attualmente mantengo avessero impiegato del tempo e degli sforzi per scrivere un codice elegante piuttosto che copiarlo e incollarlo per far funzionare le cose.
Mike Partridge,

1
+3 per il commento di Mike. In generale, si impiega molto più tempo a mantenere il codice di quanto non si impieghi inizialmente a scriverlo. Ti aspetteresti che l'arte venga applicata quando qualcuno costruisce la tua casa, dal momento che ci vivrai a lungo. Lo stesso dovrebbe essere applicato quando qualcuno crea software, ma la maggior parte delle volte non lo è.
Kaleb Brasee,

@KaptajnKold: Stai parlando della tua esperienza? Mi piacerebbe sentire alcuni commenti di qualcuno che ha davvero cercato di migliorare le sue abilità attraverso CodeKata e non ci è riuscito.
dzieciou,

2
@dzieciou: ho esperienza nel kata di arti marziali che pratica il Karate da diversi anni. E mentre credo che ci siano alcuni aspetti utili del combattimento che possono essere appresi dai kata, credo anche che alla fine non sia un modo molto efficace per allenarsi. Dovresti allenarti mentre combatti come si suol dire. Cioè se il tuo scopo è diventare un combattente migliore. Alcune persone trovano che praticare il kata sia una ricerca gioiosa in sé. Non c'è niente di sbagliato in questo. Alla fine alcuni di loro diventano molto buoni. A Kata.
KaptajnKold,

20

Il codice kata richiede solo tempo.

Essendo sviluppatore e padre a tempo pieno, non voglio rendere il computer un hobby.

E non immagino che il mio capo mi pagherebbe per sviluppare applicazioni estranee al mio attuale progetto.


10
C'è qualche tipo di apprendimento che non richiede tempo? A meno che tu non abbia la fortuna di lavorare su progetti greenfield ogni volta.
Den

38
Se non hai speso almeno una piccola quantità del tuo tempo libero per migliorare le tue capacità di programmazione su base regolare la tua carriera professionale è in grave pericolo.
Ladislav Mrnka,

7
+1 a questo. Mentre adoro assolutamente programmare e che sono in grado di guadagnare denaro su qualcosa che amo fare, non vedo il punto di fare PIÙ programmazione al di fuori del lavoro. Ho così tanti altri hobby (DJ, produzione di musica, sollevamento pesi, disegno e danza di strada per esempio) che non vedo il punto di passare più ore su qualcosa che faccio già 40 ore alla settimana.
Andreas Johansson,

7
@mouviciel: E questo è esattamente il problema: il tuo capo è disposto a pagare per il tuo sviluppo professionale, se è necessario per il progetto ma dovresti essere disposto a migliorare le tue abilità non correlate al tuo progetto attuale - forse non correlate al tuo attuale piattaforma a tutti. Questo è ciò che costruisce la tua carriera / sicurezza sociale.
Ladislav Mrnka,

6
@LadislavMrnka - Sono d'accordo con te. Tuttavia, il codice kata non è la risposta a questo problema.
mouviciel,

13

Come pugile, dovrei essere in disaccordo con il principio alla base del kata. È troppo rigido per essere effettivamente utile. Sul ring, devi capire come applicare i principi che hai imparato in un ambiente a flusso libero.

Questo non vuol dire che l'apprendimento e il miglioramento della tecnica non dovrebbero essere fatti. Praticare sulle borse ti permette di lavorare con un pugno e sentire come lo lanci, lo stesso di un kata. Ma non è così rigido. Stai praticando molte cose allo stesso tempo, muovendoti attorno alla borsa, lanciando da una piattaforma stabile, mirando, respirando, la lista continua.

Ancora più importante, tutto viene appreso insieme nel modo in cui verrà effettivamente utilizzato. Se riesci a scrivere il loop più bello di sempre, ma non riesci a capire come inserirlo in un programma, a che serve?

Direi che una cosa migliore da fare se vuoi fare pratica sarebbe costruire te stesso strumenti o lavorare sugli strumenti che usi. Richiede di esercitare tutte le tue abilità e alla fine potresti avere qualcosa di utile.


esatto. prima sono anche un pugile / programmatore :).
Paul Sanwald,

1
I kata di codice non riguardano la rigida ripetizione; si occupano principalmente di lavorare per risolvere un problema, quindi di lavorare per migliorare la tua soluzione fino a quando non sei soddisfatto. Da Kata One: "L'obiettivo di questo kata è quello di praticare uno stile più libero di modellizzazione sperimentale. Cercare il maggior numero possibile di modi per gestire i problemi. Considerare i vari compromessi di ciascuno. Quali tecniche utilizzare meglio per esplorare questi modelli? Per registrarli? Come è possibile validare un modello è ragionevole? "
Mike Partridge,

4
Sono d'accordo sul fatto che il termine "kata" sia imperfetto, ma non ho perso di vista il loro punto a causa del nome. Inoltre, non sono tutti problemi di parole; da Kata Two: "Implementa una routine di ricerca binaria (usando le specifiche seguenti) nel linguaggio e nella tecnica che preferisci. Domani, implementala di nuovo, usando una tecnica totalmente diversa. Fai lo stesso il giorno successivo, fino a quando non ne avrai cinque totalmente unici implementazioni di un chop binario (ad esempio, una soluzione potrebbe essere il tradizionale approccio iterativo, uno potrebbe essere ricorsivo, uno potrebbe usare uno stile funzionale passando frammenti di array e così via) ".
Mike Partridge,

3
@MikePartridge Questo esemplifica il mio punto. Un kata implicherebbe un metodo di ricerca binaria che migliora ogni giorno, diciamo con meno righe o meno tempo impiegato per scriverlo da zero. Come è descritto un concetto è importante per definirlo. Avrebbe potuto semplicemente chiamarlo pratica programmazione, che è di cosa parlano gli articoli, senza portare con sé bagagli errati. Spetta all'autore scegliere parole e concetti che definiscono correttamente la sua idea, non lamentarsi del fatto che il suo pubblico stia prendendo associazioni errate a causa della sua scelta della metafora.
Spencer Rathbun,

3
@MikePartridge Nel mio caso, credo che tutti i programmatori stiano imparando / migliorando, o dovrebbero essere, sempre. Pertanto, il codice kata è una tecnica che aiuta a raggiungere questo obiettivo e la mia risposta è stata che la tecnica, come la vedevo, non valeva la pena. Sono completamente d'accordo con l'obiettivo, ma non era questa la domanda.
Spencer Rathbun,

11

Dal mio punto di vista, il principale svantaggio è che sarebbe terribilmente noioso. Anche i programmatori sembrano prosperare nello sviluppo di software che fa qualcosa di utile o interessante. L'approccio del codice kata sembrerebbe essere l'opposto di quello.


2
Katas ti insegna nuove cose. Come può essere l'opposto di ciò che i programmatori vogliono fare? Sta anche risolvendo un enigma, non qualcosa che la maggior parte dei bravi programmatori percepirebbe come "noioso". In realtà, questo è il vero cuore dell'hacking.
Konrad Rudolph,

5
@KonradRudolph Pensavo che la ripetizione fosse il cuore dei kata? Quindi risolveresti un problema una volta (forse nuovo ed eccitante) ma poi continueresti a risolvere lo stesso problema ancora e ancora. Ho appena guardato Katas, quindi potrei sbagliarmi.
Kevin D,

@Kevin Sono d'accordo sul fatto che questo sembra stupido (a meno che tu non cerchi specificamente di trovare modi diversi di risolvere il problema). Non ho mai fatto "kata" in quanto tale, solo puzzle di programmazione generici.
Konrad Rudolph,

Come sta facendo sempre la stessa cosa "insegnandoti cose nuove"?

È chiaro nella tua risposta che non hai letto il link fornito nella domanda.
Mike Partridge,

8

Kata significa l' esatto contrario di ciò che dovresti cercare.

un esercizio consistente in una sequenza dei movimenti specifici di un'arte marziale, usata in allenamento e progettata per mostrare abilità nella tecnica

Il termine Kata (origine: 1950–55; <giapponese: forma, modello) come usato nelle arti marziali, e la tua domanda riguarda la memorizzazione automatica della memoria muscolare come la tipizzazione tattile .

Nell'originale Karate Kid, incerare le macchine, levigare i pavimenti, dipingere il recinto erano tutti i Katas a cui era stato insegnato, completamente fuori contesto e in questo caso senza spiegazioni solo per fornire memoria muscolare. Non è stato fino a quando un sensei è entrato e ha dato a queste attività vuote il contesto che hanno significato qualsiasi cosa.

Credo che la stessa cosa si applica qui, senza un mentore per mettere le cose in contesto ri-fare la soluzione dei problemi di sbagliato in più lingue non meglio di uno solo è. Senza il mentore che ti dice dove migliorare sono una perdita di tempo.

È l'esatto contrario di risolvere i problemi in modo creativo imparando nuove varianti di idiomi e semantiche di una lingua o piattaforma.

Se vuoi essere in grado di scrivere System.out.println()nel modo più semplice possibile, allora esercitarti sarebbe un Kata.

Se vuoi migliorare una soluzione a un problema in una diversa implementazione, ridurre i requisiti di tempo e / o spazio o applicare principi più idiomatici, non è qualcosa con cui Kata ti aiuterà.

Esiste già un termine industriale accettato per reimplementare sempre la stessa cosa dopo che ha già lavorato per piccoli miglioramenti incrementali e discutibili benefici della perfezione, si chiama placcatura in oro !

I termini che avrebbero dovuto usare sono Refactoring quando applicati alla stessa lingua / runtime / piattaforma. E porting quando si sposta un programma di lavoro in un'altra lingua / runtime / piattaforma. Kata è stata probabilmente scelta erroneamente perché suona hipster, cool e mistica senza comprendere completamente la semantica.

Risolvere diversi problemi difficili con poca pianificazione, esperienza o orientamento è ciò che la maggior parte degli sviluppatori, in particolare gli sviluppatori junior, devono fare ogni giorno.

Solo gli accademici riescono a fare lo stesso esercizio più e più volte solo per affinare una soluzione specifica. La capacità di avere una carriera di successo come sviluppatore è nell'adattamento , non nella ripetizione.

Chi dice che non ci sono persone intelligenti che non hanno bisogno di studiare dopo il lavoro e possono imparare tutto ciò che è necessario sapere e talvolta più nelle loro 8 ore di lavoro?


E se la cosa che stai praticando è la riprogettazione e il miglioramento del design - ripetendo il processo di progettazione, il termine non potrebbe essere applicato? Puoi trovarne uno migliore?
Bill K

il termine per riprogettare e migliorare un sistema esistente è refactoring (il refactoring del codice è "tecnica disciplinata per ristrutturare un corpo di codice esistente, alterando la sua struttura interna senza modificarne il comportamento esterno"). Hanno scelto Kata perché sembra freddo e mistico, senza capire la semantica.

Il termine refactoring è un termine molto diverso dalla pratica per essere bravo nel refacotoring. Chiunque può eseguire il refactoring del codice, ciò non implica in alcun modo che lo faccia bene o che sia abituato a riconoscere buone opportunità di refactoring. Sebbene "Praticare il refactoring" sia un termine discendente, non trasmette la dedizione di Kata, quindi penso che Kata possa essere una scelta leggermente migliore, anche se sono aperto alla teoria che esiste ancora una frase migliore.
Bill K

1
In realtà Gold Platting si riferisce a "... funzioni aggiuntive o più raffinate". Quello che descrivi sembra più simile all'ottimizzazione precoce, sebbene dopo il fatto.
Joshua Drake,

5

Concordo sul fatto che la metafora "kata" potrebbe non essere la migliore. Un kata nel karate viene eseguito allo scopo di praticare un movimento specifico e discreto fino a quando non può essere eseguito in modo impeccabile, nitido e automatico. Questo non si traduce bene in un'attività in cui sono richiesti pensiero critico e creatività. (Si tradurrebbe meglio, diciamo, digitando).

Detto questo, il fallimento del nome non è un fallimento dell'attività. Quale possibile svantaggio potrebbe esserci nella pratica di qualcosa in cui qualcuno vuole migliorare? Suppongo che si possa dire che il tempo impiegato per farlo è uno svantaggio, dal punto di vista dei costi di opportunità, ma in realtà è un investimento. Quindi, il tempo speso a praticare l'arte dello sviluppo del software è rivolto agli sviluppatori software poiché il denaro speso in azioni o obbligazioni è destinato a un risparmiatore / investitore a lungo termine. Non è uno "svantaggio" - è la posta in gioco.


3

Stai meglio provando cose che sono difficili e appena fuori dalla portata delle tue capacità; sfidare te stesso. Fare lo stesso "code kata" più e più volte, come una forma di arti marziali, non lo fa. Penso che ristagni le tue abilità invece di aiutarti a spingere in avanti le tue abilità.

Ha il suo uso come metodo di pratica la prima volta, ma è limitato. Dico invece alle persone di usare il progetto Euler . Più problemi e più impegnativo.


Scrivere più volte lo stesso programma può essere utile e interessante, ad esempio se lo si fa usando un algoritmo diverso e / o in una lingua diversa ogni volta. Ma probabilmente non è un kata.
9000

2
Leggi il link fornito nella domanda; l'idea non è una ripetizione insensata come sembri assumere dal nome.
Mike Partridge,

@ 9000 In realtà è esattamente così che capisco Code Katas. Spesso usato quando si impara una nuova lingua o si prova un nuovo approccio a un problema già risolto.
Joshua Drake,

3

Per me, il principale svantaggio della tecnica come la vedo io è il suo uso non ottimale del tuo tempo.

Il valore di apprendimento di questo esercizio è anche discutibile: quando fai qualcosa per sopravvivere, il feedback degli esperti è essenziale. Senza feedback di alta qualità imparerai anche qualcosa, ma c'è la possibilità di imparare molto bene una cosa sbagliata.

Non fraintendetemi, la pratica rimane l'unico modo per diventare bravi a programmare e il kata è sicuramente una forma di pratica. Ma anche risolvere i problemi di programmazione del codice, scrivere i tuoi "progetti divertenti", apprendere nuovi linguaggi di programmazione e così via. Alla fine, devi scegliere la tecnica con cui ti senti più a tuo agio e assicurarti di avere una guida chiara lungo la strada.


Come hai trovato la guida? Sto lottando con lo stesso problema.
CodeYogi,

1

Credo che senza una qualche forma di Kata non sarai mai un grande programmatore. Kata è pratica, è letteralmente ciò che significa. Prendi questo come esempio: un atleta dice "Mi farò vedere e farò il trattino da 100 metri, pratica la vite". Sembra una strategia vincente? È mai stato fatto in questo modo?

Suggerisco alla gente di leggere " The Clean Coder " di zio Bob , che approfondisce questo (e altri) argomenti di professionalità nel campo della programmazione.

Oh, e le argomentazioni addotte che non puoi fare Kata e crescere una famiglia sono semplicemente delle scuse. Parlando per esperienza: i bambini vanno a dormire ad un certo punto ...


3
coding! = corsa di 100 metri, a meno che quei 100 metri non attraversino un campo minato boscoso un giorno e una miniera di terra riempì la risaia il giorno successivo e una palude piena di vipere velenose il giorno successivo mentre sotto un pesante fuoco da cecchino, vedi lo schema ... Kata è il termine sbagliato semanticamente .

2
-1 La formazione può avvenire sul posto di lavoro, anche a tempo pagato (non so perché la gente sembra dimenticarlo). Non tutto è puro lavoro o puro apprendimento.
joshin4colours,

@JarrodRoberson lo scenario che hai appena descritto è quello che fa un soldato su base giornaliera. Quindi hai scelto un'analogia piuttosto negativa. Francamente, dovrei essere felice per le persone che fanno il loro lavoro 9-5, poi vanno a casa e smettono di imparare perché mi dà un vantaggio competitivo.
ThaDon

3
A Martin Fowler è stato chiesto una volta di spendere soldi per formare i tuoi dipendenti "Non hai paura che se li alleni lasceranno?" , e la sua risposta fu "No, ho paura che se non li alleno rimarranno!" . Non tutti i datori di lavoro vedono la formazione come una spesa, i buoni la vedono come un investimento!

Risolvere diversi problemi difficili con poca pianificazione, esperienza o guida è ciò che la maggior parte degli sviluppatori, in particolare gli sviluppatori junior, devono fare ogni giorno. Penso che sia un'analogia piuttosto accurata. Solo gli accademici riescono a fare lo stesso esercizio più e più volte solo per affinare una soluzione specifica. La capacità di avere una carriera di successo come sviluppatore è nell'adattamento , non nella ripetizione. Chi dice che non ci sono persone più intelligenti che non hanno bisogno di studiare dopo il lavoro e possono imparare tutto ciò di cui hanno bisogno e di più nelle loro 8 ore.

1

Fare solo kata, in un contesto di arte marziale, è inutile. Come detto prima, i kata sono coreografie di movimenti che ti insegnano la forma. Conosci i movimenti ma non sai come applicarli. Non sai in quali situazioni sono utili. Se vuoi davvero fare qualcosa di utile con loro, hai bisogno delle applicazioni, che è il Bunkai .

In un contesto software, il codice kata sarebbe l'algoritmo, lo strumento, il modello di progettazione o qualsiasi altra tecnologia. Conoscerlo è buono, ma è necessario applicarlo per capirlo. Devi usarlo in contesti diversi per dominarlo davvero. Il Bunkai sarebbe una situazione concreta in cui quel kata o parte di kata è utile.

Non vedo nulla di sbagliato in quella metodologia, ecco come si padroneggia qualcosa: apprendere qualcosa, esercitarlo, aggiungere un dettaglio, esercitarsi, aggiungere un altro dettaglio, esercitarsi, ecc.


-1

La programmazione è un'opera d'arte come la pittura o la musica. Quando qualcuno diventa un musicista o un artista per soldi che puoi dire, non c'è ispirazione, la performance non vale davvero il tuo tempo. Se ti piace l'arte, nulla può impedirti di praticarla e perfezionarla costantemente - ogni giorno perfezionando una singola tecnica, notando le sfumature che la maggior parte delle persone non vedrà mai.

C'è sempre spazio per le persone felici di essere musicisti di bar e imbianchini, ma sono una classe di talenti completamente diversa. Suppongo che la maggior parte dei pittori di casa riderebbe all'idea di praticare, ma scommetto che un pittore che ha fatto ricerche e praticato tecniche - essenzialmente riconoscendo il loro lavoro come arte farebbe un lavoro notevolmente migliore, anche su qualcosa di banale come dipingere la tua casa .

Alcune persone riconosceranno il valore della pratica che alcuni non vogliono. Questo da solo dovrebbe essere utile se sei nella posizione di valutare e stai cercando persone in grado di creare arte (codice snello, semplice, comprensibile) e non solo una soluzione.

ps. Non mi sto definendo straordinariamente artistico o altro - non faccio Kata su problemi astratti ma riconosco il valore e cerco di riformattare il mio codice di produzione abbastanza.


in particolare i musicisti troppo allenati possono essere negativamente occupati dalla perfezione teorica, ciò è estremamente pericoloso per una carriera nello sviluppo di software. La musica ha un elemento espressivo , il software di programmazione non ha questo. Si potrebbe sostenere che i prodotti Apple abbiano questa espressione, ma che è espressione di design , il codice non viene mai visto o percepito direttamente. La musica e l'arte sono cattive analogie per lo sviluppo del software. E mostri un netto pregiudizio nei confronti degli operai in quanto presumi che non siano orgogliosi del loro lavoro o vedano valore nella qualità.

Non mescolare l'allenamento con la pratica. L'allenamento eccessivo è molto diverso da quello praticato eccessivamente e se non pensi che il livello di espressione nel tuo codice sia visto nei tempi di consegna e nella stabilità del codice, non so davvero se abbiamo una base comune per la discussione.
Bill K

Non importa quello che penso, so che la maggior parte dei clienti non riconoscerà e si preoccuperà del codice attentamente elaborato e di quanto sia elegante fino a quando l'applicazione funziona per la maggior parte del tempo. Allo stesso modo che la maggior parte della popolazione non si è mai preoccupata della qualità audio e video di VHS e dei video su Internet o dei nastri a cassetta altamente compressi e ora di mp3 altamente compressi che rimuovono tutta quella sfumatura, senza alcuna lamentela. Una formazione eccessiva è peggiore di una pratica eccessiva, una formazione eccessiva fa ignorare "abbastanza bene" e miserabile nel settore del software.

La programmazione è un mestiere non è un'arte. Ci sono livelli di artigianato ed estetica per entrambi, ma l'arte non è professionale nella natura lo sviluppo del software è professionale. Più persone guadagnano più denaro scrivendo software rispetto agli artisti da molto tempo. Il software non è soggettivo, e non esiste solo per il suo stesso scopo di esistenza, i dipinti e la musica esistono per compiacere il creatore il più delle volte come la definizione di sopra innalzamento implica come una differenziazione. Come qualcuno che è andato all'università d'arte, posso dirti che la programmazione è un mestiere professionale e nulla ha a che fare con la creazione di un'opera d'arte.

Se non pensi che un software ben fatto sia consegnato più velocemente, meno costoso e semplicemente migliore del software realizzato da artigiani, non lo hai visto fatto bene. Non molto improbabile, quante persone hanno visto un maestro artista, musicista o giocato con / contro un giocatore sportivo professionista - semplicemente non sono così comuni e nel nostro settore MOLTO più difficile da riconoscere, ma la differenza nel talento è la stessa come è i risultati. Un artista può superare 5 artigiani in termini di velocità e qualità, ma pochi sono abbastanza fortunati da averlo visto e quindi non credono che esista.
Bill K
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.