Non risponderò specificamente alle tue domande, perché penso che le risposte varino così tanto che sarebbe difficile dare qualcosa di concreto.
Ma darò una risposta alla domanda più ampia - "Com'è lavorare come ingegnere informatico nel settore dei computer?" e forse anche "qual è la differenza tra un buon lavoro e un brutto lavoro?"
Generalmente, la programmazione è considerata un "lavoro di conoscenza", che è un lavoro in cui sono necessari un certo livello di istruzione, esperienza, capacità di giudizio e di problem solving. E dove la dimostrazione della capacità di pensare e prendere buone decisioni supera di gran lunga qualsiasi altra metrica per la produttività. Per la maggior parte, gli ambienti considerati luoghi di lavoro eccezionali riconoscono questo fatto e strutturano attivamente i loro luoghi di lavoro per massimizzare le persone intelligenti che prendono buone decisioni. I posti di lavoro che sono visti come non ottimali sono dove il comportamento del programmatore è limitato o limitato per ovvi motivi, in modi che non aggiungono al prendere decisioni intelligenti.
Ciò significa che:
-
nella maggior parte delle posizioni, c'è un qualche grado di flessibilità nei tempi di inizio - le aziende vanno da wildly open ended ("entra quando vuoi, fallo e basta") ad un certo livello delle ore centrali che sono ritenute necessarie per consentire alle persone di avere riunioni e comunicare in modo efficace.
-
i giorni dell'abito formale sembrano essere più bassi, ma è un'aspettativa generale che l'abbigliamento sarà pulito, coprirà le parti del corpo che la società americana si aspetta di essere coperta e sarà abbastanza presentabile per soddisfare il cliente se una demo del cliente fa parte del lavoro. Le aziende più grandi sono ancora un po 'più formali delle piccole imprese, e a volte c'è l'idea di "business casual" e "casual fridays" - dove è incoraggiato un abbigliamento più informale il venerdì.
-
Nella maggior parte delle aziende, le interruzioni, il carico di lavoro e il tempo libero sono bilanciati dalle esigenze del prodotto. Industrie diverse e aziende diverse hanno carichi di lavoro e carichi di stress diversi. Un minimo di 40 ore settimanali è un'aspettativa standard, ma ci sono delle deviazioni e sono disponibili posizioni part time. Per la maggior parte, il lavoro è suddiviso in posizioni salariali e posizioni contrattuali con aspettative e meccanismi di retribuzione notevolmente diversi. Per una posizione stipendiata, il numero di ore settimanali è minimo - l'aspettativa è che rispetti le scadenze e fai il massimo per riordinare gli obiettivi quando le scadenze sono impossibili. Le scadenze aggressive sono sempre più la norma e conosco pochissime persone che non si aspettano un certo livello di straordinari ogni anno.
-
Le pause e il tempo libero dovrebbero essere ragionevoli e adatti alla cultura d'ufficio. La scadenza tende ad essere la linea di fondo - le persone che prendono più pause e il tempo libero quando il lavoro è prontamente in grado di rispettare la scadenza è tipico. Con la maggior parte del lavoro di conoscenza, è compreso e si prevede che le interruzioni siano necessarie e siano di competenza dell'individuo. Molti uffici offrono una sorta di area di pausa in modo che i dipendenti che si prendono una pausa abbiano un posto dove andare per rilassarsi e cambiare ritmo.
Per la maggior parte, il lavoro è svolto in team. Ci sono pochissimi prodotti là fuori per uno sviluppatore solitario: le basi di codice e la logica di business sono diventate troppo grandi per essere mantenute da uno solo sviluppatore. Di conseguenza, ci si aspetta che le persone siano in grado di lavorare in una squadra. Ciò significa che, a un certo livello, le norme di lavoro derivano dagli accordi reciproci dei membri del team, sebbene la società abbia probabilmente anche alcune regole prevalenti.
La maggior parte delle regole in una data catena aziendale a quello che serve per avere successo come squadra - una squadra ha bisogno di una comunicazione sufficiente per lavorare in modo efficiente, abbastanza rispetto reciproco per essere in grado di condividere idee senza difensiva, sufficienti norme culturali condivise per non avere violazioni tabù rompere il flusso di comunicazione.
Anche le regole possono variare in base alla posizione: i ruoli rivolti ai clienti e i ruoli correlati alle imprese tendono ad avere maggiore enfasi sulle capacità di comunicazione e di presentazione, mentre i ruoli di solo sviluppo hanno requisiti meno impegnativi. Le aziende più grandi / più grandi tendono ad avere un tipico insieme di norme aziendali americane - tempi di inizio più severi, codici di abbigliamento e altri comportamenti - mentre le aziende più piccole / più nuove possono avere regole più uniche e / o rilassate.