Come spiegare un progetto per un potenziale datore di lavoro [chiuso]

3

Sono andato a un'intervista la scorsa settimana per un programmatore junior e ho detto che ho lavorato a un progetto con un mio amico. Domani vorrebbero vedere questo progetto per decidere se assumermi o meno. Quindi mi stavo chiedendo:

  • Quali parti di un progetto interessano a qualcuno che non ha ancora visto il progetto?
  • Cosa potrei mostrare per cambiare la loro prospettiva di me come programmatore e cosa so?

Il progetto è in C # e è stato un progetto per hobby per 6 mesi. Senza entrare in molti dettagli:

  • è un programma in rete
  • è basato su server / client dove i client finiscono per connettersi gli uni agli altri
  • esiste la sincronizzazione dei dati tra i client
  • utilizziamo i file per archiviare le informazioni sui diversi client, anch'essi sincronizzati
  • il programma nel suo complesso è diviso in diversi progetti (alcuni dei quali sono in .dll)
  • il progetto gestirà in seguito più livelli di visualizzazione dei dati all'utente (ovvero cmd, una finestra ecc.)

Ho verde acceso anche con il mio amico ed è giusto mostrarlo. La mia idea era di mostrare la shell (cmd) che abbiamo che funziona e i livelli superiori della gerarchia, quelli con cui la shell comunica direttamente. Si tratta in particolare di tre classi, una che si connette e comunica con il server, una che gestisce la sincronizzazione e una che gestisce gli oggetti che vengono sincronizzati. Proverò ad approfondire alcuni dettagli su come archiviamo gli oggetti e su come questo viene comunicato alla classe di sincronizzazione. Quindi discutete su un livello più alto di come sincronizziamo i dati, terminando con l'andare in dettaglio su come questo viene fatto.
Fondamentalmente, inizia da un livello astratto e vai nei dettagli dove la magia si verifica.

Ma mi chiedo come sia comprensibile per qualcuno che non ha mai visto il nostro progetto prima. Come dimostrerà che sono un programmatore migliore o peggiore del mio prossimo? Sono programmatori quindi immagino capiranno le basi e saranno in grado di seguire le funzioni e il codice. Ma so che I hanno problemi a capire l'immagine complessiva di un progetto, molto meno in 1-2 ore. Inoltre, non saprei come decidere se fosse un buon programmatore o cattivo a meno che non vedessi del codice errato. Quindi la mia domanda è:

  1. L'idea sopra è qualcosa su cui lavorare? (in alto > in basso)
  2. Dovrei concentrarmi maggiormente sugli algoritmi?
  3. Dovrei provare a costruire un diagramma UML o qualche altra rappresentazione visiva del progetto?

Qualche altra idea?

    
posta Default 19.12.2010 - 12:26
fonte

3 risposte

4

Fornisci una descrizione generale del problema che stai cercando di risolvere e come lo hai fatto. Un diagramma dei pezzi principali e il loro modo di interagire saranno utili con questo tipo di applicazione. Stanno comprando te e non l'applicazione. Potrebbe essere qualcosa per cui non hanno assolutamente bisogno, ma vuoi vedere come è costruito.

Una volta che inizi a mostrare loro il tuo codice, dovrebbero avere un sacco di domande e iniziare a dirigere ciò che vogliono vedere. Siate pronti ad identificare le aree che sono state codificate bene e quelle che possono essere un work in progress. Probabilmente ti chiederanno quanto tempo ci è voluto per scrivere certe sezioni di codice.

Spero che il tuo lavoro appaia buono o migliore di quello del tuo amico;)

    
risposta data 19.12.2010 - 12:40
fonte
3

Sono uno sviluppatore freelance e penso di aver recentemente trovato il modo ideale per "parlare" ai clienti: BPMN .

Generalmente, dopo la raccolta dei requisiti, modifico il loro intero processo aziendale e aggiungo $ 0,02 a ciò che intendo implementare. In una seconda sessione per chiarire i dubbi, presento il processo BPMN (ei sottoprocessi) e apro con: "questo è il tuo processo aziendale, è modellato con una notazione specializzata chiamata Business Process Modeling Notation, è come un diagramma di flusso ma qui ci sono solo due simboli che devi conoscere, i cerchi sono eventi (cose che accadono istantaneamente) e i quadrati sono compiti (cose che richiedono tempo) ".

E li ho totalmente lì ; poi comincio a spiegare loro come l'ho capito e come si rifletterà nell'implementazione, e quali sono le possibilità future, e poi la magia accade: i clienti sono totalmente coinvolti in una discussione proattiva.

Se mi chiedi perché ti direi che in questo modo puoi mostrare al cliente / datore di lavoro che hai effettivamente capito il problema, e dove non l'hai fatto, lui / lei avrà un'opportunità reale di sapere come dire tu perché, dove e cosa manca.

Prova link come editor BPMN, è gratuito e gli schemi sembrano bellissimi. Lo strumento in realtà ti spiega BPMN al volo (mouse sopra la palletta). Suggerimento: creare un processo generale e utilizzare "Sottoprocessi riutilizzabili" al suo interno, in modo che ogni sottoprocesso riutilizzabile si riferisca a ogni altro diagramma creato. Quando finisci, esporta in HTML, è semplicemente fantastico.

Ricordare che il BPMN intende descrivere principalmente la logica aziendale, non la logica del programma (ad esempio non diagrammi "ifs" e "cicli" se non sono rilevanti per la logica aziendale), e ciò rende possibile mostrare solo la pertinenza parti del problema e in che modo il tuo software lo risolve.

Fai un tentativo e buona fortuna.

P.S .: controlla la pagina di Wikipedia su BPMN.

    
risposta data 19.12.2010 - 12:46
fonte
0

Per essere onesti, se stai facendo domanda per una posizione di programmazione, non preoccuparti del modo "tecnico" di ottenere. Se l'intervistatore non capisce allo stesso livello o ad un livello più alto di te, nonostante tu conosca il tuo progetto, dovresti avere il loro lavoro!

"Come dimostrerà che sono un programmatore migliore o peggiore del mio prossimo?"

La tua app parlerà da sola. Se si tratta di un pasticcio illeggibile, se l'intervistatore NON è della razza di cui sopra, allora apparirà come un disastro illeggibile.

Potrebbe essere utile produrre un breve diagramma UML (e intendo breve). Fino ad ora anche se questo copre solo il design dell'applicazione. Immagino che vogliano sporcarsi e vedere il codice reale. Per questo motivo è necessario avere il codice sorgente pronto (stampare l'intera app se necessario o averlo a portata di mano su un laptop).

    
risposta data 19.12.2010 - 12:36
fonte

Leggi altre domande sui tag