Continuo a fallire le mani su parte dell'intervista, suggerimenti? [chiuso]


13

Quindi ho un paio di software / sito nel mio portafoglio. Guadagnano ma non molto.

Così ho deciso di fare esperienza lavorativa, applicando principalmente posizioni di sviluppo junior Java / PHP.

Il problema è che rispondo correttamente a tutte le domande tecniche e programmiamo di fare un "test" di codifica, la fase finale dell'intervista. Non posso mai rilassarmi e pensare troppo alle cose e finire per fare il test molto lentamente. O a volte ho appena colpito un blocco e trovo molto difficile pensare in piedi.

Non capisco perché altre cose che avevo scritto stavano risolvendo problemi molto più complessi mentre il "Test" è in realtà brutalmente semplice come scrivere e testare palindrome.

Altre volte, mi daranno un test logico con i flussi alle operazioni matematiche e di nuovo non sarò in grado di farlo nel tempo che assegnano.

So di poter scrivere software / siti Web vendibili in grado di generare piccole entrate e trovare modi per risolvere i problemi, ma ho grandi difficoltà con semplici test di codifica nelle interviste.

Eventuali suggerimenti?



Apparentemente almeno pensi che i test del colloquio possano essere semplici, ma sembra che tu non sia il solo ad avere problemi con questi test: infoworld.com/d/application-development/…
Qualche programmatore amico,

2
Non sono d'accordo con questo link. Data la differenza tra un buon sviluppatore e uno cattivo, vuoi davvero rischiare di perdere tempo alcuni buoni candidati piuttosto che ottenere cattivi.
deadalnix,

7
@deadalnix Non sono d'accordo con il tuo disaccordo. :-) Ho visto abbastanza bravi programmatori test falliti e cattivi programmatori superano test che ritengo che i test non siano utili e spesso controproducenti. IMO, tutto ciò che fanno è far sentire bene l'intervistatore / le risorse umane.
Brian Knoblauch,

2
@BJoachim e tutti: se leggi i primi paragrafi in quel link, in realtà è un buon consiglio per mantenere i test pertinenti e utili: non dice che i test sono inutili.
MarkJ

Risposte:


18

Continua a partecipare alle interviste. Alla fine troverai un posto che farà domande più sensibili ai tuoi punti di forza. Ti sentirai anche meglio e più a tuo agio con l'intervista, che può solo aiutare. Guardalo come un gioco, perché è davvero quello che è. Continua a giocare e alla fine vincerai.


2
Non penso che sia questione di merito / contenuto delle domande, solo condizioni di risposta. Ho sbagliato a scrivere male bool isPalindrome(string)perché dovevo scriverlo su carta, in un limite di tempo (di 15 minuti?). Dato un editor di testo e nessun limite di tempo, credo di poterlo fare perfettamente in meno di un minuto.
SF.

9
@SF: l'hai provato dopo l'intervista? Quanto ci hai messo?
Kevin Cline,

2
Continua anche a esercitarti a lavorare sulle tue debolezze. In questo caso, trova piccoli problemi simili e dedica il tempo a risolverli su carta. Esercitati a far funzionare prima qualcosa (anche se è sbagliato), quindi esegui iterando correttamente. In questo modo puoi mostrare il tuo processo di pensiero come parte dell'intervista. Sembra che questa sia la più grande abilità che ti manca (in questo momento) ottenere un risultato minimo ora, quindi migliorarlo nel tempo. Molte aziende come questa :-)
Al Biglan

Ho appena visto questo collegato da slashdot; in qualche modo correlato: infoworld.com/d/application-development/…
Kevin Hsu

Se il problema è che non è possibile programmare su carta, questo è un vero problema secondo me. "isPalindrome" non dovrebbe avere bisogno di oscure chiamate API o funzionalità linguistiche; dovresti essere in grado di creare un programma compilabile come quello senza alcun vantaggio di intellisense o IDE.
Eoin Carroll,

12

Questo è molto comune La maggior parte dei programmatori sono in grado di programmare in modo efficace quando si trovano nella loro zona di comfort. Ad esempio, posso lavorare solo su Ubuntu, con vim, se non ho quell'area di lavoro non mi sentirò di programmare. anche io bisogno , in una certa misura, di Google per la ricerca.

Sono sicuro che hai sviluppato una zona di comfort per la programmazione. Consiglierei, abituandomi all'ambiente in cui qualcuno è dietro di te in attesa che il loro codice sia completato. Il modo migliore per abituarsi è continuare a intervistare.

Potresti pensare che non abbia molto impatto, e potrebbe non esserlo. Ma per alcuni di noi là fuori, programmare con la musica o senza, usare un IDE o un semplice editor di testi, usare una sedia di legno o sedersi su un divano, una stanza buia o una stanza luminosa ... fare una grande differenza nel nostro sviluppo velocità.

Nota, una volta ottenuto il lavoro, di solito puoi creare la tua zona di comfort nello spazio ufficio che ti danno.

EDIT : questa domanda mi ricorda un addetto alle vendite, chiedendo come mettersi a proprio agio e meglio nelle chiamate a freddo. La risposta migliore è continuare a fare chiamate fredde e riflettere su ogni chiamata. Dopo un po 'l'uomo delle vendite migliora le proprie capacità e il proprio comfort. Penso che il programmatore non sia diverso quando partecipi alle interviste, dopo tutto il punto principale è venderti all'intervistatore


Chi è Sopha? La bellissima gemella di Sophie?
uɐɪ

@Rick: sfortunatamente, come intervistatore, non posso semplicemente prendere la parola di qualcuno che sono un programmatore efficace. Devo vedere che possono effettivamente programmare. Né l'esperienza riportata, né GPA, né certificazioni, né esempi di codice possono dirmelo. Devo vedere i candidati fare un po 'di programmazione.
Kevin Cline,

@kevincline Sono d'accordo, è per questo che lo consiglio di andare avanti alle interviste e di mettersi a proprio agio con intervistatori come te.
Rick Rhodes,

6

Questo è solo il mio suggerimento, perché non provare ad essere un imprenditore. Potrebbero esserci molte persone che affrontano il problema simile. Se riesci a scrivere siti Web per piccole entrate, sicuramente puoi guadagnare molto da esso.


1
+1 e uno spirito imprenditoriale può essere visto come una qualità molto positiva.
maple_shaft

5

Hai già identificato il tuo problema: risolvere i problemi sotto pressione (ei quando qualcuno ti sta guardando). È perché ti manca la fiducia o non hai abbastanza esperienza o sei sotto pressione?

Partecipare a molte interviste per acquisire esperienza e pratica può essere una buona idea, ma può anche produrre effetti collaterali. I fallimenti costanti nelle interviste possono scuotere ancora di più la tua fiducia, quindi fai attenzione.

Ti suggerirei di provare la programmazione tra pari in modo da poterti sentire a tuo agio nel risolvere i problemi quando qualcuno ti sta guardando. Inoltre, cerca di capire cosa ti impedisce di essere efficace sotto pressione (è lo stress derivante dagli stessi test, lo stress da lavorare sotto stretto controllo, lo stress da lavorare entro un determinato limite di tempo, ecc.).


1
Dovresti anche cercare su alcuni di questi tipi di domande di prova. Stampali nel modo in cui li ottieni in un'intervista e risolverli. Siediti a un tavolo non sul tuo computer. Devi provare a ricreare la pressione del colloquio.
Bill Leeper,

3

Sembra che ti strozzi sotto pressione. Dato che devi fare degli esempi a tempo come parte del processo del colloquio, dovrai imparare come superarlo. Si tratta solo di gestire la paura, non di abilità di programmazione.

Un'opzione sarebbe quella di esercitarti a scrivere problemi di esempio e cronometrarti. Una volta che sai che puoi farli in meno di dieci minuti, potresti temere di avere meno tempo.

Un'altra opzione sarebbe quella di escogitare una tecnica per calmare la tua paura e usarla per liberarti. L'apprendimento di una tecnica di meditazione potrebbe aiutarti. O memorizza la litania contro la paura (da Dune ). Impara un trucco per abbattere la tua risposta alla paura.


3

Sono abbastanza sorpreso che nessuno l'abbia ancora chiesto, ma come stai affrontando le attività di programmazione ?

Se stai semplicemente saltando nel codice, allora è probabile che ti perderai e finirai per fare semplici errori e sentirti agitato. Prendilo un po 'per volta:

  1. Raccogliere i requisiti : che cosa chiede esattamente il tuo intervistatore. Assicurarsi che ci sono pari a zero domande in aria prima di codifica. Ad esempio, se di fronte alla vecchia domanda "isPalindrome", chiedi cose come "cosa succede se la stringa ha caratteri speciali?" o "le stringhe di lunghezza dispari come 'ada' contano come palindromi?". È necessario sapere come chiarire i requisiti prima di progettare un algoritmo.
  2. Progetta il tuo algoritmo : suddividilo in sezioni logiche se ha senso. Ne parliamo .. Forse scrivi un pseudocodice se stai lavando la lavagna. Segui il tuo intervistatore attraverso i tuoi passi. Prova a eseguirlo con alcuni input diversi (sia validi che non validi) per assicurarti di ottenere i risultati desiderati.
  3. Ora inizia a scrivere codice : a questo punto, dovresti essere molto sicuro di ciò che stai per scrivere. In sostanza, dovresti semplicemente seguire i movimenti con qualsiasi linguaggio tu abbia familiarità. A questo punto, non importa se ci sono errori sintattici poiché gli intervistatori che meritano un centesimo perdoneranno quelli in una sessione di lavagna (se ti viene dato un PC / IDE per risolvere il problema, questa è una storia diversa).

Davvero, quando si affrontano i problemi di codifica, un intervistatore non è alla ricerca di un ottimo codice. È più per vedere come affrontare un determinato problema. Immergersi direttamente nel codice è una brutta cosa, punto.

Scoprirai anche che mentre parli del problema (raccolta e progettazione dei requisiti), ti sentirai un po 'più a tuo agio e avrai meno probabilità di commettere errori sciocchi durante la parte di codifica.


3

Project Euler

Mi sembra che stai fallendo il fizzbuz test di . Mente che intorpidisce algoritmi semplici che generalmente non hanno alcuno scopo pratico se non quello di identificare se capisci i concetti chiave della programmazione.

Rispolverare le basi

Quello che consiglierei è di rispolverare le tue basi.

http://projecteuler.net/

Iscriviti e inizia a esercitarti, scoprirai che attraverso questi esempi otterrai una comprensione più profonda dei concetti di programmazione di base. Penso che troverai una domanda sul palindromo insieme a sequenze di fibonacci e altri concetti matematici (suono familiare).


2

Chiedi un feedback durante o dopo il colloquio. Cosa gli è piaciuto? Cosa non gli è piaciuto? Potresti essere sorpreso dalle risposte.

Persone diverse cercano cose diverse, ovviamente, ma il modo in cui si tenta di risolvere un problema è in genere più importante che scrivere una soluzione corretta al 100%. Potresti essere preoccupato per tutte le cose sbagliate.

Il modo migliore per migliorare qualsiasi cosa è esercitarsi. Prova a scrivere un elenco di brevi problemi. Quindi, per ciascun elemento dell'elenco, scrivere un piccolo programma per risolvere il problema. Inizia con problemi molto semplici, come FizzBuzz , e risolvi le difficoltà man mano che procedi . Riesci a risolvere i problemi che hai visto nelle precedenti interviste? Trova la sottostringa più grande che due stringhe hanno in comune? Calcola la scomposizione in fattori primi di n !?

L'idea non è quella di imparare la soluzione ad ogni problema che potresti incontrare, ma di darti un po 'di pratica per scrivere rapidamente piccoli programmi e anche di capire dove si trovano i tuoi punti deboli in modo da poter migliorare. Molti problemi sono facili da risolvere con la giusta struttura di dati, ma difficile altrimenti, quindi assicurati di avere una solida base nelle strutture di dati.


2

Esercitati e trova qualcuno che ti aiuti a guidarti attraverso le basi di come superarlo. Potrebbero essere necessari alcuni tentativi, ma potrebbe essere sorprendente ciò che viene scoperto se puoi ottenere un feedback e fare pratica su questo. Ho avuto un reclutatore che mi ha spiegato come gestire un problema di lavagna una volta che sembra essere simile al tuo problema qui.

Non sto suggerendo di memorizzare le risposte tanto quanto sta avendo un progetto su cosa fare quando viene dato un tale problema e su come affrontarlo. Cosa sembra questo? Hai visto problemi simili? Cosa potrebbero produrre alcuni semplici approcci in termini di algoritmo? Almeno questo è il mio suggerimento per te.


2

È abbastanza comune per gli sviluppatori di software ignorare quando viene chiesto di sostenere un test di codifica o di scrivere un piccolo pezzo di codice durante l'intervista. Come qualcuno ha già detto, questo perché la maggior parte di noi può programmare solo quando siamo nella nostra "zona di comfort" e seduti in una piccola stanza, circondati da 2-5 intervistatori, non aggiungono molto del comfort.

La risposta è triplice:

  • pratica e pratica di più. prova per un mese a programmare 30-40 minuti con carta e penna e rimarrai sorpreso da quanto sarebbe facile. Durante l'allenamento - prova il tipo di attività di programmazione che ti aspetti di essere richiesto durante le sessioni di codifica dell'intervista - ad esempio implementa un singleton, inverti una stringa, ecc. È ancora più facile con "leggi quel pezzo di codice junk e trova cosa non va "- prova a stampare e ad analizzare queste stampe per due settimane e migliorerai notevolmente questa abilità.

  • impara come controllare la tua paura. se ritieni che il test sia troppo difficile e puoi completarne solo il 20%, fallo 20%, non preoccuparti del resto. È possibile che il test sia irragionevolmente grande per il tempo dedicato a farlo (ad esempio, i ragazzi intervistati dovrebbero darti 20 minuti per finirlo, ma devono concludere il colloquio in 5 minuti a causa dell'esplosione della produzione, ecc.) . È anche possibile che altri candidati siano riusciti a completare solo il test del 10%, quindi avendo completato il 20% sarai ancora in vantaggio sugli altri candidati.

  • Quando scrivi un codice durante l'intervista, non preoccuparti di renderlo perfetto al primo passaggio. basta implementare un "percorso felice noto anche come scenario più comune prima" e preoccuparsi della gestione degli errori in seguito. se stai esaurendo il tempo - aggiungi semplicemente una breve nota nella parte inferiore del foglio delinea - cosa avresti fatto per migliorare il codice se avessi avuto più tempo.

[devo correre, modificherò / migliorerò la mia risposta in seguito]


1

Come molte persone hanno già detto, la pratica è una delle cose più importanti. Se hai già fatto un problema simile, sarai in grado di trovare rapidamente la soluzione.

Se hai difficoltà a trovare i problemi da provare e risolvere da solo, prova a utilizzare Google Search per programmare le domande del colloquio nella tua lingua o scelta.

Inoltre puoi prendere libri che sono progettati per insegnare corsi CS di livello inferiore. La maggior parte di questi libri sono pieni di compiti di programmazione che sono piccoli e possono essere svolti rapidamente a casa. Possono essere usati per la pratica.


0

Sono anche molto cattivo ai test e lo sono sempre stato. Non sono riuscito a capire perché una lezione di programmazione mi ha dato dei test da svolgere con carta e matita. Non ci sono mai riuscito. Tuttavia, ciò che ho fatto è stato spiegare agli intervistatori che avevo questo problema e lo sapevo. Sono anche riuscito a intervistare aziende che non mi hanno dato test stupidi.

Il mio suggerimento è quello di dire alla società prima di andare al colloquio che non farai volontà con quel tipo di test, tuttavia sei contento di X invece. (Scopri un'alternativa che abbia senso e ti senti a tuo agio nel farlo.) Per quanto mi riguarda, mi sono offerto di inviare loro il codice, e una volta ho suggerito di darmi un semplice programma da scrivere, e lo porterò con me al intervista tra 3 giorni.

A seconda di dove stai cercando di ottenere un lavoro, questo potrebbe non funzionare per te.

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.