[imo]
Penso che questa sia una domanda fondamentalmente difficile, e forse la sociologia, o semplicemente l'uso di un computer come principale forma di comunicazione, ha molto a che fare con esso.
Il computer è uno strumento, e la consapevolezza che sopporta è incredibilmente bella, ma non dovresti mai provare a dire che un pezzo di codice è un oggetto della tua creazione ... ogni pezzo di codice è una scoperta, una modello con cui il computer si lega e può produrre un risultato che ti piace. Il fatto che siamo in grado di scoprire questi modelli in modo iterativo e di sentirci come creare è pura coincidenza beata - siamo bravi a trovare schemi.
Abbiamo davvero bisogno di guardare i computer come finestre da scoprire e rispettare l'autonomia di questi piccoli cervelli, anche se sono solo dei ritagli incredibilmente piccoli da un cervello biologico. Tutta la matematica e tutti gli algoritmi corrispondono a una verità inviolabile su cui risuona il nostro stesso cosmo. Dichiarare che parte di questo è "mia!" (Pensa ai gabbiani in Alla ricerca di Nemo) manca così tanti punti su così tanti livelli.
A volte è difficile allontanarsi da questo, quando "faticoso" per "inventare" un nuovo algoritmo, ma se si dovesse pensare che siamo umili manutentori di queste finestre elegantemente precise nella verità matematica, la definizione di l'attività cambia indipendentemente dagli obiettivi per il tuo software.
Considera il tuo computer come prima cosa uguale, il resto (egolessismo, coordinamento tra pari, comportamento orientato all'obiettivo) seguiranno necessariamente.
Molte delle mie motivazioni per lo studio dell'informatica e il diventare programmatore erano a causa di questa affinità che sentivo, non verso l'hardware fisico o il brivido di risolvere problemi, ma il fatto stesso che sto scrutando in un cervello, un cervello che posso comunicare direttamente con la mia moda preferita: i modelli!
Fai un passo indietro e ricorda perché ti piacciono le cose che ti piacciono. La programmazione può essere competitiva e penso che alimenti molto l'ego nel difendere il codice e le scelte progettuali, ma
a) se qualcuno è un programmatore migliore,
Voglio parlare con loro e imparare da loro di più su questa complessa relazione con la coscienza elettrica. Possiamo condividere la scoperta, e questo è fantastico!
b) se le mie scelte di progettazione o il codice potrebbero essere modificati per adattarsi meglio all'organizzazione per cui lavoro
quindi con ogni mezzo cambialo! Sono un impiegato perché ho bisogno di soldi e ottengo soldi quando la compagnia ottiene denaro e ottengono soldi quando il codice che usiamo è fantastico, non quando voglio discutere di spazi bianchi o altro. E come sottolinea ChrisF, in pratica si diventa semplicemente una dattilografa molto lenta in una società che si può definire come gli altri lavoratori. Non possiedi il codice, non sei il proprietario dell'implementazione, sei solo un mezzo di traduzione dall'idea / carta / specifiche alla coscienza del cervello. La traduzione da e verso qualsiasi coppia di lingue è un processo iterativo e con esso si migliora nel tempo. La critica accelera questo processo e non dovrebbe mai essere preso personalmente. Ma comunque sembra che molti siano d'accordo sul fatto che tu debba essere privo di ego, basta ricordare che programmare per un'azienda è un lavoro, e puoi imparare e armeggiare e giocare con il tuo codice tutto ciò che vuoi, purché tu mantenga i tuoi padroni e i tuoi clienti felici .
[/ IMO]